@mediusinc/mng-commons 0.2.16 → 0.2.19

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.
Files changed (100) hide show
  1. package/assets/i18n/en.json +4 -2
  2. package/assets/i18n/sl.json +19 -17
  3. package/esm2020/lib/api/models/filter-param.model.mjs +1 -1
  4. package/esm2020/lib/api/models/query-param.model.mjs +1 -1
  5. package/esm2020/lib/api/services/crud-api.abstract.service.mjs +17 -12
  6. package/esm2020/lib/components/action/action.component.mjs +32 -18
  7. package/esm2020/lib/components/action/editor/action-editor.component.mjs +182 -0
  8. package/esm2020/lib/components/action/index.mjs +2 -2
  9. package/esm2020/lib/components/action/models/action-execution.model.mjs +3 -3
  10. package/esm2020/lib/components/action/route/action-route.component.mjs +17 -12
  11. package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +13 -11
  12. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +5 -7
  13. package/esm2020/lib/components/form/editor/form-editor.component.mjs +56 -4
  14. package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +3 -3
  15. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +3 -3
  16. package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +3 -3
  17. package/esm2020/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +179 -0
  18. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +28 -9
  19. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +14 -10
  20. package/esm2020/lib/components/form/formly/fields/index.mjs +2 -1
  21. package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +3 -3
  22. package/esm2020/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.mjs +4 -3
  23. package/esm2020/lib/components/form/models/form-editor.event.mjs +28 -1
  24. package/esm2020/lib/components/layout/main-layout.component.mjs +1 -1
  25. package/esm2020/lib/components/layout/topbar.component.mjs +2 -4
  26. package/esm2020/lib/components/tableview/table/table.component.mjs +43 -20
  27. package/esm2020/lib/components/tableview/tableview.component.mjs +22 -15
  28. package/esm2020/lib/config/formly.config.mjs +7 -2
  29. package/esm2020/lib/data-providers/table.data-provider.mjs +17 -2
  30. package/esm2020/lib/descriptors/action.descriptor.mjs +112 -1
  31. package/esm2020/lib/descriptors/editor.descriptor.interface.mjs +2 -0
  32. package/esm2020/lib/descriptors/editor.descriptor.mjs +129 -28
  33. package/esm2020/lib/directives/component.directive.mjs +8 -3
  34. package/esm2020/lib/mng-commons.module.mjs +18 -11
  35. package/esm2020/lib/models/index.mjs +2 -1
  36. package/esm2020/lib/models/view-container.model.mjs +2 -0
  37. package/esm2020/lib/router/models/router.model.mjs +1 -1
  38. package/esm2020/lib/router/route-builder.mjs +75 -11
  39. package/esm2020/lib/services/action-executor.service.mjs +291 -0
  40. package/esm2020/lib/services/configuration.service.mjs +3 -3
  41. package/esm2020/lib/services/index.mjs +2 -2
  42. package/esm2020/lib/services/mng-view-container-component.service.mjs +35 -0
  43. package/esm2020/lib/services/tokens/default-setting.token.mjs +3 -0
  44. package/esm2020/lib/services/tokens/index.mjs +2 -1
  45. package/esm2020/lib/utils/editor-formly.util.mjs +14 -3
  46. package/esm2020/lib/utils/toast.util.mjs +15 -7
  47. package/esm2020/public-api.mjs +1 -2
  48. package/fesm2015/mediusinc-mng-commons.mjs +1738 -1012
  49. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  50. package/fesm2020/mediusinc-mng-commons.mjs +1578 -878
  51. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  52. package/lib/api/models/filter-param.model.d.ts +1 -1
  53. package/lib/api/models/query-param.model.d.ts +1 -1
  54. package/lib/api/services/crud-api.abstract.service.d.ts +9 -8
  55. package/lib/components/action/action.component.d.ts +12 -7
  56. package/lib/components/action/{dialog/action-dialog.component.d.ts → editor/action-editor.component.d.ts} +18 -12
  57. package/lib/components/action/index.d.ts +1 -1
  58. package/lib/components/action/models/action-execution.model.d.ts +3 -3
  59. package/lib/components/action/route/action-route.component.d.ts +6 -6
  60. package/lib/components/form/autocomplete/autocomplete.component.d.ts +3 -2
  61. package/lib/components/form/dropdown/dropdown.component.d.ts +4 -4
  62. package/lib/components/form/editor/form-editor.component.d.ts +7 -2
  63. package/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +45 -0
  64. package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +2 -0
  65. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +1 -0
  66. package/lib/components/form/formly/fields/index.d.ts +1 -0
  67. package/lib/components/form/models/form-editor.event.d.ts +32 -0
  68. package/lib/components/layout/topbar.component.d.ts +2 -3
  69. package/lib/components/tableview/table/table.component.d.ts +14 -6
  70. package/lib/components/tableview/tableview.component.d.ts +10 -7
  71. package/lib/data-providers/table.data-provider.d.ts +9 -1
  72. package/lib/descriptors/action.descriptor.d.ts +41 -5
  73. package/lib/descriptors/editor.descriptor.d.ts +62 -19
  74. package/lib/descriptors/editor.descriptor.interface.d.ts +9 -0
  75. package/lib/directives/component.directive.d.ts +5 -4
  76. package/lib/mng-commons.module.d.ts +55 -54
  77. package/lib/models/index.d.ts +1 -0
  78. package/lib/models/view-container.model.d.ts +6 -0
  79. package/lib/router/models/router.model.d.ts +2 -2
  80. package/lib/router/route-builder.d.ts +18 -4
  81. package/lib/services/{action.service.d.ts → action-executor.service.d.ts} +19 -18
  82. package/lib/services/index.d.ts +1 -1
  83. package/lib/services/mng-view-container-component.service.d.ts +22 -0
  84. package/lib/services/tokens/default-setting.token.d.ts +2 -0
  85. package/lib/services/tokens/index.d.ts +1 -0
  86. package/lib/utils/toast.util.d.ts +5 -4
  87. package/package.json +1 -1
  88. package/public-api.d.ts +0 -1
  89. package/scss/mng-overrides/_layout_forms.scss +2 -0
  90. package/scss/mng-overrides/_mixins.scss +7 -0
  91. package/scss/mng-overrides/_theme_button.scss +58 -0
  92. package/scss/mng-overrides/_theme_dropdown.scss +17 -0
  93. package/scss/mng-overrides/_theme_styles.scss +1 -0
  94. package/scss/mng-overrides/_variables.scss +2 -0
  95. package/esm2020/lib/components/action/dialog/action-dialog.component.mjs +0 -151
  96. package/esm2020/lib/components/tableview/services/index.mjs +0 -2
  97. package/esm2020/lib/components/tableview/services/tableview.component.service.mjs +0 -21
  98. package/esm2020/lib/services/action.service.mjs +0 -273
  99. package/lib/components/tableview/services/index.d.ts +0 -1
  100. package/lib/components/tableview/services/tableview.component.service.d.ts +0 -14
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectionStrategy, Component } from '@angular/core';
2
2
  import { FieldType } from '@ngx-formly/core';
3
3
  import { ReplaySubject } from 'rxjs';
4
- import { finalize, first, startWith } from 'rxjs/operators';
4
+ import { startWith } from 'rxjs/operators';
5
5
  import { MediusFilterMatchType, MediusQueryParamBuilder } from '../../../../../api/models';
6
6
  import { FieldManyToManyEditorDescriptor } from '../../../../../descriptors';
7
7
  import * as i0 from "@angular/core";
@@ -52,6 +52,7 @@ export class MngFormlyFieldTableDialogMultiselectComponent extends FieldType {
52
52
  this.subscriptions.push(subscription);
53
53
  }
54
54
  ngOnDestroy() {
55
+ this.lookupDataProviderSubscription?.unsubscribe();
55
56
  this.subscriptions.forEach(s => s.unsubscribe());
56
57
  }
