@koalarx/ui 13.0.15 → 13.0.18

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 (91) hide show
  1. package/alert/esm2020/lib/dialog-alert.component.mjs +3 -3
  2. package/alert/esm2020/lib/koala.alert.module.mjs +4 -4
  3. package/alert/esm2020/lib/koala.alert.service.mjs +3 -3
  4. package/alert/fesm2015/koalarx-ui-alert.mjs +10 -10
  5. package/alert/fesm2020/koalarx-ui-alert.mjs +10 -10
  6. package/button/esm2020/lib/button.component.mjs +3 -3
  7. package/button/esm2020/lib/koala.button.module.mjs +4 -4
  8. package/button/fesm2015/koalarx-ui-button.mjs +7 -7
  9. package/button/fesm2020/koalarx-ui-button.mjs +7 -7
  10. package/common/esm2020/lib/services/csv/koala.csv.service.mjs +3 -3
  11. package/common/esm2020/lib/services/xlsx/koala.xlsx.service.mjs +3 -3
  12. package/common/fesm2015/koalarx-ui-common.mjs +6 -6
  13. package/common/fesm2020/koalarx-ui-common.mjs +6 -6
  14. package/core/esm2020/lib/loader/loader-bar-page.component.mjs +3 -3
  15. package/core/esm2020/lib/ngx-koala.module.mjs +4 -4
  16. package/core/esm2020/lib/page/koala.page.module.mjs +4 -4
  17. package/core/esm2020/lib/page/notifications/notification.component.mjs +6 -6
  18. package/core/esm2020/lib/page/page.component.mjs +3 -3
  19. package/core/esm2020/lib/router/koala.parameter-hash-location-stategy.mjs +3 -3
  20. package/core/esm2020/lib/services/api-requester/koala.api-requester.base.mjs +3 -3
  21. package/core/esm2020/lib/services/api-requester/koala.api-requester.service.mjs +3 -3
  22. package/core/esm2020/lib/services/loader/koala.loader.service.mjs +3 -3
  23. package/core/esm2020/lib/services/openid/koala.oauth2.service.mjs +3 -3
  24. package/core/esm2020/lib/services/request/koala.request.service.mjs +3 -3
  25. package/core/esm2020/lib/services/token/koala.token.service.mjs +3 -3
  26. package/core/fesm2015/koalarx-ui-core.mjs +39 -39
  27. package/core/fesm2015/koalarx-ui-core.mjs.map +1 -1
  28. package/core/fesm2020/koalarx-ui-core.mjs +39 -39
  29. package/core/fesm2020/koalarx-ui-core.mjs.map +1 -1
  30. package/core/lib/services/api-requester/koala.api-requester.base.d.ts +1 -1
  31. package/dialog/esm2020/lib/dialog.component.mjs +3 -3
  32. package/dialog/esm2020/lib/koala.dialog.module.mjs +4 -4
  33. package/dialog/esm2020/lib/koala.dialog.service.mjs +3 -3
  34. package/dialog/fesm2015/koalarx-ui-dialog.mjs +10 -10
  35. package/dialog/fesm2020/koalarx-ui-dialog.mjs +10 -10
  36. package/dynamic-component/esm2020/lib/koala-dynamic-component.directive.mjs +3 -3
  37. package/dynamic-component/esm2020/lib/koala-dynamic-component.factory.mjs +3 -3
  38. package/dynamic-component/esm2020/lib/koala-dynamic-component.module.mjs +4 -4
  39. package/dynamic-component/fesm2015/koalarx-ui-dynamic-component.mjs +10 -10
  40. package/dynamic-component/fesm2020/koalarx-ui-dynamic-component.mjs +10 -10
  41. package/file-button/esm2020/lib/file-button.component.mjs +3 -3
  42. package/file-button/esm2020/lib/koala.btn-file.service.mjs +3 -3
  43. package/file-button/esm2020/lib/koala.file-button.module.mjs +4 -4
  44. package/file-button/fesm2015/koalarx-ui-file-button.mjs +10 -10
  45. package/file-button/fesm2020/koalarx-ui-file-button.mjs +10 -10
  46. package/folder-page/esm2020/lib/folder.component.mjs +3 -3
  47. package/folder-page/esm2020/lib/koala.folder-page.module.mjs +4 -4
  48. package/folder-page/fesm2015/koalarx-ui-folder-page.mjs +7 -7
  49. package/folder-page/fesm2020/koalarx-ui-folder-page.mjs +7 -7
  50. package/form/esm2020/lib/btn-submit/btn-submit.component.mjs +3 -3
  51. package/form/esm2020/lib/directives/koala-autofocus.directive.mjs +3 -3
  52. package/form/esm2020/lib/dynamic-form/dynamic-form.component.mjs +3 -3
  53. package/form/esm2020/lib/dynamic-form/koala.dynamic-form.service.mjs +3 -3
  54. package/form/esm2020/lib/koala.form.module.mjs +4 -4
  55. package/form/fesm2015/koalarx-ui-form.mjs +16 -16
  56. package/form/fesm2020/koalarx-ui-form.mjs +16 -16
  57. package/icon/esm2020/lib/icon.component.mjs +3 -3
  58. package/icon/esm2020/lib/koala.icon.module.mjs +4 -4
  59. package/icon/fesm2015/koalarx-ui-icon.mjs +7 -7
  60. package/icon/fesm2020/koalarx-ui-icon.mjs +7 -7
  61. package/icons-animated/esm2020/lib/icons/downloading/downloading-icon-animated.component.mjs +3 -3
  62. package/icons-animated/esm2020/lib/icons/loading/loading-icon-animated.component.mjs +3 -3
  63. package/icons-animated/esm2020/lib/icons-animated.component.mjs +3 -3
  64. package/icons-animated/esm2020/lib/icons-animated.service.mjs +3 -3
  65. package/icons-animated/esm2020/lib/koala-icons-animated.module.mjs +4 -4
  66. package/icons-animated/fesm2015/koalarx-ui-icons-animated.mjs +16 -16
  67. package/icons-animated/fesm2020/koalarx-ui-icons-animated.mjs +16 -16
  68. package/list/esm2020/lib/koala.list.module.mjs +4 -4
  69. package/list/esm2020/lib/koala.list.service.mjs +3 -3
  70. package/list/esm2020/lib/list.component.mjs +5 -5
  71. package/list/esm2020/lib/providers/pagination/pagination.provider.mjs +3 -3
  72. package/list/fesm2015/koalarx-ui-list.mjs +14 -14
  73. package/list/fesm2015/koalarx-ui-list.mjs.map +1 -1
  74. package/list/fesm2020/koalarx-ui-list.mjs +14 -14
  75. package/list/fesm2020/koalarx-ui-list.mjs.map +1 -1
  76. package/menu/esm2020/lib/koala.menu.module.mjs +4 -4
  77. package/menu/esm2020/lib/koala.menu.service.mjs +3 -3
  78. package/menu/esm2020/lib/menu.component.mjs +3 -3
  79. package/menu/fesm2015/koalarx-ui-menu.mjs +10 -10
  80. package/menu/fesm2020/koalarx-ui-menu.mjs +10 -10
  81. package/package.json +1 -1
  82. package/question/esm2020/lib/dialog-question.component.mjs +3 -3
  83. package/question/esm2020/lib/koala.question.module.mjs +4 -4
  84. package/question/esm2020/lib/koala.question.service.mjs +3 -3
  85. package/question/fesm2015/koalarx-ui-question.mjs +10 -10
  86. package/question/fesm2020/koalarx-ui-question.mjs +10 -10
  87. package/snackbar/esm2020/lib/koala.snackbar.component.mjs +3 -3
  88. package/snackbar/esm2020/lib/koala.snackbar.module.mjs +4 -4
  89. package/snackbar/esm2020/lib/koala.snackbar.service.mjs +3 -3
  90. package/snackbar/fesm2015/koalarx-ui-snackbar.mjs +10 -10
  91. package/snackbar/fesm2020/koalarx-ui-snackbar.mjs +10 -10
@@ -142,15 +142,15 @@ export class ListComponent extends ListAbstract {
142
142
  this.customClass = this.config.customClass;
143
143
  }
144
144
  }