57
58
  openAddDialog() {
@@ -65,12 +66,15 @@ export class MngFormlyFieldTableDialogMultiselectComponent extends FieldType {
65
66
  const filterValues = this.formControl.value.map((i) => i[this.descriptor.excludeValueProperty]);
66
67
  queryParamBuilder.withFilter(this.descriptor.excludeFilterProperty, filterValues, undefined, MediusFilterMatchType.NotIn);
67
68
  }
68
- this.descriptor.lookupTableDataProvider
69
- ?.getAll(queryParamBuilder.build(), this.dialogDataProviderService)
70
- .pipe(first(), finalize(() => this.dialogIsLoadingSubject.next(false)))
71
- .subscribe(res => {
72
- this.addItemsSubject.next(res);
73
- this.dialogAreItemsLoaded = true;
69
+ this.lookupDataProviderSubscription = this.descriptor.lookupTableDataProvider?.getAll(queryParamBuilder.build(), this.dialogDataProviderService).subscribe({
70
+ next: res => {
71
+ this.addItemsSubject.next(res);
72
+ this.dialogAreItemsLoaded = true;
73
+ this.dialogIsLoadingSubject.next(false);
74
+ },
75
+ error: () => {
76
+ this.dialogIsLoadingSubject.next(false);
77
+ }
74
78
  });
75
79
  }
76
80
  this.dialogSelectedAddItems = [];
@@ -115,9 +119,9 @@ export class MngFormlyFieldTableDialogMultiselectComponent extends FieldType {
115
119
  }
116
120
  }
117
121
  MngFormlyFieldTableDialogMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldTableDialogMultiselectComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
118
- MngFormlyFieldTableDialogMultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldTableDialogMultiselectComponent, selector: "mng-formly-table-multiselect-add-field", usesInheritance: true, ngImport: i0, template: "<mng-table [descriptor]=\"descriptor.mainTableDescriptor\" [items]=\"itemsAsync\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-end table-header\">\n <label class=\"mng-datatable-form-label p-m-0\" [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <button\n *ngIf=\"hasAddAction && !formControl!.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-plus\"\n class=\"p-button-rounded p-button-success\"\n (click)=\"openAddDialog()\"></button>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnAction\" let-item=\"rowItem\">\n <button\n *ngIf=\"hasDeleteAction && !formControl!.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-trash\"\n class=\"p-button-rounded p-button-danger\"\n (click)=\"removeItem(item)\"></button>\n </ng-template>\n</mng-table>\n\n<p-dialog\n *ngIf=\"hasAddAction\"\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.addItem' | translate: {item: to?.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"p-fluid mng-formly-field-table-multiselect-dialog\">\n <ng-template pTemplate=\"content\">\n <mng-table\n [descriptor]=\"descriptor.mainTableDescriptor\"\n [queryResult]=\"addItemsAsync\"\n [selectionEnabled]=\"true\"\n [loading]=\"dialogIsLoading$\"\n (selectionChange)=\"onSelectionChange($event)\">\n </mng-table>\n <p-messages [value]=\"dialogMessages\"></p-messages>\n </ng-template>\n\n <ng-template pTemplate=\"footer\">\n <button pButton pRipple type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n pRipple\n type=\"button\"\n [label]=\"'general.add' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"addItems()\"\n [loading]=\"(dialogIsLoading$ | async) ?? false\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n</p-dialog>\n", components: [{ type: i1.MngTableComponent, selector: "mng-table", inputs: ["descriptor", "items", "queryResult", "loading", "dataProvider", "useQueryParams", "selectionEnabled"], outputs: ["tableLoad", "cellClick", "selectionChange"] }, { type: i2.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { type: i3.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange"] }], directives: [{ type: i4.MngTemplateDirective, selector: "[mngTemplate]", inputs: ["type", "mngTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i7.Ripple, selector: "[pRipple]" }, { type: i8.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }], pipes: { "translate": i9.TranslatePipe, "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
122
+ MngFormlyFieldTableDialogMultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldTableDialogMultiselectComponent, selector: "mng-formly-table-multiselect-add-field", usesInheritance: true, ngImport: i0, template: "<mng-table [descriptor]=\"descriptor.mainTableDescriptor\" [items]=\"itemsAsync\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-end align-items-center table-header pt-0\">\n <label class=\"mng-datatable-form-label p-0 m-0\" [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <button\n *ngIf=\"hasAddAction && !options?.formState?.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-plus\"\n class=\"p-button-rounded p-button-success mng-button-xs\"\n (click)=\"openAddDialog()\"\n [disabled]=\"formControl!.disabled\"></button>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnAction\" let-item=\"rowItem\">\n <button\n *ngIf=\"hasDeleteAction && !options?.formState?.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-trash\"\n class=\"p-button-rounded p-button-danger mng-button-xs\"\n (click)=\"removeItem(item)\"\n [disabled]=\"formControl!.disabled\"></button>\n </ng-template>\n</mng-table>\n\n<p-dialog\n *ngIf=\"hasAddAction\"\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.addItem' | translate: {item: to?.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"p-fluid mng-formly-field-table-multiselect-dialog\">\n <ng-template pTemplate=\"content\">\n <mng-table\n [descriptor]=\"descriptor.mainTableDescriptor\"\n [queryResult]=\"addItemsAsync\"\n [selectionEnabled]=\"true\"\n [loading]=\"dialogIsLoading$\"\n (selectionChange)=\"onSelectionChange($event)\">\n </mng-table>\n <p-messages [value]=\"dialogMessages\"></p-messages>\n </ng-template>\n\n <ng-template pTemplate=\"footer\">\n <button pButton pRipple type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n pRipple\n type=\"button\"\n [label]=\"'general.add' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"addItems()\"\n [loading]=\"(dialogIsLoading$ | async) ?? false\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n</p-dialog>\n", components: [{ type: i1.MngTableComponent, selector: "mng-table", inputs: ["descriptor", "items", "queryResult", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "captionComponent", "columnActionComponent"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnActionComponentInstance"] }, { type: i2.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { type: i3.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange"] }], directives: [{ type: i4.MngTemplateDirective, selector: "[mngTemplate]", inputs: ["type", "mngTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i7.Ripple, selector: "[pRipple]" }, { type: i8.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }], pipes: { "translate": i9.TranslatePipe, "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
119
123
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldTableDialogMultiselectComponent, decorators: [{
120
124
  type: Component,
121
- args: [{ selector: 'mng-formly-table-multiselect-add-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-table [descriptor]=\"descriptor.mainTableDescriptor\" [items]=\"itemsAsync\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-end table-header\">\n <label class=\"mng-datatable-form-label p-m-0\" [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <button\n *ngIf=\"hasAddAction && !formControl!.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-plus\"\n class=\"p-button-rounded p-button-success\"\n (click)=\"openAddDialog()\"></button>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnAction\" let-item=\"rowItem\">\n <button\n *ngIf=\"hasDeleteAction && !formControl!.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-trash\"\n class=\"p-button-rounded p-button-danger\"\n (click)=\"removeItem(item)\"></button>\n </ng-template>\n</mng-table>\n\n<p-dialog\n *ngIf=\"hasAddAction\"\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.addItem' | translate: {item: to?.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"p-fluid mng-formly-field-table-multiselect-dialog\">\n <ng-template pTemplate=\"content\">\n <mng-table\n [descriptor]=\"descriptor.mainTableDescriptor\"\n [queryResult]=\"addItemsAsync\"\n [selectionEnabled]=\"true\"\n [loading]=\"dialogIsLoading$\"\n (selectionChange)=\"onSelectionChange($event)\">\n </mng-table>\n <p-messages [value]=\"dialogMessages\"></p-messages>\n </ng-template>\n\n <ng-template pTemplate=\"footer\">\n <button pButton pRipple type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n pRipple\n type=\"button\"\n [label]=\"'general.add' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"addItems()\"\n [loading]=\"(dialogIsLoading$ | async) ?? false\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n</p-dialog>\n" }]
125
+ args: [{ selector: 'mng-formly-table-multiselect-add-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-table [descriptor]=\"descriptor.mainTableDescriptor\" [items]=\"itemsAsync\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-end align-items-center table-header pt-0\">\n <label class=\"mng-datatable-form-label p-0 m-0\" [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <button\n *ngIf=\"hasAddAction && !options?.formState?.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-plus\"\n class=\"p-button-rounded p-button-success mng-button-xs\"\n (click)=\"openAddDialog()\"\n [disabled]=\"formControl!.disabled\"></button>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnAction\" let-item=\"rowItem\">\n <button\n *ngIf=\"hasDeleteAction && !options?.formState?.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-trash\"\n class=\"p-button-rounded p-button-danger mng-button-xs\"\n (click)=\"removeItem(item)\"\n [disabled]=\"formControl!.disabled\"></button>\n </ng-template>\n</mng-table>\n\n<p-dialog\n *ngIf=\"hasAddAction\"\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.addItem' | translate: {item: to?.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"p-fluid mng-formly-field-table-multiselect-dialog\">\n <ng-template pTemplate=\"content\">\n <mng-table\n [descriptor]=\"descriptor.mainTableDescriptor\"\n [queryResult]=\"addItemsAsync\"\n [selectionEnabled]=\"true\"\n [loading]=\"dialogIsLoading$\"\n (selectionChange)=\"onSelectionChange($event)\">\n </mng-table>\n <p-messages [value]=\"dialogMessages\"></p-messages>\n </ng-template>\n\n <ng-template pTemplate=\"footer\">\n <button pButton pRipple type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n pRipple\n type=\"button\"\n [label]=\"'general.add' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"addItems()\"\n [loading]=\"(dialogIsLoading$ | async) ?? false\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n</p-dialog>\n" }]
122
126
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1tdWx0aXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvZmllbGRzL2Zvcm1seS1maWVsZC10YWJsZS1kaWFsb2ctbXVsdGlzZWxlY3QvZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1tdWx0aXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvZmllbGRzL2Zvcm1seS1maWVsZC10YWJsZS1kaWFsb2ctbXVsdGlzZWxlY3QvZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUE4QixNQUFNLGVBQWUsQ0FBQztBQUU5RixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFM0MsT0FBTyxFQUFhLGFBQWEsRUFBd0IsTUFBTSxNQUFNLENBQUM7QUFDdEUsT0FBTyxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUQsT0FBTyxFQUFDLHFCQUFxQixFQUFFLHVCQUF1QixFQUFvQixNQUFNLDJCQUEyQixDQUFDO0FBQzVHLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7OztBQU8zRSxNQUFNLE9BQU8sNkNBQXFELFNBQVEsU0FBUztJQXVCL0UsWUFBb0IsUUFBa0I7UUFDbEMsS0FBSyxFQUFFLENBQUM7UUFEUSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBcEIvQixpQkFBWSxHQUFzQixJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RCxl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VSxDQUFDLG1CQUFtQixDQUFDLGVBQWU7Z0JBQ3JELENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDL0QsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5RkFBeUYsQ0FBQyxDQUFDO2FBQzlHO1lBQ0QsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEtBQUssSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLFdBQVksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztTQUNyQzthQUFNO1lBQ0gsT0FBTyxDQUFDLEtBQUssQ0FBQyx1RUFBdUUsQ0FBQyxDQUFDO1NBQzFGO0lBQ0wsQ0FBQzs7MElBbkhRLDZDQUE2Qzs4SEFBN0MsNkNBQTZDLHFHQ2YxRCwyNkVBMkRBOzJGRDVDYSw2Q0FBNkM7a0JBTHpELFNBQVM7K0JBQ0ksd0NBQXdDLG1CQUVqQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3RvciwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0ZpZWxkVHlwZX0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQge01lc3NhZ2V9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmluYWxpemUsIGZpcnN0LCBzdGFydFdpdGh9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtNZWRpdXNGaWx0ZXJNYXRjaFR5cGUsIE1lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyLCBNZWRpdXNRdWVyeVJlc3VsdH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vYXBpL21vZGVscyc7XG5pbXBvcnQge0ZpZWxkTWFueVRvTWFueUVkaXRvckRlc2NyaXB0b3J9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2Rlc2NyaXB0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtbmctZm9ybWx5LXRhYmxlLW11bHRpc2VsZWN0LWFkZC1maWVsZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm1seS1maWVsZC10YWJsZS1kaWFsb2ctbXVsdGlzZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1uZ0Zvcm1seUZpZWxkVGFibGVEaWFsb2dNdWx0aXNlbGVjdENvbXBvbmVudDxULCBFVD4gZXh0ZW5kcyBGaWVsZFR5cGUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIGRlc2NyaXB0b3IhOiBGaWVsZE1hbnlUb01hbnlFZGl0b3JEZXNjcmlwdG9yPFQsIEVUPjtcblxuICAgIHB1YmxpYyBpdGVtc1N1YmplY3Q6IFN1YmplY3Q8QXJyYXk8VD4+ID0gbmV3IFJlcGxheVN1YmplY3QoMSk7XG4gICAgcHVibGljIGl0ZW1zQXN5bmM6IE9ic2VydmFibGU8QXJyYXk8VD4+ID0gdGhpcy5pdGVtc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIGFkZEl0ZW1zU3ViamVjdDogU3ViamVjdDxNZWRpdXNRdWVyeVJlc3VsdDxUPj4gPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcbiAgICBwdWJsaWMgYWRkSXRlbXNBc3luYzogT2JzZXJ2YWJsZTxNZWRpdXNRdWVyeVJlc3VsdDxUPj4gPSB0aGlzLmFkZEl0ZW1zU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAgIHB1YmxpYyBkaWFsb2dVc2VEYXRhUHJvdmlkZXIgPSBmYWxzZTtcbiAgICBwcml2YXRlIGRpYWxvZ0RhdGFQcm92aWRlclNlcnZpY2U6IGFueSA9IG51bGw7XG4gICAgcHJpdmF0ZSBkaWFsb2dJc0xvYWRpbmdTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG5cbiAgICBwdWJsaWMgaXNEaWFsb2dWaXNpYmxlID0gZmFsc2U7XG4gICAgcHVibGljIGRpYWxvZ0FyZUl0ZW1zTG9hZGVkID0gZmFsc2U7XG4gICAgcHVibGljIGRpYWxvZ1NlbGVjdGVkQWRkSXRlbXM6IEFycmF5PGFueT4gPSBbXTtcbiAgICBwdWJsaWMgZGlhbG9nTWVzc2FnZXM6IE1lc3NhZ2VbXSA9IFtdO1xuICAgIHB1YmxpYyBkaWFsb2dJc0xvYWRpbmckID0gdGhpcy5kaWFsb2dJc0xvYWRpbmdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgcHVibGljIGhhc0FkZEFjdGlvbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBoYXNEZWxldGVBY3Rpb24gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmRlc2NyaXB0b3IgPSB0aGlzLnRvWydkZXNjcmlwdG9yJ107XG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IubG9va3VwVGFibGVEYXRhUHJvdmlkZXI/LnNlcnZpY2VUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1VzZURhdGFQcm92aWRlciA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0RhdGFQcm92aWRlclNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldDxhbnk+KHRoaXMuZGVzY3JpcHRvci5sb29rdXBUYWJsZURhdGFQcm92aWRlci5zZXJ2aWNlVHlwZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oYXNBZGRBY3Rpb24gPSB0aGlzLmRlc2NyaXB0b3IuYWN0aW9ucy5zb21lKGEgPT4gYSA9PT0gRmllbGRNYW55VG9NYW55RWRpdG9yRGVzY3JpcHRvci5BY3Rpb25FbnVtLkFkZCk7XG4gICAgICAgIHRoaXMuaGFzRGVsZXRlQWN0aW9uID0gdGhpcy5kZXNjcmlwdG9yLmFjdGlvbnMuc29tZShhID0+IGEgPT09IEZpZWxkTWFueVRvTWFueUVkaXRvckRlc2NyaXB0b3IuQWN0aW9uRW51bS5EZWxldGUpO1xuXG4gICAgICAgIC8vIGluaXQgdmFsdWVzXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5mb3JtQ29udHJvbCEudmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHRoaXMuZm9ybUNvbnRyb2whLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sIS5wYXRjaFZhbHVlKFtdKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLmZvcm1Db250cm9sIS52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5mb3JtQ29udHJvbCEudmFsdWUpKS5zdWJzY3JpYmUodiA9PiB7XG4gICAgICAgICAgICB0aGlzLml0ZW1zU3ViamVjdC5uZXh0KHYpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICB9XG5cbiAgICBvcGVuQWRkRGlhbG9nKCkge1xuICAgICAgICBpZiAoIXRoaXMuZGlhbG9nQXJlSXRlbXNMb2FkZWQgJiYgdGhpcy5kaWFsb2dVc2VEYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nSXNMb2FkaW5nU3ViamVjdC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgY29uc3QgcXVlcnlQYXJhbUJ1aWxkZXIgPSBNZWRpdXNRdWVyeVBhcmFtQnVpbGRlci5jcmVhdGUoNTApO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVzY3JpcHRvci5sb29rdXBUYWJsZURlc2NyaXB0b3IuaGFzRGVmYXVsdFNvcnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlc2NyaXB0b3IubG9va3VwVGFibGVEZXNjcmlwdG9yLmRlZmF1bHRTb3J0UHJvcGVydHkuZm9yRWFjaCgocCwgaWR4KSA9PlxuICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtQnVpbGRlci53aXRoU29ydChwLCB0aGlzLmRlc2NyaXB0b3IubG9va3VwVGFibGVEZXNjcmlwdG9yLmRlZmF1bHRTb3J0QXNjW2lkeF0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IuaGFzTG9va3VwRXhjbHVkZVZhbHVlcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlclZhbHVlcyA9IHRoaXMuZm9ybUNvbnRyb2whLnZhbHVlLm1hcCgoaTogYW55KSA9PiBpW3RoaXMuZGVzY3JpcHRvci5leGNsdWRlVmFsdWVQcm9wZXJ0eV0pO1xuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1CdWlsZGVyLndpdGhGaWx0ZXIodGhpcy5kZXNjcmlwdG9yLmV4Y2x1ZGVGaWx0ZXJQcm9wZXJ0eSwgZmlsdGVyVmFsdWVzLCB1bmRlZmluZWQsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5Ob3RJbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmRlc2NyaXB0b3IubG9va3VwVGFibGVEYXRhUHJvdmlkZXJcbiAgICAgICAgICAgICAgICA/LmdldEFsbChxdWVyeVBhcmFtQnVpbGRlci5idWlsZCgpLCB0aGlzLmRpYWxvZ0RhdGFQcm92aWRlclNlcnZpY2UpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuZGlhbG9nSXNMb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZEl0ZW1zU3ViamVjdC5uZXh0KHJlcyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nQXJlSXRlbXNMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlhbG9nU2VsZWN0ZWRBZGRJdGVtcyA9IFtdO1xuICAgICAgICB0aGlzLmlzRGlhbG9nVmlzaWJsZSA9IHRydWU7XG4gICAgfVxuXG4gICAgb25TZWxlY3Rpb25DaGFuZ2UoaXRlbXM6IEFycmF5PGFueT4pIHtcbiAgICAgICAgdGhpcy5kaWFsb2dTZWxlY3RlZEFkZEl0ZW1zID0gaXRlbXM7XG4gICAgfVxuXG4gICAgaGlkZURpYWxvZygpIHtcbiAgICAgICAgdGhpcy5pc0RpYWxvZ1Zpc2libGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBhZGRJdGVtcygpIHtcbiAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5mb3JtQ29udHJvbCEudmFsdWU7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUgPSBbLi4udmFsdWUsIC4uLnRoaXMuZGlhbG9nU2VsZWN0ZWRBZGRJdGVtc107XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sIS5wYXRjaFZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VsZWN0ZWRBZGRJdGVtcyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dBcmVJdGVtc0xvYWRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5oaWRlRGlhbG9nKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdWYWx1ZXMgYXJlIG5vdCBhbiB2YWxpZCBhcnJheSwgY2Fubm90IGFkZCBzZWxlY3RlZCBpdGVtcyB0byBhcnJheScpO1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dNZXNzYWdlcyA9IFt7c2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdFcnJvcicsIGRldGFpbDogJ1NlbGVjdGVkIGl0ZW1zIGNvdWxkIG5vdCBiZSBhZGRlZCd9XTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbW92ZUl0ZW0oaXRlbTogYW55KSB7XG4gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuZm9ybUNvbnRyb2whLnZhbHVlO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBhcmVQcm9wZXJ0eSA9IHRoaXMuZGVzY3JpcHRvci5tYWluVGFibGVEZXNjcmlwdG9yLmRhdGFLZXlQcm9wZXJ0eVxuICAgICAgICAgICAgICAgID8gdGhpcy5kZXNjcmlwdG9yLm1haW5UYWJsZURlc2NyaXB0b3IuZGF0YUtleVByb3BlcnR5XG4gICAgICAgICAgICAgICAgOiB0aGlzLmRlc2NyaXB0b3IubWFpblRhYmxlRGVzY3JpcHRvci5tb2RlbC5pZFByb3BlcnR5TmFtZTtcbiAgICAgICAgICAgIGlmICghY29tcGFyZVByb3BlcnR5KSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY29tcGFyZSBpdGVtcywgcGxlYXNlIHByb3ZpZGUgbWFpbiB0YWJsZSBkYXRhIGtleSBwcm9wZXJ0eSBvciBtb2RlbCBpZCBwcm9wZXJ0eS4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKGkgPT4gaVtjb21wYXJlUHJvcGVydHldICE9PSBpdGVtW2NvbXBhcmVQcm9wZXJ0eV0pO1xuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbCEucGF0Y2hWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0FyZUl0ZW1zTG9hZGVkID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdWYWx1ZXMgYXJlIG5vdCBhbiB2YWxpZCBhcnJheSwgY2Fubm90IGRlbGV0ZSBzZWxlY3RlZCBpdGVtIGZyb20gYXJyYXknKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxtbmctdGFibGUgW2Rlc2NyaXB0b3JdPVwiZGVzY3JpcHRvci5tYWluVGFibGVEZXNjcmlwdG9yXCIgW2l0ZW1zXT1cIml0ZW1zQXN5bmNcIj5cbiAgICA8bmctdGVtcGxhdGUgbW5nVGVtcGxhdGU9XCJjYXB0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIG1kOmZsZXgtcm93IG1kOmp1c3RpZnktY29udGVudC1lbmQgdGFibGUtaGVhZGVyXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJtbmctZGF0YXRhYmxlLWZvcm0tbGFiZWwgcC1tLTBcIiBbZm9yXT1cImtleVwiPnt7IHRvPy5sYWJlbCEgfCB0cmFuc2xhdGUgfX0gPHNwYW4gKm5nSWY9XCJ0by5yZXF1aXJlZCAmJiB0b1snaGlkZVJlcXVpcmVkTWFya2VyJ10gIT09IHRydWVcIj4qPC9zcGFuPjwvbGFiZWw+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNBZGRBY3Rpb24gJiYgIWZvcm1Db250cm9sIS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBpY29uPVwicGkgcGktcGx1c1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXN1Y2Nlc3NcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuQWRkRGlhbG9nKClcIj48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgbW5nVGVtcGxhdGU9XCJjb2x1bW5BY3Rpb25cIiBsZXQtaXRlbT1cInJvd0l0ZW1cIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJoYXNEZWxldGVBY3Rpb24gJiYgIWZvcm1Db250cm9sIS5kaXNhYmxlZFwiXG4gICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGljb249XCJwaSBwaS10cmFzaFwiXG4gICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tZGFuZ2VyXCJcbiAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVJdGVtKGl0ZW0pXCI+PC9idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbW5nLXRhYmxlPlxuXG48cC1kaWFsb2dcbiAgICAqbmdJZj1cImhhc0FkZEFjdGlvblwiXG4gICAgWyh2aXNpYmxlKV09XCJpc0RpYWxvZ1Zpc2libGVcIlxuICAgIFtkcmFnZ2FibGVdPVwiZmFsc2VcIlxuICAgIFtoZWFkZXJdPVwiJ2dlbmVyYWwuYWRkSXRlbScgfCB0cmFuc2xhdGU6IHtpdGVtOiB0bz8ubGFiZWwhfVwiXG4gICAgW21vZGFsXT1cInRydWVcIlxuICAgIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgc3R5bGVDbGFzcz1cInAtZmx1aWQgbW5nLWZvcm1seS1maWVsZC10YWJsZS1tdWx0aXNlbGVjdC1kaWFsb2dcIj5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY29udGVudFwiPlxuICAgICAgICA8bW5nLXRhYmxlXG4gICAgICAgICAgICBbZGVzY3JpcHRvcl09XCJkZXNjcmlwdG9yLm1haW5UYWJsZURlc2NyaXB0b3JcIlxuICAgICAgICAgICAgW3F1ZXJ5UmVzdWx0XT1cImFkZEl0ZW1zQXN5bmNcIlxuICAgICAgICAgICAgW3NlbGVjdGlvbkVuYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbbG9hZGluZ109XCJkaWFsb2dJc0xvYWRpbmckXCJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICA8L21uZy10YWJsZT5cbiAgICAgICAgPHAtbWVzc2FnZXMgW3ZhbHVlXT1cImRpYWxvZ01lc3NhZ2VzXCI+PC9wLW1lc3NhZ2VzPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XG4gICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIHR5cGU9XCJidXR0b25cIiBbbGFiZWxdPVwiJ2dlbmVyYWwuY2FuY2VsJyB8IHRyYW5zbGF0ZVwiIGljb249XCJwaSBwaS10aW1lc1wiIGNsYXNzPVwicC1idXR0b24tdGV4dFwiIChjbGljayk9XCJoaWRlRGlhbG9nKClcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ2dlbmVyYWwuYWRkJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBpY29uPVwicGkgcGktY2hlY2tcIlxuICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0XCJcbiAgICAgICAgICAgIChjbGljayk9XCJhZGRJdGVtcygpXCJcbiAgICAgICAgICAgIFtsb2FkaW5nXT1cIihkaWFsb2dJc0xvYWRpbmckIHwgYXN5bmMpID8/IGZhbHNlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmb3JtLmRpc2FibGVkXCI+PC9idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvcC1kaWFsb2c+XG4iXX0=
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1tdWx0aXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvZmllbGRzL2Zvcm1seS1maWVsZC10YWJsZS1kaWFsb2ctbXVsdGlzZWxlY3QvZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1tdWx0aXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvZmllbGRzL2Zvcm1seS1maWVsZC10YWJsZS1kaWFsb2ctbXVsdGlzZWxlY3QvZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUE4QixNQUFNLGVBQWUsQ0FBQztBQUU5RixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFM0MsT0FBTyxFQUFhLGFBQWEsRUFBd0IsTUFBTSxNQUFNLENBQUM7QUFDdEUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXpDLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBb0IsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RyxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7QUFPM0UsTUFBTSxPQUFPLDZDQUFxRCxTQUFRLFNBQVM7SUF3Qi9FLFlBQW9CLFFBQWtCO1FBQ2xDLEtBQUssRUFBRSxDQUFDO1FBRFEsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQXJCL0IsaUJBQVksR0FBc0IsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsZUFBVSxHQUF5QixJQUFJLENBQUMs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QyxFQUFFO1lBQ3RCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsZUFBZTtnQkFDdkUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsZUFBZTtnQkFDckQsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUMvRCxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLHlGQUF5RixDQUFDLENBQUM7YUFDOUc7WUFDRCxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztZQUN4RSxJQUFJLENBQUMsV0FBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1NBQ3JDO2FBQU07WUFDSCxPQUFPLENBQUMsS0FBSyxDQUFDLHVFQUF1RSxDQUFDLENBQUM7U0FDMUY7SUFDTCxDQUFDOzswSUFySFEsNkNBQTZDOzhIQUE3Qyw2Q0FBNkMscUdDZjFELHVsRkE2REE7MkZEOUNhLDZDQUE2QztrQkFMekQsU0FBUzsrQkFDSSx3Q0FBd0MsbUJBRWpDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7RmllbGRUeXBlfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7TWVzc2FnZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtzdGFydFdpdGh9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtNZWRpdXNGaWx0ZXJNYXRjaFR5cGUsIE1lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyLCBNZWRpdXNRdWVyeVJlc3VsdH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vYXBpL21vZGVscyc7XG5pbXBvcnQge0ZpZWxkTWFueVRvTWFueUVkaXRvckRlc2NyaXB0b3J9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2Rlc2NyaXB0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtbmctZm9ybWx5LXRhYmxlLW11bHRpc2VsZWN0LWFkZC1maWVsZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm1seS1maWVsZC10YWJsZS1kaWFsb2ctbXVsdGlzZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1uZ0Zvcm1seUZpZWxkVGFibGVEaWFsb2dNdWx0aXNlbGVjdENvbXBvbmVudDxULCBFVD4gZXh0ZW5kcyBGaWVsZFR5cGUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIGRlc2NyaXB0b3IhOiBGaWVsZE1hbnlUb01hbnlFZGl0b3JEZXNjcmlwdG9yPFQsIEVUPjtcblxuICAgIHB1YmxpYyBpdGVtc1N1YmplY3Q6IFN1YmplY3Q8QXJyYXk8VD4+ID0gbmV3IFJlcGxheVN1YmplY3QoMSk7XG4gICAgcHVibGljIGl0ZW1zQXN5bmM6IE9ic2VydmFibGU8QXJyYXk8VD4+ID0gdGhpcy5pdGVtc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIGFkZEl0ZW1zU3ViamVjdDogU3ViamVjdDxNZWRpdXNRdWVyeVJlc3VsdDxUPj4gPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcbiAgICBwdWJsaWMgYWRkSXRlbXNBc3luYzogT2JzZXJ2YWJsZTxNZWRpdXNRdWVyeVJlc3VsdDxUPj4gPSB0aGlzLmFkZEl0ZW1zU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAgIHB1YmxpYyBkaWFsb2dVc2VEYXRhUHJvdmlkZXIgPSBmYWxzZTtcbiAgICBwcml2YXRlIGRpYWxvZ0RhdGFQcm92aWRlclNlcnZpY2U6IGFueSA9IG51bGw7XG4gICAgcHJpdmF0ZSBkaWFsb2dJc0xvYWRpbmdTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG5cbiAgICBwdWJsaWMgaXNEaWFsb2dWaXNpYmxlID0gZmFsc2U7XG4gICAgcHVibGljIGRpYWxvZ0FyZUl0ZW1zTG9hZGVkID0gZmFsc2U7XG4gICAgcHVibGljIGRpYWxvZ1NlbGVjdGVkQWRkSXRlbXM6IEFycmF5PGFueT4gPSBbXTtcbiAgICBwdWJsaWMgZGlhbG9nTWVzc2FnZXM6IE1lc3NhZ2VbXSA9IFtdO1xuICAgIHB1YmxpYyBkaWFsb2dJc0xvYWRpbmckID0gdGhpcy5kaWFsb2dJc0xvYWRpbmdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgcHVibGljIGhhc0FkZEFjdGlvbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBoYXNEZWxldGVBY3Rpb24gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgbG9va3VwRGF0YVByb3ZpZGVyU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmRlc2NyaXB0b3IgPSB0aGlzLnRvWydkZXNjcmlwdG9yJ107XG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IubG9va3VwVGFibGVEYXRhUHJvdmlkZXI/LnNlcnZpY2VUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1VzZURhdGFQcm92aWRlciA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0RhdGFQcm92aWRlclNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldDxhbnk+KHRoaXMuZGVzY3JpcHRvci5sb29rdXBUYWJsZURhdGFQcm92aWRlci5zZXJ2aWNlVHlwZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oYXNBZGRBY3Rpb24gPSB0aGlzLmRlc2NyaXB0b3IuYWN0aW9ucy5zb21lKGEgPT4gYSA9PT0gRmllbGRNYW55VG9NYW55RWRpdG9yRGVzY3JpcHRvci5BY3Rpb25FbnVtLkFkZCk7XG4gICAgICAgIHRoaXMuaGFzRGVsZXRlQWN0aW9uID0gdGhpcy5kZXNjcmlwdG9yLmFjdGlvbnMuc29tZShhID0+IGEgPT09IEZpZWxkTWFueVRvTWFueUVkaXRvckRlc2NyaXB0b3IuQWN0aW9uRW51bS5EZWxldGUpO1xuXG4gICAgICAgIC8vIGluaXQgdmFsdWVzXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5mb3JtQ29udHJvbCEudmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHRoaXMuZm9ybUNvbnRyb2whLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sIS5wYXRjaFZhbHVlKFtdKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLmZvcm1Db250cm9sIS52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5mb3JtQ29udHJvbCEudmFsdWUpKS5zdWJzY3JpYmUodiA9PiB7XG4gICAgICAgICAgICB0aGlzLml0ZW1zU3ViamVjdC5uZXh0KHYpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMubG9va3VwRGF0YVByb3ZpZGVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgfVxuXG4gICAgb3BlbkFkZERpYWxvZygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpYWxvZ0FyZUl0ZW1zTG9hZGVkICYmIHRoaXMuZGlhbG9nVXNlRGF0YVByb3ZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0lzTG9hZGluZ1N1YmplY3QubmV4dCh0cnVlKTtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1CdWlsZGVyID0gTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXIuY3JlYXRlKDUwKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IubG9va3VwVGFibGVEZXNjcmlwdG9yLmhhc0RlZmF1bHRTb3J0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZXNjcmlwdG9yLmxvb2t1cFRhYmxlRGVzY3JpcHRvci5kZWZhdWx0U29ydFByb3BlcnR5LmZvckVhY2goKHAsIGlkeCkgPT5cbiAgICAgICAgICAgICAgICAgICAgcXVlcnlQYXJhbUJ1aWxkZXIud2l0aFNvcnQocCwgdGhpcy5kZXNjcmlwdG9yLmxvb2t1cFRhYmxlRGVzY3JpcHRvci5kZWZhdWx0U29ydEFzY1tpZHhdKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yLmhhc0xvb2t1cEV4Y2x1ZGVWYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJWYWx1ZXMgPSB0aGlzLmZvcm1Db250cm9sIS52YWx1ZS5tYXAoKGk6IGFueSkgPT4gaVt0aGlzLmRlc2NyaXB0b3IuZXhjbHVkZVZhbHVlUHJvcGVydHldKTtcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtQnVpbGRlci53aXRoRmlsdGVyKHRoaXMuZGVzY3JpcHRvci5leGNsdWRlRmlsdGVyUHJvcGVydHksIGZpbHRlclZhbHVlcywgdW5kZWZpbmVkLCBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuTm90SW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5sb29rdXBEYXRhUHJvdmlkZXJTdWJzY3JpcHRpb24gPSB0aGlzLmRlc2NyaXB0b3IubG9va3VwVGFibGVEYXRhUHJvdmlkZXI/LmdldEFsbChxdWVyeVBhcmFtQnVpbGRlci5idWlsZCgpLCB0aGlzLmRpYWxvZ0RhdGFQcm92aWRlclNlcnZpY2UpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRJdGVtc1N1YmplY3QubmV4dChyZXMpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0FyZUl0ZW1zTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dJc0xvYWRpbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dJc0xvYWRpbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlhbG9nU2VsZWN0ZWRBZGRJdGVtcyA9IFtdO1xuICAgICAgICB0aGlzLmlzRGlhbG9nVmlzaWJsZSA9IHRydWU7XG4gICAgfVxuXG4gICAgb25TZWxlY3Rpb25DaGFuZ2UoaXRlbXM6IEFycmF5PGFueT4pIHtcbiAgICAgICAgdGhpcy5kaWFsb2dTZWxlY3RlZEFkZEl0ZW1zID0gaXRlbXM7XG4gICAgfVxuXG4gICAgaGlkZURpYWxvZygpIHtcbiAgICAgICAgdGhpcy5pc0RpYWxvZ1Zpc2libGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBhZGRJdGVtcygpIHtcbiAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5mb3JtQ29udHJvbCEudmFsdWU7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUgPSBbLi4udmFsdWUsIC4uLnRoaXMuZGlhbG9nU2VsZWN0ZWRBZGRJdGVtc107XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sIS5wYXRjaFZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VsZWN0ZWRBZGRJdGVtcyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dBcmVJdGVtc0xvYWRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5oaWRlRGlhbG9nKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdWYWx1ZXMgYXJlIG5vdCBhbiB2YWxpZCBhcnJheSwgY2Fubm90IGFkZCBzZWxlY3RlZCBpdGVtcyB0byBhcnJheScpO1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dNZXNzYWdlcyA9IFt7c2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdFcnJvcicsIGRldGFpbDogJ1NlbGVjdGVkIGl0ZW1zIGNvdWxkIG5vdCBiZSBhZGRlZCd9XTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbW92ZUl0ZW0oaXRlbTogYW55KSB7XG4gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuZm9ybUNvbnRyb2whLnZhbHVlO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBhcmVQcm9wZXJ0eSA9IHRoaXMuZGVzY3JpcHRvci5tYWluVGFibGVEZXNjcmlwdG9yLmRhdGFLZXlQcm9wZXJ0eVxuICAgICAgICAgICAgICAgID8gdGhpcy5kZXNjcmlwdG9yLm1haW5UYWJsZURlc2NyaXB0b3IuZGF0YUtleVByb3BlcnR5XG4gICAgICAgICAgICAgICAgOiB0aGlzLmRlc2NyaXB0b3IubWFpblRhYmxlRGVzY3JpcHRvci5tb2RlbC5pZFByb3BlcnR5TmFtZTtcbiAgICAgICAgICAgIGlmICghY29tcGFyZVByb3BlcnR5KSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY29tcGFyZSBpdGVtcywgcGxlYXNlIHByb3ZpZGUgbWFpbiB0YWJsZSBkYXRhIGtleSBwcm9wZXJ0eSBvciBtb2RlbCBpZCBwcm9wZXJ0eS4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKGkgPT4gaVtjb21wYXJlUHJvcGVydHldICE9PSBpdGVtW2NvbXBhcmVQcm9wZXJ0eV0pO1xuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbCEucGF0Y2hWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0FyZUl0ZW1zTG9hZGVkID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdWYWx1ZXMgYXJlIG5vdCBhbiB2YWxpZCBhcnJheSwgY2Fubm90IGRlbGV0ZSBzZWxlY3RlZCBpdGVtIGZyb20gYXJyYXknKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxtbmctdGFibGUgW2Rlc2NyaXB0b3JdPVwiZGVzY3JpcHRvci5tYWluVGFibGVEZXNjcmlwdG9yXCIgW2l0ZW1zXT1cIml0ZW1zQXN5bmNcIj5cbiAgICA8bmctdGVtcGxhdGUgbW5nVGVtcGxhdGU9XCJjYXB0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIG1kOmZsZXgtcm93IG1kOmp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtY2VudGVyIHRhYmxlLWhlYWRlciBwdC0wXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJtbmctZGF0YXRhYmxlLWZvcm0tbGFiZWwgcC0wIG0tMFwiIFtmb3JdPVwia2V5XCI+e3sgdG8/LmxhYmVsISB8IHRyYW5zbGF0ZSB9fSA8c3BhbiAqbmdJZj1cInRvLnJlcXVpcmVkICYmIHRvWydoaWRlUmVxdWlyZWRNYXJrZXInXSAhPT0gdHJ1ZVwiPio8L3NwYW4+PC9sYWJlbD5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0FkZEFjdGlvbiAmJiAhb3B0aW9ucz8uZm9ybVN0YXRlPy5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBpY29uPVwicGkgcGktcGx1c1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXN1Y2Nlc3MgbW5nLWJ1dHRvbi14c1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5BZGREaWFsb2coKVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZvcm1Db250cm9sIS5kaXNhYmxlZFwiPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBtbmdUZW1wbGF0ZT1cImNvbHVtbkFjdGlvblwiIGxldC1pdGVtPVwicm93SXRlbVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cImhhc0RlbGV0ZUFjdGlvbiAmJiAhb3B0aW9ucz8uZm9ybVN0YXRlPy5kaXNhYmxlZFwiXG4gICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGljb249XCJwaSBwaS10cmFzaFwiXG4gICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tZGFuZ2VyIG1uZy1idXR0b24teHNcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUl0ZW0oaXRlbSlcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZvcm1Db250cm9sIS5kaXNhYmxlZFwiPjwvYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L21uZy10YWJsZT5cblxuPHAtZGlhbG9nXG4gICAgKm5nSWY9XCJoYXNBZGRBY3Rpb25cIlxuICAgIFsodmlzaWJsZSldPVwiaXNEaWFsb2dWaXNpYmxlXCJcbiAgICBbZHJhZ2dhYmxlXT1cImZhbHNlXCJcbiAgICBbaGVhZGVyXT1cIidnZW5lcmFsLmFkZEl0ZW0nIHwgdHJhbnNsYXRlOiB7aXRlbTogdG8/LmxhYmVsIX1cIlxuICAgIFttb2RhbF09XCJ0cnVlXCJcbiAgICBhcHBlbmRUbz1cImJvZHlcIlxuICAgIHN0eWxlQ2xhc3M9XCJwLWZsdWlkIG1uZy1mb3JtbHktZmllbGQtdGFibGUtbXVsdGlzZWxlY3QtZGlhbG9nXCI+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRlbnRcIj5cbiAgICAgICAgPG1uZy10YWJsZVxuICAgICAgICAgICAgW2Rlc2NyaXB0b3JdPVwiZGVzY3JpcHRvci5tYWluVGFibGVEZXNjcmlwdG9yXCJcbiAgICAgICAgICAgIFtxdWVyeVJlc3VsdF09XCJhZGRJdGVtc0FzeW5jXCJcbiAgICAgICAgICAgIFtzZWxlY3Rpb25FbmFibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgW2xvYWRpbmddPVwiZGlhbG9nSXNMb2FkaW5nJFwiXG4gICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgPC9tbmctdGFibGU+XG4gICAgICAgIDxwLW1lc3NhZ2VzIFt2YWx1ZV09XCJkaWFsb2dNZXNzYWdlc1wiPjwvcC1tZXNzYWdlcz5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxuICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgW2xhYmVsXT1cIidnZW5lcmFsLmNhbmNlbCcgfCB0cmFuc2xhdGVcIiBpY29uPVwicGkgcGktdGltZXNcIiBjbGFzcz1cInAtYnV0dG9uLXRleHRcIiAoY2xpY2spPVwiaGlkZURpYWxvZygpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidnZW5lcmFsLmFkZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgaWNvbj1cInBpIHBpLWNoZWNrXCJcbiAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tdGV4dFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWRkSXRlbXMoKVwiXG4gICAgICAgICAgICBbbG9hZGluZ109XCIoZGlhbG9nSXNMb2FkaW5nJCB8IGFzeW5jKSA/PyBmYWxzZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybS5kaXNhYmxlZFwiPjwvYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3AtZGlhbG9nPlxuIl19
@@ -1,8 +1,9 @@
1
1
  export * from './formly-field-autocomplete/formly-field-autocomplete.component';
2
2
  export * from './formly-field-input/formly-field-input.component';
3
3
  export * from './formly-field-dropdown/formly-field-dropdown.component';
4
+ export * from './formly-field-lookup-dialog/formly-field-lookup-dialog.component';
4
5
  export * from './formly-field-table-dialog-form/formly-field-table-dialog-form.component';
5
6
  export * from './formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component';
6
7
  export * from './formly-field-tabs/formly-field-tabs.component';
7
8
  export * from './formly-field-fieldset/formly-field-fieldset.component';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvZmllbGRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsMkVBQTJFLENBQUM7QUFDMUYsY0FBYyx5RkFBeUYsQ0FBQztBQUN4RyxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMseURBQXlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Zvcm1seS1maWVsZC1hdXRvY29tcGxldGUvZm9ybWx5LWZpZWxkLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtbHktZmllbGQtaW5wdXQvZm9ybWx5LWZpZWxkLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm1seS1maWVsZC1kcm9wZG93bi9mb3JtbHktZmllbGQtZHJvcGRvd24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1mb3JtL2Zvcm1seS1maWVsZC10YWJsZS1kaWFsb2ctZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtbHktZmllbGQtdGFibGUtZGlhbG9nLW11bHRpc2VsZWN0L2Zvcm1seS1maWVsZC10YWJsZS1kaWFsb2ctbXVsdGlzZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWx5LWZpZWxkLXRhYnMvZm9ybWx5LWZpZWxkLXRhYnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWx5LWZpZWxkLWZpZWxkc2V0L2Zvcm1seS1maWVsZC1maWVsZHNldC5jb21wb25lbnQnO1xuIl19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvZmllbGRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYywyRUFBMkUsQ0FBQztBQUMxRixjQUFjLHlGQUF5RixDQUFDO0FBQ3hHLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyx5REFBeUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZm9ybWx5LWZpZWxkLWF1dG9jb21wbGV0ZS9mb3JtbHktZmllbGQtYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm1seS1maWVsZC1pbnB1dC9mb3JtbHktZmllbGQtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWx5LWZpZWxkLWRyb3Bkb3duL2Zvcm1seS1maWVsZC1kcm9wZG93bi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtbHktZmllbGQtbG9va3VwLWRpYWxvZy9mb3JtbHktZmllbGQtbG9va3VwLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtbHktZmllbGQtdGFibGUtZGlhbG9nLWZvcm0vZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm1seS1maWVsZC10YWJsZS1kaWFsb2ctbXVsdGlzZWxlY3QvZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1tdWx0aXNlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtbHktZmllbGQtdGFicy9mb3JtbHktZmllbGQtdGFicy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtbHktZmllbGQtZmllbGRzZXQvZm9ybWx5LWZpZWxkLWZpZWxkc2V0LmNvbXBvbmVudCc7XG4iXX0=
@@ -7,9 +7,9 @@ import * as i3 from "@ngx-translate/core";
7
7
  export class MngFormlyFieldWrapperComponent extends FieldWrapper {
8
8
  }
9
9
  MngFormlyFieldWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
10
- MngFormlyFieldWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldWrapperComponent, selector: "mng-formly-field-wrapper", usesInheritance: true, ngImport: i0, template: "<div class=\"field\">\n <label [for]=\"key\">{{ $any(to?.label) | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <ng-container #fieldComponent></ng-container>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n</div>\n", components: [{ type: i1.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i3.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
10
+ MngFormlyFieldWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldWrapperComponent, selector: "mng-formly-field-wrapper", usesInheritance: true, ngImport: i0, template: "<div class=\"field\">\n <label [for]=\"key\" [class]=\"to?.['descriptor']?.['labelClassName'] ?? ''\"\n >{{ $any(to?.label) | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label\n >\n <ng-container #fieldComponent></ng-container>\n <small *ngIf=\"to?.['descriptor']?.['helpText']\">{{ to?.['descriptor']?.['helpText'] | translate }}</small>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n</div>\n", components: [{ type: i1.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i3.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
11
11
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldWrapperComponent, decorators: [{
12
12
  type: Component,
13
- args: [{ selector: 'mng-formly-field-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"field\">\n <label [for]=\"key\">{{ $any(to?.label) | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <ng-container #fieldComponent></ng-container>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n</div>\n" }]
13
+ args: [{ selector: 'mng-formly-field-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"field\">\n <label [for]=\"key\" [class]=\"to?.['descriptor']?.['labelClassName'] ?? ''\"\n >{{ $any(to?.label) | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label\n >\n <ng-container #fieldComponent></ng-container>\n <small *ngIf=\"to?.['descriptor']?.['helpText']\">{{ to?.['descriptor']?.['helpText'] | translate }}</small>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n</div>\n" }]
14
14
  }] });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybWx5L3dyYXBwZXJzL2Zvcm1seS1maWVsZC13cmFwcGVyL2Zvcm1seS1maWVsZC13cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2Zvcm1seS93cmFwcGVycy9mb3JtbHktZmllbGQtd3JhcHBlci9mb3JtbHktZmllbGQtd3JhcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFPOUMsTUFBTSxPQUFPLDhCQUErQixTQUFRLFlBQVk7OzJIQUFuRCw4QkFBOEI7K0dBQTlCLDhCQUE4Qix1RkNUM0Msc1hBT0E7MkZERWEsOEJBQThCO2tCQUwxQyxTQUFTOytCQUNJLDBCQUEwQixtQkFFbkIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7RmllbGRXcmFwcGVyfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtbmctZm9ybWx5LWZpZWxkLXdyYXBwZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtbHktZmllbGQtd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTW5nRm9ybWx5RmllbGRXcmFwcGVyQ29tcG9uZW50IGV4dGVuZHMgRmllbGRXcmFwcGVyIHt9XG4iLCI8ZGl2IGNsYXNzPVwiZmllbGRcIj5cbiAgICA8bGFiZWwgW2Zvcl09XCJrZXlcIj57eyAkYW55KHRvPy5sYWJlbCkgfCB0cmFuc2xhdGUgfX0gPHNwYW4gKm5nSWY9XCJ0by5yZXF1aXJlZCAmJiB0b1snaGlkZVJlcXVpcmVkTWFya2VyJ10gIT09IHRydWVcIj4qPC9zcGFuPjwvbGFiZWw+XG4gICAgPG5nLWNvbnRhaW5lciAjZmllbGRDb21wb25lbnQ+PC9uZy1jb250YWluZXI+XG4gICAgPHNtYWxsICpuZ0lmPVwic2hvd0Vycm9yXCIgY2xhc3M9XCJwLWVycm9yXCI+XG4gICAgICAgIDxmb3JtbHktdmFsaWRhdGlvbi1tZXNzYWdlIFtmaWVsZF09XCJmaWVsZFwiPjwvZm9ybWx5LXZhbGlkYXRpb24tbWVzc2FnZT5cbiAgICA8L3NtYWxsPlxuPC9kaXY+XG4iXX0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybWx5L3dyYXBwZXJzL2Zvcm1seS1maWVsZC13cmFwcGVyL2Zvcm1seS1maWVsZC13cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2Zvcm1seS93cmFwcGVycy9mb3JtbHktZmllbGQtd3JhcHBlci9mb3JtbHktZmllbGQtd3JhcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFPOUMsTUFBTSxPQUFPLDhCQUErQixTQUFRLFlBQVk7OzJIQUFuRCw4QkFBOEI7K0dBQTlCLDhCQUE4Qix1RkNUM0MsaWpCQVVBOzJGRERhLDhCQUE4QjtrQkFMMUMsU0FBUzsrQkFDSSwwQkFBMEIsbUJBRW5CLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0ZpZWxkV3JhcHBlcn0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbW5nLWZvcm1seS1maWVsZC13cmFwcGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybWx5LWZpZWxkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1uZ0Zvcm1seUZpZWxkV3JhcHBlckNvbXBvbmVudCBleHRlbmRzIEZpZWxkV3JhcHBlciB7fVxuIiwiPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgPGxhYmVsIFtmb3JdPVwia2V5XCIgW2NsYXNzXT1cInRvPy5bJ2Rlc2NyaXB0b3InXT8uWydsYWJlbENsYXNzTmFtZSddID8/ICcnXCJcbiAgICAgICAgPnt7ICRhbnkodG8/LmxhYmVsKSB8IHRyYW5zbGF0ZSB9fSA8c3BhbiAqbmdJZj1cInRvLnJlcXVpcmVkICYmIHRvWydoaWRlUmVxdWlyZWRNYXJrZXInXSAhPT0gdHJ1ZVwiPio8L3NwYW4+PC9sYWJlbFxuICAgID5cbiAgICA8bmctY29udGFpbmVyICNmaWVsZENvbXBvbmVudD48L25nLWNvbnRhaW5lcj5cbiAgICA8c21hbGwgKm5nSWY9XCJ0bz8uWydkZXNjcmlwdG9yJ10/LlsnaGVscFRleHQnXVwiPnt7IHRvPy5bJ2Rlc2NyaXB0b3InXT8uWydoZWxwVGV4dCddIHwgdHJhbnNsYXRlIH19PC9zbWFsbD5cbiAgICA8c21hbGwgKm5nSWY9XCJzaG93RXJyb3JcIiBjbGFzcz1cInAtZXJyb3JcIj5cbiAgICAgICAgPGZvcm1seS12YWxpZGF0aW9uLW1lc3NhZ2UgW2ZpZWxkXT1cImZpZWxkXCI+PC9mb3JtbHktdmFsaWRhdGlvbi1tZXNzYWdlPlxuICAgIDwvc21hbGw+XG48L2Rpdj5cbiJdfQ==
@@ -3,12 +3,13 @@ import { FieldWrapper } from '@ngx-formly/core';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@ngx-formly/core";
5
5
  import * as i2 from "@angular/common";
6
+ import * as i3 from "@ngx-translate/core";
6
7
  export class MngFormlyTableWrapperComponent extends FieldWrapper {
7
8
  }
8
9
  MngFormlyTableWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyTableWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
9
- MngFormlyTableWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyTableWrapperComponent, selector: "mng-formly-table-wrapper", usesInheritance: true, ngImport: i0, template: "<div class=\"field table\">\n <ng-container #fieldComponent></ng-container>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n</div>\n", components: [{ type: i1.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10
+ MngFormlyTableWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyTableWrapperComponent, selector: "mng-formly-table-wrapper", usesInheritance: true, ngImport: i0, template: "<div class=\"field table\">\n <ng-container #fieldComponent></ng-container>\n <small *ngIf=\"to?.['descriptor']?.['helpText']\">{{ to?.['descriptor']?.['helpText'] | translate }}</small>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n</div>\n", components: [{ type: i1.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i3.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
10
11
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyTableWrapperComponent, decorators: [{
11
12
  type: Component,
12
- args: [{ selector: 'mng-formly-table-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"field table\">\n <ng-container #fieldComponent></ng-container>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n</div>\n" }]
13
+ args: [{ selector: 'mng-formly-table-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"field table\">\n <ng-container #fieldComponent></ng-container>\n <small *ngIf=\"to?.['descriptor']?.['helpText']\">{{ to?.['descriptor']?.['helpText'] | translate }}</small>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n</div>\n" }]
13
14
  }] });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LXRhYmxlLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybWx5L3dyYXBwZXJzL2Zvcm1seS10YWJsZS13cmFwcGVyL2Zvcm1seS10YWJsZS13cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2Zvcm1seS93cmFwcGVycy9mb3JtbHktdGFibGUtd3JhcHBlci9mb3JtbHktdGFibGUtd3JhcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQU85QyxNQUFNLE9BQU8sOEJBQStCLFNBQVEsWUFBWTs7MkhBQW5ELDhCQUE4QjsrR0FBOUIsOEJBQThCLHVGQ1QzQyw4T0FNQTsyRkRHYSw4QkFBOEI7a0JBTDFDLFNBQVM7K0JBQ0ksMEJBQTBCLG1CQUVuQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtGaWVsZFdyYXBwZXJ9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21uZy1mb3JtbHktdGFibGUtd3JhcHBlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm1seS10YWJsZS13cmFwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNbmdGb3JtbHlUYWJsZVdyYXBwZXJDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFdyYXBwZXIge31cbiIsIjxkaXYgY2xhc3M9XCJmaWVsZCB0YWJsZVwiPlxuICAgIDxuZy1jb250YWluZXIgI2ZpZWxkQ29tcG9uZW50PjwvbmctY29udGFpbmVyPlxuICAgIDxzbWFsbCAqbmdJZj1cInNob3dFcnJvclwiIGNsYXNzPVwicC1lcnJvclwiPlxuICAgICAgICA8Zm9ybWx5LXZhbGlkYXRpb24tbWVzc2FnZSBbZmllbGRdPVwiZmllbGRcIj48L2Zvcm1seS12YWxpZGF0aW9uLW1lc3NhZ2U+XG4gICAgPC9zbWFsbD5cbjwvZGl2PlxuIl19
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LXRhYmxlLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybWx5L3dyYXBwZXJzL2Zvcm1seS10YWJsZS13cmFwcGVyL2Zvcm1seS10YWJsZS13cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2Zvcm1seS93cmFwcGVycy9mb3JtbHktdGFibGUtd3JhcHBlci9mb3JtbHktdGFibGUtd3JhcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFPOUMsTUFBTSxPQUFPLDhCQUErQixTQUFRLFlBQVk7OzJIQUFuRCw4QkFBOEI7K0dBQTlCLDhCQUE4Qix1RkNUM0MsZ1dBT0E7MkZERWEsOEJBQThCO2tCQUwxQyxTQUFTOytCQUNJLDBCQUEwQixtQkFFbkIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7RmllbGRXcmFwcGVyfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtbmctZm9ybWx5LXRhYmxlLXdyYXBwZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtbHktdGFibGUtd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTW5nRm9ybWx5VGFibGVXcmFwcGVyQ29tcG9uZW50IGV4dGVuZHMgRmllbGRXcmFwcGVyIHt9XG4iLCI8ZGl2IGNsYXNzPVwiZmllbGQgdGFibGVcIj5cbiAgICA8bmctY29udGFpbmVyICNmaWVsZENvbXBvbmVudD48L25nLWNvbnRhaW5lcj5cbiAgICA8c21hbGwgKm5nSWY9XCJ0bz8uWydkZXNjcmlwdG9yJ10/LlsnaGVscFRleHQnXVwiPnt7IHRvPy5bJ2Rlc2NyaXB0b3InXT8uWydoZWxwVGV4dCddIHwgdHJhbnNsYXRlIH19PC9zbWFsbD5cbiAgICA8c21hbGwgKm5nSWY9XCJzaG93RXJyb3JcIiBjbGFzcz1cInAtZXJyb3JcIj5cbiAgICAgICAgPGZvcm1seS12YWxpZGF0aW9uLW1lc3NhZ2UgW2ZpZWxkXT1cImZpZWxkXCI+PC9mb3JtbHktdmFsaWRhdGlvbi1tZXNzYWdlPlxuICAgIDwvc21hbGw+XG48L2Rpdj5cbiJdfQ==
@@ -4,4 +4,31 @@ export class MngFormEditorSubmitEvent {
4
4
  this.success = true;
5
5
  }
6
6
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lZGl0b3IuZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9tb2RlbHMvZm9ybS1lZGl0b3IuZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHdCQUF3QjtJQUdqQyxZQUE0QixRQUFXO1FBQVgsYUFBUSxHQUFSLFFBQVEsQ0FBRztRQUZoQyxZQUFPLEdBQUcsSUFBSSxDQUFDO0lBRW9CLENBQUM7Q0FDOUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgTW5nRm9ybUVkaXRvclN1Ym1pdEV2ZW50PFQ+IHtcbiAgICBwdWJsaWMgc3VjY2VzcyA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZm9ybUl0ZW06IFQpIHt9XG59XG4iXX0=
7
+ export var MngFormFieldEventTypeEnum;
8
+ (function (MngFormFieldEventTypeEnum) {
9
+ MngFormFieldEventTypeEnum[MngFormFieldEventTypeEnum["Component"] = 0] = "Component";
10
+ MngFormFieldEventTypeEnum[MngFormFieldEventTypeEnum["ValueChange"] = 1] = "ValueChange";
11
+ MngFormFieldEventTypeEnum[MngFormFieldEventTypeEnum["DataProvider"] = 2] = "DataProvider";
12
+ MngFormFieldEventTypeEnum[MngFormFieldEventTypeEnum["Dialog"] = 3] = "Dialog";
13
+ MngFormFieldEventTypeEnum[MngFormFieldEventTypeEnum["Other"] = 4] = "Other";
14
+ })(MngFormFieldEventTypeEnum || (MngFormFieldEventTypeEnum = {}));
15
+ export class MngFormFieldEventComponentSubtype {
16
+ }
17
+ MngFormFieldEventComponentSubtype.ON_INIT = 'Component.OnInit';
18
+ MngFormFieldEventComponentSubtype.ON_VIEW_INIT = 'Component.OnViewInit';
19
+ MngFormFieldEventComponentSubtype.ON_CONTENT_INIT = 'Component.OnContentInit';
20
+ MngFormFieldEventComponentSubtype.ON_DESTROY = 'Component.OnDestroy';
21
+ export class MngFormFieldEventDialogSubtype {
22
+ }
23
+ MngFormFieldEventDialogSubtype.VISIBILITY = 'Dialog.Visibility';
24
+ MngFormFieldEventDialogSubtype.TABLE_CAPTION_COMPONENT_INSTANCE = 'Dialog.MngTable.CaptionComponentInstance';
25
+ MngFormFieldEventDialogSubtype.TABLE_COLUMN_ACTIONS_COMPONENT_INSTANCE = 'Dialog.MngTable.ColumnActionsComponentInstance';
26
+ export class MngFormFieldEvent {
27
+ constructor(type, componentType, componentInstance, data = {}) {
28
+ this.type = type;
29
+ this.componentType = componentType;
30
+ this.componentInstance = componentInstance;
31
+ this.data = data;
32
+ }
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lZGl0b3IuZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9tb2RlbHMvZm9ybS1lZGl0b3IuZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLHdCQUF3QjtJQUdqQyxZQUE0QixRQUFXO1FBQVgsYUFBUSxHQUFSLFFBQVEsQ0FBRztRQUZoQyxZQUFPLEdBQUcsSUFBSSxDQUFDO0lBRW9CLENBQUM7Q0FDOUM7QUFFRCxNQUFNLENBQU4sSUFBWSx5QkFNWDtBQU5ELFdBQVkseUJBQXlCO0lBQ2pDLG1GQUFTLENBQUE7SUFDVCx1RkFBVyxDQUFBO0lBQ1gseUZBQVksQ0FBQTtJQUNaLDZFQUFNLENBQUE7SUFDTiwyRUFBSyxDQUFBO0FBQ1QsQ0FBQyxFQU5XLHlCQUF5QixLQUF6Qix5QkFBeUIsUUFNcEM7QUFFRCxNQUFNLE9BQU8saUNBQWlDOztBQUNuQix5Q0FBTyxHQUFHLGtCQUFrQixDQUFDO0FBQzdCLDhDQUFZLEdBQUcsc0JBQXNCLENBQUM7QUFDdEMsaURBQWUsR0FBRyx5QkFBeUIsQ0FBQztBQUM1Qyw0Q0FBVSxHQUFHLHFCQUFxQixDQUFDO0FBRzlELE1BQU0sT0FBTyw4QkFBOEI7O0FBQ2hCLHlDQUFVLEdBQUcsbUJBQW1CLENBQUM7QUFDakMsK0RBQWdDLEdBQUcsMENBQTBDLENBQUM7QUFDOUUsc0VBQXVDLEdBQUcsZ0RBQWdELENBQUM7QUFXdEgsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixZQUNvQixJQUErQixFQUMvQixhQUF3QixFQUN4QixpQkFBc0IsRUFDdEIsT0FBcUMsRUFBRTtRQUh2QyxTQUFJLEdBQUosSUFBSSxDQUEyQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBVztRQUN4QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQUs7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBbUM7SUFDeEQsQ0FBQztDQUNQIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIE1uZ0Zvcm1FZGl0b3JTdWJtaXRFdmVudDxUPiB7XG4gICAgcHVibGljIHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGZvcm1JdGVtOiBUKSB7fVxufVxuXG5leHBvcnQgZW51bSBNbmdGb3JtRmllbGRFdmVudFR5cGVFbnVtIHtcbiAgICBDb21wb25lbnQsXG4gICAgVmFsdWVDaGFuZ2UsXG4gICAgRGF0YVByb3ZpZGVyLFxuICAgIERpYWxvZyxcbiAgICBPdGhlclxufVxuXG5leHBvcnQgY2xhc3MgTW5nRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlIHtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9OX0lOSVQgPSAnQ29tcG9uZW50Lk9uSW5pdCc7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBPTl9WSUVXX0lOSVQgPSAnQ29tcG9uZW50Lk9uVmlld0luaXQnO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT05fQ09OVEVOVF9JTklUID0gJ0NvbXBvbmVudC5PbkNvbnRlbnRJbml0JztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9OX0RFU1RST1kgPSAnQ29tcG9uZW50Lk9uRGVzdHJveSc7XG59XG5cbmV4cG9ydCBjbGFzcyBNbmdGb3JtRmllbGRFdmVudERpYWxvZ1N1YnR5cGUge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVklTSUJJTElUWSA9ICdEaWFsb2cuVmlzaWJpbGl0eSc7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBUQUJMRV9DQVBUSU9OX0NPTVBPTkVOVF9JTlNUQU5DRSA9ICdEaWFsb2cuTW5nVGFibGUuQ2FwdGlvbkNvbXBvbmVudEluc3RhbmNlJztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRBQkxFX0NPTFVNTl9BQ1RJT05TX0NPTVBPTkVOVF9JTlNUQU5DRSA9ICdEaWFsb2cuTW5nVGFibGUuQ29sdW1uQWN0aW9uc0NvbXBvbmVudEluc3RhbmNlJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNbmdGb3JtRmllbGRFdmVudERhdGE8VCwgRVQ+IHtcbiAgICBldmVudFN1YnR5cGU/OiBzdHJpbmc7XG4gICAgdmFsdWU/OiBUO1xuICAgIGZvcm1WYWx1ZT86IEVUO1xuXG4gICAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgY2xhc3MgTW5nRm9ybUZpZWxkRXZlbnQ8VCwgRVQ+IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHR5cGU6IE1uZ0Zvcm1GaWVsZEV2ZW50VHlwZUVudW0sXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBjb21wb25lbnRUeXBlOiBUeXBlPGFueT4sXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBjb21wb25lbnRJbnN0YW5jZTogYW55LFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZGF0YTogTW5nRm9ybUZpZWxkRXZlbnREYXRhPFQsIEVUPiA9IHt9XG4gICAgKSB7fVxufVxuIl19
@@ -38,7 +38,7 @@ export class MngMainLayoutComponent {
38
38
  }
39
39
  }
40
40
  MngMainLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngMainLayoutComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.MngCommonsService }, { token: i3.MngMainLayoutComponentService }], target: i0.ɵɵFactoryTarget.Component });
41
- MngMainLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngMainLayoutComponent, selector: "mng-main-layout", host: { listeners: { "window:resize": "onWindowResize($event)" } }, providers: [MngMainLayoutComponentService], viewQueries: [{ propertyName: "templates", predicate: MngTemplateDirective, descendants: true }], ngImport: i0, template: "<div\n class=\"layout-wrapper\"\n (click)=\"mainLayoutService.onLayoutClick()\"\n [ngClass]=\"{\n 'layout-static': mngCommons.menuModeIsStatic$ | async,\n 'layout-overlay': mngCommons.menuModeIsOverlay$ | async,\n 'layout-slim': mngCommons.menuModeIsSlim$ | async,\n 'layout-sidebar': mngCommons.menuModeIsSidebar$ | async,\n 'layout-sidebar-static': (mngCommons.menuModeIsSidebar$ | async) && (mainLayoutService.sidebarStatic$ | async),\n 'layout-overlay-active': mainLayoutService.overlayMenuActive$ | async,\n 'layout-mobile-active': mainLayoutService.staticMenuMobileActive$ | async,\n 'layout-static-inactive': (mainLayoutService.staticMenuDesktopInactive$ | async) && (mngCommons.menuModeIsStatic$ | async)\n }\">\n <div class=\"layout-main\">\n <ng-container [mngComponent]=\"topbarComponent\"></ng-container>\n\n <ng-container\n *ngIf=\"\n (mainLayoutService.isMobile$ | async) === false &&\n ((mngCommons.menuModeIsStatic$ | async) || (mngCommons.menuModeIsSlim$ | async) || (mngCommons.menuModeIsSidebar$ | async))\n \"\n [mngComponent]=\"menuComponent\">\n </ng-container>\n\n <div class=\"layout-main-content\">\n <router-outlet></router-outlet>\n </div>\n\n <ng-container [mngComponent]=\"footerComponent\"></ng-container>\n </div>\n</div>\n", directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], pipes: { "async": i4.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
41
+ MngMainLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngMainLayoutComponent, selector: "mng-main-layout", host: { listeners: { "window:resize": "onWindowResize($event)" } }, providers: [MngMainLayoutComponentService], viewQueries: [{ propertyName: "templates", predicate: MngTemplateDirective, descendants: true }], ngImport: i0, template: "<div\n class=\"layout-wrapper\"\n (click)=\"mainLayoutService.onLayoutClick()\"\n [ngClass]=\"{\n 'layout-static': mngCommons.menuModeIsStatic$ | async,\n 'layout-overlay': mngCommons.menuModeIsOverlay$ | async,\n 'layout-slim': mngCommons.menuModeIsSlim$ | async,\n 'layout-sidebar': mngCommons.menuModeIsSidebar$ | async,\n 'layout-sidebar-static': (mngCommons.menuModeIsSidebar$ | async) && (mainLayoutService.sidebarStatic$ | async),\n 'layout-overlay-active': mainLayoutService.overlayMenuActive$ | async,\n 'layout-mobile-active': mainLayoutService.staticMenuMobileActive$ | async,\n 'layout-static-inactive': (mainLayoutService.staticMenuDesktopInactive$ | async) && (mngCommons.menuModeIsStatic$ | async)\n }\">\n <div class=\"layout-main\">\n <ng-container [mngComponent]=\"topbarComponent\"></ng-container>\n\n <ng-container\n *ngIf=\"\n (mainLayoutService.isMobile$ | async) === false &&\n ((mngCommons.menuModeIsStatic$ | async) || (mngCommons.menuModeIsSlim$ | async) || (mngCommons.menuModeIsSidebar$ | async))\n \"\n [mngComponent]=\"menuComponent\">\n </ng-container>\n\n <div class=\"layout-main-content\">\n <router-outlet></router-outlet>\n </div>\n\n <ng-container [mngComponent]=\"footerComponent\"></ng-container>\n </div>\n</div>\n", directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent"], outputs: ["instanceCreated"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], pipes: { "async": i4.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
42
42
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngMainLayoutComponent, decorators: [{
43
43
  type: Component,
44
44
  args: [{ selector: 'mng-main-layout', providers: [MngMainLayoutComponentService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"layout-wrapper\"\n (click)=\"mainLayoutService.onLayoutClick()\"\n [ngClass]=\"{\n 'layout-static': mngCommons.menuModeIsStatic$ | async,\n 'layout-overlay': mngCommons.menuModeIsOverlay$ | async,\n 'layout-slim': mngCommons.menuModeIsSlim$ | async,\n 'layout-sidebar': mngCommons.menuModeIsSidebar$ | async,\n 'layout-sidebar-static': (mngCommons.menuModeIsSidebar$ | async) && (mainLayoutService.sidebarStatic$ | async),\n 'layout-overlay-active': mainLayoutService.overlayMenuActive$ | async,\n 'layout-mobile-active': mainLayoutService.staticMenuMobileActive$ | async,\n 'layout-static-inactive': (mainLayoutService.staticMenuDesktopInactive$ | async) && (mngCommons.menuModeIsStatic$ | async)\n }\">\n <div class=\"layout-main\">\n <ng-container [mngComponent]=\"topbarComponent\"></ng-container>\n\n <ng-container\n *ngIf=\"\n (mainLayoutService.isMobile$ | async) === false &&\n ((mngCommons.menuModeIsStatic$ | async) || (mngCommons.menuModeIsSlim$ | async) || (mngCommons.menuModeIsSidebar$ | async))\n \"\n [mngComponent]=\"menuComponent\">\n </ng-container>\n\n <div class=\"layout-main-content\">\n <router-outlet></router-outlet>\n </div>\n\n <ng-container [mngComponent]=\"footerComponent\"></ng-container>\n </div>\n</div>\n" }]
@@ -34,8 +34,6 @@ export class MngTopbarComponent {
34
34
  this.mngCommons.user$.subscribe(u => {
35
35
  this.user = u;
36
36
  });
37
- }
38
- ngAfterViewInit() {
39
37
  this.mainLayoutService.innerWidth = window.innerWidth;
40
38
  }
41
39
  switchLanguage(language) {
@@ -49,7 +47,7 @@ export class MngTopbarComponent {
49
47
  }
50
48
  }
51
49
  MngTopbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTopbarComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.MngCommonsService }, { token: i3.MngMainLayoutComponentService }], target: i0.ɵɵFactoryTarget.Component });
52
- MngTopbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngTopbarComponent, selector: "mng-topbar", viewQueries: [{ propertyName: "templates", predicate: MngTemplateDirective, descendants: true }], ngImport: i0, template: "<div class=\"layout-topbar\">\n <div class=\"layout-topbar-left\">\n <a\n href=\"#\"\n class=\"topbar-menu-button\"\n (click)=\"mainLayoutService.onMenuButtonClick($event)\"\n *ngIf=\"(mngCommons.menuModeIsOverlay$ | async) || (mainLayoutService.isMobile$ | async)\">\n <i class=\"pi pi-bars\"></i>\n </a>\n\n <ng-container [mngComponent]=\"breadcrumbComponent\"></ng-container>\n </div>\n\n <ng-container [mngComponent]=\"menuComponent\"></ng-container>\n\n <div class=\"layout-topbar-right\">\n <ul class=\"layout-topbar-right-items\">\n <li #profile class=\"profile-item\" [ngClass]=\"{'active-topmenuitem': (mainLayoutService.activeTopbarItem$ | async) === profile}\">\n <a href=\"#\" (click)=\"mainLayoutService.onTopbarItemClick($event, profile)\">\n <i class=\"pi pi-fw pi-user\"></i>\n </a>\n <ul class=\"fadeInDown\" *ngIf=\"user\">\n <li role=\"menuitem\">\n <a>\n {{ user?.displayName ?? user?.username }}\n </a>\n </li>\n <li role=\"menuitem\" *ngIf=\"user?.logout || user?.logoutUrl\">\n <a [href]=\"user?.logoutUrl\" (click)=\"logout(user, $event)\">\n <i class=\"pi pi-fw pi-sign-out\"></i>\n <span>{{ 'mngTopbar.logout' | translate }}</span>\n </a>\n </li>\n </ul>\n </li>\n <li *ngIf=\"languages.length > 1\" class=\"profile-item\" [ngClass]=\"{'active-topmenuitem': (mainLayoutService.activeTopbarItem$ | async) === profile}\">\n <i class=\"pi pi-fw pi-globe\"></i>\n <p-dropdown [ngModel]=\"selectedLanguage\" [options]=\"languages\" (onChange)=\"switchLanguage($event.value)\"></p-dropdown>\n </li>\n </ul>\n </div>\n</div>\n", components: [{ type: i4.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "async": i5.AsyncPipe, "translate": i8.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
50
+ MngTopbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngTopbarComponent, selector: "mng-topbar", viewQueries: [{ propertyName: "templates", predicate: MngTemplateDirective, descendants: true }], ngImport: i0, template: "<div class=\"layout-topbar\">\n <div class=\"layout-topbar-left\">\n <a\n href=\"#\"\n class=\"topbar-menu-button\"\n (click)=\"mainLayoutService.onMenuButtonClick($event)\"\n *ngIf=\"(mngCommons.menuModeIsOverlay$ | async) || (mainLayoutService.isMobile$ | async)\">\n <i class=\"pi pi-bars\"></i>\n </a>\n\n <ng-container [mngComponent]=\"breadcrumbComponent\"></ng-container>\n </div>\n\n <ng-container [mngComponent]=\"menuComponent\"></ng-container>\n\n <div class=\"layout-topbar-right\">\n <ul class=\"layout-topbar-right-items\">\n <li #profile class=\"profile-item\" [ngClass]=\"{'active-topmenuitem': (mainLayoutService.activeTopbarItem$ | async) === profile}\">\n <a href=\"#\" (click)=\"mainLayoutService.onTopbarItemClick($event, profile)\">\n <i class=\"pi pi-fw pi-user\"></i>\n </a>\n <ul class=\"fadeInDown\" *ngIf=\"user\">\n <li role=\"menuitem\">\n <a>\n {{ user?.displayName ?? user?.username }}\n </a>\n </li>\n <li role=\"menuitem\" *ngIf=\"user?.logout || user?.logoutUrl\">\n <a [href]=\"user?.logoutUrl\" (click)=\"logout(user, $event)\">\n <i class=\"pi pi-fw pi-sign-out\"></i>\n <span>{{ 'mngTopbar.logout' | translate }}</span>\n </a>\n </li>\n </ul>\n </li>\n <li *ngIf=\"languages.length > 1\" class=\"profile-item\" [ngClass]=\"{'active-topmenuitem': (mainLayoutService.activeTopbarItem$ | async) === profile}\">\n <i class=\"pi pi-fw pi-globe\"></i>\n <p-dropdown [ngModel]=\"selectedLanguage\" [options]=\"languages\" (onChange)=\"switchLanguage($event.value)\"></p-dropdown>\n </li>\n </ul>\n </div>\n</div>\n", components: [{ type: i4.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent"], outputs: ["instanceCreated"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "async": i5.AsyncPipe, "translate": i8.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
53
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTopbarComponent, decorators: [{
54
52
  type: Component,
55
53
  args: [{ selector: 'mng-topbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"layout-topbar\">\n <div class=\"layout-topbar-left\">\n <a\n href=\"#\"\n class=\"topbar-menu-button\"\n (click)=\"mainLayoutService.onMenuButtonClick($event)\"\n *ngIf=\"(mngCommons.menuModeIsOverlay$ | async) || (mainLayoutService.isMobile$ | async)\">\n <i class=\"pi pi-bars\"></i>\n </a>\n\n <ng-container [mngComponent]=\"breadcrumbComponent\"></ng-container>\n </div>\n\n <ng-container [mngComponent]=\"menuComponent\"></ng-container>\n\n <div class=\"layout-topbar-right\">\n <ul class=\"layout-topbar-right-items\">\n <li #profile class=\"profile-item\" [ngClass]=\"{'active-topmenuitem': (mainLayoutService.activeTopbarItem$ | async) === profile}\">\n <a href=\"#\" (click)=\"mainLayoutService.onTopbarItemClick($event, profile)\">\n <i class=\"pi pi-fw pi-user\"></i>\n </a>\n <ul class=\"fadeInDown\" *ngIf=\"user\">\n <li role=\"menuitem\">\n <a>\n {{ user?.displayName ?? user?.username }}\n </a>\n </li>\n <li role=\"menuitem\" *ngIf=\"user?.logout || user?.logoutUrl\">\n <a [href]=\"user?.logoutUrl\" (click)=\"logout(user, $event)\">\n <i class=\"pi pi-fw pi-sign-out\"></i>\n <span>{{ 'mngTopbar.logout' | translate }}</span>\n </a>\n </li>\n </ul>\n </li>\n <li *ngIf=\"languages.length > 1\" class=\"profile-item\" [ngClass]=\"{'active-topmenuitem': (mainLayoutService.activeTopbarItem$ | async) === profile}\">\n <i class=\"pi pi-fw pi-globe\"></i>\n <p-dropdown [ngModel]=\"selectedLanguage\" [options]=\"languages\" (onChange)=\"switchLanguage($event.value)\"></p-dropdown>\n </li>\n </ul>\n </div>\n</div>\n" }]
@@ -57,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
57
55
  type: ViewChildren,
58
56
  args: [MngTemplateDirective]
59
57
  }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvdG9wYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvdG9wYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsdUJBQXVCLEVBQUUsU0FBUyxFQUEyQixZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHdkgsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFJdEQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7Ozs7QUFRbEQsTUFBTSxPQUFPLGtCQUFrQjtJQVUzQixZQUFvQixLQUFxQixFQUFTLFVBQTZCLEVBQVMsaUJBQWdEO1FBQXBILFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFBUyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQStCO1FBUGpJLHdCQUFtQixHQUFjLHNCQUFzQixDQUFDO1FBQ3hELGtCQUFhLEdBQWMsZ0JBQWdCLENBQUM7UUFFNUMsY0FBUyxHQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLHFCQUFnQixHQUFHLElBQUksQ0FBQztJQUc0RyxDQUFDO0lBRTVJLFFBQVE7UUFDSixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFxQixDQUFDO1FBQzVELElBQUksU0FBUyxFQUFFLG1CQUFtQixFQUFFO1lBQ2hDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxTQUFTLENBQUMsbUJBQW1CLENBQUM7U0FDNUQ7UUFDRCxJQUFJLFNBQVMsRUFBRSxhQUFhLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDO1NBQ2hEO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztRQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDMUQsQ0FBQztJQUVNLGNBQWMsQ0FBQyxRQUFnQjtRQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUM7SUFDM0MsQ0FBQztJQUVELDZEQUE2RDtJQUN0RCxNQUFNLENBQUMsSUFBVyxFQUFFLEtBQVk7UUFDbkMsSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFO1lBQ25DLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNqQjtJQUNMLENBQUM7OytHQXpDUSxrQkFBa0I7bUdBQWxCLGtCQUFrQixnRkFDYixvQkFBb0IsZ0RDakJ0QyxzZ0VBMENBOzJGRDFCYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0ksWUFBWSxtQkFFTCx1QkFBdUIsQ0FBQyxNQUFNO2lMQUdYLFNBQVM7c0JBQTVDLFlBQVk7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQsIFF1ZXJ5TGlzdCwgVHlwZSwgVmlld0NoaWxkcmVufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7TW5nVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtJVXNlcn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7TW5nUm91dGVyRGF0YX0gZnJvbSAnLi4vLi4vcm91dGVyL21vZGVscyc7XG5pbXBvcnQge01uZ0NvbW1vbnNTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge01uZ0JyZWFkY3J1bWJDb21wb25lbnR9IGZyb20gJy4vYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuaW1wb3J0IHtNbmdNZW51Q29tcG9uZW50fSBmcm9tICcuL21lbnUuY29tcG9uZW50JztcbmltcG9ydCB7TW5nTWFpbkxheW91dENvbXBvbmVudFNlcnZpY2V9IGZyb20gJy4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21uZy10b3BiYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b3BiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1uZ1RvcGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQFZpZXdDaGlsZHJlbihNbmdUZW1wbGF0ZURpcmVjdGl2ZSkgdGVtcGxhdGVzITogUXVlcnlMaXN0PE1uZ1RlbXBsYXRlRGlyZWN0aXZlPjtcblxuICAgIHB1YmxpYyBicmVhZGNydW1iQ29tcG9uZW50OiBUeXBlPGFueT4gPSBNbmdCcmVhZGNydW1iQ29tcG9uZW50O1xuICAgIHB1YmxpYyBtZW51Q29tcG9uZW50OiBUeXBlPGFueT4gPSBNbmdNZW51Q29tcG9uZW50O1xuXG4gICAgcHVibGljIGxhbmd1YWdlczogQXJyYXk8c3RyaW5nPiA9IFsnZW4nXTtcbiAgICBwdWJsaWMgc2VsZWN0ZWRMYW5ndWFnZSA9ICdlbic7XG4gICAgcHVibGljIHVzZXI/OiBJVXNlcjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwdWJsaWMgbW5nQ29tbW9uczogTW5nQ29tbW9uc1NlcnZpY2UsIHB1YmxpYyBtYWluTGF5b3V0U2VydmljZTogTW5nTWFpbkxheW91dENvbXBvbmVudFNlcnZpY2UpIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgcm91dGVEYXRhID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhIGFzIE1uZ1JvdXRlckRhdGE7XG4gICAgICAgIGlmIChyb3V0ZURhdGE/LmJyZWFkY3J1bWJDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuYnJlYWRjcnVtYkNvbXBvbmVudCA9IHJvdXRlRGF0YS5icmVhZGNydW1iQ29tcG9uZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGE/Lm1lbnVDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubWVudUNvbXBvbmVudCA9IHJvdXRlRGF0YS5tZW51Q29tcG9uZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sYW5ndWFnZXMgPSB0aGlzLm1uZ0NvbW1vbnMuYXBwTGFuZ3VhZ2VzO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UgPSB0aGlzLm1uZ0NvbW1vbnMuYXBwTGFuZ3VhZ2U7XG4gICAgICAgIHRoaXMubW5nQ29tbW9ucy51c2VyJC5zdWJzY3JpYmUodSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVzZXIgPSB1O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWFpbkxheW91dFNlcnZpY2UuaW5uZXJXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBzd2l0Y2hMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMubW5nQ29tbW9ucy5hcHBMYW5ndWFnZSA9IGxhbmd1YWdlO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBwdWJsaWMgbG9nb3V0KHVzZXI6IElVc2VyLCBldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB1c2VyLmxvZ291dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdXNlci5sb2dvdXQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsYXlvdXQtdG9wYmFyXCI+XG4gICAgPGRpdiBjbGFzcz1cImxheW91dC10b3BiYXItbGVmdFwiPlxuICAgICAgICA8YVxuICAgICAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0b3BiYXItbWVudS1idXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm1haW5MYXlvdXRTZXJ2aWNlLm9uTWVudUJ1dHRvbkNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgKm5nSWY9XCIobW5nQ29tbW9ucy5tZW51TW9kZUlzT3ZlcmxheSQgfCBhc3luYykgfHwgKG1haW5MYXlvdXRTZXJ2aWNlLmlzTW9iaWxlJCB8IGFzeW5jKVwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1iYXJzXCI+PC9pPlxuICAgICAgICA8L2E+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbW5nQ29tcG9uZW50XT1cImJyZWFkY3J1bWJDb21wb25lbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXIgW21uZ0NvbXBvbmVudF09XCJtZW51Q29tcG9uZW50XCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LXRvcGJhci1yaWdodFwiPlxuICAgICAgICA8dWwgY2xhc3M9XCJsYXlvdXQtdG9wYmFyLXJpZ2h0LWl0ZW1zXCI+XG4gICAgICAgICAgICA8bGkgI3Byb2ZpbGUgY2xhc3M9XCJwcm9maWxlLWl0ZW1cIiBbbmdDbGFzc109XCJ7J2FjdGl2ZS10b3BtZW51aXRlbSc6IChtYWluTGF5b3V0U2VydmljZS5hY3RpdmVUb3BiYXJJdGVtJCB8IGFzeW5jKSA9PT0gcHJvZmlsZX1cIj5cbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiIChjbGljayk9XCJtYWluTGF5b3V0U2VydmljZS5vblRvcGJhckl0ZW1DbGljaygkZXZlbnQsIHByb2ZpbGUpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktZncgcGktdXNlclwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiZmFkZUluRG93blwiICpuZ0lmPVwidXNlclwiPlxuICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT1cIm1lbnVpdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB1c2VyPy5kaXNwbGF5TmFtZSA/PyB1c2VyPy51c2VybmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT1cIm1lbnVpdGVtXCIgKm5nSWY9XCJ1c2VyPy5sb2dvdXQgfHwgdXNlcj8ubG9nb3V0VXJsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJ1c2VyPy5sb2dvdXRVcmxcIiAoY2xpY2spPVwibG9nb3V0KHVzZXIsICRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWZ3IHBpLXNpZ24tb3V0XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdtbmdUb3BiYXIubG9nb3V0JyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSAqbmdJZj1cImxhbmd1YWdlcy5sZW5ndGggPiAxXCIgY2xhc3M9XCJwcm9maWxlLWl0ZW1cIiBbbmdDbGFzc109XCJ7J2FjdGl2ZS10b3BtZW51aXRlbSc6IChtYWluTGF5b3V0U2VydmljZS5hY3RpdmVUb3BiYXJJdGVtJCB8IGFzeW5jKSA9PT0gcHJvZmlsZX1cIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWZ3IHBpLWdsb2JlXCI+PC9pPlxuICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtuZ01vZGVsXT1cInNlbGVjdGVkTGFuZ3VhZ2VcIiBbb3B0aW9uc109XCJsYW5ndWFnZXNcIiAob25DaGFuZ2UpPVwic3dpdGNoTGFuZ3VhZ2UoJGV2ZW50LnZhbHVlKVwiPjwvcC1kcm9wZG93bj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvdG9wYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvdG9wYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQTJCLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd4RyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUl0RCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7OztBQVFsRCxNQUFNLE9BQU8sa0JBQWtCO0lBVTNCLFlBQW9CLEtBQXFCLEVBQVMsVUFBNkIsRUFBUyxpQkFBZ0Q7UUFBcEgsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUFTLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBK0I7UUFQakksd0JBQW1CLEdBQWMsc0JBQXNCLENBQUM7UUFDeEQsa0JBQWEsR0FBYyxnQkFBZ0IsQ0FBQztRQUU1QyxjQUFTLEdBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMscUJBQWdCLEdBQUcsSUFBSSxDQUFDO0lBRzRHLENBQUM7SUFFNUksUUFBUTtRQUNKLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQXFCLENBQUM7UUFDNUQsSUFBSSxTQUFTLEVBQUUsbUJBQW1CLEVBQUU7WUFDaEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQztTQUM1RDtRQUNELElBQUksU0FBUyxFQUFFLGFBQWEsRUFBRTtZQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUM7U0FDaEQ7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO1FBQzlDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDMUQsQ0FBQztJQUVNLGNBQWMsQ0FBQyxRQUFnQjtRQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUM7SUFDM0MsQ0FBQztJQUVELDZEQUE2RDtJQUN0RCxNQUFNLENBQUMsSUFBVyxFQUFFLEtBQVk7UUFDbkMsSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFO1lBQ25DLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNqQjtJQUNMLENBQUM7OytHQXZDUSxrQkFBa0I7bUdBQWxCLGtCQUFrQixnRkFDYixvQkFBb0IsZ0RDakJ0QyxzZ0VBMENBOzJGRDFCYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0ksWUFBWSxtQkFFTCx1QkFBdUIsQ0FBQyxNQUFNO2lMQUdYLFNBQVM7c0JBQTVDLFlBQVk7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQsIFF1ZXJ5TGlzdCwgVHlwZSwgVmlld0NoaWxkcmVufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7TW5nVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtJVXNlcn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7TW5nUm91dGVyRGF0YX0gZnJvbSAnLi4vLi4vcm91dGVyL21vZGVscyc7XG5pbXBvcnQge01uZ0NvbW1vbnNTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge01uZ0JyZWFkY3J1bWJDb21wb25lbnR9IGZyb20gJy4vYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuaW1wb3J0IHtNbmdNZW51Q29tcG9uZW50fSBmcm9tICcuL21lbnUuY29tcG9uZW50JztcbmltcG9ydCB7TW5nTWFpbkxheW91dENvbXBvbmVudFNlcnZpY2V9IGZyb20gJy4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21uZy10b3BiYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b3BiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1uZ1RvcGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZHJlbihNbmdUZW1wbGF0ZURpcmVjdGl2ZSkgdGVtcGxhdGVzITogUXVlcnlMaXN0PE1uZ1RlbXBsYXRlRGlyZWN0aXZlPjtcblxuICAgIHB1YmxpYyBicmVhZGNydW1iQ29tcG9uZW50OiBUeXBlPGFueT4gPSBNbmdCcmVhZGNydW1iQ29tcG9uZW50O1xuICAgIHB1YmxpYyBtZW51Q29tcG9uZW50OiBUeXBlPGFueT4gPSBNbmdNZW51Q29tcG9uZW50O1xuXG4gICAgcHVibGljIGxhbmd1YWdlczogQXJyYXk8c3RyaW5nPiA9IFsnZW4nXTtcbiAgICBwdWJsaWMgc2VsZWN0ZWRMYW5ndWFnZSA9ICdlbic7XG4gICAgcHVibGljIHVzZXI/OiBJVXNlcjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwdWJsaWMgbW5nQ29tbW9uczogTW5nQ29tbW9uc1NlcnZpY2UsIHB1YmxpYyBtYWluTGF5b3V0U2VydmljZTogTW5nTWFpbkxheW91dENvbXBvbmVudFNlcnZpY2UpIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgcm91dGVEYXRhID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhIGFzIE1uZ1JvdXRlckRhdGE7XG4gICAgICAgIGlmIChyb3V0ZURhdGE/LmJyZWFkY3J1bWJDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuYnJlYWRjcnVtYkNvbXBvbmVudCA9IHJvdXRlRGF0YS5icmVhZGNydW1iQ29tcG9uZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGE/Lm1lbnVDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubWVudUNvbXBvbmVudCA9IHJvdXRlRGF0YS5tZW51Q29tcG9uZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sYW5ndWFnZXMgPSB0aGlzLm1uZ0NvbW1vbnMuYXBwTGFuZ3VhZ2VzO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UgPSB0aGlzLm1uZ0NvbW1vbnMuYXBwTGFuZ3VhZ2U7XG4gICAgICAgIHRoaXMubW5nQ29tbW9ucy51c2VyJC5zdWJzY3JpYmUodSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVzZXIgPSB1O1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm1haW5MYXlvdXRTZXJ2aWNlLmlubmVyV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3dpdGNoTGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xuICAgICAgICB0aGlzLm1uZ0NvbW1vbnMuYXBwTGFuZ3VhZ2UgPSBsYW5ndWFnZTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHVibGljIGxvZ291dCh1c2VyOiBJVXNlciwgZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmICh0eXBlb2YgdXNlci5sb2dvdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHVzZXIubG9nb3V0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibGF5b3V0LXRvcGJhclwiPlxuICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtdG9wYmFyLWxlZnRcIj5cbiAgICAgICAgPGFcbiAgICAgICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgICAgIGNsYXNzPVwidG9wYmFyLW1lbnUtYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJtYWluTGF5b3V0U2VydmljZS5vbk1lbnVCdXR0b25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICpuZ0lmPVwiKG1uZ0NvbW1vbnMubWVudU1vZGVJc092ZXJsYXkkIHwgYXN5bmMpIHx8IChtYWluTGF5b3V0U2VydmljZS5pc01vYmlsZSQgfCBhc3luYylcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktYmFyc1wiPjwvaT5cbiAgICAgICAgPC9hPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgW21uZ0NvbXBvbmVudF09XCJicmVhZGNydW1iQ29tcG9uZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyIFttbmdDb21wb25lbnRdPVwibWVudUNvbXBvbmVudFwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPGRpdiBjbGFzcz1cImxheW91dC10b3BiYXItcmlnaHRcIj5cbiAgICAgICAgPHVsIGNsYXNzPVwibGF5b3V0LXRvcGJhci1yaWdodC1pdGVtc1wiPlxuICAgICAgICAgICAgPGxpICNwcm9maWxlIGNsYXNzPVwicHJvZmlsZS1pdGVtXCIgW25nQ2xhc3NdPVwieydhY3RpdmUtdG9wbWVudWl0ZW0nOiAobWFpbkxheW91dFNlcnZpY2UuYWN0aXZlVG9wYmFySXRlbSQgfCBhc3luYykgPT09IHByb2ZpbGV9XCI+XG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiAoY2xpY2spPVwibWFpbkxheW91dFNlcnZpY2Uub25Ub3BiYXJJdGVtQ2xpY2soJGV2ZW50LCBwcm9maWxlKVwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWZ3IHBpLXVzZXJcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImZhZGVJbkRvd25cIiAqbmdJZj1cInVzZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9XCJtZW51aXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGE+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdXNlcj8uZGlzcGxheU5hbWUgPz8gdXNlcj8udXNlcm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9XCJtZW51aXRlbVwiICpuZ0lmPVwidXNlcj8ubG9nb3V0IHx8IHVzZXI/LmxvZ291dFVybFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwidXNlcj8ubG9nb3V0VXJsXCIgKGNsaWNrKT1cImxvZ291dCh1c2VyLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1mdyBwaS1zaWduLW91dFwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyAnbW5nVG9wYmFyLmxvZ291dCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgKm5nSWY9XCJsYW5ndWFnZXMubGVuZ3RoID4gMVwiIGNsYXNzPVwicHJvZmlsZS1pdGVtXCIgW25nQ2xhc3NdPVwieydhY3RpdmUtdG9wbWVudWl0ZW0nOiAobWFpbkxheW91dFNlcnZpY2UuYWN0aXZlVG9wYmFySXRlbSQgfCBhc3luYykgPT09IHByb2ZpbGV9XCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1mdyBwaS1nbG9iZVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8cC1kcm9wZG93biBbbmdNb2RlbF09XCJzZWxlY3RlZExhbmd1YWdlXCIgW29wdGlvbnNdPVwibGFuZ3VhZ2VzXCIgKG9uQ2hhbmdlKT1cInN3aXRjaExhbmd1YWdlKCRldmVudC52YWx1ZSlcIj48L3AtZHJvcGRvd24+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=