145
- ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ListComponent, deps: [{ token: i1.FormBuilder }, { token: i2.KoalaDynamicFormService }, { token: i3.DeviceDetectorService }], target: i0.ɵɵFactoryTarget.Component });
146
- ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: ListComponent, selector: "koala-list", inputs: { config: "config" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"list-container\" [ngClass]=\"customClass\">\n <div *ngIf=\"filterFormConfig\" class=\"list-filter\">\n <form (ngSubmit)=\"filterSubmit()\" [formGroup]=\"formFilter\">\n <div class=\"main\">\n <koala-dynamic-form\n *ngIf=\"filterFormConfig.main\"\n [form]=\"filterFormConfig.main.form\"\n [formConfig]=\"filterFormConfig.main.formConfig\"\n [setValues]=\"filterFormConfig.main.setValues\"\n [showFields]=\"filterFormConfig.main.showFields\">\n </koala-dynamic-form>\n <ul>\n <li *ngIf=\"filterFormConfig.advanced\" class=\"option\">\n <button (click)=\"toogleFilter()\" color=\"primary\" mat-icon-button matTooltip=\"Filtro Avan\u00E7ado\"\n matTooltipPosition=\"below\" type=\"button\">\n <mat-icon>tune</mat-icon>\n </button>\n </li>\n <li *ngIf=\"filterFormConfig.checkAndSearch\" class=\"checkbox-filter\">\n <mat-checkbox (click)=\"filterSubmit()\"\n [formControlName]=\"filterFormConfig.checkAndSearch.formControlName\">\n {{filterFormConfig.checkAndSearch.label}}\n </mat-checkbox>\n </li>\n <li class=\"option\">\n <koala-submit\n [btnSubmitDisabled]=\"btnSubmitDisabled\"\n [fg]=\"formFilter\"\n [iconButton]=\"true\"\n [loader]=\"loader\"\n icon=\"search\">\n </koala-submit>\n </li>\n </ul>\n </div>\n <div *ngIf=\"filterFormConfig.advanced\" [ngClass]=\"{'show': showAdvancedFilter}\" class=\"advanced\">\n <div class=\"container-filter\">\n <koala-dynamic-form\n [form]=\"filterFormConfig.advanced.form\"\n [formConfig]=\"filterFormConfig.advanced.formConfig\"\n [setValues]=\"filterFormConfig.advanced.setValues\"\n [showFields]=\"filterFormConfig.advanced.showFields\">\n </koala-dynamic-form>\n </div>\n </div>\n </form>\n </div>\n <nav class=\"menu-list\">\n <ul class=\"menu\">\n <li *ngIf=\"selection.hasValue()\">\n <ng-content select=\"[itemsSelectList]\"></ng-content>\n </li>\n <li *ngIf=\"selection.hasValue()\" class=\"text-center\">|</li>\n <li>\n <ng-content select=\"[itemsList]\"></ng-content>\n </li>\n </ul>\n </nav>\n <div *ngIf=\"loader | async\" class=\"spinner-container\" [ngClass]=\"{\n 'no-filter': !filterFormConfig\n }\">\n <mat-spinner diameter=\"40\"></mat-spinner>\n </div>\n <div class=\"list\">\n <table\n *ngIf=\"!emptyListComponent || (emptyListComponent && dataSource?.data?.length > 0) else emptyList\"\n [dataSource]=\"dataSource\"\n [matSortActive]=\"columnSort\"\n [id]=\"tableId\"\n multiTemplateDataRows\n class=\"table-hover\"\n mat-table\n matSort\n [matSortDirection]=\"sortDirection\" matSortDisableClear>\n <ng-container matColumnDef=\"select\">\n <th *matHeaderCellDef mat-header-cell>\n <mat-checkbox (change)=\"$event ? selectAll() : null\"\n [checked]=\"selection.hasValue() && allSelected$ | async\"\n [indeterminate]=\"selection.hasValue() && !(allSelected$ | async)\">\n </mat-checkbox>\n </th>\n <td *matCellDef=\"let item\" mat-cell>\n <mat-checkbox *ngIf=\"disabledCheckboxItemList ? !disabledCheckboxItemList(item) : true\"\n (change)=\"$event ? selection.toggle(item) : null\"\n (click)=\"$event.stopPropagation(); selectItem();\"\n [checked]=\"selection.isSelected(item)\">\n </mat-checkbox>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\" matColumnDef=\"collapseButton\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" mat-cell>\n <koala-button\n *ngIf=\"btnCollapseSubListConfig.show(item)\"\n (click)=\"expandedElement = expandedElement === item ? null : item\"\n [koalaIcon]=\"btnCollapseSubListConfig.koalaIcon\"\n [icon]=\"btnCollapseSubListConfig.icon\"\n [tooltip]=\"btnCollapseSubListConfig.tooltip\"\n [color]=\"btnCollapseSubListConfig.iconColor\"\n [backgroundColor]=\"btnCollapseSubListConfig.backgroundColor\"\n [koalaIconSize]=\"22\">\n </koala-button>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container *ngFor=\"let itemList of itemsList\" [matColumnDef]=\"itemList.columnDef\">\n <th *matHeaderCellDef [mat-sort-header]=\"itemList.sortHeader\" [disabled]=\"!itemList.sortHeader\" mat-header-cell>{{itemList.label}}</th>\n <td (dblclick)=\"itemList.dblClick(item)\" *matCellDef=\"let item\" mat-cell>\n\t <koala-dynamic-component *ngIf=\"itemList.itemComponent else itemText\"\n\t [dynamicComponent]=\"itemList.itemComponent(item)\"></koala-dynamic-component>\n\t <ng-template #itemText>\n\t {{itemList.itemNameProperty(item)}}\n\t </ng-template>\n </td>\n <td *matFooterCellDef mat-footer-cell>\n <koala-dynamic-component *ngIf=\"itemList.footer?.itemComponent else itemFooterText\"\n [dynamicComponent]=\"itemList.footer?.itemComponent(responseRequest)\"></koala-dynamic-component>\n <ng-template #itemFooterText>\n {{itemList.footer?.itemNameProperty(responseRequest)}}\n </ng-template>\n </td>\n </ng-container>\n\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\" matColumnDef=\"koalaListDetails\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" [attr.colspan]=\"columnsToShowInList.length\" mat-cell>\n <div class=\"item-detail\" [@detailExpand]=\"item == expandedElement ? 'expanded' : 'collapsed'\">\n <koala-list [config]=\"subListConfig(item)\"></koala-list>\n </div>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container matColumnDef=\"options\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" mat-cell>\n <div *ngIf=\"haveOptionsOnItemLine(item)\">\n <button [matMenuTriggerFor]=\"options\" mat-icon-button type=\"button\">\n <i class='material-icons'>more_vert</i>\n </button>\n <mat-menu #options=\"matMenu\" class=\"menu-list\" yPosition=\"below\">\n\t <div *ngFor=\"let option of itemsMenuListOptions\">\n\t <button\n\t\t (click)=\"option.action(item)\"\n\t\t *ngIf=\"option.havePermission && (\n\t\t !option.showByItemList ||\n\t\t option.showByItemList(item)\n\t )\"\n\t\t mat-menu-item>\n\t <mat-icon>{{option.icon}}</mat-icon>\n\t <span>{{option.name}}</span>\n\t </button>\n\t </div>\n </mat-menu>\n </div>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <tr *matHeaderRowDef=\"columnsToShowInList; sticky: true\" mat-header-row></tr>\n <tr *matRowDef=\"let item; columns: columnsToShowInList;\" mat-row></tr>\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\">\n <tr mat-row *matRowDef=\"let row; columns: ['koalaListDetails']\" class=\"item-detail-row\"></tr>\n </ng-container>\n <ng-container *ngIf=\"hasFooter()\">\n <tr *matFooterRowDef=\"columnsToShowInList; sticky: true\" mat-footer-row></tr>\n </ng-container>\n </table>\n <ng-template #emptyList>\n <koala-dynamic-component *ngIf=\"!(filterError$ | async) else errorList\" [dynamicComponent]=\"emptyListComponent\"></koala-dynamic-component>\n <ng-template #errorList>\n <koala-dynamic-component [dynamicComponent]=\"errorListComponent\"></koala-dynamic-component>\n </ng-template>\n </ng-template>\n </div>\n <div *ngIf=\"!hidePaginator\" class=\"content-paginator\">\n <mat-paginator\n [length]=\"qtdListResult\"\n [pageSizeOptions]=\"limitOptions\"\n [pageSize]=\"pageSize\"\n showFirstLastButtons>\n </mat-paginator>\n </div>\n</div>\n", styles: [".list-container{border-radius:10px;margin:0 auto;overflow-x:hidden;width:calc(100% - 40px);position:relative}.list-container .spinner-container{position:absolute;width:100%;height:calc(100vh - 320px);top:100px;left:0;background:rgba(0,0,0,.15);z-index:2;display:flex;align-items:center;justify-content:center}.list-container .spinner-container.no-filter{top:40px}.list-container .list{display:block;height:calc(100vh - 320px);overflow-y:auto;position:relative;top:0;width:100%;z-index:1}.list-container .list table:not(.table-not-selection) .mat-header-cell:first-child,.list-container .list .mat-header-cell:last-child,.list-container .list .mat-header-cell.mat-column-collapseButton{width:5%}.list-container .list .mat-header-cell:last-child{text-align:center}.list-container .list .mat-header-row,.list-container .list .mat-row,.list-container .list .mat-footer-row{height:35px}.list-container .list .mat-row .mat-icon-button{height:35px;line-height:35px;width:35px}.list-container .list tr.detail-row:not(.expanded-row){height:0}.list-container .list .element-detail{display:flex;overflow:hidden}.list-container .list table{position:relative;width:100%;font-family:OpenSans,sans-serif;font-size:1em}.list-container .list table.table-hover tr{cursor:pointer;transition:.2s}.list-container .list table th:first-child,.list-container .list table td:first-child{padding:0 8px 0 20px}.list-container .list table th{font-size:.7em;padding:0 8px;font-family:OpenSans,sans-serif;line-height:1em}.list-container .list table td{font-size:.8em;padding:0 8px;font-family:OpenSans,sans-serif}.list-container .list table th:last-child,.list-container .list table td:last-child{padding:0 20px 0 8px}.list-container .list .mat-list-item-content,.list-container .list .mat-list-item-content .mat-list-text{padding:0}.list-container .list-filter{box-shadow:0 1px 3px #0000004d;height:60px;position:relative;z-index:3}.list-container .list-filter .main{display:flex;justify-content:space-between;font-size:1.05em;height:60px;overflow:hidden;padding-left:2.5px;position:relative;width:100%}.list-container .list-filter .main koala-dynamic-form{width:100%}.list-container .list-filter .main mat-form-field{display:inline-block}.list-container .list-filter .main .mat-form-field-appearance-fill .mat-form-field-flex{background:transparent}.list-container .list-filter .main .mat-form-field .mat-form-field-wrapper{padding-bottom:0}.list-container .list-filter .main .mat-form-field-underline,.list-container .list-filter .main .mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper,.list-container .list-filter .main .mat-form-field-wrapper .mat-form-field-subscript-wrapper{display:none}.list-container .list-filter ul{display:flex;align-items:center;font-size:0;list-style:none;margin:0;padding:0 15px 0 0;position:relative;text-align:right}.list-container .list-filter ul li{display:inline-block;font-size:14px;padding:5px;position:relative}.list-container .list-filter ul li.option button{transition:.2s}.list-container .list-filter ul li.option button:hover{background:rgba(0,0,0,.1)}.list-container .list-filter ul li.checkbox-filter{text-align:center}.list-container .list-filter ul li.checkbox-filter .checkbox-inline{top:-5px}.list-container .list-filter ul li.checkbox-filter input[type=checkbox]{margin-left:0}.list-container .list-filter ul li.checkbox-filter label{padding:0!important;width:auto}.list-container .list-filter .advanced{border-top:1px solid #dddddd;box-shadow:0 3px 10px #0000004d;height:0;overflow-x:hidden;overflow-y:auto;position:absolute;top:60px;transition:.2s;width:100%;z-index:1}.list-container .list-filter .advanced .container-filter{padding:15px}.list-container .list-filter .advanced.show{height:360px}.list-container nav.menu-list{height:40px;margin:0;padding:3px 0;position:relative;transition:.2s;width:100%;z-index:2;box-sizing:border-box}.list-container nav.menu-list ul.menu{float:left;font-size:0;list-style:none;margin:0;padding:0 10px;position:relative;text-align:left}.list-container nav.menu-list ul.menu li{color:#616161;display:inline-block;font-size:16px;padding:0 4px}.list-container nav.menu-list ul.menu li button.mat-button,.list-container nav.menu-list ul.menu li button.koala-icon-button{display:inline-block}.list-container .content-paginator mat-paginator .mat-paginator-container{height:40px!important;min-height:40px!important}.list-container .content-paginator mat-paginator .mat-paginator-container .mat-paginator-page-size-select{height:40px;margin-top:0!important}.list-container .content-paginator mat-paginator .mat-paginator-container .mat-paginator-range-label{margin-top:3px}.list-container .content-paginator{position:relative;background:transparent!important;z-index:2;box-shadow:-3px 1px 3px #0000004d}.list-container .item-detail{overflow:hidden}.list-container tr.item-detail-row{height:0!important}.list-container tr.item-detail-row .list-container{width:100%!important}.list-container tr.item-detail-row .list-container .list{height:auto!important;max-height:250px!important}.list-container tr.item-detail-row .list-container nav.menu-list{display:none}@media (max-width: 900px){.list-container{width:100%;box-shadow:none!important;padding:15px 10px 15px 15px;box-sizing:border-box}.list-container .list{height:auto;overflow:unset}.list-container .list-filter .main{justify-content:flex-end}}\n"], components: [{ type: i2.DynamicFormComponent, selector: "koala-dynamic-form", inputs: ["form", "formConfig", "showFields", "showFieldsMoreItensConfig", "setValues", "tabIndexStart"] }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i2.BtnSubmitComponent, selector: "koala-submit", inputs: ["fg", "color", "btnLabel", "btnSubmitDisabled", "loader", "iconButton", "icon", "iconColor"] }, { type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { type: i8.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i9.ButtonComponent, selector: "koala-button", inputs: ["color", "backgroundColor", "icon", "text", "tooltip", "disabled", "koalaIcon", "koalaIconSize"] }, { type: i10.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { type: i11.KoalaDynamicComponentFactory, selector: "koala-dynamic-component", inputs: ["dynamicComponent"] }, { type: ListComponent, selector: "koala-list", inputs: ["config"] }, { type: i12.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i12.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i8.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i8.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { type: i8.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { type: i13.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }], directives: [{ type: i14.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i15.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i10.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: i8.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i8.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i8.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i8.MatCellDef, selector: "[matCellDef]" }, { type: i8.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i8.MatFooterCellDef, selector: "[matFooterCellDef]" }, { type: i8.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { type: i14.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i8.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i8.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { type: i8.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }], pipes: { "async": i14.AsyncPipe }, animations: [
145
+ ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: ListComponent, deps: [{ token: i1.FormBuilder }, { token: i2.KoalaDynamicFormService }, { token: i3.DeviceDetectorService }], target: i0.ɵɵFactoryTarget.Component });
146
+ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", type: ListComponent, selector: "koala-list", inputs: { config: "config" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"list-container\" [ngClass]=\"customClass\">\n <div *ngIf=\"filterFormConfig\" class=\"list-filter\">\n <form (ngSubmit)=\"filterSubmit()\" [formGroup]=\"formFilter\">\n <div class=\"main\">\n <koala-dynamic-form\n *ngIf=\"filterFormConfig.main\"\n [form]=\"filterFormConfig.main.form\"\n [formConfig]=\"filterFormConfig.main.formConfig\"\n [setValues]=\"filterFormConfig.main.setValues\"\n [showFields]=\"filterFormConfig.main.showFields\">\n </koala-dynamic-form>\n <ul>\n <li *ngIf=\"filterFormConfig.advanced\" class=\"option\">\n <button (click)=\"toogleFilter()\" color=\"primary\" mat-icon-button matTooltip=\"Filtro Avan\u00E7ado\"\n matTooltipPosition=\"below\" type=\"button\">\n <mat-icon>tune</mat-icon>\n </button>\n </li>\n <li *ngIf=\"filterFormConfig.checkAndSearch\" class=\"checkbox-filter\">\n <mat-checkbox (click)=\"filterSubmit()\"\n [formControlName]=\"filterFormConfig.checkAndSearch.formControlName\">\n {{filterFormConfig.checkAndSearch.label}}\n </mat-checkbox>\n </li>\n <li class=\"option\">\n <koala-submit\n [btnSubmitDisabled]=\"btnSubmitDisabled\"\n [fg]=\"formFilter\"\n [iconButton]=\"true\"\n [loader]=\"loader\"\n icon=\"search\">\n </koala-submit>\n </li>\n </ul>\n </div>\n <div *ngIf=\"filterFormConfig.advanced\" [ngClass]=\"{'show': showAdvancedFilter}\" class=\"advanced\">\n <div class=\"container-filter\">\n <koala-dynamic-form\n [form]=\"filterFormConfig.advanced.form\"\n [formConfig]=\"filterFormConfig.advanced.formConfig\"\n [setValues]=\"filterFormConfig.advanced.setValues\"\n [showFields]=\"filterFormConfig.advanced.showFields\">\n </koala-dynamic-form>\n </div>\n </div>\n </form>\n </div>\n <nav class=\"menu-list\">\n <ul class=\"menu\">\n <li *ngIf=\"selection.hasValue()\">\n <ng-content select=\"[itemsSelectList]\"></ng-content>\n </li>\n <li *ngIf=\"selection.hasValue()\" class=\"text-center\">|</li>\n <li>\n <ng-content select=\"[itemsList]\"></ng-content>\n </li>\n </ul>\n </nav>\n <div *ngIf=\"loader | async\" class=\"spinner-container\" [ngClass]=\"{\n 'no-filter': !filterFormConfig\n }\">\n <mat-spinner color=\"primary\" diameter=\"40\"></mat-spinner>\n </div>\n <div class=\"list\">\n <table\n *ngIf=\"!emptyListComponent || (emptyListComponent && dataSource?.data?.length > 0) else emptyList\"\n [dataSource]=\"dataSource\"\n [matSortActive]=\"columnSort\"\n [id]=\"tableId\"\n multiTemplateDataRows\n class=\"table-hover\"\n mat-table\n matSort\n [matSortDirection]=\"sortDirection\" matSortDisableClear>\n <ng-container matColumnDef=\"select\">\n <th *matHeaderCellDef mat-header-cell>\n <mat-checkbox (change)=\"$event ? selectAll() : null\"\n [checked]=\"selection.hasValue() && allSelected$ | async\"\n [indeterminate]=\"selection.hasValue() && !(allSelected$ | async)\">\n </mat-checkbox>\n </th>\n <td *matCellDef=\"let item\" mat-cell>\n <mat-checkbox *ngIf=\"disabledCheckboxItemList ? !disabledCheckboxItemList(item) : true\"\n (change)=\"$event ? selection.toggle(item) : null\"\n (click)=\"$event.stopPropagation(); selectItem();\"\n [checked]=\"selection.isSelected(item)\">\n </mat-checkbox>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\" matColumnDef=\"collapseButton\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" mat-cell>\n <koala-button\n *ngIf=\"btnCollapseSubListConfig.show(item)\"\n (click)=\"expandedElement = expandedElement === item ? null : item\"\n [koalaIcon]=\"btnCollapseSubListConfig.koalaIcon\"\n [icon]=\"btnCollapseSubListConfig.icon\"\n [tooltip]=\"btnCollapseSubListConfig.tooltip\"\n [color]=\"btnCollapseSubListConfig.iconColor\"\n [backgroundColor]=\"btnCollapseSubListConfig.backgroundColor\"\n [koalaIconSize]=\"22\">\n </koala-button>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container *ngFor=\"let itemList of itemsList\" [matColumnDef]=\"itemList.columnDef\">\n <th *matHeaderCellDef [mat-sort-header]=\"itemList.sortHeader\" [disabled]=\"!itemList.sortHeader\" mat-header-cell>{{itemList.label}}</th>\n <td (dblclick)=\"itemList.dblClick(item)\" *matCellDef=\"let item\" mat-cell>\n\t <koala-dynamic-component *ngIf=\"itemList.itemComponent else itemText\"\n\t [dynamicComponent]=\"itemList.itemComponent(item)\"></koala-dynamic-component>\n\t <ng-template #itemText>\n\t {{itemList.itemNameProperty(item)}}\n\t </ng-template>\n </td>\n <td *matFooterCellDef mat-footer-cell>\n <koala-dynamic-component *ngIf=\"itemList.footer?.itemComponent else itemFooterText\"\n [dynamicComponent]=\"itemList.footer?.itemComponent(responseRequest)\"></koala-dynamic-component>\n <ng-template #itemFooterText>\n {{itemList.footer?.itemNameProperty(responseRequest)}}\n </ng-template>\n </td>\n </ng-container>\n\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\" matColumnDef=\"koalaListDetails\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" [attr.colspan]=\"columnsToShowInList.length\" mat-cell>\n <div class=\"item-detail\" [@detailExpand]=\"item == expandedElement ? 'expanded' : 'collapsed'\">\n <koala-list [config]=\"subListConfig(item)\"></koala-list>\n </div>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container matColumnDef=\"options\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" mat-cell>\n <div *ngIf=\"haveOptionsOnItemLine(item)\">\n <button [matMenuTriggerFor]=\"options\" mat-icon-button type=\"button\">\n <i class='material-icons'>more_vert</i>\n </button>\n <mat-menu #options=\"matMenu\" class=\"menu-list\" yPosition=\"below\">\n\t <div *ngFor=\"let option of itemsMenuListOptions\">\n\t <button\n\t\t (click)=\"option.action(item)\"\n\t\t *ngIf=\"option.havePermission && (\n\t\t !option.showByItemList ||\n\t\t option.showByItemList(item)\n\t )\"\n\t\t mat-menu-item>\n\t <mat-icon>{{option.icon}}</mat-icon>\n\t <span>{{option.name}}</span>\n\t </button>\n\t </div>\n </mat-menu>\n </div>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <tr *matHeaderRowDef=\"columnsToShowInList; sticky: true\" mat-header-row></tr>\n <tr *matRowDef=\"let item; columns: columnsToShowInList;\" mat-row></tr>\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\">\n <tr mat-row *matRowDef=\"let row; columns: ['koalaListDetails']\" class=\"item-detail-row\"></tr>\n </ng-container>\n <ng-container *ngIf=\"hasFooter()\">\n <tr *matFooterRowDef=\"columnsToShowInList; sticky: true\" mat-footer-row></tr>\n </ng-container>\n </table>\n <ng-template #emptyList>\n <koala-dynamic-component *ngIf=\"!(filterError$ | async) else errorList\" [dynamicComponent]=\"emptyListComponent\"></koala-dynamic-component>\n <ng-template #errorList>\n <koala-dynamic-component [dynamicComponent]=\"errorListComponent\"></koala-dynamic-component>\n </ng-template>\n </ng-template>\n </div>\n <div *ngIf=\"!hidePaginator\" class=\"content-paginator\">\n <mat-paginator\n [length]=\"qtdListResult\"\n [pageSizeOptions]=\"limitOptions\"\n [pageSize]=\"pageSize\"\n showFirstLastButtons>\n </mat-paginator>\n </div>\n</div>\n", styles: [".list-container{border-radius:10px;margin:0 auto;overflow-x:hidden;width:calc(100% - 40px);position:relative}.list-container .spinner-container{position:absolute;width:100%;height:calc(100vh - 320px);top:100px;left:0;background:rgba(0,0,0,.15);z-index:2;display:flex;align-items:center;justify-content:center}.list-container .spinner-container.no-filter{top:40px}.list-container .list{display:block;height:calc(100vh - 320px);overflow-y:auto;position:relative;top:0;width:100%;z-index:1}.list-container .list table:not(.table-not-selection) .mat-header-cell:first-child,.list-container .list .mat-header-cell:last-child,.list-container .list .mat-header-cell.mat-column-collapseButton{width:5%}.list-container .list .mat-header-cell:last-child{text-align:center}.list-container .list .mat-header-row,.list-container .list .mat-row,.list-container .list .mat-footer-row{height:35px}.list-container .list .mat-row .mat-icon-button{height:35px;line-height:35px;width:35px}.list-container .list tr.detail-row:not(.expanded-row){height:0}.list-container .list .element-detail{display:flex;overflow:hidden}.list-container .list table{position:relative;width:100%;font-family:OpenSans,sans-serif;font-size:1em}.list-container .list table.table-hover tr{cursor:pointer;transition:.2s}.list-container .list table th:first-child,.list-container .list table td:first-child{padding:0 8px 0 20px}.list-container .list table th{font-size:.7em;padding:0 8px;font-family:OpenSans,sans-serif;line-height:1em}.list-container .list table td{font-size:.8em;padding:0 8px;font-family:OpenSans,sans-serif}.list-container .list table th:last-child,.list-container .list table td:last-child{padding:0 20px 0 8px}.list-container .list .mat-list-item-content,.list-container .list .mat-list-item-content .mat-list-text{padding:0}.list-container .list-filter{box-shadow:0 1px 3px #0000004d;height:60px;position:relative;z-index:3}.list-container .list-filter .main{display:flex;justify-content:space-between;font-size:1.05em;height:60px;overflow:hidden;padding-left:2.5px;position:relative;width:100%}.list-container .list-filter .main koala-dynamic-form{width:100%}.list-container .list-filter .main mat-form-field{display:inline-block}.list-container .list-filter .main .mat-form-field-appearance-fill .mat-form-field-flex{background:transparent}.list-container .list-filter .main .mat-form-field .mat-form-field-wrapper{padding-bottom:0}.list-container .list-filter .main .mat-form-field-underline,.list-container .list-filter .main .mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper,.list-container .list-filter .main .mat-form-field-wrapper .mat-form-field-subscript-wrapper{display:none}.list-container .list-filter ul{display:flex;align-items:center;font-size:0;list-style:none;margin:0;padding:0 15px 0 0;position:relative;text-align:right}.list-container .list-filter ul li{display:inline-block;font-size:14px;padding:5px;position:relative}.list-container .list-filter ul li.option button{transition:.2s}.list-container .list-filter ul li.option button:hover{background:rgba(0,0,0,.1)}.list-container .list-filter ul li.checkbox-filter{text-align:center}.list-container .list-filter ul li.checkbox-filter .checkbox-inline{top:-5px}.list-container .list-filter ul li.checkbox-filter input[type=checkbox]{margin-left:0}.list-container .list-filter ul li.checkbox-filter label{padding:0!important;width:auto}.list-container .list-filter .advanced{border-top:1px solid #dddddd;box-shadow:0 3px 10px #0000004d;height:0;overflow-x:hidden;overflow-y:auto;position:absolute;top:60px;transition:.2s;width:100%;z-index:1}.list-container .list-filter .advanced .container-filter{padding:15px}.list-container .list-filter .advanced.show{height:360px}.list-container nav.menu-list{height:40px;margin:0;padding:3px 0;position:relative;transition:.2s;width:100%;z-index:2;box-sizing:border-box}.list-container nav.menu-list ul.menu{float:left;font-size:0;list-style:none;margin:0;padding:0 10px;position:relative;text-align:left}.list-container nav.menu-list ul.menu li{color:#616161;display:inline-block;font-size:16px;padding:0 4px}.list-container nav.menu-list ul.menu li button.mat-button,.list-container nav.menu-list ul.menu li button.koala-icon-button{display:inline-block}.list-container .content-paginator mat-paginator .mat-paginator-container{height:40px!important;min-height:40px!important}.list-container .content-paginator mat-paginator .mat-paginator-container .mat-paginator-page-size-select{height:40px;margin-top:0!important}.list-container .content-paginator mat-paginator .mat-paginator-container .mat-paginator-range-label{margin-top:3px}.list-container .content-paginator{position:relative;background:transparent!important;z-index:2;box-shadow:-3px 1px 3px #0000004d}.list-container .item-detail{overflow:hidden}.list-container tr.item-detail-row{height:0!important}.list-container tr.item-detail-row .list-container{width:100%!important}.list-container tr.item-detail-row .list-container .list{height:auto!important;max-height:250px!important}.list-container tr.item-detail-row .list-container nav.menu-list{display:none}@media (max-width: 900px){.list-container{width:100%;box-shadow:none!important;padding:15px 10px 15px 15px;box-sizing:border-box}.list-container .list{height:auto;overflow:unset}.list-container .list-filter .main{justify-content:flex-end}}\n"], components: [{ type: i2.DynamicFormComponent, selector: "koala-dynamic-form", inputs: ["form", "formConfig", "showFields", "showFieldsMoreItensConfig", "setValues", "tabIndexStart"] }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i2.BtnSubmitComponent, selector: "koala-submit", inputs: ["fg", "color", "btnLabel", "btnSubmitDisabled", "loader", "iconButton", "icon", "iconColor"] }, { type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { type: i8.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i9.ButtonComponent, selector: "koala-button", inputs: ["color", "backgroundColor", "icon", "text", "tooltip", "disabled", "koalaIcon", "koalaIconSize"] }, { type: i10.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { type: i11.KoalaDynamicComponentFactory, selector: "koala-dynamic-component", inputs: ["dynamicComponent"] }, { type: ListComponent, selector: "koala-list", inputs: ["config"] }, { type: i12.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i12.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i8.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i8.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { type: i8.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { type: i13.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }], directives: [{ type: i14.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i15.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i10.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: i8.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i8.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i8.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i8.MatCellDef, selector: "[matCellDef]" }, { type: i8.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i8.MatFooterCellDef, selector: "[matFooterCellDef]" }, { type: i8.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { type: i14.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i8.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i8.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { type: i8.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }], pipes: { "async": i14.AsyncPipe }, animations: [
147
147
  trigger('detailExpand', [
148
148
  state('collapsed', style({ height: '0px', minHeight: '0' })),
149
149
  state('expanded', style({ height: '*' })),
150
150
  transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
151
151
  ]),
152
152
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
153
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ListComponent, decorators: [{
153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: ListComponent, decorators: [{
154
154
  type: Component,
155
155
  args: [{ selector: 'koala-list', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
156
156
  trigger('detailExpand', [
@@ -158,7 +158,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
158
158
  state('expanded', style({ height: '*' })),
159
159
  transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
160
160
  ]),
161
- ], template: "<div class=\"list-container\" [ngClass]=\"customClass\">\n <div *ngIf=\"filterFormConfig\" class=\"list-filter\">\n <form (ngSubmit)=\"filterSubmit()\" [formGroup]=\"formFilter\">\n <div class=\"main\">\n <koala-dynamic-form\n *ngIf=\"filterFormConfig.main\"\n [form]=\"filterFormConfig.main.form\"\n [formConfig]=\"filterFormConfig.main.formConfig\"\n [setValues]=\"filterFormConfig.main.setValues\"\n [showFields]=\"filterFormConfig.main.showFields\">\n </koala-dynamic-form>\n <ul>\n <li *ngIf=\"filterFormConfig.advanced\" class=\"option\">\n <button (click)=\"toogleFilter()\" color=\"primary\" mat-icon-button matTooltip=\"Filtro Avan\u00E7ado\"\n matTooltipPosition=\"below\" type=\"button\">\n <mat-icon>tune</mat-icon>\n </button>\n </li>\n <li *ngIf=\"filterFormConfig.checkAndSearch\" class=\"checkbox-filter\">\n <mat-checkbox (click)=\"filterSubmit()\"\n [formControlName]=\"filterFormConfig.checkAndSearch.formControlName\">\n {{filterFormConfig.checkAndSearch.label}}\n </mat-checkbox>\n </li>\n <li class=\"option\">\n <koala-submit\n [btnSubmitDisabled]=\"btnSubmitDisabled\"\n [fg]=\"formFilter\"\n [iconButton]=\"true\"\n [loader]=\"loader\"\n icon=\"search\">\n </koala-submit>\n </li>\n </ul>\n </div>\n <div *ngIf=\"filterFormConfig.advanced\" [ngClass]=\"{'show': showAdvancedFilter}\" class=\"advanced\">\n <div class=\"container-filter\">\n <koala-dynamic-form\n [form]=\"filterFormConfig.advanced.form\"\n [formConfig]=\"filterFormConfig.advanced.formConfig\"\n [setValues]=\"filterFormConfig.advanced.setValues\"\n [showFields]=\"filterFormConfig.advanced.showFields\">\n </koala-dynamic-form>\n </div>\n </div>\n </form>\n </div>\n <nav class=\"menu-list\">\n <ul class=\"menu\">\n <li *ngIf=\"selection.hasValue()\">\n <ng-content select=\"[itemsSelectList]\"></ng-content>\n </li>\n <li *ngIf=\"selection.hasValue()\" class=\"text-center\">|</li>\n <li>\n <ng-content select=\"[itemsList]\"></ng-content>\n </li>\n </ul>\n </nav>\n <div *ngIf=\"loader | async\" class=\"spinner-container\" [ngClass]=\"{\n 'no-filter': !filterFormConfig\n }\">\n <mat-spinner diameter=\"40\"></mat-spinner>\n </div>\n <div class=\"list\">\n <table\n *ngIf=\"!emptyListComponent || (emptyListComponent && dataSource?.data?.length > 0) else emptyList\"\n [dataSource]=\"dataSource\"\n [matSortActive]=\"columnSort\"\n [id]=\"tableId\"\n multiTemplateDataRows\n class=\"table-hover\"\n mat-table\n matSort\n [matSortDirection]=\"sortDirection\" matSortDisableClear>\n <ng-container matColumnDef=\"select\">\n <th *matHeaderCellDef mat-header-cell>\n <mat-checkbox (change)=\"$event ? selectAll() : null\"\n [checked]=\"selection.hasValue() && allSelected$ | async\"\n [indeterminate]=\"selection.hasValue() && !(allSelected$ | async)\">\n </mat-checkbox>\n </th>\n <td *matCellDef=\"let item\" mat-cell>\n <mat-checkbox *ngIf=\"disabledCheckboxItemList ? !disabledCheckboxItemList(item) : true\"\n (change)=\"$event ? selection.toggle(item) : null\"\n (click)=\"$event.stopPropagation(); selectItem();\"\n [checked]=\"selection.isSelected(item)\">\n </mat-checkbox>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\" matColumnDef=\"collapseButton\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" mat-cell>\n <koala-button\n *ngIf=\"btnCollapseSubListConfig.show(item)\"\n (click)=\"expandedElement = expandedElement === item ? null : item\"\n [koalaIcon]=\"btnCollapseSubListConfig.koalaIcon\"\n [icon]=\"btnCollapseSubListConfig.icon\"\n [tooltip]=\"btnCollapseSubListConfig.tooltip\"\n [color]=\"btnCollapseSubListConfig.iconColor\"\n [backgroundColor]=\"btnCollapseSubListConfig.backgroundColor\"\n [koalaIconSize]=\"22\">\n </koala-button>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container *ngFor=\"let itemList of itemsList\" [matColumnDef]=\"itemList.columnDef\">\n <th *matHeaderCellDef [mat-sort-header]=\"itemList.sortHeader\" [disabled]=\"!itemList.sortHeader\" mat-header-cell>{{itemList.label}}</th>\n <td (dblclick)=\"itemList.dblClick(item)\" *matCellDef=\"let item\" mat-cell>\n\t <koala-dynamic-component *ngIf=\"itemList.itemComponent else itemText\"\n\t [dynamicComponent]=\"itemList.itemComponent(item)\"></koala-dynamic-component>\n\t <ng-template #itemText>\n\t {{itemList.itemNameProperty(item)}}\n\t </ng-template>\n </td>\n <td *matFooterCellDef mat-footer-cell>\n <koala-dynamic-component *ngIf=\"itemList.footer?.itemComponent else itemFooterText\"\n [dynamicComponent]=\"itemList.footer?.itemComponent(responseRequest)\"></koala-dynamic-component>\n <ng-template #itemFooterText>\n {{itemList.footer?.itemNameProperty(responseRequest)}}\n </ng-template>\n </td>\n </ng-container>\n\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\" matColumnDef=\"koalaListDetails\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" [attr.colspan]=\"columnsToShowInList.length\" mat-cell>\n <div class=\"item-detail\" [@detailExpand]=\"item == expandedElement ? 'expanded' : 'collapsed'\">\n <koala-list [config]=\"subListConfig(item)\"></koala-list>\n </div>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container matColumnDef=\"options\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" mat-cell>\n <div *ngIf=\"haveOptionsOnItemLine(item)\">\n <button [matMenuTriggerFor]=\"options\" mat-icon-button type=\"button\">\n <i class='material-icons'>more_vert</i>\n </button>\n <mat-menu #options=\"matMenu\" class=\"menu-list\" yPosition=\"below\">\n\t <div *ngFor=\"let option of itemsMenuListOptions\">\n\t <button\n\t\t (click)=\"option.action(item)\"\n\t\t *ngIf=\"option.havePermission && (\n\t\t !option.showByItemList ||\n\t\t option.showByItemList(item)\n\t )\"\n\t\t mat-menu-item>\n\t <mat-icon>{{option.icon}}</mat-icon>\n\t <span>{{option.name}}</span>\n\t </button>\n\t </div>\n </mat-menu>\n </div>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <tr *matHeaderRowDef=\"columnsToShowInList; sticky: true\" mat-header-row></tr>\n <tr *matRowDef=\"let item; columns: columnsToShowInList;\" mat-row></tr>\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\">\n <tr mat-row *matRowDef=\"let row; columns: ['koalaListDetails']\" class=\"item-detail-row\"></tr>\n </ng-container>\n <ng-container *ngIf=\"hasFooter()\">\n <tr *matFooterRowDef=\"columnsToShowInList; sticky: true\" mat-footer-row></tr>\n </ng-container>\n </table>\n <ng-template #emptyList>\n <koala-dynamic-component *ngIf=\"!(filterError$ | async) else errorList\" [dynamicComponent]=\"emptyListComponent\"></koala-dynamic-component>\n <ng-template #errorList>\n <koala-dynamic-component [dynamicComponent]=\"errorListComponent\"></koala-dynamic-component>\n </ng-template>\n </ng-template>\n </div>\n <div *ngIf=\"!hidePaginator\" class=\"content-paginator\">\n <mat-paginator\n [length]=\"qtdListResult\"\n [pageSizeOptions]=\"limitOptions\"\n [pageSize]=\"pageSize\"\n showFirstLastButtons>\n </mat-paginator>\n </div>\n</div>\n", styles: [".list-container{border-radius:10px;margin:0 auto;overflow-x:hidden;width:calc(100% - 40px);position:relative}.list-container .spinner-container{position:absolute;width:100%;height:calc(100vh - 320px);top:100px;left:0;background:rgba(0,0,0,.15);z-index:2;display:flex;align-items:center;justify-content:center}.list-container .spinner-container.no-filter{top:40px}.list-container .list{display:block;height:calc(100vh - 320px);overflow-y:auto;position:relative;top:0;width:100%;z-index:1}.list-container .list table:not(.table-not-selection) .mat-header-cell:first-child,.list-container .list .mat-header-cell:last-child,.list-container .list .mat-header-cell.mat-column-collapseButton{width:5%}.list-container .list .mat-header-cell:last-child{text-align:center}.list-container .list .mat-header-row,.list-container .list .mat-row,.list-container .list .mat-footer-row{height:35px}.list-container .list .mat-row .mat-icon-button{height:35px;line-height:35px;width:35px}.list-container .list tr.detail-row:not(.expanded-row){height:0}.list-container .list .element-detail{display:flex;overflow:hidden}.list-container .list table{position:relative;width:100%;font-family:OpenSans,sans-serif;font-size:1em}.list-container .list table.table-hover tr{cursor:pointer;transition:.2s}.list-container .list table th:first-child,.list-container .list table td:first-child{padding:0 8px 0 20px}.list-container .list table th{font-size:.7em;padding:0 8px;font-family:OpenSans,sans-serif;line-height:1em}.list-container .list table td{font-size:.8em;padding:0 8px;font-family:OpenSans,sans-serif}.list-container .list table th:last-child,.list-container .list table td:last-child{padding:0 20px 0 8px}.list-container .list .mat-list-item-content,.list-container .list .mat-list-item-content .mat-list-text{padding:0}.list-container .list-filter{box-shadow:0 1px 3px #0000004d;height:60px;position:relative;z-index:3}.list-container .list-filter .main{display:flex;justify-content:space-between;font-size:1.05em;height:60px;overflow:hidden;padding-left:2.5px;position:relative;width:100%}.list-container .list-filter .main koala-dynamic-form{width:100%}.list-container .list-filter .main mat-form-field{display:inline-block}.list-container .list-filter .main .mat-form-field-appearance-fill .mat-form-field-flex{background:transparent}.list-container .list-filter .main .mat-form-field .mat-form-field-wrapper{padding-bottom:0}.list-container .list-filter .main .mat-form-field-underline,.list-container .list-filter .main .mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper,.list-container .list-filter .main .mat-form-field-wrapper .mat-form-field-subscript-wrapper{display:none}.list-container .list-filter ul{display:flex;align-items:center;font-size:0;list-style:none;margin:0;padding:0 15px 0 0;position:relative;text-align:right}.list-container .list-filter ul li{display:inline-block;font-size:14px;padding:5px;position:relative}.list-container .list-filter ul li.option button{transition:.2s}.list-container .list-filter ul li.option button:hover{background:rgba(0,0,0,.1)}.list-container .list-filter ul li.checkbox-filter{text-align:center}.list-container .list-filter ul li.checkbox-filter .checkbox-inline{top:-5px}.list-container .list-filter ul li.checkbox-filter input[type=checkbox]{margin-left:0}.list-container .list-filter ul li.checkbox-filter label{padding:0!important;width:auto}.list-container .list-filter .advanced{border-top:1px solid #dddddd;box-shadow:0 3px 10px #0000004d;height:0;overflow-x:hidden;overflow-y:auto;position:absolute;top:60px;transition:.2s;width:100%;z-index:1}.list-container .list-filter .advanced .container-filter{padding:15px}.list-container .list-filter .advanced.show{height:360px}.list-container nav.menu-list{height:40px;margin:0;padding:3px 0;position:relative;transition:.2s;width:100%;z-index:2;box-sizing:border-box}.list-container nav.menu-list ul.menu{float:left;font-size:0;list-style:none;margin:0;padding:0 10px;position:relative;text-align:left}.list-container nav.menu-list ul.menu li{color:#616161;display:inline-block;font-size:16px;padding:0 4px}.list-container nav.menu-list ul.menu li button.mat-button,.list-container nav.menu-list ul.menu li button.koala-icon-button{display:inline-block}.list-container .content-paginator mat-paginator .mat-paginator-container{height:40px!important;min-height:40px!important}.list-container .content-paginator mat-paginator .mat-paginator-container .mat-paginator-page-size-select{height:40px;margin-top:0!important}.list-container .content-paginator mat-paginator .mat-paginator-container .mat-paginator-range-label{margin-top:3px}.list-container .content-paginator{position:relative;background:transparent!important;z-index:2;box-shadow:-3px 1px 3px #0000004d}.list-container .item-detail{overflow:hidden}.list-container tr.item-detail-row{height:0!important}.list-container tr.item-detail-row .list-container{width:100%!important}.list-container tr.item-detail-row .list-container .list{height:auto!important;max-height:250px!important}.list-container tr.item-detail-row .list-container nav.menu-list{display:none}@media (max-width: 900px){.list-container{width:100%;box-shadow:none!important;padding:15px 10px 15px 15px;box-sizing:border-box}.list-container .list{height:auto;overflow:unset}.list-container .list-filter .main{justify-content:flex-end}}\n"] }]
161
+ ], template: "<div class=\"list-container\" [ngClass]=\"customClass\">\n <div *ngIf=\"filterFormConfig\" class=\"list-filter\">\n <form (ngSubmit)=\"filterSubmit()\" [formGroup]=\"formFilter\">\n <div class=\"main\">\n <koala-dynamic-form\n *ngIf=\"filterFormConfig.main\"\n [form]=\"filterFormConfig.main.form\"\n [formConfig]=\"filterFormConfig.main.formConfig\"\n [setValues]=\"filterFormConfig.main.setValues\"\n [showFields]=\"filterFormConfig.main.showFields\">\n </koala-dynamic-form>\n <ul>\n <li *ngIf=\"filterFormConfig.advanced\" class=\"option\">\n <button (click)=\"toogleFilter()\" color=\"primary\" mat-icon-button matTooltip=\"Filtro Avan\u00E7ado\"\n matTooltipPosition=\"below\" type=\"button\">\n <mat-icon>tune</mat-icon>\n </button>\n </li>\n <li *ngIf=\"filterFormConfig.checkAndSearch\" class=\"checkbox-filter\">\n <mat-checkbox (click)=\"filterSubmit()\"\n [formControlName]=\"filterFormConfig.checkAndSearch.formControlName\">\n {{filterFormConfig.checkAndSearch.label}}\n </mat-checkbox>\n </li>\n <li class=\"option\">\n <koala-submit\n [btnSubmitDisabled]=\"btnSubmitDisabled\"\n [fg]=\"formFilter\"\n [iconButton]=\"true\"\n [loader]=\"loader\"\n icon=\"search\">\n </koala-submit>\n </li>\n </ul>\n </div>\n <div *ngIf=\"filterFormConfig.advanced\" [ngClass]=\"{'show': showAdvancedFilter}\" class=\"advanced\">\n <div class=\"container-filter\">\n <koala-dynamic-form\n [form]=\"filterFormConfig.advanced.form\"\n [formConfig]=\"filterFormConfig.advanced.formConfig\"\n [setValues]=\"filterFormConfig.advanced.setValues\"\n [showFields]=\"filterFormConfig.advanced.showFields\">\n </koala-dynamic-form>\n </div>\n </div>\n </form>\n </div>\n <nav class=\"menu-list\">\n <ul class=\"menu\">\n <li *ngIf=\"selection.hasValue()\">\n <ng-content select=\"[itemsSelectList]\"></ng-content>\n </li>\n <li *ngIf=\"selection.hasValue()\" class=\"text-center\">|</li>\n <li>\n <ng-content select=\"[itemsList]\"></ng-content>\n </li>\n </ul>\n </nav>\n <div *ngIf=\"loader | async\" class=\"spinner-container\" [ngClass]=\"{\n 'no-filter': !filterFormConfig\n }\">\n <mat-spinner color=\"primary\" diameter=\"40\"></mat-spinner>\n </div>\n <div class=\"list\">\n <table\n *ngIf=\"!emptyListComponent || (emptyListComponent && dataSource?.data?.length > 0) else emptyList\"\n [dataSource]=\"dataSource\"\n [matSortActive]=\"columnSort\"\n [id]=\"tableId\"\n multiTemplateDataRows\n class=\"table-hover\"\n mat-table\n matSort\n [matSortDirection]=\"sortDirection\" matSortDisableClear>\n <ng-container matColumnDef=\"select\">\n <th *matHeaderCellDef mat-header-cell>\n <mat-checkbox (change)=\"$event ? selectAll() : null\"\n [checked]=\"selection.hasValue() && allSelected$ | async\"\n [indeterminate]=\"selection.hasValue() && !(allSelected$ | async)\">\n </mat-checkbox>\n </th>\n <td *matCellDef=\"let item\" mat-cell>\n <mat-checkbox *ngIf=\"disabledCheckboxItemList ? !disabledCheckboxItemList(item) : true\"\n (change)=\"$event ? selection.toggle(item) : null\"\n (click)=\"$event.stopPropagation(); selectItem();\"\n [checked]=\"selection.isSelected(item)\">\n </mat-checkbox>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\" matColumnDef=\"collapseButton\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" mat-cell>\n <koala-button\n *ngIf=\"btnCollapseSubListConfig.show(item)\"\n (click)=\"expandedElement = expandedElement === item ? null : item\"\n [koalaIcon]=\"btnCollapseSubListConfig.koalaIcon\"\n [icon]=\"btnCollapseSubListConfig.icon\"\n [tooltip]=\"btnCollapseSubListConfig.tooltip\"\n [color]=\"btnCollapseSubListConfig.iconColor\"\n [backgroundColor]=\"btnCollapseSubListConfig.backgroundColor\"\n [koalaIconSize]=\"22\">\n </koala-button>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container *ngFor=\"let itemList of itemsList\" [matColumnDef]=\"itemList.columnDef\">\n <th *matHeaderCellDef [mat-sort-header]=\"itemList.sortHeader\" [disabled]=\"!itemList.sortHeader\" mat-header-cell>{{itemList.label}}</th>\n <td (dblclick)=\"itemList.dblClick(item)\" *matCellDef=\"let item\" mat-cell>\n\t <koala-dynamic-component *ngIf=\"itemList.itemComponent else itemText\"\n\t [dynamicComponent]=\"itemList.itemComponent(item)\"></koala-dynamic-component>\n\t <ng-template #itemText>\n\t {{itemList.itemNameProperty(item)}}\n\t </ng-template>\n </td>\n <td *matFooterCellDef mat-footer-cell>\n <koala-dynamic-component *ngIf=\"itemList.footer?.itemComponent else itemFooterText\"\n [dynamicComponent]=\"itemList.footer?.itemComponent(responseRequest)\"></koala-dynamic-component>\n <ng-template #itemFooterText>\n {{itemList.footer?.itemNameProperty(responseRequest)}}\n </ng-template>\n </td>\n </ng-container>\n\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\" matColumnDef=\"koalaListDetails\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" [attr.colspan]=\"columnsToShowInList.length\" mat-cell>\n <div class=\"item-detail\" [@detailExpand]=\"item == expandedElement ? 'expanded' : 'collapsed'\">\n <koala-list [config]=\"subListConfig(item)\"></koala-list>\n </div>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container matColumnDef=\"options\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" mat-cell>\n <div *ngIf=\"haveOptionsOnItemLine(item)\">\n <button [matMenuTriggerFor]=\"options\" mat-icon-button type=\"button\">\n <i class='material-icons'>more_vert</i>\n </button>\n <mat-menu #options=\"matMenu\" class=\"menu-list\" yPosition=\"below\">\n\t <div *ngFor=\"let option of itemsMenuListOptions\">\n\t <button\n\t\t (click)=\"option.action(item)\"\n\t\t *ngIf=\"option.havePermission && (\n\t\t !option.showByItemList ||\n\t\t option.showByItemList(item)\n\t )\"\n\t\t mat-menu-item>\n\t <mat-icon>{{option.icon}}</mat-icon>\n\t <span>{{option.name}}</span>\n\t </button>\n\t </div>\n </mat-menu>\n </div>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <tr *matHeaderRowDef=\"columnsToShowInList; sticky: true\" mat-header-row></tr>\n <tr *matRowDef=\"let item; columns: columnsToShowInList;\" mat-row></tr>\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\">\n <tr mat-row *matRowDef=\"let row; columns: ['koalaListDetails']\" class=\"item-detail-row\"></tr>\n </ng-container>\n <ng-container *ngIf=\"hasFooter()\">\n <tr *matFooterRowDef=\"columnsToShowInList; sticky: true\" mat-footer-row></tr>\n </ng-container>\n </table>\n <ng-template #emptyList>\n <koala-dynamic-component *ngIf=\"!(filterError$ | async) else errorList\" [dynamicComponent]=\"emptyListComponent\"></koala-dynamic-component>\n <ng-template #errorList>\n <koala-dynamic-component [dynamicComponent]=\"errorListComponent\"></koala-dynamic-component>\n </ng-template>\n </ng-template>\n </div>\n <div *ngIf=\"!hidePaginator\" class=\"content-paginator\">\n <mat-paginator\n [length]=\"qtdListResult\"\n [pageSizeOptions]=\"limitOptions\"\n [pageSize]=\"pageSize\"\n showFirstLastButtons>\n </mat-paginator>\n </div>\n</div>\n", styles: [".list-container{border-radius:10px;margin:0 auto;overflow-x:hidden;width:calc(100% - 40px);position:relative}.list-container .spinner-container{position:absolute;width:100%;height:calc(100vh - 320px);top:100px;left:0;background:rgba(0,0,0,.15);z-index:2;display:flex;align-items:center;justify-content:center}.list-container .spinner-container.no-filter{top:40px}.list-container .list{display:block;height:calc(100vh - 320px);overflow-y:auto;position:relative;top:0;width:100%;z-index:1}.list-container .list table:not(.table-not-selection) .mat-header-cell:first-child,.list-container .list .mat-header-cell:last-child,.list-container .list .mat-header-cell.mat-column-collapseButton{width:5%}.list-container .list .mat-header-cell:last-child{text-align:center}.list-container .list .mat-header-row,.list-container .list .mat-row,.list-container .list .mat-footer-row{height:35px}.list-container .list .mat-row .mat-icon-button{height:35px;line-height:35px;width:35px}.list-container .list tr.detail-row:not(.expanded-row){height:0}.list-container .list .element-detail{display:flex;overflow:hidden}.list-container .list table{position:relative;width:100%;font-family:OpenSans,sans-serif;font-size:1em}.list-container .list table.table-hover tr{cursor:pointer;transition:.2s}.list-container .list table th:first-child,.list-container .list table td:first-child{padding:0 8px 0 20px}.list-container .list table th{font-size:.7em;padding:0 8px;font-family:OpenSans,sans-serif;line-height:1em}.list-container .list table td{font-size:.8em;padding:0 8px;font-family:OpenSans,sans-serif}.list-container .list table th:last-child,.list-container .list table td:last-child{padding:0 20px 0 8px}.list-container .list .mat-list-item-content,.list-container .list .mat-list-item-content .mat-list-text{padding:0}.list-container .list-filter{box-shadow:0 1px 3px #0000004d;height:60px;position:relative;z-index:3}.list-container .list-filter .main{display:flex;justify-content:space-between;font-size:1.05em;height:60px;overflow:hidden;padding-left:2.5px;position:relative;width:100%}.list-container .list-filter .main koala-dynamic-form{width:100%}.list-container .list-filter .main mat-form-field{display:inline-block}.list-container .list-filter .main .mat-form-field-appearance-fill .mat-form-field-flex{background:transparent}.list-container .list-filter .main .mat-form-field .mat-form-field-wrapper{padding-bottom:0}.list-container .list-filter .main .mat-form-field-underline,.list-container .list-filter .main .mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper,.list-container .list-filter .main .mat-form-field-wrapper .mat-form-field-subscript-wrapper{display:none}.list-container .list-filter ul{display:flex;align-items:center;font-size:0;list-style:none;margin:0;padding:0 15px 0 0;position:relative;text-align:right}.list-container .list-filter ul li{display:inline-block;font-size:14px;padding:5px;position:relative}.list-container .list-filter ul li.option button{transition:.2s}.list-container .list-filter ul li.option button:hover{background:rgba(0,0,0,.1)}.list-container .list-filter ul li.checkbox-filter{text-align:center}.list-container .list-filter ul li.checkbox-filter .checkbox-inline{top:-5px}.list-container .list-filter ul li.checkbox-filter input[type=checkbox]{margin-left:0}.list-container .list-filter ul li.checkbox-filter label{padding:0!important;width:auto}.list-container .list-filter .advanced{border-top:1px solid #dddddd;box-shadow:0 3px 10px #0000004d;height:0;overflow-x:hidden;overflow-y:auto;position:absolute;top:60px;transition:.2s;width:100%;z-index:1}.list-container .list-filter .advanced .container-filter{padding:15px}.list-container .list-filter .advanced.show{height:360px}.list-container nav.menu-list{height:40px;margin:0;padding:3px 0;position:relative;transition:.2s;width:100%;z-index:2;box-sizing:border-box}.list-container nav.menu-list ul.menu{float:left;font-size:0;list-style:none;margin:0;padding:0 10px;position:relative;text-align:left}.list-container nav.menu-list ul.menu li{color:#616161;display:inline-block;font-size:16px;padding:0 4px}.list-container nav.menu-list ul.menu li button.mat-button,.list-container nav.menu-list ul.menu li button.koala-icon-button{display:inline-block}.list-container .content-paginator mat-paginator .mat-paginator-container{height:40px!important;min-height:40px!important}.list-container .content-paginator mat-paginator .mat-paginator-container .mat-paginator-page-size-select{height:40px;margin-top:0!important}.list-container .content-paginator mat-paginator .mat-paginator-container .mat-paginator-range-label{margin-top:3px}.list-container .content-paginator{position:relative;background:transparent!important;z-index:2;box-shadow:-3px 1px 3px #0000004d}.list-container .item-detail{overflow:hidden}.list-container tr.item-detail-row{height:0!important}.list-container tr.item-detail-row .list-container{width:100%!important}.list-container tr.item-detail-row .list-container .list{height:auto!important;max-height:250px!important}.list-container tr.item-detail-row .list-container nav.menu-list{display:none}@media (max-width: 900px){.list-container{width:100%;box-shadow:none!important;padding:15px 10px 15px 15px;box-sizing:border-box}.list-container .list{height:auto;overflow:unset}.list-container .list-filter .main{justify-content:flex-end}}\n"] }]
162
162
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.KoalaDynamicFormService }, { type: i3.DeviceDetectorService }]; }, propDecorators: { config: [{
163
163
  type: Input
164
164
  }], paginator: [{
@@ -168,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
168
168
  type: ViewChild,
169
169
  args: [MatSort, { static: false }]
170
170
  }] } });
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9saXN0L3NyYy9saWIvbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9saXN0L3NyYy9saWIvbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFlLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBS25ELE9BQU8sRUFBRSxPQUFPLEVBQWlCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQmpGLE1BQU0sT0FBTyxhQUFjLFNBQVEsWUFBWTtJQTRCN0MsWUFDVSxFQUFlLEVBQ2Ysa0JBQTJDLEVBQzNDLGFBQW9DO1FBRTVDLEtBQUssQ0FDSCxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sSUFBSSxJQUFJLFVBQVUsRUFBTyxFQUNuRCxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ1gsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUM7WUFDaEMs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QyxDQUFDOzRCQUN2QyxVQUFVLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7eUJBQ3RGLENBQUM7cUJBQ0g7NEtBR2UsTUFBTTtzQkFBckIsS0FBSztnQkFFNkIsU0FBUztzQkFBM0MsU0FBUzt1QkFBQyxZQUFZO2dCQUN3QixJQUFJO3NCQUFsRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGlzdEFic3RyYWN0IH0gZnJvbSAnLi9saXN0LmFic3RyYWN0JztcbmltcG9ydCB7IEtvYWxhTGlzdEl0ZW1NZW51T3B0aW9uSW50ZXJmYWNlIH0gZnJvbSAnLi9rb2FsYS1saXN0LWl0ZW0tbWVudS1vcHRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBLb2FsYUxpc3RGaWx0ZXJJbnRlcmZhY2UgfSBmcm9tICcuL2tvYWxhLWxpc3QtZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBLb2FsYUR5bmFtaWNGb3JtU2VydmljZSB9IGZyb20gJ0Brb2FsYXJ4L3VpL2Zvcm0nO1xuaW1wb3J0IHsgS29hbGFMaXN0SXRlbUludGVyZmFjZSB9IGZyb20gJy4va29hbGEtbGlzdC1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBLb2FsYUxpc3RGb3JtRmlsdGVySW50ZXJmYWNlIH0gZnJvbSBcIi4va29hbGEtbGlzdC1mb3JtLWZpbHRlci5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IE1hdFNvcnQsIFNvcnREaXJlY3Rpb24gfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydFwiO1xuaW1wb3J0IHsgZGVsYXkgfSBmcm9tIFwiQGtvYWxhcngvdXRpbHMvb3BlcmF0b3JzL2RlbGF5XCI7XG5pbXBvcnQgeyBrb2FsYSB9IGZyb20gXCJAa29hbGFyeC91dGlsc1wiO1xuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSBcIm5neC1kZXZpY2UtZGV0ZWN0b3JcIjtcbmltcG9ydCB7IEtvYWxhTGlzdENvbmZpZ0ludGVyZmFjZSB9IGZyb20gXCIuL2tvYWxhLmxpc3QtY29uZmlnLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvclwiO1xuaW1wb3J0IHsgS29hbGFMaXN0QnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnSW50ZXJmYWNlIH0gZnJvbSBcIi4va29hbGEtbGlzdC1idG4tY29sbGFwc2Utc3ViLWxpc3QtY29uZmlnLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcbmltcG9ydCB7IHJhbmRvbVN0cmluZyB9IGZyb20gXCJAa29hbGFyeC91dGlscy9vcGVyYXRvcnMvc3RyaW5nXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tvYWxhLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJ2xpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnbGlzdC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignZGV0YWlsRXhwYW5kJywgW1xuICAgICAgc3RhdGUoJ2NvbGxhcHNlZCcsIHN0eWxlKHtoZWlnaHQ6ICcwcHgnLCBtaW5IZWlnaHQ6ICcwJ30pKSxcbiAgICAgIHN0YXRlKCdleHBhbmRlZCcsIHN0eWxlKHtoZWlnaHQ6ICcqJ30pKSxcbiAgICAgIHRyYW5zaXRpb24oJ2V4cGFuZGVkIDw9PiBjb2xsYXBzZWQnLCBhbmltYXRlKCcyMjVtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSknKSksXG4gICAgXSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIExpc3RDb21wb25lbnQgZXh0ZW5kcyBMaXN0QWJzdHJhY3QgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb25maWc/OiBLb2FsYUxpc3RDb25maWdJbnRlcmZhY2U7XG5cbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IpIHByb3RlY3RlZCBwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcbiAgQFZpZXdDaGlsZChNYXRTb3J0LCB7c3RhdGljOiBmYWxzZX0pIHByb3RlY3RlZCBzb3J0OiBNYXRTb3J0O1xuXG4gIHB1YmxpYyBjdXN0b21DbGFzcz86IHN0cmluZztcbiAgcHVibGljIGNvbHVtbnNUb1Nob3dJbkxpc3Q/OiBzdHJpbmdbXTtcbiAgcHVibGljIGhpZGVQYWdpbmF0b3I/OiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBjb2x1bW5Tb3J0Pzogc3RyaW5nO1xuICBwdWJsaWMgc29ydERpcmVjdGlvbjogU29ydERpcmVjdGlvbiA9ICdhc2MnO1xuICBwdWJsaWMgaXRlbXNNZW51TGlzdE9wdGlvbnM/OiBLb2FsYUxpc3RJdGVtTWVudU9wdGlvbkludGVyZmFjZTxhbnk+W107XG4gIHB1YmxpYyBpdGVtc0xpc3Q/OiBLb2FsYUxpc3RJdGVtSW50ZXJmYWNlPGFueT5bXTtcbiAgcHVibGljIHJlcXVlc3Q/OiBPYnNlcnZhYmxlPGFueT47XG4gIHB1YmxpYyByZXNwb25zZUluZGV4TmFtZT86IHN0cmluZztcbiAgcHVibGljIHJlc3BvbnNlUXRkUmVzdWx0SW5kZXhOYW1lPzogKHJlc3BvbnNlOiBhbnkpID0+IG51bWJlcjtcbiAgcHVibGljIHJlc3BvbnNlUmVxdWVzdD86IGFueTtcbiAgcHVibGljIHR5cGVSZXF1ZXN0OiAnYWxsJyB8ICdvbkRlbWFuZCcgPSAnYWxsJ1xuICBwdWJsaWMgZmlsdGVyRm9ybUNvbmZpZz86IEtvYWxhTGlzdEZpbHRlckludGVyZmFjZTtcbiAgcHVibGljIHJlbG9hZD86IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgcHVibGljIGZvcm1GaWx0ZXI/OiBGb3JtR3JvdXA7XG4gIHB1YmxpYyBzaG93QWR2YW5jZWRGaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHF0ZExpc3RSZXN1bHQgPSAwO1xuICBwdWJsaWMgZGlzYWJsZWRDaGVja2JveEl0ZW1MaXN0PzogKGl0ZW06IGFueSkgPT4gYm9vbGVhbjtcbiAgcHVibGljIGV4cGFuZGVkRWxlbWVudCA9IGZhbHNlO1xuICBwdWJsaWMgYnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnPzogS29hbGFMaXN0QnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnSW50ZXJmYWNlPGFueT47XG4gIHB1YmxpYyBzdWJMaXN0Q29uZmlnPzogKGl0ZW06IGFueSkgPT4gS29hbGFMaXN0Q29uZmlnSW50ZXJmYWNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgZHluYW1pY0Zvcm1TZXJ2aWNlOiBLb2FsYUR5bmFtaWNGb3JtU2VydmljZSxcbiAgICBwcml2YXRlIGRldmljZVNlcnZpY2U6IERldmljZURldGVjdG9yU2VydmljZVxuICApIHtcbiAgICBzdXBlcihcbiAgICAgICgpID0+IHRoaXMuY29uZmlnPy5yZXF1ZXN0ID8/IG5ldyBPYnNlcnZhYmxlPGFueT4oKSxcbiAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLnJlc3BvbnNlUmVxdWVzdCA9IHJlc3BvbnNlO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRoaXMuY29uZmlnPy5yZXNwb25zZUluZGV4TmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKHRoaXMuY29uZmlnLnJlc3BvbnNlSW5kZXhOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyByZXNwb25zZVt0aGlzLmNvbmZpZy5yZXNwb25zZUluZGV4TmFtZV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFtdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcmVzcG9uc2U7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZz8uZ2V0RGF0YVNvdXJjZSkgdGhpcy5jb25maWc/LmdldERhdGFTb3VyY2UodGhpcy5kYXRhU291cmNlLmRhdGEpO1xuICAgICAgICB0aGlzLnF0ZExpc3RSZXN1bHQgPSB0aGlzLmNvbmZpZz8ucmVzcG9uc2VRdGRSZXN1bHRJbmRleE5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmNvbmZpZy5yZXNwb25zZVF0ZFJlc3VsdEluZGV4TmFtZShyZXNwb25zZSkgPz8gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZGF0YVNvdXJjZS5kYXRhPy5sZW5ndGggPz8gMDtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB0aGlzLmZvcm1GaWx0ZXIgPz8gZmIuZ3JvdXAoe30pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdENvbmZpZygpO1xuICAgIHRoaXMuZm9ybUZpbHRlciA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgZm9ybVNlYXJjaDogdGhpcy5maWx0ZXJGb3JtQ29uZmlnPy5tYWluPy5mb3JtID8/IFsnJ10sXG4gICAgICBmb3JtQWR2YW5jZWRTZWFyY2g6IHRoaXMuZmlsdGVyRm9ybUNvbmZpZz8uYWR2YW5jZWQ/LmZvcm0gPz8gWycnXVxuICAgIH0pO1xuICAgIHRoaXMubG9hZGluZyh0cnVlKTtcbiAgICBpZiAodGhpcy5maWx0ZXJGb3JtQ29uZmlnKSB7XG4gICAgICB0aGlzLmZpbHRlckZvcm1Db25maWc/Lm1haW4/LmZvcm1Db25maWc/Lm1hcChpdGVtID0+IHtcbiAgICAgICAgaXRlbS5jbGFzcyArPSAnIHBhZGRpbmctbm9uZSB3LTk5JztcbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICB9KTtcbiAgICAgIHRoaXMuZmlsdGVyRm9ybUNvbmZpZz8uYWR2YW5jZWQ/LmZvcm1Db25maWc/Lm1hcChpdGVtID0+IHtcbiAgICAgICAgaXRlbS5jbGFzcyArPSAnIHBhZGRpbmctbm9uZSc7XG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgfSk7XG4gICAgICBpZiAodGhpcy5maWx0ZXJGb3JtQ29uZmlnPy5jaGVja0FuZFNlYXJjaCkge1xuICAgICAgICB0aGlzLmZvcm1GaWx0ZXIuYWRkQ29udHJvbCh0aGlzLmZpbHRlckZvcm1Db25maWcuY2hlY2tBbmRTZWFyY2guZm9ybUNvbnRyb2xOYW1lLCBuZXcgRm9ybUNvbnRyb2wodGhpcy5maWx0ZXJGb3JtQ29uZmlnLmNoZWNrQW5kU2VhcmNoLmlzQ2hlY2tlZCA/PyBmYWxzZSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZy5nZXRTZWxlY3Rpb25MaXN0KSB0aGlzLmNvbmZpZy5nZXRTZWxlY3Rpb25MaXN0KHRoaXMuc2VsZWN0aW9uKTtcblxuICAgIGlmICh0aGlzLnJlbG9hZCkge1xuICAgICAgdGhpcy5yZWxvYWQuc3Vic2NyaWJlKGFzeW5jIHJlbG9hZCA9PiB7XG4gICAgICAgIGlmIChyZWxvYWQpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmZpbHRlclN1Ym1pdCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBzdXBlci5vbkRlc3Ryb3koKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzdXBlci5hZnRlclZpZXdJbml0KCkudGhlbigpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGZpbHRlclN1Ym1pdCgpIHtcbiAgICB0aGlzLnNob3dBZHZhbmNlZEZpbHRlciA9IGZhbHNlO1xuICAgIGF3YWl0IGRlbGF5KDEpO1xuICAgIGxldCBkYWRvcyA9IGtvYWxhKFxuICAgICAgdGhpcy5maWx0ZXJGb3JtQ29uZmlnPy5tYWluPy5mb3JtXG4gICAgICA/IHRoaXMuZHluYW1pY0Zvcm1TZXJ2aWNlLmVtaXREYXRhKHRoaXMuZmlsdGVyRm9ybUNvbmZpZz8ubWFpbj8uZm9ybSlcbiAgICAgIDoge31cbiAgICApXG4gICAgICAub2JqZWN0KClcbiAgICAgIC5tZXJnZShcbiAgICAgICAgdGhpcy5maWx0ZXJGb3JtQ29uZmlnPy5hZHZhbmNlZD8uZm9ybVxuICAgICAgICA/IHRoaXMuZHluYW1pY0Zvcm1TZXJ2aWNlLmVtaXREYXRhKHRoaXMuZmlsdGVyRm9ybUNvbmZpZz8uYWR2YW5jZWQ/LmZvcm0pXG4gICAgICAgIDoge30pXG4gICAgICAuZ2V0VmFsdWUoKTtcblxuICAgIGlmICh0aGlzLmZpbHRlckZvcm1Db25maWc/LmNoZWNrQW5kU2VhcmNoKSB7XG4gICAgICBjb25zdCBjb250cm9sTmFtZSA9IHRoaXMuZmlsdGVyRm9ybUNvbmZpZy5jaGVja0FuZFNlYXJjaC5mb3JtQ29udHJvbE5hbWU7XG4gICAgICBkYWRvc1tjb250cm9sTmFtZV0gPSB0aGlzLmZvcm1GaWx0ZXIuZ2V0KGNvbnRyb2xOYW1lKS52YWx1ZTtcbiAgICB9XG4gICAgYXdhaXQgc3VwZXIuc2VhcmNoKGRhZG9zKTtcbiAgfVxuXG4gIHB1YmxpYyB0b29nbGVGaWx0ZXIoKSB7XG4gICAgdGhpcy5zaG93QWR2YW5jZWRGaWx0ZXIgPSAhdGhpcy5zaG93QWR2YW5jZWRGaWx0ZXI7XG4gIH1cblxuICBwdWJsaWMgaGF2ZU9wdGlvbnNPbkl0ZW1MaW5lKGl0ZW06IGFueSkge1xuICAgIHJldHVybiB0aGlzLml0ZW1zTWVudUxpc3RPcHRpb25zLmZpbHRlcihvcHRpb24gPT4gb3B0aW9uLmhhdmVQZXJtaXNzaW9uICYmIChcbiAgICAgICFvcHRpb24uc2hvd0J5SXRlbUxpc3QgfHxcbiAgICAgIG9wdGlvbi5zaG93QnlJdGVtTGlzdChpdGVtKVxuICAgICkpLmxlbmd0aCA+IDBcbiAgfVxuXG4gIHB1YmxpYyBoYXNGb290ZXIoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5pdGVtc0xpc3QuZmluZChpdGVtID0+ICEhaXRlbS5mb290ZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Q29uZmlnKCkge1xuICAgIHRoaXMuY29sdW1uU29ydCA9IHRoaXMuY29uZmlnLmNvbHVtblNvcnQgPz8gbnVsbDtcbiAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSB0aGlzLmNvbmZpZy5zb3J0RGlyZWN0aW9uID8/ICdhc2MnO1xuICAgIHRoaXMuaXRlbXNNZW51TGlzdE9wdGlvbnMgPSB0aGlzLmNvbmZpZy5pdGVtc01lbnVMaXN0T3B0aW9ucyA/PyBbXTtcbiAgICB0aGlzLnR5cGVSZXF1ZXN0ID0gdGhpcy5jb25maWcudHlwZVJlcXVlc3QgPz8gJ2FsbCc7XG4gICAgdGhpcy5xdGRMaXN0UmVzdWx0ID0gdGhpcy5jb25maWcucXRkTGlzdFJlc3VsdCA/PyAwO1xuICAgIHRoaXMuY29sdW1uc1RvU2hvd0luTGlzdCA9IHRoaXMuY29uZmlnLmNvbHVtbnNUb1Nob3dJbkxpc3Q7XG4gICAgdGhpcy5pdGVtc0xpc3QgPSB0aGlzLmNvbmZpZy5pdGVtc0xpc3QubWFwKGl0ZW0gPT4ge1xuICAgICAgaWYgKCFpdGVtLmRibENsaWNrKSB7XG4gICAgICAgIGl0ZW0uZGJsQ2xpY2sgPSAoKSA9PiB7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9KTtcbiAgICB0aGlzLnNob3dBZHZhbmNlZEZpbHRlciA9IHRoaXMuY29uZmlnLnNob3dBZHZhbmNlZEZpbHRlcjtcbiAgICB0aGlzLmZpbHRlckZvcm1Db25maWcgPSB0aGlzLmNvbmZpZy5maWx0ZXJGb3JtQ29uZmlnO1xuICAgIHRoaXMucmVxdWVzdCA9IHRoaXMuY29uZmlnLnJlcXVlc3Q7XG4gICAgdGhpcy5yZWxvYWQgPSB0aGlzLmNvbmZpZy5yZWxvYWQ7XG4gICAgdGhpcy5yZXNwb25zZUluZGV4TmFtZSA9IHRoaXMuY29uZmlnLnJlc3BvbnNlSW5kZXhOYW1lO1xuICAgIHRoaXMucmVzcG9uc2VRdGRSZXN1bHRJbmRleE5hbWUgPSB0aGlzLmNvbmZpZy5yZXNwb25zZVF0ZFJlc3VsdEluZGV4TmFtZTtcbiAgICB0aGlzLmZpbHRlclBhcmFtcyA9IHRoaXMuY29uZmlnLmZpbHRlclBhcmFtcyA/PyBuZXcgQmVoYXZpb3JTdWJqZWN0PEtvYWxhTGlzdEZvcm1GaWx0ZXJJbnRlcmZhY2U+KG51bGwpO1xuICAgIHRoaXMuZW1wdHlMaXN0Q29tcG9uZW50ID0gdGhpcy5jb25maWcuZW1wdHlMaXN0Q29tcG9uZW50O1xuICAgIHRoaXMuZXJyb3JMaXN0Q29tcG9uZW50ID0gdGhpcy5jb25maWcuZXJyb3JMaXN0Q29tcG9uZW50O1xuICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLmNvbmZpZy5wYWdlU2l6ZSA/PyAzMDtcbiAgICB0aGlzLmRpc2FibGVkQ2hlY2tib3hJdGVtTGlzdCA9IHRoaXMuY29uZmlnLmRpc2FibGVkQ2hlY2tib3hJdGVtTGlzdDtcbiAgICB0aGlzLnN1Ykxpc3RDb25maWcgPSB0aGlzLmNvbmZpZy5zdWJMaXN0Q29uZmlnO1xuICAgIHRoaXMuYnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnID0gdGhpcy5jb25maWcuYnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnO1xuICAgIHRoaXMuaGlkZVBhZ2luYXRvciA9IHRoaXMuY29uZmlnLmhpZGVQYWdpbmF0b3I7XG4gICAgdGhpcy5jdXN0b21DbGFzcyA9IHRoaXMuY29uZmlnLmN1c3RvbUNsYXNzO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibGlzdC1jb250YWluZXJcIiBbbmdDbGFzc109XCJjdXN0b21DbGFzc1wiPlxuICA8ZGl2ICpuZ0lmPVwiZmlsdGVyRm9ybUNvbmZpZ1wiIGNsYXNzPVwibGlzdC1maWx0ZXJcIj5cbiAgICA8Zm9ybSAobmdTdWJtaXQpPVwiZmlsdGVyU3VibWl0KClcIiBbZm9ybUdyb3VwXT1cImZvcm1GaWx0ZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYWluXCI+XG4gICAgICAgIDxrb2FsYS1keW5hbWljLWZvcm1cbiAgICAgICAgICAqbmdJZj1cImZpbHRlckZvcm1Db25maWcubWFpblwiXG4gICAgICAgICAgW2Zvcm1dPVwiZmlsdGVyRm9ybUNvbmZpZy5tYWluLmZvcm1cIlxuICAgICAgICAgIFtmb3JtQ29uZmlnXT1cImZpbHRlckZvcm1Db25maWcubWFpbi5mb3JtQ29uZmlnXCJcbiAgICAgICAgICBbc2V0VmFsdWVzXT1cImZpbHRlckZvcm1Db25maWcubWFpbi5zZXRWYWx1ZXNcIlxuICAgICAgICAgIFtzaG93RmllbGRzXT1cImZpbHRlckZvcm1Db25maWcubWFpbi5zaG93RmllbGRzXCI+XG4gICAgICAgIDwva29hbGEtZHluYW1pYy1mb3JtPlxuICAgICAgICA8dWw+XG4gICAgICAgICAgPGxpICpuZ0lmPVwiZmlsdGVyRm9ybUNvbmZpZy5hZHZhbmNlZFwiIGNsYXNzPVwib3B0aW9uXCI+XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0b29nbGVGaWx0ZXIoKVwiIGNvbG9yPVwicHJpbWFyeVwiIG1hdC1pY29uLWJ1dHRvbiBtYXRUb29sdGlwPVwiRmlsdHJvIEF2YW7Dp2Fkb1wiXG4gICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImJlbG93XCIgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24+dHVuZTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDxsaSAqbmdJZj1cImZpbHRlckZvcm1Db25maWcuY2hlY2tBbmRTZWFyY2hcIiBjbGFzcz1cImNoZWNrYm94LWZpbHRlclwiPlxuICAgICAgICAgICAgPG1hdC1jaGVja2JveCAoY2xpY2spPVwiZmlsdGVyU3VibWl0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpbHRlckZvcm1Db25maWcuY2hlY2tBbmRTZWFyY2guZm9ybUNvbnRyb2xOYW1lXCI+XG4gICAgICAgICAgICAgIHt7ZmlsdGVyRm9ybUNvbmZpZy5jaGVja0FuZFNlYXJjaC5sYWJlbH19XG4gICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDxsaSBjbGFzcz1cIm9wdGlvblwiPlxuICAgICAgICAgICAgPGtvYWxhLXN1Ym1pdFxuICAgICAgICAgICAgICBbYnRuU3VibWl0RGlzYWJsZWRdPVwiYnRuU3VibWl0RGlzYWJsZWRcIlxuICAgICAgICAgICAgICBbZmddPVwiZm9ybUZpbHRlclwiXG4gICAgICAgICAgICAgIFtpY29uQnV0dG9uXT1cInRydWVcIlxuICAgICAgICAgICAgICBbbG9hZGVyXT1cImxvYWRlclwiXG4gICAgICAgICAgICAgIGljb249XCJzZWFyY2hcIj5cbiAgICAgICAgICAgIDwva29hbGEtc3VibWl0PlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJmaWx0ZXJGb3JtQ29uZmlnLmFkdmFuY2VkXCIgW25nQ2xhc3NdPVwieydzaG93Jzogc2hvd0FkdmFuY2VkRmlsdGVyfVwiIGNsYXNzPVwiYWR2YW5jZWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1maWx0ZXJcIj5cbiAgICAgICAgICA8a29hbGEtZHluYW1pYy1mb3JtXG4gICAgICAgICAgICBbZm9ybV09XCJmaWx0ZXJGb3JtQ29uZmlnLmFkdmFuY2VkLmZvcm1cIlxuICAgICAgICAgICAgW2Zvcm1Db25maWddPVwiZmlsdGVyRm9ybUNvbmZpZy5hZHZhbmNlZC5mb3JtQ29uZmlnXCJcbiAgICAgICAgICAgIFtzZXRWYWx1ZXNdPVwiZmlsdGVyRm9ybUNvbmZpZy5hZHZhbmNlZC5zZXRWYWx1ZXNcIlxuICAgICAgICAgICAgW3Nob3dGaWVsZHNdPVwiZmlsdGVyRm9ybUNvbmZpZy5hZHZhbmNlZC5zaG93RmllbGRzXCI+XG4gICAgICAgICAgPC9rb2FsYS1keW5hbWljLWZvcm0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICA8L2Rpdj5cbiAgPG5hdiBjbGFzcz1cIm1lbnUtbGlzdFwiPlxuICAgIDx1bCBjbGFzcz1cIm1lbnVcIj5cbiAgICAgIDxsaSAqbmdJZj1cInNlbGVjdGlvbi5oYXNWYWx1ZSgpXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltpdGVtc1NlbGVjdExpc3RdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9saT5cbiAgICAgIDxsaSAqbmdJZj1cInNlbGVjdGlvbi5oYXNWYWx1ZSgpXCIgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPnw8L2xpPlxuICAgICAgPGxpPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaXRlbXNMaXN0XVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9uYXY+XG4gIDxkaXYgKm5nSWY9XCJsb2FkZXIgfCBhc3luY1wiIGNsYXNzPVwic3Bpbm5lci1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7XG4gICAgJ25vLWZpbHRlcic6ICFmaWx0ZXJGb3JtQ29uZmlnXG4gIH1cIj5cbiAgICA8bWF0LXNwaW5uZXIgZGlhbWV0ZXI9XCI0MFwiPjwvbWF0LXNwaW5uZXI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibGlzdFwiPlxuICAgIDx0YWJsZVxuICAgICAgKm5nSWY9XCIhZW1wdHlMaXN0Q29tcG9uZW50IHx8IChlbXB0eUxpc3RDb21wb25lbnQgJiYgZGF0YVNvdXJjZT8uZGF0YT8ubGVuZ3RoID4gMCkgZWxzZSBlbXB0eUxpc3RcIlxuICAgICAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiXG4gICAgICBbbWF0U29ydEFjdGl2ZV09XCJjb2x1bW5Tb3J0XCJcbiAgICAgIFtpZF09XCJ0YWJsZUlkXCJcbiAgICAgIG11bHRpVGVtcGxhdGVEYXRhUm93c1xuICAgICAgY2xhc3M9XCJ0YWJsZS1ob3ZlclwiXG4gICAgICBtYXQtdGFibGVcbiAgICAgIG1hdFNvcnRcbiAgICAgIFttYXRTb3J0RGlyZWN0aW9uXT1cInNvcnREaXJlY3Rpb25cIiBtYXRTb3J0RGlzYWJsZUNsZWFyPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzZWxlY3RcIj5cbiAgICAgICAgPHRoICptYXRIZWFkZXJDZWxsRGVmIG1hdC1oZWFkZXItY2VsbD5cbiAgICAgICAgICA8bWF0LWNoZWNrYm94IChjaGFuZ2UpPVwiJGV2ZW50ID8gc2VsZWN0QWxsKCkgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmIGFsbFNlbGVjdGVkJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cInNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmICEoYWxsU2VsZWN0ZWQkIHwgYXN5bmMpXCI+XG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDx0ZCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgbWF0LWNlbGw+XG4gICAgICAgICAgPG1hdC1jaGVja2JveCAqbmdJZj1cImRpc2FibGVkQ2hlY2tib3hJdGVtTGlzdCA/ICFkaXNhYmxlZENoZWNrYm94SXRlbUxpc3QoaXRlbSkgOiB0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gc2VsZWN0aW9uLnRvZ2dsZShpdGVtKSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgc2VsZWN0SXRlbSgpO1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb24uaXNTZWxlY3RlZChpdGVtKVwiPlxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgKm1hdEZvb3RlckNlbGxEZWYgbWF0LWZvb3Rlci1jZWxsPjwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN1Ykxpc3RDb25maWcgJiYgYnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnXCIgbWF0Q29sdW1uRGVmPVwiY29sbGFwc2VCdXR0b25cIj5cbiAgICAgICAgPHRoICptYXRIZWFkZXJDZWxsRGVmIG1hdC1oZWFkZXItY2VsbD48L3RoPlxuICAgICAgICA8dGQgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiIG1hdC1jZWxsPlxuICAgICAgICAgIDxrb2FsYS1idXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiYnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnLnNob3coaXRlbSlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImV4cGFuZGVkRWxlbWVudCA9IGV4cGFuZGVkRWxlbWVudCA9PT0gaXRlbSA/IG51bGwgOiBpdGVtXCJcbiAgICAgICAgICAgIFtrb2FsYUljb25dPVwiYnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnLmtvYWxhSWNvblwiXG4gICAgICAgICAgICBbaWNvbl09XCJidG5Db2xsYXBzZVN1Ykxpc3RDb25maWcuaWNvblwiXG4gICAgICAgICAgICBbdG9vbHRpcF09XCJidG5Db2xsYXBzZVN1Ykxpc3RDb25maWcudG9vbHRpcFwiXG4gICAgICAgICAgICBbY29sb3JdPVwiYnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnLmljb25Db2xvclwiXG4gICAgICAgICAgICBbYmFja2dyb3VuZENvbG9yXT1cImJ0bkNvbGxhcHNlU3ViTGlzdENvbmZpZy5iYWNrZ3JvdW5kQ29sb3JcIlxuICAgICAgICAgICAgW2tvYWxhSWNvblNpemVdPVwiMjJcIj5cbiAgICAgICAgICA8L2tvYWxhLWJ1dHRvbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkICptYXRGb290ZXJDZWxsRGVmIG1hdC1mb290ZXItY2VsbD48L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW1MaXN0IG9mIGl0ZW1zTGlzdFwiIFttYXRDb2x1bW5EZWZdPVwiaXRlbUxpc3QuY29sdW1uRGVmXCI+XG4gICAgICAgIDx0aCAqbWF0SGVhZGVyQ2VsbERlZiBbbWF0LXNvcnQtaGVhZGVyXT1cIml0ZW1MaXN0LnNvcnRIZWFkZXJcIiBbZGlzYWJsZWRdPVwiIWl0ZW1MaXN0LnNvcnRIZWFkZXJcIiBtYXQtaGVhZGVyLWNlbGw+e3tpdGVtTGlzdC5sYWJlbH19PC90aD5cbiAgICAgICAgPHRkIChkYmxjbGljayk9XCJpdGVtTGlzdC5kYmxDbGljayhpdGVtKVwiICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBtYXQtY2VsbD5cblx0ICAgICAgICA8a29hbGEtZHluYW1pYy1jb21wb25lbnQgKm5nSWY9XCJpdGVtTGlzdC5pdGVtQ29tcG9uZW50IGVsc2UgaXRlbVRleHRcIlxuXHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZHluYW1pY0NvbXBvbmVudF09XCJpdGVtTGlzdC5pdGVtQ29tcG9uZW50KGl0ZW0pXCI+PC9rb2FsYS1keW5hbWljLWNvbXBvbmVudD5cblx0ICAgICAgICA8bmctdGVtcGxhdGUgI2l0ZW1UZXh0PlxuXHQgICAgICAgICAge3tpdGVtTGlzdC5pdGVtTmFtZVByb3BlcnR5KGl0ZW0pfX1cblx0ICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgKm1hdEZvb3RlckNlbGxEZWYgbWF0LWZvb3Rlci1jZWxsPlxuICAgICAgICAgIDxrb2FsYS1keW5hbWljLWNvbXBvbmVudCAqbmdJZj1cIml0ZW1MaXN0LmZvb3Rlcj8uaXRlbUNvbXBvbmVudCBlbHNlIGl0ZW1Gb290ZXJUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2R5bmFtaWNDb21wb25lbnRdPVwiaXRlbUxpc3QuZm9vdGVyPy5pdGVtQ29tcG9uZW50KHJlc3BvbnNlUmVxdWVzdClcIj48L2tvYWxhLWR5bmFtaWMtY29tcG9uZW50PlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaXRlbUZvb3RlclRleHQ+XG4gICAgICAgICAgICB7e2l0ZW1MaXN0LmZvb3Rlcj8uaXRlbU5hbWVQcm9wZXJ0eShyZXNwb25zZVJlcXVlc3QpfX1cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdWJMaXN0Q29uZmlnICYmIGJ0bkNvbGxhcHNlU3ViTGlzdENvbmZpZ1wiIG1hdENvbHVtbkRlZj1cImtvYWxhTGlzdERldGFpbHNcIj5cbiAgICAgICAgPHRoICptYXRIZWFkZXJDZWxsRGVmIG1hdC1oZWFkZXItY2VsbD48L3RoPlxuICAgICAgICA8dGQgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiIFthdHRyLmNvbHNwYW5dPVwiY29sdW1uc1RvU2hvd0luTGlzdC5sZW5ndGhcIiBtYXQtY2VsbD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1kZXRhaWxcIiBbQGRldGFpbEV4cGFuZF09XCJpdGVtID09IGV4cGFuZGVkRWxlbWVudCA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJ1wiPlxuICAgICAgICAgICAgPGtvYWxhLWxpc3QgW2NvbmZpZ109XCJzdWJMaXN0Q29uZmlnKGl0ZW0pXCI+PC9rb2FsYS1saXN0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgKm1hdEZvb3RlckNlbGxEZWYgbWF0LWZvb3Rlci1jZWxsPjwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJvcHRpb25zXCI+XG4gICAgICAgIDx0aCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtaGVhZGVyLWNlbGw+PC90aD5cbiAgICAgICAgPHRkICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBtYXQtY2VsbD5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGF2ZU9wdGlvbnNPbkl0ZW1MaW5lKGl0ZW0pXCI+XG4gICAgICAgICAgICA8YnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJvcHRpb25zXCIgbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9J21hdGVyaWFsLWljb25zJz5tb3JlX3ZlcnQ8L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxtYXQtbWVudSAjb3B0aW9ucz1cIm1hdE1lbnVcIiBjbGFzcz1cIm1lbnUtbGlzdFwiIHlQb3NpdGlvbj1cImJlbG93XCI+XG5cdCAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBpdGVtc01lbnVMaXN0T3B0aW9uc1wiPlxuXHQgICAgICAgICAgICAgIDxidXR0b25cblx0XHQgICAgICAgICAgICAgIChjbGljayk9XCJvcHRpb24uYWN0aW9uKGl0ZW0pXCJcblx0XHQgICAgICAgICAgICAgICpuZ0lmPVwib3B0aW9uLmhhdmVQZXJtaXNzaW9uICYmIChcblx0XHQgICAgICAgICAgICAgICAgIW9wdGlvbi5zaG93QnlJdGVtTGlzdCB8fFxuXHRcdCAgICAgICAgICAgICAgICBvcHRpb24uc2hvd0J5SXRlbUxpc3QoaXRlbSlcblx0ICAgICAgICAgICAgICAgIClcIlxuXHRcdCAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbT5cblx0ICAgICAgICAgICAgICAgIDxtYXQtaWNvbj57e29wdGlvbi5pY29ufX08L21hdC1pY29uPlxuXHQgICAgICAgICAgICAgICAgPHNwYW4+e3tvcHRpb24ubmFtZX19PC9zcGFuPlxuXHQgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXHQgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCAqbWF0Rm9vdGVyQ2VsbERlZiBtYXQtZm9vdGVyLWNlbGw+PC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8dHIgKm1hdEhlYWRlclJvd0RlZj1cImNvbHVtbnNUb1Nob3dJbkxpc3Q7IHN0aWNreTogdHJ1ZVwiIG1hdC1oZWFkZXItcm93PjwvdHI+XG4gICAgICA8dHIgKm1hdFJvd0RlZj1cImxldCBpdGVtOyBjb2x1bW5zOiBjb2x1bW5zVG9TaG93SW5MaXN0O1wiIG1hdC1yb3c+PC90cj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdWJMaXN0Q29uZmlnICYmIGJ0bkNvbGxhcHNlU3ViTGlzdENvbmZpZ1wiPlxuICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogWydrb2FsYUxpc3REZXRhaWxzJ11cIiBjbGFzcz1cIml0ZW0tZGV0YWlsLXJvd1wiPjwvdHI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNGb290ZXIoKVwiPlxuICAgICAgICA8dHIgKm1hdEZvb3RlclJvd0RlZj1cImNvbHVtbnNUb1Nob3dJbkxpc3Q7IHN0aWNreTogdHJ1ZVwiIG1hdC1mb290ZXItcm93PjwvdHI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3RhYmxlPlxuICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlMaXN0PlxuICAgICAgPGtvYWxhLWR5bmFtaWMtY29tcG9uZW50ICpuZ0lmPVwiIShmaWx0ZXJFcnJvciQgfCBhc3luYykgZWxzZSBlcnJvckxpc3RcIiBbZHluYW1pY0NvbXBvbmVudF09XCJlbXB0eUxpc3RDb21wb25lbnRcIj48L2tvYWxhLWR5bmFtaWMtY29tcG9uZW50PlxuICAgICAgPG5nLXRlbXBsYXRlICNlcnJvckxpc3Q+XG4gICAgICAgIDxrb2FsYS1keW5hbWljLWNvbXBvbmVudCBbZHluYW1pY0NvbXBvbmVudF09XCJlcnJvckxpc3RDb21wb25lbnRcIj48L2tvYWxhLWR5bmFtaWMtY29tcG9uZW50PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIiFoaWRlUGFnaW5hdG9yXCIgY2xhc3M9XCJjb250ZW50LXBhZ2luYXRvclwiPlxuICAgIDxtYXQtcGFnaW5hdG9yXG4gICAgICBbbGVuZ3RoXT1cInF0ZExpc3RSZXN1bHRcIlxuICAgICAgW3BhZ2VTaXplT3B0aW9uc109XCJsaW1pdE9wdGlvbnNcIlxuICAgICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgICAgIHNob3dGaXJzdExhc3RCdXR0b25zPlxuICAgIDwvbWF0LXBhZ2luYXRvcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9saXN0L3NyYy9saWIvbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9saXN0L3NyYy9saWIvbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFlLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBS25ELE9BQU8sRUFBRSxPQUFPLEVBQWlCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQmpGLE1BQU0sT0FBTyxhQUFjLFNBQVEsWUFBWTtJQTRCN0MsWUFDVSxFQUFlLEVBQ2Ysa0JBQTJDLEVBQzNDLGFBQW9DO1FBRTVDLEtBQUssQ0FDSCxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sSUFBSSxJQUFJLFVBQVUsRUFBTyxFQUNuRCxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ1gsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUM7WUFDaEMs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QyxDQUFDOzRCQUN2QyxVQUFVLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7eUJBQ3RGLENBQUM7cUJBQ0g7NEtBR2UsTUFBTTtzQkFBckIsS0FBSztnQkFFNkIsU0FBUztzQkFBM0MsU0FBUzt1QkFBQyxZQUFZO2dCQUN3QixJQUFJO3NCQUFsRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGlzdEFic3RyYWN0IH0gZnJvbSAnLi9saXN0LmFic3RyYWN0JztcbmltcG9ydCB7IEtvYWxhTGlzdEl0ZW1NZW51T3B0aW9uSW50ZXJmYWNlIH0gZnJvbSAnLi9rb2FsYS1saXN0LWl0ZW0tbWVudS1vcHRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBLb2FsYUxpc3RGaWx0ZXJJbnRlcmZhY2UgfSBmcm9tICcuL2tvYWxhLWxpc3QtZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBLb2FsYUR5bmFtaWNGb3JtU2VydmljZSB9IGZyb20gJ0Brb2FsYXJ4L3VpL2Zvcm0nO1xuaW1wb3J0IHsgS29hbGFMaXN0SXRlbUludGVyZmFjZSB9IGZyb20gJy4va29hbGEtbGlzdC1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBLb2FsYUxpc3RGb3JtRmlsdGVySW50ZXJmYWNlIH0gZnJvbSBcIi4va29hbGEtbGlzdC1mb3JtLWZpbHRlci5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IE1hdFNvcnQsIFNvcnREaXJlY3Rpb24gfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydFwiO1xuaW1wb3J0IHsgZGVsYXkgfSBmcm9tIFwiQGtvYWxhcngvdXRpbHMvb3BlcmF0b3JzL2RlbGF5XCI7XG5pbXBvcnQgeyBrb2FsYSB9IGZyb20gXCJAa29hbGFyeC91dGlsc1wiO1xuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSBcIm5neC1kZXZpY2UtZGV0ZWN0b3JcIjtcbmltcG9ydCB7IEtvYWxhTGlzdENvbmZpZ0ludGVyZmFjZSB9IGZyb20gXCIuL2tvYWxhLmxpc3QtY29uZmlnLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvclwiO1xuaW1wb3J0IHsgS29hbGFMaXN0QnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnSW50ZXJmYWNlIH0gZnJvbSBcIi4va29hbGEtbGlzdC1idG4tY29sbGFwc2Utc3ViLWxpc3QtY29uZmlnLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcbmltcG9ydCB7IHJhbmRvbVN0cmluZyB9IGZyb20gXCJAa29hbGFyeC91dGlscy9vcGVyYXRvcnMvc3RyaW5nXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tvYWxhLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJ2xpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnbGlzdC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignZGV0YWlsRXhwYW5kJywgW1xuICAgICAgc3RhdGUoJ2NvbGxhcHNlZCcsIHN0eWxlKHtoZWlnaHQ6ICcwcHgnLCBtaW5IZWlnaHQ6ICcwJ30pKSxcbiAgICAgIHN0YXRlKCdleHBhbmRlZCcsIHN0eWxlKHtoZWlnaHQ6ICcqJ30pKSxcbiAgICAgIHRyYW5zaXRpb24oJ2V4cGFuZGVkIDw9PiBjb2xsYXBzZWQnLCBhbmltYXRlKCcyMjVtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSknKSksXG4gICAgXSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIExpc3RDb21wb25lbnQgZXh0ZW5kcyBMaXN0QWJzdHJhY3QgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb25maWc/OiBLb2FsYUxpc3RDb25maWdJbnRlcmZhY2U7XG5cbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IpIHByb3RlY3RlZCBwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcbiAgQFZpZXdDaGlsZChNYXRTb3J0LCB7c3RhdGljOiBmYWxzZX0pIHByb3RlY3RlZCBzb3J0OiBNYXRTb3J0O1xuXG4gIHB1YmxpYyBjdXN0b21DbGFzcz86IHN0cmluZztcbiAgcHVibGljIGNvbHVtbnNUb1Nob3dJbkxpc3Q/OiBzdHJpbmdbXTtcbiAgcHVibGljIGhpZGVQYWdpbmF0b3I/OiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBjb2x1bW5Tb3J0Pzogc3RyaW5nO1xuICBwdWJsaWMgc29ydERpcmVjdGlvbjogU29ydERpcmVjdGlvbiA9ICdhc2MnO1xuICBwdWJsaWMgaXRlbXNNZW51TGlzdE9wdGlvbnM/OiBLb2FsYUxpc3RJdGVtTWVudU9wdGlvbkludGVyZmFjZTxhbnk+W107XG4gIHB1YmxpYyBpdGVtc0xpc3Q/OiBLb2FsYUxpc3RJdGVtSW50ZXJmYWNlPGFueT5bXTtcbiAgcHVibGljIHJlcXVlc3Q/OiBPYnNlcnZhYmxlPGFueT47XG4gIHB1YmxpYyByZXNwb25zZUluZGV4TmFtZT86IHN0cmluZztcbiAgcHVibGljIHJlc3BvbnNlUXRkUmVzdWx0SW5kZXhOYW1lPzogKHJlc3BvbnNlOiBhbnkpID0+IG51bWJlcjtcbiAgcHVibGljIHJlc3BvbnNlUmVxdWVzdD86IGFueTtcbiAgcHVibGljIHR5cGVSZXF1ZXN0OiAnYWxsJyB8ICdvbkRlbWFuZCcgPSAnYWxsJ1xuICBwdWJsaWMgZmlsdGVyRm9ybUNvbmZpZz86IEtvYWxhTGlzdEZpbHRlckludGVyZmFjZTtcbiAgcHVibGljIHJlbG9hZD86IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgcHVibGljIGZvcm1GaWx0ZXI/OiBGb3JtR3JvdXA7XG4gIHB1YmxpYyBzaG93QWR2YW5jZWRGaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHF0ZExpc3RSZXN1bHQgPSAwO1xuICBwdWJsaWMgZGlzYWJsZWRDaGVja2JveEl0ZW1MaXN0PzogKGl0ZW06IGFueSkgPT4gYm9vbGVhbjtcbiAgcHVibGljIGV4cGFuZGVkRWxlbWVudCA9IGZhbHNlO1xuICBwdWJsaWMgYnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnPzogS29hbGFMaXN0QnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnSW50ZXJmYWNlPGFueT47XG4gIHB1YmxpYyBzdWJMaXN0Q29uZmlnPzogKGl0ZW06IGFueSkgPT4gS29hbGFMaXN0Q29uZmlnSW50ZXJmYWNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgZHluYW1pY0Zvcm1TZXJ2aWNlOiBLb2FsYUR5bmFtaWNGb3JtU2VydmljZSxcbiAgICBwcml2YXRlIGRldmljZVNlcnZpY2U6IERldmljZURldGVjdG9yU2VydmljZVxuICApIHtcbiAgICBzdXBlcihcbiAgICAgICgpID0+IHRoaXMuY29uZmlnPy5yZXF1ZXN0ID8/IG5ldyBPYnNlcnZhYmxlPGFueT4oKSxcbiAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLnJlc3BvbnNlUmVxdWVzdCA9IHJlc3BvbnNlO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRoaXMuY29uZmlnPy5yZXNwb25zZUluZGV4TmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKHRoaXMuY29uZmlnLnJlc3BvbnNlSW5kZXhOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyByZXNwb25zZVt0aGlzLmNvbmZpZy5yZXNwb25zZUluZGV4TmFtZV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFtdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcmVzcG9uc2U7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZz8uZ2V0RGF0YVNvdXJjZSkgdGhpcy5jb25maWc/LmdldERhdGFTb3VyY2UodGhpcy5kYXRhU291cmNlLmRhdGEpO1xuICAgICAgICB0aGlzLnF0ZExpc3RSZXN1bHQgPSB0aGlzLmNvbmZpZz8ucmVzcG9uc2VRdGRSZXN1bHRJbmRleE5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmNvbmZpZy5yZXNwb25zZVF0ZFJlc3VsdEluZGV4TmFtZShyZXNwb25zZSkgPz8gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZGF0YVNvdXJjZS5kYXRhPy5sZW5ndGggPz8gMDtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB0aGlzLmZvcm1GaWx0ZXIgPz8gZmIuZ3JvdXAoe30pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdENvbmZpZygpO1xuICAgIHRoaXMuZm9ybUZpbHRlciA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgZm9ybVNlYXJjaDogdGhpcy5maWx0ZXJGb3JtQ29uZmlnPy5tYWluPy5mb3JtID8/IFsnJ10sXG4gICAgICBmb3JtQWR2YW5jZWRTZWFyY2g6IHRoaXMuZmlsdGVyRm9ybUNvbmZpZz8uYWR2YW5jZWQ/LmZvcm0gPz8gWycnXVxuICAgIH0pO1xuICAgIHRoaXMubG9hZGluZyh0cnVlKTtcbiAgICBpZiAodGhpcy5maWx0ZXJGb3JtQ29uZmlnKSB7XG4gICAgICB0aGlzLmZpbHRlckZvcm1Db25maWc/Lm1haW4/LmZvcm1Db25maWc/Lm1hcChpdGVtID0+IHtcbiAgICAgICAgaXRlbS5jbGFzcyArPSAnIHBhZGRpbmctbm9uZSB3LTk5JztcbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICB9KTtcbiAgICAgIHRoaXMuZmlsdGVyRm9ybUNvbmZpZz8uYWR2YW5jZWQ/LmZvcm1Db25maWc/Lm1hcChpdGVtID0+IHtcbiAgICAgICAgaXRlbS5jbGFzcyArPSAnIHBhZGRpbmctbm9uZSc7XG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgfSk7XG4gICAgICBpZiAodGhpcy5maWx0ZXJGb3JtQ29uZmlnPy5jaGVja0FuZFNlYXJjaCkge1xuICAgICAgICB0aGlzLmZvcm1GaWx0ZXIuYWRkQ29udHJvbCh0aGlzLmZpbHRlckZvcm1Db25maWcuY2hlY2tBbmRTZWFyY2guZm9ybUNvbnRyb2xOYW1lLCBuZXcgRm9ybUNvbnRyb2wodGhpcy5maWx0ZXJGb3JtQ29uZmlnLmNoZWNrQW5kU2VhcmNoLmlzQ2hlY2tlZCA/PyBmYWxzZSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZy5nZXRTZWxlY3Rpb25MaXN0KSB0aGlzLmNvbmZpZy5nZXRTZWxlY3Rpb25MaXN0KHRoaXMuc2VsZWN0aW9uKTtcblxuICAgIGlmICh0aGlzLnJlbG9hZCkge1xuICAgICAgdGhpcy5yZWxvYWQuc3Vic2NyaWJlKGFzeW5jIHJlbG9hZCA9PiB7XG4gICAgICAgIGlmIChyZWxvYWQpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmZpbHRlclN1Ym1pdCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBzdXBlci5vbkRlc3Ryb3koKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzdXBlci5hZnRlclZpZXdJbml0KCkudGhlbigpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGZpbHRlclN1Ym1pdCgpIHtcbiAgICB0aGlzLnNob3dBZHZhbmNlZEZpbHRlciA9IGZhbHNlO1xuICAgIGF3YWl0IGRlbGF5KDEpO1xuICAgIGxldCBkYWRvcyA9IGtvYWxhKFxuICAgICAgdGhpcy5maWx0ZXJGb3JtQ29uZmlnPy5tYWluPy5mb3JtXG4gICAgICA/IHRoaXMuZHluYW1pY0Zvcm1TZXJ2aWNlLmVtaXREYXRhKHRoaXMuZmlsdGVyRm9ybUNvbmZpZz8ubWFpbj8uZm9ybSlcbiAgICAgIDoge31cbiAgICApXG4gICAgICAub2JqZWN0KClcbiAgICAgIC5tZXJnZShcbiAgICAgICAgdGhpcy5maWx0ZXJGb3JtQ29uZmlnPy5hZHZhbmNlZD8uZm9ybVxuICAgICAgICA/IHRoaXMuZHluYW1pY0Zvcm1TZXJ2aWNlLmVtaXREYXRhKHRoaXMuZmlsdGVyRm9ybUNvbmZpZz8uYWR2YW5jZWQ/LmZvcm0pXG4gICAgICAgIDoge30pXG4gICAgICAuZ2V0VmFsdWUoKTtcblxuICAgIGlmICh0aGlzLmZpbHRlckZvcm1Db25maWc/LmNoZWNrQW5kU2VhcmNoKSB7XG4gICAgICBjb25zdCBjb250cm9sTmFtZSA9IHRoaXMuZmlsdGVyRm9ybUNvbmZpZy5jaGVja0FuZFNlYXJjaC5mb3JtQ29udHJvbE5hbWU7XG4gICAgICBkYWRvc1tjb250cm9sTmFtZV0gPSB0aGlzLmZvcm1GaWx0ZXIuZ2V0KGNvbnRyb2xOYW1lKS52YWx1ZTtcbiAgICB9XG4gICAgYXdhaXQgc3VwZXIuc2VhcmNoKGRhZG9zKTtcbiAgfVxuXG4gIHB1YmxpYyB0b29nbGVGaWx0ZXIoKSB7XG4gICAgdGhpcy5zaG93QWR2YW5jZWRGaWx0ZXIgPSAhdGhpcy5zaG93QWR2YW5jZWRGaWx0ZXI7XG4gIH1cblxuICBwdWJsaWMgaGF2ZU9wdGlvbnNPbkl0ZW1MaW5lKGl0ZW06IGFueSkge1xuICAgIHJldHVybiB0aGlzLml0ZW1zTWVudUxpc3RPcHRpb25zLmZpbHRlcihvcHRpb24gPT4gb3B0aW9uLmhhdmVQZXJtaXNzaW9uICYmIChcbiAgICAgICFvcHRpb24uc2hvd0J5SXRlbUxpc3QgfHxcbiAgICAgIG9wdGlvbi5zaG93QnlJdGVtTGlzdChpdGVtKVxuICAgICkpLmxlbmd0aCA+IDBcbiAgfVxuXG4gIHB1YmxpYyBoYXNGb290ZXIoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5pdGVtc0xpc3QuZmluZChpdGVtID0+ICEhaXRlbS5mb290ZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Q29uZmlnKCkge1xuICAgIHRoaXMuY29sdW1uU29ydCA9IHRoaXMuY29uZmlnLmNvbHVtblNvcnQgPz8gbnVsbDtcbiAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSB0aGlzLmNvbmZpZy5zb3J0RGlyZWN0aW9uID8/ICdhc2MnO1xuICAgIHRoaXMuaXRlbXNNZW51TGlzdE9wdGlvbnMgPSB0aGlzLmNvbmZpZy5pdGVtc01lbnVMaXN0T3B0aW9ucyA/PyBbXTtcbiAgICB0aGlzLnR5cGVSZXF1ZXN0ID0gdGhpcy5jb25maWcudHlwZVJlcXVlc3QgPz8gJ2FsbCc7XG4gICAgdGhpcy5xdGRMaXN0UmVzdWx0ID0gdGhpcy5jb25maWcucXRkTGlzdFJlc3VsdCA/PyAwO1xuICAgIHRoaXMuY29sdW1uc1RvU2hvd0luTGlzdCA9IHRoaXMuY29uZmlnLmNvbHVtbnNUb1Nob3dJbkxpc3Q7XG4gICAgdGhpcy5pdGVtc0xpc3QgPSB0aGlzLmNvbmZpZy5pdGVtc0xpc3QubWFwKGl0ZW0gPT4ge1xuICAgICAgaWYgKCFpdGVtLmRibENsaWNrKSB7XG4gICAgICAgIGl0ZW0uZGJsQ2xpY2sgPSAoKSA9PiB7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9KTtcbiAgICB0aGlzLnNob3dBZHZhbmNlZEZpbHRlciA9IHRoaXMuY29uZmlnLnNob3dBZHZhbmNlZEZpbHRlcjtcbiAgICB0aGlzLmZpbHRlckZvcm1Db25maWcgPSB0aGlzLmNvbmZpZy5maWx0ZXJGb3JtQ29uZmlnO1xuICAgIHRoaXMucmVxdWVzdCA9IHRoaXMuY29uZmlnLnJlcXVlc3Q7XG4gICAgdGhpcy5yZWxvYWQgPSB0aGlzLmNvbmZpZy5yZWxvYWQ7XG4gICAgdGhpcy5yZXNwb25zZUluZGV4TmFtZSA9IHRoaXMuY29uZmlnLnJlc3BvbnNlSW5kZXhOYW1lO1xuICAgIHRoaXMucmVzcG9uc2VRdGRSZXN1bHRJbmRleE5hbWUgPSB0aGlzLmNvbmZpZy5yZXNwb25zZVF0ZFJlc3VsdEluZGV4TmFtZTtcbiAgICB0aGlzLmZpbHRlclBhcmFtcyA9IHRoaXMuY29uZmlnLmZpbHRlclBhcmFtcyA/PyBuZXcgQmVoYXZpb3JTdWJqZWN0PEtvYWxhTGlzdEZvcm1GaWx0ZXJJbnRlcmZhY2U+KG51bGwpO1xuICAgIHRoaXMuZW1wdHlMaXN0Q29tcG9uZW50ID0gdGhpcy5jb25maWcuZW1wdHlMaXN0Q29tcG9uZW50O1xuICAgIHRoaXMuZXJyb3JMaXN0Q29tcG9uZW50ID0gdGhpcy5jb25maWcuZXJyb3JMaXN0Q29tcG9uZW50O1xuICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLmNvbmZpZy5wYWdlU2l6ZSA/PyAzMDtcbiAgICB0aGlzLmRpc2FibGVkQ2hlY2tib3hJdGVtTGlzdCA9IHRoaXMuY29uZmlnLmRpc2FibGVkQ2hlY2tib3hJdGVtTGlzdDtcbiAgICB0aGlzLnN1Ykxpc3RDb25maWcgPSB0aGlzLmNvbmZpZy5zdWJMaXN0Q29uZmlnO1xuICAgIHRoaXMuYnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnID0gdGhpcy5jb25maWcuYnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnO1xuICAgIHRoaXMuaGlkZVBhZ2luYXRvciA9IHRoaXMuY29uZmlnLmhpZGVQYWdpbmF0b3I7XG4gICAgdGhpcy5jdXN0b21DbGFzcyA9IHRoaXMuY29uZmlnLmN1c3RvbUNsYXNzO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibGlzdC1jb250YWluZXJcIiBbbmdDbGFzc109XCJjdXN0b21DbGFzc1wiPlxuICA8ZGl2ICpuZ0lmPVwiZmlsdGVyRm9ybUNvbmZpZ1wiIGNsYXNzPVwibGlzdC1maWx0ZXJcIj5cbiAgICA8Zm9ybSAobmdTdWJtaXQpPVwiZmlsdGVyU3VibWl0KClcIiBbZm9ybUdyb3VwXT1cImZvcm1GaWx0ZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYWluXCI+XG4gICAgICAgIDxrb2FsYS1keW5hbWljLWZvcm1cbiAgICAgICAgICAqbmdJZj1cImZpbHRlckZvcm1Db25maWcubWFpblwiXG4gICAgICAgICAgW2Zvcm1dPVwiZmlsdGVyRm9ybUNvbmZpZy5tYWluLmZvcm1cIlxuICAgICAgICAgIFtmb3JtQ29uZmlnXT1cImZpbHRlckZvcm1Db25maWcubWFpbi5mb3JtQ29uZmlnXCJcbiAgICAgICAgICBbc2V0VmFsdWVzXT1cImZpbHRlckZvcm1Db25maWcubWFpbi5zZXRWYWx1ZXNcIlxuICAgICAgICAgIFtzaG93RmllbGRzXT1cImZpbHRlckZvcm1Db25maWcubWFpbi5zaG93RmllbGRzXCI+XG4gICAgICAgIDwva29hbGEtZHluYW1pYy1mb3JtPlxuICAgICAgICA8dWw+XG4gICAgICAgICAgPGxpICpuZ0lmPVwiZmlsdGVyRm9ybUNvbmZpZy5hZHZhbmNlZFwiIGNsYXNzPVwib3B0aW9uXCI+XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0b29nbGVGaWx0ZXIoKVwiIGNvbG9yPVwicHJpbWFyeVwiIG1hdC1pY29uLWJ1dHRvbiBtYXRUb29sdGlwPVwiRmlsdHJvIEF2YW7Dp2Fkb1wiXG4gICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImJlbG93XCIgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24+dHVuZTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDxsaSAqbmdJZj1cImZpbHRlckZvcm1Db25maWcuY2hlY2tBbmRTZWFyY2hcIiBjbGFzcz1cImNoZWNrYm94LWZpbHRlclwiPlxuICAgICAgICAgICAgPG1hdC1jaGVja2JveCAoY2xpY2spPVwiZmlsdGVyU3VibWl0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpbHRlckZvcm1Db25maWcuY2hlY2tBbmRTZWFyY2guZm9ybUNvbnRyb2xOYW1lXCI+XG4gICAgICAgICAgICAgIHt7ZmlsdGVyRm9ybUNvbmZpZy5jaGVja0FuZFNlYXJjaC5sYWJlbH19XG4gICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDxsaSBjbGFzcz1cIm9wdGlvblwiPlxuICAgICAgICAgICAgPGtvYWxhLXN1Ym1pdFxuICAgICAgICAgICAgICBbYnRuU3VibWl0RGlzYWJsZWRdPVwiYnRuU3VibWl0RGlzYWJsZWRcIlxuICAgICAgICAgICAgICBbZmddPVwiZm9ybUZpbHRlclwiXG4gICAgICAgICAgICAgIFtpY29uQnV0dG9uXT1cInRydWVcIlxuICAgICAgICAgICAgICBbbG9hZGVyXT1cImxvYWRlclwiXG4gICAgICAgICAgICAgIGljb249XCJzZWFyY2hcIj5cbiAgICAgICAgICAgIDwva29hbGEtc3VibWl0PlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJmaWx0ZXJGb3JtQ29uZmlnLmFkdmFuY2VkXCIgW25nQ2xhc3NdPVwieydzaG93Jzogc2hvd0FkdmFuY2VkRmlsdGVyfVwiIGNsYXNzPVwiYWR2YW5jZWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1maWx0ZXJcIj5cbiAgICAgICAgICA8a29hbGEtZHluYW1pYy1mb3JtXG4gICAgICAgICAgICBbZm9ybV09XCJmaWx0ZXJGb3JtQ29uZmlnLmFkdmFuY2VkLmZvcm1cIlxuICAgICAgICAgICAgW2Zvcm1Db25maWddPVwiZmlsdGVyRm9ybUNvbmZpZy5hZHZhbmNlZC5mb3JtQ29uZmlnXCJcbiAgICAgICAgICAgIFtzZXRWYWx1ZXNdPVwiZmlsdGVyRm9ybUNvbmZpZy5hZHZhbmNlZC5zZXRWYWx1ZXNcIlxuICAgICAgICAgICAgW3Nob3dGaWVsZHNdPVwiZmlsdGVyRm9ybUNvbmZpZy5hZHZhbmNlZC5zaG93RmllbGRzXCI+XG4gICAgICAgICAgPC9rb2FsYS1keW5hbWljLWZvcm0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICA8L2Rpdj5cbiAgPG5hdiBjbGFzcz1cIm1lbnUtbGlzdFwiPlxuICAgIDx1bCBjbGFzcz1cIm1lbnVcIj5cbiAgICAgIDxsaSAqbmdJZj1cInNlbGVjdGlvbi5oYXNWYWx1ZSgpXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltpdGVtc1NlbGVjdExpc3RdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9saT5cbiAgICAgIDxsaSAqbmdJZj1cInNlbGVjdGlvbi5oYXNWYWx1ZSgpXCIgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPnw8L2xpPlxuICAgICAgPGxpPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaXRlbXNMaXN0XVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9uYXY+XG4gIDxkaXYgKm5nSWY9XCJsb2FkZXIgfCBhc3luY1wiIGNsYXNzPVwic3Bpbm5lci1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7XG4gICAgJ25vLWZpbHRlcic6ICFmaWx0ZXJGb3JtQ29uZmlnXG4gIH1cIj5cbiAgICA8bWF0LXNwaW5uZXIgY29sb3I9XCJwcmltYXJ5XCIgZGlhbWV0ZXI9XCI0MFwiPjwvbWF0LXNwaW5uZXI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibGlzdFwiPlxuICAgIDx0YWJsZVxuICAgICAgKm5nSWY9XCIhZW1wdHlMaXN0Q29tcG9uZW50IHx8IChlbXB0eUxpc3RDb21wb25lbnQgJiYgZGF0YVNvdXJjZT8uZGF0YT8ubGVuZ3RoID4gMCkgZWxzZSBlbXB0eUxpc3RcIlxuICAgICAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiXG4gICAgICBbbWF0U29ydEFjdGl2ZV09XCJjb2x1bW5Tb3J0XCJcbiAgICAgIFtpZF09XCJ0YWJsZUlkXCJcbiAgICAgIG11bHRpVGVtcGxhdGVEYXRhUm93c1xuICAgICAgY2xhc3M9XCJ0YWJsZS1ob3ZlclwiXG4gICAgICBtYXQtdGFibGVcbiAgICAgIG1hdFNvcnRcbiAgICAgIFttYXRTb3J0RGlyZWN0aW9uXT1cInNvcnREaXJlY3Rpb25cIiBtYXRTb3J0RGlzYWJsZUNsZWFyPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzZWxlY3RcIj5cbiAgICAgICAgPHRoICptYXRIZWFkZXJDZWxsRGVmIG1hdC1oZWFkZXItY2VsbD5cbiAgICAgICAgICA8bWF0LWNoZWNrYm94IChjaGFuZ2UpPVwiJGV2ZW50ID8gc2VsZWN0QWxsKCkgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmIGFsbFNlbGVjdGVkJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cInNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmICEoYWxsU2VsZWN0ZWQkIHwgYXN5bmMpXCI+XG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDx0ZCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgbWF0LWNlbGw+XG4gICAgICAgICAgPG1hdC1jaGVja2JveCAqbmdJZj1cImRpc2FibGVkQ2hlY2tib3hJdGVtTGlzdCA/ICFkaXNhYmxlZENoZWNrYm94SXRlbUxpc3QoaXRlbSkgOiB0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gc2VsZWN0aW9uLnRvZ2dsZShpdGVtKSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgc2VsZWN0SXRlbSgpO1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb24uaXNTZWxlY3RlZChpdGVtKVwiPlxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgKm1hdEZvb3RlckNlbGxEZWYgbWF0LWZvb3Rlci1jZWxsPjwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN1Ykxpc3RDb25maWcgJiYgYnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnXCIgbWF0Q29sdW1uRGVmPVwiY29sbGFwc2VCdXR0b25cIj5cbiAgICAgICAgPHRoICptYXRIZWFkZXJDZWxsRGVmIG1hdC1oZWFkZXItY2VsbD48L3RoPlxuICAgICAgICA8dGQgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiIG1hdC1jZWxsPlxuICAgICAgICAgIDxrb2FsYS1idXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiYnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnLnNob3coaXRlbSlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImV4cGFuZGVkRWxlbWVudCA9IGV4cGFuZGVkRWxlbWVudCA9PT0gaXRlbSA/IG51bGwgOiBpdGVtXCJcbiAgICAgICAgICAgIFtrb2FsYUljb25dPVwiYnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnLmtvYWxhSWNvblwiXG4gICAgICAgICAgICBbaWNvbl09XCJidG5Db2xsYXBzZVN1Ykxpc3RDb25maWcuaWNvblwiXG4gICAgICAgICAgICBbdG9vbHRpcF09XCJidG5Db2xsYXBzZVN1Ykxpc3RDb25maWcudG9vbHRpcFwiXG4gICAgICAgICAgICBbY29sb3JdPVwiYnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnLmljb25Db2xvclwiXG4gICAgICAgICAgICBbYmFja2dyb3VuZENvbG9yXT1cImJ0bkNvbGxhcHNlU3ViTGlzdENvbmZpZy5iYWNrZ3JvdW5kQ29sb3JcIlxuICAgICAgICAgICAgW2tvYWxhSWNvblNpemVdPVwiMjJcIj5cbiAgICAgICAgICA8L2tvYWxhLWJ1dHRvbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkICptYXRGb290ZXJDZWxsRGVmIG1hdC1mb290ZXItY2VsbD48L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW1MaXN0IG9mIGl0ZW1zTGlzdFwiIFttYXRDb2x1bW5EZWZdPVwiaXRlbUxpc3QuY29sdW1uRGVmXCI+XG4gICAgICAgIDx0aCAqbWF0SGVhZGVyQ2VsbERlZiBbbWF0LXNvcnQtaGVhZGVyXT1cIml0ZW1MaXN0LnNvcnRIZWFkZXJcIiBbZGlzYWJsZWRdPVwiIWl0ZW1MaXN0LnNvcnRIZWFkZXJcIiBtYXQtaGVhZGVyLWNlbGw+e3tpdGVtTGlzdC5sYWJlbH19PC90aD5cbiAgICAgICAgPHRkIChkYmxjbGljayk9XCJpdGVtTGlzdC5kYmxDbGljayhpdGVtKVwiICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBtYXQtY2VsbD5cblx0ICAgICAgICA8a29hbGEtZHluYW1pYy1jb21wb25lbnQgKm5nSWY9XCJpdGVtTGlzdC5pdGVtQ29tcG9uZW50IGVsc2UgaXRlbVRleHRcIlxuXHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZHluYW1pY0NvbXBvbmVudF09XCJpdGVtTGlzdC5pdGVtQ29tcG9uZW50KGl0ZW0pXCI+PC9rb2FsYS1keW5hbWljLWNvbXBvbmVudD5cblx0ICAgICAgICA8bmctdGVtcGxhdGUgI2l0ZW1UZXh0PlxuXHQgICAgICAgICAge3tpdGVtTGlzdC5pdGVtTmFtZVByb3BlcnR5KGl0ZW0pfX1cblx0ICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgKm1hdEZvb3RlckNlbGxEZWYgbWF0LWZvb3Rlci1jZWxsPlxuICAgICAgICAgIDxrb2FsYS1keW5hbWljLWNvbXBvbmVudCAqbmdJZj1cIml0ZW1MaXN0LmZvb3Rlcj8uaXRlbUNvbXBvbmVudCBlbHNlIGl0ZW1Gb290ZXJUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2R5bmFtaWNDb21wb25lbnRdPVwiaXRlbUxpc3QuZm9vdGVyPy5pdGVtQ29tcG9uZW50KHJlc3BvbnNlUmVxdWVzdClcIj48L2tvYWxhLWR5bmFtaWMtY29tcG9uZW50PlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaXRlbUZvb3RlclRleHQ+XG4gICAgICAgICAgICB7e2l0ZW1MaXN0LmZvb3Rlcj8uaXRlbU5hbWVQcm9wZXJ0eShyZXNwb25zZVJlcXVlc3QpfX1cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdWJMaXN0Q29uZmlnICYmIGJ0bkNvbGxhcHNlU3ViTGlzdENvbmZpZ1wiIG1hdENvbHVtbkRlZj1cImtvYWxhTGlzdERldGFpbHNcIj5cbiAgICAgICAgPHRoICptYXRIZWFkZXJDZWxsRGVmIG1hdC1oZWFkZXItY2VsbD48L3RoPlxuICAgICAgICA8dGQgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiIFthdHRyLmNvbHNwYW5dPVwiY29sdW1uc1RvU2hvd0luTGlzdC5sZW5ndGhcIiBtYXQtY2VsbD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1kZXRhaWxcIiBbQGRldGFpbEV4cGFuZF09XCJpdGVtID09IGV4cGFuZGVkRWxlbWVudCA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJ1wiPlxuICAgICAgICAgICAgPGtvYWxhLWxpc3QgW2NvbmZpZ109XCJzdWJMaXN0Q29uZmlnKGl0ZW0pXCI+PC9rb2FsYS1saXN0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgKm1hdEZvb3RlckNlbGxEZWYgbWF0LWZvb3Rlci1jZWxsPjwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJvcHRpb25zXCI+XG4gICAgICAgIDx0aCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtaGVhZGVyLWNlbGw+PC90aD5cbiAgICAgICAgPHRkICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBtYXQtY2VsbD5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGF2ZU9wdGlvbnNPbkl0ZW1MaW5lKGl0ZW0pXCI+XG4gICAgICAgICAgICA8YnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJvcHRpb25zXCIgbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9J21hdGVyaWFsLWljb25zJz5tb3JlX3ZlcnQ8L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxtYXQtbWVudSAjb3B0aW9ucz1cIm1hdE1lbnVcIiBjbGFzcz1cIm1lbnUtbGlzdFwiIHlQb3NpdGlvbj1cImJlbG93XCI+XG5cdCAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBpdGVtc01lbnVMaXN0T3B0aW9uc1wiPlxuXHQgICAgICAgICAgICAgIDxidXR0b25cblx0XHQgICAgICAgICAgICAgIChjbGljayk9XCJvcHRpb24uYWN0aW9uKGl0ZW0pXCJcblx0XHQgICAgICAgICAgICAgICpuZ0lmPVwib3B0aW9uLmhhdmVQZXJtaXNzaW9uICYmIChcblx0XHQgICAgICAgICAgICAgICAgIW9wdGlvbi5zaG93QnlJdGVtTGlzdCB8fFxuXHRcdCAgICAgICAgICAgICAgICBvcHRpb24uc2hvd0J5SXRlbUxpc3QoaXRlbSlcblx0ICAgICAgICAgICAgICAgIClcIlxuXHRcdCAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbT5cblx0ICAgICAgICAgICAgICAgIDxtYXQtaWNvbj57e29wdGlvbi5pY29ufX08L21hdC1pY29uPlxuXHQgICAgICAgICAgICAgICAgPHNwYW4+e3tvcHRpb24ubmFtZX19PC9zcGFuPlxuXHQgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXHQgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCAqbWF0Rm9vdGVyQ2VsbERlZiBtYXQtZm9vdGVyLWNlbGw+PC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8dHIgKm1hdEhlYWRlclJvd0RlZj1cImNvbHVtbnNUb1Nob3dJbkxpc3Q7IHN0aWNreTogdHJ1ZVwiIG1hdC1oZWFkZXItcm93PjwvdHI+XG4gICAgICA8dHIgKm1hdFJvd0RlZj1cImxldCBpdGVtOyBjb2x1bW5zOiBjb2x1bW5zVG9TaG93SW5MaXN0O1wiIG1hdC1yb3c+PC90cj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdWJMaXN0Q29uZmlnICYmIGJ0bkNvbGxhcHNlU3ViTGlzdENvbmZpZ1wiPlxuICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogWydrb2FsYUxpc3REZXRhaWxzJ11cIiBjbGFzcz1cIml0ZW0tZGV0YWlsLXJvd1wiPjwvdHI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNGb290ZXIoKVwiPlxuICAgICAgICA8dHIgKm1hdEZvb3RlclJvd0RlZj1cImNvbHVtbnNUb1Nob3dJbkxpc3Q7IHN0aWNreTogdHJ1ZVwiIG1hdC1mb290ZXItcm93PjwvdHI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3RhYmxlPlxuICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlMaXN0PlxuICAgICAgPGtvYWxhLWR5bmFtaWMtY29tcG9uZW50ICpuZ0lmPVwiIShmaWx0ZXJFcnJvciQgfCBhc3luYykgZWxzZSBlcnJvckxpc3RcIiBbZHluYW1pY0NvbXBvbmVudF09XCJlbXB0eUxpc3RDb21wb25lbnRcIj48L2tvYWxhLWR5bmFtaWMtY29tcG9uZW50PlxuICAgICAgPG5nLXRlbXBsYXRlICNlcnJvckxpc3Q+XG4gICAgICAgIDxrb2FsYS1keW5hbWljLWNvbXBvbmVudCBbZHluYW1pY0NvbXBvbmVudF09XCJlcnJvckxpc3RDb21wb25lbnRcIj48L2tvYWxhLWR5bmFtaWMtY29tcG9uZW50PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIiFoaWRlUGFnaW5hdG9yXCIgY2xhc3M9XCJjb250ZW50LXBhZ2luYXRvclwiPlxuICAgIDxtYXQtcGFnaW5hdG9yXG4gICAgICBbbGVuZ3RoXT1cInF0ZExpc3RSZXN1bHRcIlxuICAgICAgW3BhZ2VTaXplT3B0aW9uc109XCJsaW1pdE9wdGlvbnNcIlxuICAgICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgICAgIHNob3dGaXJzdExhc3RCdXR0b25zPlxuICAgIDwvbWF0LXBhZ2luYXRvcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -24,9 +24,9 @@ export class PaginationProvider extends MatPaginatorIntl {
24
24
  this.changes.next();
25
25
  }
26
26
  }
27
- PaginationProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: PaginationProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
28
- PaginationProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: PaginationProvider });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: PaginationProvider, decorators: [{
27
+ PaginationProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: PaginationProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
28
+ PaginationProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: PaginationProvider });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: PaginationProvider, decorators: [{
30
30
  type: Injectable
31
31
  }], ctorParameters: function () { return []; } });
32
32
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpc3Qvc3JjL2xpYi9wcm92aWRlcnMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxnQkFBZ0I7SUFDdEQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQWFILGtCQUFhLEdBQUcsQ0FBQyxJQUFZLEVBQUUsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsRUFBRTtZQUN4RSxJQUFJLE1BQU0sS0FBSyxDQUFDLElBQUksUUFBUSxLQUFLLENBQUMsRUFBRTtnQkFDbEMsT0FBTyxPQUFPLE1BQU0sRUFBRSxDQUFDO2FBQ3hCO1lBQ0QsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzdCLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxRQUFRLENBQUM7WUFDbkMsTUFBTSxRQUFRLEdBQUcsVUFBVSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1lBQ3ZHLE9BQU8sR0FBRyxVQUFVLEdBQUcsQ0FBQyxNQUFNLFFBQVEsTUFBTSxNQUFNLEVBQUUsQ0FBQztRQUN2RCxDQUFDLENBQUE7UUFwQkMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLHNCQUFzQjtRQUMzQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsa0JBQWtCLENBQUM7UUFDNUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQztRQUN4QyxJQUFJLENBQUMsYUFBYSxHQUFHLGdCQUFnQixDQUFDO1FBQ3RDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLGVBQWUsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7OytHQWJVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXRQYWdpbmF0b3JJbnRsIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Qcm92aWRlciBleHRlbmRzIE1hdFBhZ2luYXRvckludGwge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZ2V0QW5kSW5pdFRyYW5zbGF0aW9ucygpO1xuICB9XG5cbiAgcHVibGljIGdldEFuZEluaXRUcmFuc2xhdGlvbnMoKSB7XG4gICAgdGhpcy5pdGVtc1BlclBhZ2VMYWJlbCA9IFwiSXRlbnMgcG9yIFDDoWdpbmFcIjtcbiAgICB0aGlzLmZpcnN0UGFnZUxhYmVsID0gXCJQcmltZWlyYSBQw6FnaW5hXCI7XG4gICAgdGhpcy5uZXh0UGFnZUxhYmVsID0gXCJQcsOzeGltYSBQw6FnaW5hXCI7XG4gICAgdGhpcy5wcmV2aW91c1BhZ2VMYWJlbCA9IFwiUMOhZ2luYSBBbnRlcmlvclwiO1xuICAgIHRoaXMubGFzdFBhZ2VMYWJlbCA9IFwiw5psdGltYSBQw6FnaW5hXCI7XG4gICAgdGhpcy5jaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSYW5nZUxhYmVsID0gKHBhZ2U6IG51bWJlciwgcGFnZVNpemU6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpID0+IHtcbiAgICBpZiAobGVuZ3RoID09PSAwIHx8IHBhZ2VTaXplID09PSAwKSB7XG4gICAgICByZXR1cm4gYDAgLyAke2xlbmd0aH1gO1xuICAgIH1cbiAgICBsZW5ndGggPSBNYXRoLm1heChsZW5ndGgsIDApO1xuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSBwYWdlICogcGFnZVNpemU7XG4gICAgY29uc3QgZW5kSW5kZXggPSBzdGFydEluZGV4IDwgbGVuZ3RoID8gTWF0aC5taW4oc3RhcnRJbmRleCArIHBhZ2VTaXplLCBsZW5ndGgpIDogc3RhcnRJbmRleCArIHBhZ2VTaXplO1xuICAgIHJldHVybiBgJHtzdGFydEluZGV4ICsgMX0gLSAke2VuZEluZGV4fSAvICR7bGVuZ3RofWA7XG4gIH1cbn1cbiJdfQ==