@mozaic-ds/angular 0.24.0-test.0 → 0.24.0-test.2

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 (117) hide show
  1. package/adeo/components/card/card.component.d.ts +11 -0
  2. package/adeo/components/card/card.module.d.ts +8 -0
  3. package/adeo/components/card/index.d.ts +3 -0
  4. package/adeo/components/card/model/card.d.ts +1 -0
  5. package/adeo/components/card/public-api.d.ts +1 -0
  6. package/adeo/components/datatable/components/selection/moz-datatable-selection.component.d.ts +1 -1
  7. package/adeo/components/dropdown/dropdown.component.d.ts +5 -8
  8. package/adeo/components/header/header.component.d.ts +6 -4
  9. package/adeo/components/listbox/listbox.component.d.ts +8 -8
  10. package/adeo/components/phone-number/phone-number.component.d.ts +4 -12
  11. package/adeo/components/public-api.d.ts +1 -0
  12. package/adeo/components/tabs/tab.component.d.ts +4 -2
  13. package/adeo/components/tabs/tabs.component.d.ts +1 -1
  14. package/adeo/esm2020/components/action-bar/action-bar.component.mjs +3 -3
  15. package/adeo/esm2020/components/bottom-bar/index.mjs +1 -1
  16. package/adeo/esm2020/components/bottom-bar/public-api.mjs +1 -1
  17. package/adeo/esm2020/components/card/card.component.mjs +27 -0
  18. package/adeo/esm2020/components/card/card.module.mjs +18 -0
  19. package/adeo/esm2020/components/card/index.mjs +4 -0
  20. package/adeo/esm2020/components/card/model/card.mjs +2 -0
  21. package/adeo/esm2020/components/card/public-api.mjs +2 -0
  22. package/adeo/esm2020/components/container/container.module.mjs +5 -3
  23. package/adeo/esm2020/components/container/public-api.mjs +1 -1
  24. package/adeo/esm2020/components/datatable/components/selection/moz-datatable-selection.component.mjs +48 -68
  25. package/adeo/esm2020/components/datatable/moz-datatable.component.mjs +3 -3
  26. package/adeo/esm2020/components/dropdown/dropdown.component.mjs +16 -46
  27. package/adeo/esm2020/components/header/header.component.mjs +12 -12
  28. package/adeo/esm2020/components/listbox/listbox.component.mjs +33 -38
  29. package/adeo/esm2020/components/notification/notification-animation.mjs +6 -6
  30. package/adeo/esm2020/components/notification/notification-container.component.mjs +7 -7
  31. package/adeo/esm2020/components/phone-number/phone-number.component.mjs +15 -68
  32. package/adeo/esm2020/components/public-api.mjs +2 -1
  33. package/adeo/esm2020/components/tabs/tab.component.mjs +7 -6
  34. package/adeo/esm2020/components/tabs/tabs.component.mjs +8 -4
  35. package/adeo/fesm2015/mozaic-ds-angular.mjs +194 -256
  36. package/adeo/fesm2015/mozaic-ds-angular.mjs.map +1 -1
  37. package/adeo/fesm2020/mozaic-ds-angular.mjs +184 -248
  38. package/adeo/fesm2020/mozaic-ds-angular.mjs.map +1 -1
  39. package/adeo/package.json +1 -1
  40. package/bricoman/components/card/card.component.d.ts +11 -0
  41. package/bricoman/components/card/card.module.d.ts +8 -0
  42. package/bricoman/components/card/index.d.ts +3 -0
  43. package/bricoman/components/card/model/card.d.ts +1 -0
  44. package/bricoman/components/card/public-api.d.ts +1 -0
  45. package/bricoman/components/datatable/components/selection/moz-datatable-selection.component.d.ts +1 -1
  46. package/bricoman/components/dropdown/dropdown.component.d.ts +5 -8
  47. package/bricoman/components/header/header.component.d.ts +6 -4
  48. package/bricoman/components/listbox/listbox.component.d.ts +8 -8
  49. package/bricoman/components/phone-number/phone-number.component.d.ts +4 -12
  50. package/bricoman/components/public-api.d.ts +1 -0
  51. package/bricoman/components/tabs/tab.component.d.ts +4 -2
  52. package/bricoman/components/tabs/tabs.component.d.ts +1 -1
  53. package/bricoman/esm2020/components/action-bar/action-bar.component.mjs +3 -3
  54. package/bricoman/esm2020/components/bottom-bar/index.mjs +1 -1
  55. package/bricoman/esm2020/components/bottom-bar/public-api.mjs +1 -1
  56. package/bricoman/esm2020/components/card/card.component.mjs +27 -0
  57. package/bricoman/esm2020/components/card/card.module.mjs +18 -0
  58. package/bricoman/esm2020/components/card/index.mjs +4 -0
  59. package/bricoman/esm2020/components/card/model/card.mjs +2 -0
  60. package/bricoman/esm2020/components/card/public-api.mjs +2 -0
  61. package/bricoman/esm2020/components/container/container.module.mjs +5 -3
  62. package/bricoman/esm2020/components/container/public-api.mjs +1 -1
  63. package/bricoman/esm2020/components/datatable/components/selection/moz-datatable-selection.component.mjs +48 -68
  64. package/bricoman/esm2020/components/datatable/moz-datatable.component.mjs +3 -3
  65. package/bricoman/esm2020/components/dropdown/dropdown.component.mjs +16 -46
  66. package/bricoman/esm2020/components/header/header.component.mjs +12 -12
  67. package/bricoman/esm2020/components/listbox/listbox.component.mjs +33 -38
  68. package/bricoman/esm2020/components/notification/notification-animation.mjs +6 -6
  69. package/bricoman/esm2020/components/notification/notification-container.component.mjs +7 -7
  70. package/bricoman/esm2020/components/phone-number/phone-number.component.mjs +15 -68
  71. package/bricoman/esm2020/components/public-api.mjs +2 -1
  72. package/bricoman/esm2020/components/tabs/tab.component.mjs +7 -6
  73. package/bricoman/esm2020/components/tabs/tabs.component.mjs +8 -4
  74. package/bricoman/fesm2015/mozaic-ds-angular.mjs +194 -256
  75. package/bricoman/fesm2015/mozaic-ds-angular.mjs.map +1 -1
  76. package/bricoman/fesm2020/mozaic-ds-angular.mjs +184 -248
  77. package/bricoman/fesm2020/mozaic-ds-angular.mjs.map +1 -1
  78. package/bricoman/package.json +1 -1
  79. package/components/card/card.component.d.ts +11 -0
  80. package/components/card/card.module.d.ts +8 -0
  81. package/components/card/index.d.ts +3 -0
  82. package/components/card/model/card.d.ts +1 -0
  83. package/components/card/public-api.d.ts +1 -0
  84. package/components/datatable/components/selection/moz-datatable-selection.component.d.ts +1 -1
  85. package/components/dropdown/dropdown.component.d.ts +5 -8
  86. package/components/header/header.component.d.ts +6 -4
  87. package/components/listbox/listbox.component.d.ts +8 -8
  88. package/components/phone-number/phone-number.component.d.ts +4 -12
  89. package/components/public-api.d.ts +1 -0
  90. package/components/tabs/tab.component.d.ts +4 -2
  91. package/components/tabs/tabs.component.d.ts +1 -1
  92. package/esm2020/components/action-bar/action-bar.component.mjs +3 -3
  93. package/esm2020/components/bottom-bar/index.mjs +1 -1
  94. package/esm2020/components/bottom-bar/public-api.mjs +1 -1
  95. package/esm2020/components/card/card.component.mjs +27 -0
  96. package/esm2020/components/card/card.module.mjs +18 -0
  97. package/esm2020/components/card/index.mjs +4 -0
  98. package/esm2020/components/card/model/card.mjs +2 -0
  99. package/esm2020/components/card/public-api.mjs +2 -0
  100. package/esm2020/components/container/container.module.mjs +5 -3
  101. package/esm2020/components/container/public-api.mjs +1 -1
  102. package/esm2020/components/datatable/components/selection/moz-datatable-selection.component.mjs +48 -68
  103. package/esm2020/components/datatable/moz-datatable.component.mjs +3 -3
  104. package/esm2020/components/dropdown/dropdown.component.mjs +16 -46
  105. package/esm2020/components/header/header.component.mjs +12 -12
  106. package/esm2020/components/listbox/listbox.component.mjs +33 -38
  107. package/esm2020/components/notification/notification-animation.mjs +6 -6
  108. package/esm2020/components/notification/notification-container.component.mjs +7 -7
  109. package/esm2020/components/phone-number/phone-number.component.mjs +15 -68
  110. package/esm2020/components/public-api.mjs +2 -1
  111. package/esm2020/components/tabs/tab.component.mjs +7 -6
  112. package/esm2020/components/tabs/tabs.component.mjs +8 -4
  113. package/fesm2015/mozaic-ds-angular.mjs +194 -256
  114. package/fesm2015/mozaic-ds-angular.mjs.map +1 -1
  115. package/fesm2020/mozaic-ds-angular.mjs +184 -248
  116. package/fesm2020/mozaic-ds-angular.mjs.map +1 -1
  117. package/package.json +1 -1
@@ -125,10 +125,10 @@ export class MozDatatableComponent {
125
125
  }
126
126
  }
127
127
  MozDatatableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MozDatatableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
128
- MozDatatableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MozDatatableComponent, selector: "moz-datatable", inputs: { footerSettings: "footerSettings", selectionSettings: "selectionSettings", datatableSettings: "datatableSettings" }, outputs: { rowClick: "rowClick", sortColumn: "sortColumn", rowSelected: "rowSelected", rowAllSelected: "rowAllSelected", emptyBodyButtonClicked: "emptyBodyButtonClicked", pageChange: "pageChange", rowPerPageChange: "rowPerPageChange" }, queries: [{ propertyName: "expansionContentComponent", first: true, predicate: MozDatatableRowExpansionContentComponent, descendants: true }, { propertyName: "headerCellComponents", predicate: MozDatatableHeaderCellComponent }, { propertyName: "contentCellComponents", predicate: MozDatatableContentCellComponent }], viewQueries: [{ propertyName: "selectionComponent", first: true, predicate: MozDatatableSelectionComponent, descendants: true }, { propertyName: "thSelectionRef", first: true, predicate: ["thSelection"], descendants: true }, { propertyName: "thSubRowRef", first: true, predicate: ["thSubRow"], descendants: true }], ngImport: i0, template: "<div class=\"mc-datatable\" [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\">\n <div class=\"mc-datatable__header\">\n <ng-content select=\"moz-datatable-caption\"></ng-content>\n <div>\n <moz-datatable-selection\n [selectionSettings]=\"selectionSettings\"\n [paginationEnabled]=\"datatableSettings?.activatePagination\"\n [rowData]=\"datatableSettings?.rowData\"\n (updateSelectionAllEmitter)=\"selectionAllRowEvent($event)\"\n ></moz-datatable-selection>\n </div>\n </div>\n <div\n class=\"mc-datatable__container\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <div\n class=\"mc-datatable__main\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <table class=\"mc-datatable__table\">\n <thead [ngClass]=\"{ 'fix-header-row': datatableSettings?.fixHeaderRow }\">\n <tr *ngIf=\"getColumns() && getColumns().length > 0\">\n <th\n class=\"mc-datatable__cell-checkbox moz-datatable__th mc-datatable__fix-first-column\"\n *ngIf=\"\n datatableSettings?.activateSelection &&\n selectionComponent &&\n selectionSettings &&\n ((datatableSettings?.rowData || []).length > 0 || datatableSettings?.isLoading)\n \"\n #thSelection\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionAllPageRows($event);\n selectionRowEvent($event)\n \"\n [indeterminate]=\"selectionComponent.isIndeterminate\"\n [checked]=\"selectionSettings.allSelected && !selectionComponent.isIndeterminate\"\n [disabled]=\"datatableSettings?.isLoading || false\"\n >\n </moz-checkbox>\n </ng-template>\n </th>\n <th\n *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\"\n class=\"mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n #thSubRow\n ></th>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <th\n class=\"moz-datatable__th\"\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingHeading\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n\n <ng-template #notLoadingHeading>\n <div\n [mozDatatableSort]=\"columnDef\"\n [ngClass]=\"{ header: columnDef.sort }\"\n (sortEmitter)=\"sortEvent($event)\"\n >\n <ng-container\n *ngIf=\"\n getCustomHeader(columnDef.field) as customHeader;\n else defaultHeaderCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customHeader;\n context: {\n $implicit: {\n content: columnDef\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultHeaderCell>\n {{ columnDef.headerName | uppercase }}\n </ng-template>\n </div>\n </ng-template>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <ng-container\n *ngIf=\"\n (datatableSettings?.rowData?.length || 0) > 0 || datatableSettings?.isLoading;\n else emptyBody\n \"\n >\n <ng-container *ngFor=\"let row of getFields(); index as i\">\n <tr class=\"mc-datatable__row-parent\" (click)=\"rowClickEvent($event, row)\">\n <td\n class=\"mc-datatable__fix-first-column\"\n *ngIf=\"datatableSettings?.activateSelection && selectionComponent\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionRow(row); selectionRowEvent($event)\n \"\n [(ngModel)]=\"row.selected\"\n [checked]=\"row.selected || false\"\n [disabled]=\"row.disableSelection || false\"\n >\n </moz-checkbox>\n </ng-template>\n </td>\n <ng-container *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\">\n <td\n *ngIf=\"row['subRow']; else noSubRow\"\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n >\n <button\n class=\"mc-datatable__expand mc-datatable__btn\"\n (click)=\"toggleRowExpansion(i); $event.stopPropagation()\"\n >\n <span class=\"mc-datatable__btn-icon\">\n <ng-container *ngIf=\"!expandedRows[i]; else subrowClosed\">\n <moz-icon [iconName]=\"'Navigation_Control_Circle--More_24px'\"></moz-icon>\n </ng-container>\n <ng-template #subrowClosed>\n <moz-icon [iconName]=\"'Navigation_Control_Circle--Less_24px'\"></moz-icon>\n </ng-template>\n </span>\n </button>\n </td>\n <ng-template #noSubRow\n ><td\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n ></td\n ></ng-template>\n </ng-container>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <td\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCells\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCells>\n <ng-container\n *ngIf=\"\n getCustomContent(columnDef.field) as customContent;\n else defaultContentCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customContent;\n context: {\n $implicit: {\n row: row,\n index: i,\n columnDefs: datatableSettings?.columnDefs,\n content: row[columnDef.field]\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultContentCell>\n {{ row[columnDef.field] }}\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </tr>\n <ng-container>\n <tr *ngIf=\"expandedRows[i]\">\n <td [attr.colspan]=\"getColspanForExpansionRow()\">\n <ng-container\n *ngIf=\"getCustomExpansionRowContent() as expansionRowContentComponent\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n expansionRowContentComponent;\n context: {\n $implicit: {\n subRowContent: row['subRow'],\n index: i,\n }\n }\n \"\n ></ng-container>\n </ng-container>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #emptyBody>\n <tr class=\"mc-datatable__empty\">\n <td colspan=\"5\" class=\"mc-datatable__empty-cell\">\n <div class=\"mc-datatable__empty-content\">\n <div>\n <div>\n <p>\n <strong>\n {{\n datatableSettings?.labels?.emptyBodyTitle || 'There is no result.'\n }}</strong\n ><br />\n {{\n datatableSettings?.labels?.emptyBodyDescription ||\n 'Please try changing your filters.'\n }}\n </p>\n </div>\n <div *ngIf=\"datatableSettings?.activateEmptyBodyButton\">\n <button\n moz-button\n [theme]=\"'neutral'\"\n [size]=\"'s'\"\n [variation]=\"'bordered'\"\n (click)=\"emptyButtonClickEvent()\"\n >\n <moz-icon\n iconName=\"{{\n datatableSettings?.icons?.emptyBodyButtonIcon ||\n 'Navigation_Display_Filter_24px'\n }}\"\n ></moz-icon>\n {{ datatableSettings?.labels?.emptyBodyButtonTitle || 'Change filters' }}\n </button>\n </div>\n </div>\n </div>\n </td>\n </tr></ng-template\n >\n </tbody>\n </table>\n </div>\n <moz-datatable-footer\n *ngIf=\"datatableSettings?.activatePagination\"\n [footerSettings]=\"footerSettings\"\n [isLoading]=\"datatableSettings?.isLoading\"\n (rowPerPageChangeEmitter)=\"rowPerPageChangeEvent($event)\"\n (pageChangeEmitter)=\"pageChangeEvent($event)\"\n ></moz-datatable-footer>\n </div>\n</div>\n", styles: [".mc-datatable{font-family:Roboto,sans-serif;box-sizing:border-box}.mc-datatable *,.mc-datatable :after,.mc-datatable :before{box-sizing:inherit}.mc-datatable__container{border-radius:4px;box-shadow:0 1px 5px #19191933;background-color:#e7e7f0;overflow:hidden}.mc-datatable__main{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;overflow:auto}.mc-datatable__main::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable__main::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable__main::-webkit-scrollbar-thumb{background:#666666}.mc-datatable__table tr,.mc-datatable thead th,.mc-datatable thead td{height:2.9375rem}.mc-datatable__table{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%}.mc-datatable__table>thead,.mc-datatable__table>tbody{background-color:#fff}.mc-datatable__table th,.mc-datatable__table td{border-bottom:1px solid #b3b3b3;text-align:left;vertical-align:middle;padding-right:1rem;padding-left:1rem}.mc-datatable thead th,.mc-datatable thead td{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase}.mc-datatable__head{align-items:center;display:flex;justify-content:space-between}.mc-datatable tbody tr:hover:not(.mc-datatable__empty){background-color:#eaedef}.mc-datatable tbody tr.selected{background-color:#d9f0f3}.mc-datatable tbody th,.mc-datatable tbody td{font-size:.875rem;line-height:1.2857142857;color:#191919}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable{height:0}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable .mc-datatable__row-inner{overflow:hidden;max-height:0}.mc-datatable__row-parent.mc-datatable__row-parent--expanded+.mc-datatable__row-expandable .mc-datatable__row-inner{max-height:100%}.mc-datatable__row-expandable>td{padding:0;border-bottom:0}.mc-datatable__row-expandable--offset-1 table th:first-child,.mc-datatable__row-expandable--offset-1 table td:first-child{padding-left:4.25rem}.mc-datatable__row-expandable--offset-2 table th:first-child,.mc-datatable__row-expandable--offset-2 table td:first-child{padding-left:7.75rem}.mc-datatable__cell-checkbox{width:3.25rem}.mc-datatable__cell-button{width:3.5rem}.mc-datatable__cell-field{min-width:9.375rem}td.mc-datatable__cell-number{text-align:right}.mc-datatable__empty,.mc-datatable__empty:hover{background-color:#e7e7f0}.mc-datatable__empty-cell{color:#4b4a8c}.mc-datatable__empty-content{font-size:1rem;line-height:1.375;align-items:center;color:#4b4a8c;display:flex;gap:1.5rem;min-height:19.375rem;justify-content:center;text-align:center}.mc-datatable__empty-content strong{font-size:1.125rem;line-height:1.3333333333}.mc-datatable--s .mc-datatable__table tr,.mc-datatable--s .mc-datatable thead th,.mc-datatable--s .mc-datatable thead td{height:2.4375rem}.mc-datatable--l .mc-datatable__table tr,.mc-datatable--l .mc-datatable thead th,.mc-datatable--l .mc-datatable thead td{height:3.4375rem}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky-header .mc-datatable__table>thead{box-shadow:0 4px 20px #19191933;top:0;z-index:2}.mc-datatable--sticky .mc-datatable__table>tbody tr:last-child th,.mc-datatable--sticky .mc-datatable__table>tbody tr:last-child td,.mc-datatable--sticky-header .mc-datatable__table>tbody tr:last-child th,.mc-datatable--sticky-header .mc-datatable__table>tbody tr:last-child td{border-bottom:transparent}.mc-datatable--sticky .mc-datatable__footer,.mc-datatable--sticky-header .mc-datatable__footer{border-top:1px solid #b3b3b3;position:relative;z-index:2}.mc-datatable--sticky .mc-datatable__main{padding-top:2.9375rem;transform:translateZ(0)}.mc-datatable--sticky .mc-datatable__table{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;display:block;overflow-y:auto}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-thumb{background:#666666}.mc-datatable--sticky .mc-datatable__table>thead{position:fixed;width:100%}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr,.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{display:flex}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr{width:100%}.mc-datatable--sticky .mc-datatable__table>tbody{flex-direction:column}.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{align-items:center}.mc-datatable--sticky .mc-datatable__table>thead th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>thead td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button){flex:1}.mc-datatable--sticky .mc-datatable__cell-checkbox,.mc-datatable--sticky .mc-datatable__cell-button,.mc-datatable--sticky .mc-datatable__cell-field,.mc-datatable--sticky .mc-datatable__cell-number{flex-shrink:0}.mc-datatable--sticky .mc-datatable__cell-number{justify-content:flex-end}.mc-datatable--sticky-header .mc-datatable__main{overflow-y:auto}.mc-datatable--sticky-header .mc-datatable__table>thead{position:sticky}.mc-datatable--overflow-visible .mc-datatable__container,.mc-datatable--overflow-visible .mc-datatable__main{overflow:visible}.mc-datatable__btn{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;align-items:center;background-color:transparent;display:flex}.mc-datatable__btn-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__btn-icon,.mc-datatable__btn svg{width:1.5rem;height:1.5rem}.mc-datatable__sort{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase;align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.mc-datatable__sort-arrow{align-items:center;display:flex;flex-direction:column;height:1.5rem;justify-content:space-around;margin-left:.5rem;width:1.5rem}.mc-datatable__sort-arrow:after,.mc-datatable__sort-arrow:before{background-color:#cdd4d8;content:\"\";flex-shrink:0;height:.5rem;width:.75rem}.mc-datatable__sort-arrow:before{clip-path:polygon(50% 0%,0% 100%,100% 100%)}.asc .mc-datatable__sort-arrow:before{background-color:#605f9d}.desc .mc-datatable__sort-arrow:before{display:none}.mc-datatable__sort-arrow:after{clip-path:polygon(0 0,100% 0,50% 100%)}.asc .mc-datatable__sort-arrow:after{display:none}.desc .mc-datatable__sort-arrow:after{background-color:#605f9d}.mc-datatable__options{width:1.5rem;height:1.5rem}.mc-datatable__expand .mc-datatable__btn-icon{fill:#007f8c}.mc-datatable .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__topbar,.mc-datatable__filters{padding-bottom:1rem}.mc-datatable__topbar{justify-content:space-between}.mc-datatable__topbar,.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{display:flex;gap:1rem}.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{flex-wrap:wrap}.mc-datatable__topbar-edition{flex-shrink:0}.mc-datatable__topbar-actions{align-items:center;justify-content:flex-end;margin-left:auto}.mc-datatable__filters{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-end}.mc-datatable__filters:not(:only-child){border-top:1px solid #b0bbc0;padding-top:1rem}.mc-datatable__footer{align-items:center;background-color:#fff;display:flex;padding:.75rem 1rem;gap:1rem}@media screen and (max-width: 679px){.mc-datatable__footer{flex-direction:column}}.mc-datatable__select{display:flex;align-items:center;gap:.5rem}.mc-datatable__select-label{font-size:.875rem;line-height:1.2857142857;color:#333;flex-shrink:0}.mc-datatable__count{font-size:.75rem;line-height:1.3333333333;color:#666}.mc-datatable__pagination{margin-left:auto}.mc-datatable__subtable{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%;background-color:#e7e7f0}.mc-datatable__subtable th,.mc-datatable__subtable td{border-bottom-color:#a4a3c7}.mc-datatable__subtable thead th,.mc-datatable__subtable thead td{font-size:.75rem;line-height:1.3333333333;color:#1a1a4b}.mc-datatable__subtable tbody th,.mc-datatable__subtable tbody td{color:#1a1a4b}.fix-header-row{position:sticky;top:0;box-shadow:0 1px 5px #22202033;z-index:1}.header{align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.is-sorted-asc:before{background-color:var(--color-datatable-sort-arrow-active, #333333)}.is-sorted-desc:after{background-color:var(--color-datatable-sort-arrow-active, #333333)}.mc-datatable-height{height:100%}.mc-datatable__sort-arrow{cursor:pointer}.mc-datatable__fix-first-column{position:sticky;background-color:#fff;left:0}.skeleton-box{display:inline-block;position:relative;overflow:hidden;background-color:#ccc}.skeleton-box:after{position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,.2) 20%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0));animation:shimmer 2s infinite;content:\"\"}@keyframes shimmer{to{transform:translate(100%)}}.checkbox-loading{width:25px;height:25px}.cells-loading{width:250px;height:25px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[moz-button]", inputs: ["iconPosition", "onlyIcon", "theme", "variation", "widthBehavior", "size"] }, { kind: "component", type: i4.CheckboxComponent, selector: "moz-checkbox", inputs: ["disabled", "indeterminate", "invalid", "id", "checked"] }, { kind: "component", type: i5.IconComponent, selector: "moz-icon", inputs: ["iconName"] }, { kind: "component", type: i6.MozDatatableFooterComponent, selector: "moz-datatable-footer", inputs: ["footerSettings", "isLoading"], outputs: ["rowPerPageChangeEmitter", "pageChangeEmitter"] }, { kind: "component", type: i7.MozDatatableSelectionComponent, selector: "moz-datatable-selection", inputs: ["selectionSettings", "paginationEnabled", "rowData"], outputs: ["updateSelectionAllEmitter"] }, { kind: "directive", type: i8.MozDatatableSortDirective, selector: "[mozDatatableSort]", inputs: ["mozDatatableSort"], outputs: ["sortEmitter"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }], encapsulation: i0.ViewEncapsulation.None });
128
+ MozDatatableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MozDatatableComponent, selector: "moz-datatable", inputs: { footerSettings: "footerSettings", selectionSettings: "selectionSettings", datatableSettings: "datatableSettings" }, outputs: { rowClick: "rowClick", sortColumn: "sortColumn", rowSelected: "rowSelected", rowAllSelected: "rowAllSelected", emptyBodyButtonClicked: "emptyBodyButtonClicked", pageChange: "pageChange", rowPerPageChange: "rowPerPageChange" }, queries: [{ propertyName: "expansionContentComponent", first: true, predicate: MozDatatableRowExpansionContentComponent, descendants: true }, { propertyName: "headerCellComponents", predicate: MozDatatableHeaderCellComponent }, { propertyName: "contentCellComponents", predicate: MozDatatableContentCellComponent }], viewQueries: [{ propertyName: "selectionComponent", first: true, predicate: MozDatatableSelectionComponent, descendants: true }, { propertyName: "thSelectionRef", first: true, predicate: ["thSelection"], descendants: true }, { propertyName: "thSubRowRef", first: true, predicate: ["thSubRow"], descendants: true }], ngImport: i0, template: "<div class=\"mc-datatable\" [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\">\n <div class=\"mc-datatable__header\">\n <ng-content select=\"moz-datatable-caption\"></ng-content>\n <div>\n <moz-datatable-selection\n [selectionSettings]=\"selectionSettings\"\n [paginationEnabled]=\"datatableSettings?.activatePagination\"\n [rowData]=\"datatableSettings?.rowData\"\n (updateSelectionAllEmitter)=\"selectionAllRowEvent($event)\"\n ></moz-datatable-selection>\n </div>\n </div>\n <div\n class=\"mc-datatable__container\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <div\n class=\"mc-datatable__main\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <table class=\"mc-datatable__table\" summary=\"Table displaying data\">\n <thead [ngClass]=\"{ 'fix-header-row': datatableSettings?.fixHeaderRow }\">\n <tr *ngIf=\"getColumns() && getColumns().length > 0\">\n <th\n class=\"mc-datatable__cell-checkbox moz-datatable__th mc-datatable__fix-first-column\"\n *ngIf=\"\n datatableSettings?.activateSelection &&\n selectionComponent &&\n selectionSettings &&\n ((datatableSettings?.rowData || []).length > 0 || datatableSettings?.isLoading)\n \"\n #thSelection\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionAllPageRows($event);\n selectionRowEvent($event)\n \"\n [indeterminate]=\"selectionComponent.isIndeterminate\"\n [checked]=\"\n (selectionSettings.allSelected && !selectionComponent.isIndeterminate) ||\n (!selectionSettings.allSelected &&\n !selectionComponent.isIndeterminate &&\n (this.selectionSettings.selectedIds || []).length > 0)\n \"\n [disabled]=\"datatableSettings?.isLoading || false\"\n >\n </moz-checkbox>\n </ng-template>\n </th>\n <th\n *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\"\n class=\"mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n #thSubRow\n ></th>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <th\n class=\"moz-datatable__th\"\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingHeading\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n\n <ng-template #notLoadingHeading>\n <div\n [mozDatatableSort]=\"columnDef\"\n [ngClass]=\"{ header: columnDef.sort }\"\n (sortEmitter)=\"sortEvent($event)\"\n >\n <ng-container\n *ngIf=\"\n getCustomHeader(columnDef.field) as customHeader;\n else defaultHeaderCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customHeader;\n context: {\n $implicit: {\n content: columnDef\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultHeaderCell>\n {{ columnDef.headerName | uppercase }}\n </ng-template>\n </div>\n </ng-template>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <ng-container\n *ngIf=\"\n (datatableSettings?.rowData?.length || 0) > 0 || datatableSettings?.isLoading;\n else emptyBody\n \"\n >\n <ng-container *ngFor=\"let row of getFields(); index as i\">\n <tr class=\"mc-datatable__row-parent\" (click)=\"rowClickEvent($event, row)\">\n <td\n class=\"mc-datatable__fix-first-column\"\n *ngIf=\"datatableSettings?.activateSelection && selectionComponent\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionRow(row); selectionRowEvent($event)\n \"\n [(ngModel)]=\"row.selected\"\n [checked]=\"row.selected || false\"\n [disabled]=\"row.disableSelection || false\"\n >\n </moz-checkbox>\n </ng-template>\n </td>\n <ng-container *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\">\n <td\n *ngIf=\"row['subRow']; else noSubRow\"\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n >\n <button\n class=\"mc-datatable__expand mc-datatable__btn\"\n (click)=\"toggleRowExpansion(i); $event.stopPropagation()\"\n >\n <span class=\"mc-datatable__btn-icon\">\n <ng-container *ngIf=\"!expandedRows[i]; else subrowClosed\">\n <moz-icon [iconName]=\"'Navigation_Control_Circle--More_24px'\"></moz-icon>\n </ng-container>\n <ng-template #subrowClosed>\n <moz-icon [iconName]=\"'Navigation_Control_Circle--Less_24px'\"></moz-icon>\n </ng-template>\n </span>\n </button>\n </td>\n <ng-template #noSubRow\n ><td\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n ></td\n ></ng-template>\n </ng-container>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <td\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCells\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCells>\n <ng-container\n *ngIf=\"\n getCustomContent(columnDef.field) as customContent;\n else defaultContentCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customContent;\n context: {\n $implicit: {\n row: row,\n index: i,\n columnDefs: datatableSettings?.columnDefs,\n content: row[columnDef.field]\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultContentCell>\n {{ row[columnDef.field] }}\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </tr>\n <ng-container>\n <tr *ngIf=\"expandedRows[i]\">\n <td [attr.colspan]=\"getColspanForExpansionRow()\">\n <ng-container\n *ngIf=\"getCustomExpansionRowContent() as expansionRowContentComponent\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n expansionRowContentComponent;\n context: {\n $implicit: {\n subRowContent: row['subRow'],\n index: i,\n }\n }\n \"\n ></ng-container>\n </ng-container>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #emptyBody>\n <tr class=\"mc-datatable__empty\">\n <td colspan=\"5\" class=\"mc-datatable__empty-cell\">\n <div class=\"mc-datatable__empty-content\">\n <div>\n <div>\n <p>\n <strong>\n {{\n datatableSettings?.labels?.emptyBodyTitle || 'There is no result.'\n }}</strong\n ><br />\n {{\n datatableSettings?.labels?.emptyBodyDescription ||\n 'Please try changing your filters.'\n }}\n </p>\n </div>\n <div *ngIf=\"datatableSettings?.activateEmptyBodyButton\">\n <button\n moz-button\n [theme]=\"'neutral'\"\n [size]=\"'s'\"\n [variation]=\"'bordered'\"\n (click)=\"emptyButtonClickEvent()\"\n >\n <moz-icon\n iconName=\"{{\n datatableSettings?.icons?.emptyBodyButtonIcon ||\n 'Navigation_Display_Filter_24px'\n }}\"\n ></moz-icon>\n {{ datatableSettings?.labels?.emptyBodyButtonTitle || 'Change filters' }}\n </button>\n </div>\n </div>\n </div>\n </td>\n </tr></ng-template\n >\n </tbody>\n </table>\n </div>\n <moz-datatable-footer\n *ngIf=\"datatableSettings?.activatePagination\"\n [footerSettings]=\"footerSettings\"\n [isLoading]=\"datatableSettings?.isLoading\"\n (rowPerPageChangeEmitter)=\"rowPerPageChangeEvent($event)\"\n (pageChangeEmitter)=\"pageChangeEvent($event)\"\n ></moz-datatable-footer>\n </div>\n</div>\n", styles: [".mc-datatable{font-family:Roboto,sans-serif;box-sizing:border-box}.mc-datatable *,.mc-datatable :after,.mc-datatable :before{box-sizing:inherit}.mc-datatable__container{border-radius:4px;box-shadow:0 1px 5px #19191933;background-color:#e7e7f0;overflow:hidden}.mc-datatable__main{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;overflow:auto}.mc-datatable__main::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable__main::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable__main::-webkit-scrollbar-thumb{background:#666666}.mc-datatable__table tr,.mc-datatable thead th,.mc-datatable thead td{height:2.9375rem}.mc-datatable__table{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%}.mc-datatable__table>thead,.mc-datatable__table>tbody{background-color:#fff}.mc-datatable__table th,.mc-datatable__table td{border-bottom:1px solid #b3b3b3;text-align:left;vertical-align:middle;padding-right:1rem;padding-left:1rem}.mc-datatable thead th,.mc-datatable thead td{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase}.mc-datatable__head{align-items:center;display:flex;justify-content:space-between}.mc-datatable tbody tr:hover:not(.mc-datatable__empty){background-color:#eaedef}.mc-datatable tbody tr.selected{background-color:#d9f0f3}.mc-datatable tbody th,.mc-datatable tbody td{font-size:.875rem;line-height:1.2857142857;color:#191919}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable{height:0}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable .mc-datatable__row-inner{overflow:hidden;max-height:0}.mc-datatable__row-parent.mc-datatable__row-parent--expanded+.mc-datatable__row-expandable .mc-datatable__row-inner{max-height:100%}.mc-datatable__row-expandable>td{padding:0;border-bottom:0}.mc-datatable__row-expandable--offset-1 table th:first-child,.mc-datatable__row-expandable--offset-1 table td:first-child{padding-left:4.25rem}.mc-datatable__row-expandable--offset-2 table th:first-child,.mc-datatable__row-expandable--offset-2 table td:first-child{padding-left:7.75rem}.mc-datatable__cell-checkbox{width:3.25rem}.mc-datatable__cell-button{width:3.5rem}.mc-datatable__cell-field{min-width:9.375rem}td.mc-datatable__cell-number{text-align:right}.mc-datatable__empty,.mc-datatable__empty:hover{background-color:#e7e7f0}.mc-datatable__empty-cell{color:#4b4a8c}.mc-datatable__empty-content{font-size:1rem;line-height:1.375;align-items:center;color:#4b4a8c;display:flex;gap:1.5rem;min-height:19.375rem;justify-content:center;text-align:center}.mc-datatable__empty-content strong{font-size:1.125rem;line-height:1.3333333333}.mc-datatable--s .mc-datatable__table tr,.mc-datatable--s .mc-datatable thead th,.mc-datatable--s .mc-datatable thead td{height:2.4375rem}.mc-datatable--l .mc-datatable__table tr,.mc-datatable--l .mc-datatable thead th,.mc-datatable--l .mc-datatable thead td{height:3.4375rem}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky-header .mc-datatable__table>thead{box-shadow:0 4px 20px #19191933;top:0;z-index:2}.mc-datatable--sticky .mc-datatable__table>tbody tr:last-child th,.mc-datatable--sticky .mc-datatable__table>tbody tr:last-child td,.mc-datatable--sticky-header .mc-datatable__table>tbody tr:last-child th,.mc-datatable--sticky-header .mc-datatable__table>tbody tr:last-child td{border-bottom:transparent}.mc-datatable--sticky .mc-datatable__footer,.mc-datatable--sticky-header .mc-datatable__footer{border-top:1px solid #b3b3b3;position:relative;z-index:2}.mc-datatable--sticky .mc-datatable__main{padding-top:2.9375rem;transform:translateZ(0)}.mc-datatable--sticky .mc-datatable__table{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;display:block;overflow-y:auto}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-thumb{background:#666666}.mc-datatable--sticky .mc-datatable__table>thead{position:fixed;width:100%}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr,.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{display:flex}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr{width:100%}.mc-datatable--sticky .mc-datatable__table>tbody{flex-direction:column}.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{align-items:center}.mc-datatable--sticky .mc-datatable__table>thead th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>thead td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button){flex:1}.mc-datatable--sticky .mc-datatable__cell-checkbox,.mc-datatable--sticky .mc-datatable__cell-button,.mc-datatable--sticky .mc-datatable__cell-field,.mc-datatable--sticky .mc-datatable__cell-number{flex-shrink:0}.mc-datatable--sticky .mc-datatable__cell-number{justify-content:flex-end}.mc-datatable--sticky-header .mc-datatable__main{overflow-y:auto}.mc-datatable--sticky-header .mc-datatable__table>thead{position:sticky}.mc-datatable--overflow-visible .mc-datatable__container,.mc-datatable--overflow-visible .mc-datatable__main{overflow:visible}.mc-datatable__btn{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;align-items:center;background-color:transparent;display:flex}.mc-datatable__btn-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__btn-icon,.mc-datatable__btn svg{width:1.5rem;height:1.5rem}.mc-datatable__sort{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase;align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.mc-datatable__sort-arrow{align-items:center;display:flex;flex-direction:column;height:1.5rem;justify-content:space-around;margin-left:.5rem;width:1.5rem}.mc-datatable__sort-arrow:after,.mc-datatable__sort-arrow:before{background-color:#cdd4d8;content:\"\";flex-shrink:0;height:.5rem;width:.75rem}.mc-datatable__sort-arrow:before{clip-path:polygon(50% 0%,0% 100%,100% 100%)}.asc .mc-datatable__sort-arrow:before{background-color:#605f9d}.desc .mc-datatable__sort-arrow:before{display:none}.mc-datatable__sort-arrow:after{clip-path:polygon(0 0,100% 0,50% 100%)}.asc .mc-datatable__sort-arrow:after{display:none}.desc .mc-datatable__sort-arrow:after{background-color:#605f9d}.mc-datatable__options{width:1.5rem;height:1.5rem}.mc-datatable__expand .mc-datatable__btn-icon{fill:#007f8c}.mc-datatable .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__topbar,.mc-datatable__filters{padding-bottom:1rem}.mc-datatable__topbar{justify-content:space-between}.mc-datatable__topbar,.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{display:flex;gap:1rem}.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{flex-wrap:wrap}.mc-datatable__topbar-edition{flex-shrink:0}.mc-datatable__topbar-actions{align-items:center;justify-content:flex-end;margin-left:auto}.mc-datatable__filters{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-end}.mc-datatable__filters:not(:only-child){border-top:1px solid #b0bbc0;padding-top:1rem}.mc-datatable__footer{align-items:center;background-color:#fff;display:flex;padding:.75rem 1rem;gap:1rem}@media screen and (max-width: 679px){.mc-datatable__footer{flex-direction:column}}.mc-datatable__select{display:flex;align-items:center;gap:.5rem}.mc-datatable__select-label{font-size:.875rem;line-height:1.2857142857;color:#333;flex-shrink:0}.mc-datatable__count{font-size:.75rem;line-height:1.3333333333;color:#666}.mc-datatable__pagination{margin-left:auto}.mc-datatable__subtable{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%;background-color:#e7e7f0}.mc-datatable__subtable th,.mc-datatable__subtable td{border-bottom-color:#a4a3c7}.mc-datatable__subtable thead th,.mc-datatable__subtable thead td{font-size:.75rem;line-height:1.3333333333;color:#1a1a4b}.mc-datatable__subtable tbody th,.mc-datatable__subtable tbody td{color:#1a1a4b}.fix-header-row{position:sticky;top:0;box-shadow:0 1px 5px #22202033;z-index:1}.header{align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.is-sorted-asc:before{background-color:var(--color-datatable-sort-arrow-active, #333333)}.is-sorted-desc:after{background-color:var(--color-datatable-sort-arrow-active, #333333)}.mc-datatable-height{height:100%}.mc-datatable__sort-arrow{cursor:pointer}.mc-datatable__fix-first-column{position:sticky;background-color:#fff;left:0}.skeleton-box{display:inline-block;position:relative;overflow:hidden;background-color:#ccc}.skeleton-box:after{position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,.2) 20%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0));animation:shimmer 2s infinite;content:\"\"}@keyframes shimmer{to{transform:translate(100%)}}.checkbox-loading{width:25px;height:25px}.cells-loading{width:250px;height:25px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[moz-button]", inputs: ["iconPosition", "onlyIcon", "theme", "variation", "widthBehavior", "size"] }, { kind: "component", type: i4.CheckboxComponent, selector: "moz-checkbox", inputs: ["disabled", "indeterminate", "invalid", "id", "checked"] }, { kind: "component", type: i5.IconComponent, selector: "moz-icon", inputs: ["iconName"] }, { kind: "component", type: i6.MozDatatableFooterComponent, selector: "moz-datatable-footer", inputs: ["footerSettings", "isLoading"], outputs: ["rowPerPageChangeEmitter", "pageChangeEmitter"] }, { kind: "component", type: i7.MozDatatableSelectionComponent, selector: "moz-datatable-selection", inputs: ["selectionSettings", "paginationEnabled", "rowData"], outputs: ["updateSelectionAllEmitter"] }, { kind: "directive", type: i8.MozDatatableSortDirective, selector: "[mozDatatableSort]", inputs: ["mozDatatableSort"], outputs: ["sortEmitter"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }], encapsulation: i0.ViewEncapsulation.None });
129
129
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MozDatatableComponent, decorators: [{
130
130
  type: Component,
131
- args: [{ selector: 'moz-datatable', encapsulation: ViewEncapsulation.None, template: "<div class=\"mc-datatable\" [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\">\n <div class=\"mc-datatable__header\">\n <ng-content select=\"moz-datatable-caption\"></ng-content>\n <div>\n <moz-datatable-selection\n [selectionSettings]=\"selectionSettings\"\n [paginationEnabled]=\"datatableSettings?.activatePagination\"\n [rowData]=\"datatableSettings?.rowData\"\n (updateSelectionAllEmitter)=\"selectionAllRowEvent($event)\"\n ></moz-datatable-selection>\n </div>\n </div>\n <div\n class=\"mc-datatable__container\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <div\n class=\"mc-datatable__main\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <table class=\"mc-datatable__table\">\n <thead [ngClass]=\"{ 'fix-header-row': datatableSettings?.fixHeaderRow }\">\n <tr *ngIf=\"getColumns() && getColumns().length > 0\">\n <th\n class=\"mc-datatable__cell-checkbox moz-datatable__th mc-datatable__fix-first-column\"\n *ngIf=\"\n datatableSettings?.activateSelection &&\n selectionComponent &&\n selectionSettings &&\n ((datatableSettings?.rowData || []).length > 0 || datatableSettings?.isLoading)\n \"\n #thSelection\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionAllPageRows($event);\n selectionRowEvent($event)\n \"\n [indeterminate]=\"selectionComponent.isIndeterminate\"\n [checked]=\"selectionSettings.allSelected && !selectionComponent.isIndeterminate\"\n [disabled]=\"datatableSettings?.isLoading || false\"\n >\n </moz-checkbox>\n </ng-template>\n </th>\n <th\n *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\"\n class=\"mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n #thSubRow\n ></th>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <th\n class=\"moz-datatable__th\"\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingHeading\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n\n <ng-template #notLoadingHeading>\n <div\n [mozDatatableSort]=\"columnDef\"\n [ngClass]=\"{ header: columnDef.sort }\"\n (sortEmitter)=\"sortEvent($event)\"\n >\n <ng-container\n *ngIf=\"\n getCustomHeader(columnDef.field) as customHeader;\n else defaultHeaderCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customHeader;\n context: {\n $implicit: {\n content: columnDef\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultHeaderCell>\n {{ columnDef.headerName | uppercase }}\n </ng-template>\n </div>\n </ng-template>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <ng-container\n *ngIf=\"\n (datatableSettings?.rowData?.length || 0) > 0 || datatableSettings?.isLoading;\n else emptyBody\n \"\n >\n <ng-container *ngFor=\"let row of getFields(); index as i\">\n <tr class=\"mc-datatable__row-parent\" (click)=\"rowClickEvent($event, row)\">\n <td\n class=\"mc-datatable__fix-first-column\"\n *ngIf=\"datatableSettings?.activateSelection && selectionComponent\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionRow(row); selectionRowEvent($event)\n \"\n [(ngModel)]=\"row.selected\"\n [checked]=\"row.selected || false\"\n [disabled]=\"row.disableSelection || false\"\n >\n </moz-checkbox>\n </ng-template>\n </td>\n <ng-container *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\">\n <td\n *ngIf=\"row['subRow']; else noSubRow\"\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n >\n <button\n class=\"mc-datatable__expand mc-datatable__btn\"\n (click)=\"toggleRowExpansion(i); $event.stopPropagation()\"\n >\n <span class=\"mc-datatable__btn-icon\">\n <ng-container *ngIf=\"!expandedRows[i]; else subrowClosed\">\n <moz-icon [iconName]=\"'Navigation_Control_Circle--More_24px'\"></moz-icon>\n </ng-container>\n <ng-template #subrowClosed>\n <moz-icon [iconName]=\"'Navigation_Control_Circle--Less_24px'\"></moz-icon>\n </ng-template>\n </span>\n </button>\n </td>\n <ng-template #noSubRow\n ><td\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n ></td\n ></ng-template>\n </ng-container>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <td\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCells\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCells>\n <ng-container\n *ngIf=\"\n getCustomContent(columnDef.field) as customContent;\n else defaultContentCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customContent;\n context: {\n $implicit: {\n row: row,\n index: i,\n columnDefs: datatableSettings?.columnDefs,\n content: row[columnDef.field]\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultContentCell>\n {{ row[columnDef.field] }}\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </tr>\n <ng-container>\n <tr *ngIf=\"expandedRows[i]\">\n <td [attr.colspan]=\"getColspanForExpansionRow()\">\n <ng-container\n *ngIf=\"getCustomExpansionRowContent() as expansionRowContentComponent\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n expansionRowContentComponent;\n context: {\n $implicit: {\n subRowContent: row['subRow'],\n index: i,\n }\n }\n \"\n ></ng-container>\n </ng-container>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #emptyBody>\n <tr class=\"mc-datatable__empty\">\n <td colspan=\"5\" class=\"mc-datatable__empty-cell\">\n <div class=\"mc-datatable__empty-content\">\n <div>\n <div>\n <p>\n <strong>\n {{\n datatableSettings?.labels?.emptyBodyTitle || 'There is no result.'\n }}</strong\n ><br />\n {{\n datatableSettings?.labels?.emptyBodyDescription ||\n 'Please try changing your filters.'\n }}\n </p>\n </div>\n <div *ngIf=\"datatableSettings?.activateEmptyBodyButton\">\n <button\n moz-button\n [theme]=\"'neutral'\"\n [size]=\"'s'\"\n [variation]=\"'bordered'\"\n (click)=\"emptyButtonClickEvent()\"\n >\n <moz-icon\n iconName=\"{{\n datatableSettings?.icons?.emptyBodyButtonIcon ||\n 'Navigation_Display_Filter_24px'\n }}\"\n ></moz-icon>\n {{ datatableSettings?.labels?.emptyBodyButtonTitle || 'Change filters' }}\n </button>\n </div>\n </div>\n </div>\n </td>\n </tr></ng-template\n >\n </tbody>\n </table>\n </div>\n <moz-datatable-footer\n *ngIf=\"datatableSettings?.activatePagination\"\n [footerSettings]=\"footerSettings\"\n [isLoading]=\"datatableSettings?.isLoading\"\n (rowPerPageChangeEmitter)=\"rowPerPageChangeEvent($event)\"\n (pageChangeEmitter)=\"pageChangeEvent($event)\"\n ></moz-datatable-footer>\n </div>\n</div>\n", styles: [".mc-datatable{font-family:Roboto,sans-serif;box-sizing:border-box}.mc-datatable *,.mc-datatable :after,.mc-datatable :before{box-sizing:inherit}.mc-datatable__container{border-radius:4px;box-shadow:0 1px 5px #19191933;background-color:#e7e7f0;overflow:hidden}.mc-datatable__main{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;overflow:auto}.mc-datatable__main::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable__main::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable__main::-webkit-scrollbar-thumb{background:#666666}.mc-datatable__table tr,.mc-datatable thead th,.mc-datatable thead td{height:2.9375rem}.mc-datatable__table{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%}.mc-datatable__table>thead,.mc-datatable__table>tbody{background-color:#fff}.mc-datatable__table th,.mc-datatable__table td{border-bottom:1px solid #b3b3b3;text-align:left;vertical-align:middle;padding-right:1rem;padding-left:1rem}.mc-datatable thead th,.mc-datatable thead td{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase}.mc-datatable__head{align-items:center;display:flex;justify-content:space-between}.mc-datatable tbody tr:hover:not(.mc-datatable__empty){background-color:#eaedef}.mc-datatable tbody tr.selected{background-color:#d9f0f3}.mc-datatable tbody th,.mc-datatable tbody td{font-size:.875rem;line-height:1.2857142857;color:#191919}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable{height:0}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable .mc-datatable__row-inner{overflow:hidden;max-height:0}.mc-datatable__row-parent.mc-datatable__row-parent--expanded+.mc-datatable__row-expandable .mc-datatable__row-inner{max-height:100%}.mc-datatable__row-expandable>td{padding:0;border-bottom:0}.mc-datatable__row-expandable--offset-1 table th:first-child,.mc-datatable__row-expandable--offset-1 table td:first-child{padding-left:4.25rem}.mc-datatable__row-expandable--offset-2 table th:first-child,.mc-datatable__row-expandable--offset-2 table td:first-child{padding-left:7.75rem}.mc-datatable__cell-checkbox{width:3.25rem}.mc-datatable__cell-button{width:3.5rem}.mc-datatable__cell-field{min-width:9.375rem}td.mc-datatable__cell-number{text-align:right}.mc-datatable__empty,.mc-datatable__empty:hover{background-color:#e7e7f0}.mc-datatable__empty-cell{color:#4b4a8c}.mc-datatable__empty-content{font-size:1rem;line-height:1.375;align-items:center;color:#4b4a8c;display:flex;gap:1.5rem;min-height:19.375rem;justify-content:center;text-align:center}.mc-datatable__empty-content strong{font-size:1.125rem;line-height:1.3333333333}.mc-datatable--s .mc-datatable__table tr,.mc-datatable--s .mc-datatable thead th,.mc-datatable--s .mc-datatable thead td{height:2.4375rem}.mc-datatable--l .mc-datatable__table tr,.mc-datatable--l .mc-datatable thead th,.mc-datatable--l .mc-datatable thead td{height:3.4375rem}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky-header .mc-datatable__table>thead{box-shadow:0 4px 20px #19191933;top:0;z-index:2}.mc-datatable--sticky .mc-datatable__table>tbody tr:last-child th,.mc-datatable--sticky .mc-datatable__table>tbody tr:last-child td,.mc-datatable--sticky-header .mc-datatable__table>tbody tr:last-child th,.mc-datatable--sticky-header .mc-datatable__table>tbody tr:last-child td{border-bottom:transparent}.mc-datatable--sticky .mc-datatable__footer,.mc-datatable--sticky-header .mc-datatable__footer{border-top:1px solid #b3b3b3;position:relative;z-index:2}.mc-datatable--sticky .mc-datatable__main{padding-top:2.9375rem;transform:translateZ(0)}.mc-datatable--sticky .mc-datatable__table{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;display:block;overflow-y:auto}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-thumb{background:#666666}.mc-datatable--sticky .mc-datatable__table>thead{position:fixed;width:100%}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr,.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{display:flex}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr{width:100%}.mc-datatable--sticky .mc-datatable__table>tbody{flex-direction:column}.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{align-items:center}.mc-datatable--sticky .mc-datatable__table>thead th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>thead td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button){flex:1}.mc-datatable--sticky .mc-datatable__cell-checkbox,.mc-datatable--sticky .mc-datatable__cell-button,.mc-datatable--sticky .mc-datatable__cell-field,.mc-datatable--sticky .mc-datatable__cell-number{flex-shrink:0}.mc-datatable--sticky .mc-datatable__cell-number{justify-content:flex-end}.mc-datatable--sticky-header .mc-datatable__main{overflow-y:auto}.mc-datatable--sticky-header .mc-datatable__table>thead{position:sticky}.mc-datatable--overflow-visible .mc-datatable__container,.mc-datatable--overflow-visible .mc-datatable__main{overflow:visible}.mc-datatable__btn{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;align-items:center;background-color:transparent;display:flex}.mc-datatable__btn-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__btn-icon,.mc-datatable__btn svg{width:1.5rem;height:1.5rem}.mc-datatable__sort{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase;align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.mc-datatable__sort-arrow{align-items:center;display:flex;flex-direction:column;height:1.5rem;justify-content:space-around;margin-left:.5rem;width:1.5rem}.mc-datatable__sort-arrow:after,.mc-datatable__sort-arrow:before{background-color:#cdd4d8;content:\"\";flex-shrink:0;height:.5rem;width:.75rem}.mc-datatable__sort-arrow:before{clip-path:polygon(50% 0%,0% 100%,100% 100%)}.asc .mc-datatable__sort-arrow:before{background-color:#605f9d}.desc .mc-datatable__sort-arrow:before{display:none}.mc-datatable__sort-arrow:after{clip-path:polygon(0 0,100% 0,50% 100%)}.asc .mc-datatable__sort-arrow:after{display:none}.desc .mc-datatable__sort-arrow:after{background-color:#605f9d}.mc-datatable__options{width:1.5rem;height:1.5rem}.mc-datatable__expand .mc-datatable__btn-icon{fill:#007f8c}.mc-datatable .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__topbar,.mc-datatable__filters{padding-bottom:1rem}.mc-datatable__topbar{justify-content:space-between}.mc-datatable__topbar,.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{display:flex;gap:1rem}.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{flex-wrap:wrap}.mc-datatable__topbar-edition{flex-shrink:0}.mc-datatable__topbar-actions{align-items:center;justify-content:flex-end;margin-left:auto}.mc-datatable__filters{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-end}.mc-datatable__filters:not(:only-child){border-top:1px solid #b0bbc0;padding-top:1rem}.mc-datatable__footer{align-items:center;background-color:#fff;display:flex;padding:.75rem 1rem;gap:1rem}@media screen and (max-width: 679px){.mc-datatable__footer{flex-direction:column}}.mc-datatable__select{display:flex;align-items:center;gap:.5rem}.mc-datatable__select-label{font-size:.875rem;line-height:1.2857142857;color:#333;flex-shrink:0}.mc-datatable__count{font-size:.75rem;line-height:1.3333333333;color:#666}.mc-datatable__pagination{margin-left:auto}.mc-datatable__subtable{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%;background-color:#e7e7f0}.mc-datatable__subtable th,.mc-datatable__subtable td{border-bottom-color:#a4a3c7}.mc-datatable__subtable thead th,.mc-datatable__subtable thead td{font-size:.75rem;line-height:1.3333333333;color:#1a1a4b}.mc-datatable__subtable tbody th,.mc-datatable__subtable tbody td{color:#1a1a4b}.fix-header-row{position:sticky;top:0;box-shadow:0 1px 5px #22202033;z-index:1}.header{align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.is-sorted-asc:before{background-color:var(--color-datatable-sort-arrow-active, #333333)}.is-sorted-desc:after{background-color:var(--color-datatable-sort-arrow-active, #333333)}.mc-datatable-height{height:100%}.mc-datatable__sort-arrow{cursor:pointer}.mc-datatable__fix-first-column{position:sticky;background-color:#fff;left:0}.skeleton-box{display:inline-block;position:relative;overflow:hidden;background-color:#ccc}.skeleton-box:after{position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,.2) 20%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0));animation:shimmer 2s infinite;content:\"\"}@keyframes shimmer{to{transform:translate(100%)}}.checkbox-loading{width:25px;height:25px}.cells-loading{width:250px;height:25px}\n"] }]
131
+ args: [{ selector: 'moz-datatable', encapsulation: ViewEncapsulation.None, template: "<div class=\"mc-datatable\" [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\">\n <div class=\"mc-datatable__header\">\n <ng-content select=\"moz-datatable-caption\"></ng-content>\n <div>\n <moz-datatable-selection\n [selectionSettings]=\"selectionSettings\"\n [paginationEnabled]=\"datatableSettings?.activatePagination\"\n [rowData]=\"datatableSettings?.rowData\"\n (updateSelectionAllEmitter)=\"selectionAllRowEvent($event)\"\n ></moz-datatable-selection>\n </div>\n </div>\n <div\n class=\"mc-datatable__container\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <div\n class=\"mc-datatable__main\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <table class=\"mc-datatable__table\" summary=\"Table displaying data\">\n <thead [ngClass]=\"{ 'fix-header-row': datatableSettings?.fixHeaderRow }\">\n <tr *ngIf=\"getColumns() && getColumns().length > 0\">\n <th\n class=\"mc-datatable__cell-checkbox moz-datatable__th mc-datatable__fix-first-column\"\n *ngIf=\"\n datatableSettings?.activateSelection &&\n selectionComponent &&\n selectionSettings &&\n ((datatableSettings?.rowData || []).length > 0 || datatableSettings?.isLoading)\n \"\n #thSelection\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionAllPageRows($event);\n selectionRowEvent($event)\n \"\n [indeterminate]=\"selectionComponent.isIndeterminate\"\n [checked]=\"\n (selectionSettings.allSelected && !selectionComponent.isIndeterminate) ||\n (!selectionSettings.allSelected &&\n !selectionComponent.isIndeterminate &&\n (this.selectionSettings.selectedIds || []).length > 0)\n \"\n [disabled]=\"datatableSettings?.isLoading || false\"\n >\n </moz-checkbox>\n </ng-template>\n </th>\n <th\n *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\"\n class=\"mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n #thSubRow\n ></th>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <th\n class=\"moz-datatable__th\"\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingHeading\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n\n <ng-template #notLoadingHeading>\n <div\n [mozDatatableSort]=\"columnDef\"\n [ngClass]=\"{ header: columnDef.sort }\"\n (sortEmitter)=\"sortEvent($event)\"\n >\n <ng-container\n *ngIf=\"\n getCustomHeader(columnDef.field) as customHeader;\n else defaultHeaderCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customHeader;\n context: {\n $implicit: {\n content: columnDef\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultHeaderCell>\n {{ columnDef.headerName | uppercase }}\n </ng-template>\n </div>\n </ng-template>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <ng-container\n *ngIf=\"\n (datatableSettings?.rowData?.length || 0) > 0 || datatableSettings?.isLoading;\n else emptyBody\n \"\n >\n <ng-container *ngFor=\"let row of getFields(); index as i\">\n <tr class=\"mc-datatable__row-parent\" (click)=\"rowClickEvent($event, row)\">\n <td\n class=\"mc-datatable__fix-first-column\"\n *ngIf=\"datatableSettings?.activateSelection && selectionComponent\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionRow(row); selectionRowEvent($event)\n \"\n [(ngModel)]=\"row.selected\"\n [checked]=\"row.selected || false\"\n [disabled]=\"row.disableSelection || false\"\n >\n </moz-checkbox>\n </ng-template>\n </td>\n <ng-container *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\">\n <td\n *ngIf=\"row['subRow']; else noSubRow\"\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n >\n <button\n class=\"mc-datatable__expand mc-datatable__btn\"\n (click)=\"toggleRowExpansion(i); $event.stopPropagation()\"\n >\n <span class=\"mc-datatable__btn-icon\">\n <ng-container *ngIf=\"!expandedRows[i]; else subrowClosed\">\n <moz-icon [iconName]=\"'Navigation_Control_Circle--More_24px'\"></moz-icon>\n </ng-container>\n <ng-template #subrowClosed>\n <moz-icon [iconName]=\"'Navigation_Control_Circle--Less_24px'\"></moz-icon>\n </ng-template>\n </span>\n </button>\n </td>\n <ng-template #noSubRow\n ><td\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n ></td\n ></ng-template>\n </ng-container>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <td\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCells\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCells>\n <ng-container\n *ngIf=\"\n getCustomContent(columnDef.field) as customContent;\n else defaultContentCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customContent;\n context: {\n $implicit: {\n row: row,\n index: i,\n columnDefs: datatableSettings?.columnDefs,\n content: row[columnDef.field]\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultContentCell>\n {{ row[columnDef.field] }}\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </tr>\n <ng-container>\n <tr *ngIf=\"expandedRows[i]\">\n <td [attr.colspan]=\"getColspanForExpansionRow()\">\n <ng-container\n *ngIf=\"getCustomExpansionRowContent() as expansionRowContentComponent\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n expansionRowContentComponent;\n context: {\n $implicit: {\n subRowContent: row['subRow'],\n index: i,\n }\n }\n \"\n ></ng-container>\n </ng-container>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #emptyBody>\n <tr class=\"mc-datatable__empty\">\n <td colspan=\"5\" class=\"mc-datatable__empty-cell\">\n <div class=\"mc-datatable__empty-content\">\n <div>\n <div>\n <p>\n <strong>\n {{\n datatableSettings?.labels?.emptyBodyTitle || 'There is no result.'\n }}</strong\n ><br />\n {{\n datatableSettings?.labels?.emptyBodyDescription ||\n 'Please try changing your filters.'\n }}\n </p>\n </div>\n <div *ngIf=\"datatableSettings?.activateEmptyBodyButton\">\n <button\n moz-button\n [theme]=\"'neutral'\"\n [size]=\"'s'\"\n [variation]=\"'bordered'\"\n (click)=\"emptyButtonClickEvent()\"\n >\n <moz-icon\n iconName=\"{{\n datatableSettings?.icons?.emptyBodyButtonIcon ||\n 'Navigation_Display_Filter_24px'\n }}\"\n ></moz-icon>\n {{ datatableSettings?.labels?.emptyBodyButtonTitle || 'Change filters' }}\n </button>\n </div>\n </div>\n </div>\n </td>\n </tr></ng-template\n >\n </tbody>\n </table>\n </div>\n <moz-datatable-footer\n *ngIf=\"datatableSettings?.activatePagination\"\n [footerSettings]=\"footerSettings\"\n [isLoading]=\"datatableSettings?.isLoading\"\n (rowPerPageChangeEmitter)=\"rowPerPageChangeEvent($event)\"\n (pageChangeEmitter)=\"pageChangeEvent($event)\"\n ></moz-datatable-footer>\n </div>\n</div>\n", styles: [".mc-datatable{font-family:Roboto,sans-serif;box-sizing:border-box}.mc-datatable *,.mc-datatable :after,.mc-datatable :before{box-sizing:inherit}.mc-datatable__container{border-radius:4px;box-shadow:0 1px 5px #19191933;background-color:#e7e7f0;overflow:hidden}.mc-datatable__main{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;overflow:auto}.mc-datatable__main::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable__main::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable__main::-webkit-scrollbar-thumb{background:#666666}.mc-datatable__table tr,.mc-datatable thead th,.mc-datatable thead td{height:2.9375rem}.mc-datatable__table{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%}.mc-datatable__table>thead,.mc-datatable__table>tbody{background-color:#fff}.mc-datatable__table th,.mc-datatable__table td{border-bottom:1px solid #b3b3b3;text-align:left;vertical-align:middle;padding-right:1rem;padding-left:1rem}.mc-datatable thead th,.mc-datatable thead td{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase}.mc-datatable__head{align-items:center;display:flex;justify-content:space-between}.mc-datatable tbody tr:hover:not(.mc-datatable__empty){background-color:#eaedef}.mc-datatable tbody tr.selected{background-color:#d9f0f3}.mc-datatable tbody th,.mc-datatable tbody td{font-size:.875rem;line-height:1.2857142857;color:#191919}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable{height:0}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable .mc-datatable__row-inner{overflow:hidden;max-height:0}.mc-datatable__row-parent.mc-datatable__row-parent--expanded+.mc-datatable__row-expandable .mc-datatable__row-inner{max-height:100%}.mc-datatable__row-expandable>td{padding:0;border-bottom:0}.mc-datatable__row-expandable--offset-1 table th:first-child,.mc-datatable__row-expandable--offset-1 table td:first-child{padding-left:4.25rem}.mc-datatable__row-expandable--offset-2 table th:first-child,.mc-datatable__row-expandable--offset-2 table td:first-child{padding-left:7.75rem}.mc-datatable__cell-checkbox{width:3.25rem}.mc-datatable__cell-button{width:3.5rem}.mc-datatable__cell-field{min-width:9.375rem}td.mc-datatable__cell-number{text-align:right}.mc-datatable__empty,.mc-datatable__empty:hover{background-color:#e7e7f0}.mc-datatable__empty-cell{color:#4b4a8c}.mc-datatable__empty-content{font-size:1rem;line-height:1.375;align-items:center;color:#4b4a8c;display:flex;gap:1.5rem;min-height:19.375rem;justify-content:center;text-align:center}.mc-datatable__empty-content strong{font-size:1.125rem;line-height:1.3333333333}.mc-datatable--s .mc-datatable__table tr,.mc-datatable--s .mc-datatable thead th,.mc-datatable--s .mc-datatable thead td{height:2.4375rem}.mc-datatable--l .mc-datatable__table tr,.mc-datatable--l .mc-datatable thead th,.mc-datatable--l .mc-datatable thead td{height:3.4375rem}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky-header .mc-datatable__table>thead{box-shadow:0 4px 20px #19191933;top:0;z-index:2}.mc-datatable--sticky .mc-datatable__table>tbody tr:last-child th,.mc-datatable--sticky .mc-datatable__table>tbody tr:last-child td,.mc-datatable--sticky-header .mc-datatable__table>tbody tr:last-child th,.mc-datatable--sticky-header .mc-datatable__table>tbody tr:last-child td{border-bottom:transparent}.mc-datatable--sticky .mc-datatable__footer,.mc-datatable--sticky-header .mc-datatable__footer{border-top:1px solid #b3b3b3;position:relative;z-index:2}.mc-datatable--sticky .mc-datatable__main{padding-top:2.9375rem;transform:translateZ(0)}.mc-datatable--sticky .mc-datatable__table{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;display:block;overflow-y:auto}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-thumb{background:#666666}.mc-datatable--sticky .mc-datatable__table>thead{position:fixed;width:100%}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr,.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{display:flex}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr{width:100%}.mc-datatable--sticky .mc-datatable__table>tbody{flex-direction:column}.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{align-items:center}.mc-datatable--sticky .mc-datatable__table>thead th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>thead td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button){flex:1}.mc-datatable--sticky .mc-datatable__cell-checkbox,.mc-datatable--sticky .mc-datatable__cell-button,.mc-datatable--sticky .mc-datatable__cell-field,.mc-datatable--sticky .mc-datatable__cell-number{flex-shrink:0}.mc-datatable--sticky .mc-datatable__cell-number{justify-content:flex-end}.mc-datatable--sticky-header .mc-datatable__main{overflow-y:auto}.mc-datatable--sticky-header .mc-datatable__table>thead{position:sticky}.mc-datatable--overflow-visible .mc-datatable__container,.mc-datatable--overflow-visible .mc-datatable__main{overflow:visible}.mc-datatable__btn{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;align-items:center;background-color:transparent;display:flex}.mc-datatable__btn-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__btn-icon,.mc-datatable__btn svg{width:1.5rem;height:1.5rem}.mc-datatable__sort{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase;align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.mc-datatable__sort-arrow{align-items:center;display:flex;flex-direction:column;height:1.5rem;justify-content:space-around;margin-left:.5rem;width:1.5rem}.mc-datatable__sort-arrow:after,.mc-datatable__sort-arrow:before{background-color:#cdd4d8;content:\"\";flex-shrink:0;height:.5rem;width:.75rem}.mc-datatable__sort-arrow:before{clip-path:polygon(50% 0%,0% 100%,100% 100%)}.asc .mc-datatable__sort-arrow:before{background-color:#605f9d}.desc .mc-datatable__sort-arrow:before{display:none}.mc-datatable__sort-arrow:after{clip-path:polygon(0 0,100% 0,50% 100%)}.asc .mc-datatable__sort-arrow:after{display:none}.desc .mc-datatable__sort-arrow:after{background-color:#605f9d}.mc-datatable__options{width:1.5rem;height:1.5rem}.mc-datatable__expand .mc-datatable__btn-icon{fill:#007f8c}.mc-datatable .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__topbar,.mc-datatable__filters{padding-bottom:1rem}.mc-datatable__topbar{justify-content:space-between}.mc-datatable__topbar,.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{display:flex;gap:1rem}.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{flex-wrap:wrap}.mc-datatable__topbar-edition{flex-shrink:0}.mc-datatable__topbar-actions{align-items:center;justify-content:flex-end;margin-left:auto}.mc-datatable__filters{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-end}.mc-datatable__filters:not(:only-child){border-top:1px solid #b0bbc0;padding-top:1rem}.mc-datatable__footer{align-items:center;background-color:#fff;display:flex;padding:.75rem 1rem;gap:1rem}@media screen and (max-width: 679px){.mc-datatable__footer{flex-direction:column}}.mc-datatable__select{display:flex;align-items:center;gap:.5rem}.mc-datatable__select-label{font-size:.875rem;line-height:1.2857142857;color:#333;flex-shrink:0}.mc-datatable__count{font-size:.75rem;line-height:1.3333333333;color:#666}.mc-datatable__pagination{margin-left:auto}.mc-datatable__subtable{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%;background-color:#e7e7f0}.mc-datatable__subtable th,.mc-datatable__subtable td{border-bottom-color:#a4a3c7}.mc-datatable__subtable thead th,.mc-datatable__subtable thead td{font-size:.75rem;line-height:1.3333333333;color:#1a1a4b}.mc-datatable__subtable tbody th,.mc-datatable__subtable tbody td{color:#1a1a4b}.fix-header-row{position:sticky;top:0;box-shadow:0 1px 5px #22202033;z-index:1}.header{align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.is-sorted-asc:before{background-color:var(--color-datatable-sort-arrow-active, #333333)}.is-sorted-desc:after{background-color:var(--color-datatable-sort-arrow-active, #333333)}.mc-datatable-height{height:100%}.mc-datatable__sort-arrow{cursor:pointer}.mc-datatable__fix-first-column{position:sticky;background-color:#fff;left:0}.skeleton-box{display:inline-block;position:relative;overflow:hidden;background-color:#ccc}.skeleton-box:after{position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,.2) 20%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0));animation:shimmer 2s infinite;content:\"\"}@keyframes shimmer{to{transform:translate(100%)}}.checkbox-loading{width:25px;height:25px}.cells-loading{width:250px;height:25px}\n"] }]
132
132
  }], propDecorators: { footerSettings: [{
133
133
  type: Input
134
134
  }], selectionSettings: [{
@@ -168,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
168
168
  type: ContentChild,
169
169
  args: [MozDatatableRowExpansionContentComponent]
170
170
  }] } });
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW96LWRhdGF0YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9kYXRhdGFibGUvbW96LWRhdGF0YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9kYXRhdGFibGUvbW96LWRhdGF0YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxlQUFlLEVBSWYsWUFBWSxFQUNaLE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxFQUNULGlCQUFpQixHQUVsQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUc3RyxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQzs7Ozs7Ozs7OztBQVMxSCxNQUFNLE9BQU8scUJBQXFCO0lBTmxDO1FBV0Usc0JBQXNCO1FBQ1osYUFBUSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDdkMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDekMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUNwRCxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO1FBQ3ZELDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFLL0QseUJBQXlCO1FBQ2YsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDeEMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQWNqRCx5QkFBb0IsR0FBa0MsSUFB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VTtzQkFBbkIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBRXNDLGNBQWM7c0JBQTFELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDRCxXQUFXO3NCQUFwRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBR2pDLG9CQUFvQjtzQkFEMUIsZUFBZTt1QkFBQywrQkFBK0I7Z0JBSXpDLHFCQUFxQjtzQkFEM0IsZUFBZTt1QkFBQyxnQ0FBZ0M7Z0JBSTFDLHlCQUF5QjtzQkFEL0IsWUFBWTt1QkFBQyx3Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIFF1ZXJ5TGlzdCxcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIENvbnRlbnRDaGlsZCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIEVsZW1lbnRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm93RGF0YSB9IGZyb20gJy4vbW9kZWwvcm93LWRhdGEnO1xuaW1wb3J0IHsgU2VsZWN0aW9uU2V0dGluZ3MgfSBmcm9tICcuL21vZGVsL3NlbGVjdGlvbi1zZXR0aW5ncyc7XG5pbXBvcnQgeyBNb3pEYXRhdGFibGVTZWxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0aW9uL21vei1kYXRhdGFibGUtc2VsZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb3pEYXRhdGFibGVIZWFkZXJDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2hlYWRlci9tb3otZGF0YXRhYmxlLWhlYWRlci1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb3pEYXRhdGFibGVDb250ZW50Q2VsbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb250ZW50L21vei1kYXRhdGFibGUtY29udGVudC1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhdGFibGVTZXR0aW5ncyB9IGZyb20gJy4vbW9kZWwvZGF0YXRhYmxlLXNldHRpbmdzJztcbmltcG9ydCB7IEZvb3RlclNldHRpbmdzIH0gZnJvbSAnLi9tb2RlbC9mb290ZXItc2V0dGluZ3MnO1xuaW1wb3J0IHsgTW96RGF0YXRhYmxlUm93RXhwYW5zaW9uQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yb3cvbW96LWRhdGF0YWJsZS1yb3ctZXhwYW5zaW9uLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbkRlZiB9IGZyb20gJy4vbW9kZWwvY29sdW1uLWRlZic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vei1kYXRhdGFibGUnLFxuICBzdHlsZVVybHM6IFsnLi9tb3otZGF0YXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9tb3otZGF0YXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTW96RGF0YXRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBmb290ZXJTZXR0aW5ncz86IEZvb3RlclNldHRpbmdzO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0aW9uU2V0dGluZ3M/OiBTZWxlY3Rpb25TZXR0aW5ncztcbiAgQElucHV0KCkgcHVibGljIGRhdGF0YWJsZVNldHRpbmdzPzogRGF0YXRhYmxlU2V0dGluZ3M7XG5cbiAgLy8gRlJPTSBCT0RZIERBVEFUQUJMRVxuICBAT3V0cHV0KCkgcm93Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFJvd0RhdGE+KCk7XG4gIEBPdXRwdXQoKSBzb3J0Q29sdW1uID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duPigpO1xuICBAT3V0cHV0KCkgcm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGlvblNldHRpbmdzPigpO1xuICBAT3V0cHV0KCkgcm93QWxsU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGlvblNldHRpbmdzPigpO1xuICBAT3V0cHV0KCkgZW1wdHlCb2R5QnV0dG9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAVmlld0NoaWxkKE1vekRhdGF0YWJsZVNlbGVjdGlvbkNvbXBvbmVudClcbiAgcHVibGljIHNlbGVjdGlvbkNvbXBvbmVudD86IE1vekRhdGF0YWJsZVNlbGVjdGlvbkNvbXBvbmVudDtcblxuICAvLyBGUk9NIFBBR0lOQVRJT04gRk9PVEVSXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSByb3dQZXJQYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQFZpZXdDaGlsZCgndGhTZWxlY3Rpb24nLCB7IHN0YXRpYzogZmFsc2UgfSkgdGhTZWxlY3Rpb25SZWY/OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCd0aFN1YlJvdycsIHsgc3RhdGljOiBmYWxzZSB9KSB0aFN1YlJvd1JlZj86IEVsZW1lbnRSZWY7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihNb3pEYXRhdGFibGVIZWFkZXJDZWxsQ29tcG9uZW50KVxuICBwdWJsaWMgaGVhZGVyQ2VsbENvbXBvbmVudHM/OiBRdWVyeUxpc3Q8TW96RGF0YXRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudD47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihNb3pEYXRhdGFibGVDb250ZW50Q2VsbENvbXBvbmVudClcbiAgcHVibGljIGNvbnRlbnRDZWxsQ29tcG9uZW50cz86IFF1ZXJ5TGlzdDxNb3pEYXRhdGFibGVDb250ZW50Q2VsbENvbXBvbmVudD47XG5cbiAgQENvbnRlbnRDaGlsZChNb3pEYXRhdGFibGVSb3dFeHBhbnNpb25Db250ZW50Q29tcG9uZW50KVxuICBwdWJsaWMgZXhwYW5zaW9uQ29udGVudENvbXBvbmVudD86IE1vekRhdGF0YWJsZVJvd0V4cGFuc2lvbkNvbnRlbnRDb21wb25lbnQ7XG5cbiAgcHVibGljIGN1c3RvbUhlYWRlckNlbGxzTWFwOiBNYXA8c3RyaW5nLCBUZW1wbGF0ZVJlZjxhbnk+PiA9IG5ldyBNYXA8c3RyaW5nLCBUZW1wbGF0ZVJlZjxhbnk+PigpO1xuICBwdWJsaWMgY3VzdG9tQ29udGVudENlbGxzTWFwOiBNYXA8c3RyaW5nLCBUZW1wbGF0ZVJlZjxhbnk+PiA9IG5ldyBNYXA8c3RyaW5nLCBUZW1wbGF0ZVJlZjxhbnk+PigpO1xuICBwdWJsaWMgZXhwYW5kZWRSb3dzOiBib29sZWFuW10gPSBbXTtcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5idWlsZEN1c3RvbUhlYWRlck1hcCgpO1xuICAgIHRoaXMuYnVpbGRDdXN0b21Db250ZW50TWFwKCk7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRDdXN0b21IZWFkZXJNYXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGVhZGVyQ2VsbENvbXBvbmVudHMpIHtcbiAgICAgIHRoaXMuaGVhZGVyQ2VsbENvbXBvbmVudHMuZm9yRWFjaCgoaGVhZGVyKSA9PiB7XG4gICAgICAgIGlmIChoZWFkZXIuZmllbGQgJiYgaGVhZGVyLnRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgdGhpcy5jdXN0b21IZWFkZXJDZWxsc01hcC5zZXQoaGVhZGVyLmZpZWxkLCBoZWFkZXIudGVtcGxhdGVSZWYpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYnVpbGRDdXN0b21Db250ZW50TWFwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbnRlbnRDZWxsQ29tcG9uZW50cykge1xuICAgICAgdGhpcy5jb250ZW50Q2VsbENvbXBvbmVudHMuZm9yRWFjaCgoY2VsbCkgPT4ge1xuICAgICAgICBpZiAoY2VsbC5maWVsZCAmJiBjZWxsLnRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgdGhpcy5jdXN0b21Db250ZW50Q2VsbHNNYXAuc2V0KGNlbGwuZmllbGQsIGNlbGwudGVtcGxhdGVSZWYpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VzdG9tRXhwYW5zaW9uUm93Q29udGVudCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5leHBhbnNpb25Db250ZW50Q29tcG9uZW50Py50ZW1wbGF0ZVJlZjtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVSb3dFeHBhbnNpb24oaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuZXhwYW5kZWRSb3dzW2luZGV4XSA9ICF0aGlzLmV4cGFuZGVkUm93c1tpbmRleF07XG4gIH1cblxuICBwdWJsaWMgaGFzU3ViUm93KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5kYXRhdGFibGVTZXR0aW5ncz8ucm93RGF0YS5maWx0ZXIoKHJvdykgPT4gcm93WydzdWJSb3cnXSkubGVuZ3RoIHx8IDApID4gMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDdXN0b21IZWFkZXIoY29sdW1uSWQ6IHN0cmluZyk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbUhlYWRlckNlbGxzTWFwLmdldChjb2x1bW5JZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VzdG9tQ29udGVudChjb2x1bW5JZDogc3RyaW5nKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tQ29udGVudENlbGxzTWFwLmdldChjb2x1bW5JZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29sc3BhbkZvckV4cGFuc2lvblJvdygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmRhdGF0YWJsZVNldHRpbmdzPy5hY3RpdmF0ZVNlbGVjdGlvblxuICAgICAgPyAodGhpcy5kYXRhdGFibGVTZXR0aW5ncz8uY29sdW1uRGVmcz8ubGVuZ3RoIHx8IDApICsgMlxuICAgICAgOiAodGhpcy5kYXRhdGFibGVTZXR0aW5ncz8uY29sdW1uRGVmcz8ubGVuZ3RoIHx8IDApICsgMTtcbiAgfVxuXG4gIHB1YmxpYyBlbXB0eUJ1dHRvbkNsaWNrRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5lbXB0eUJvZHlCdXR0b25DbGlja2VkLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgcm93Q2xpY2tFdmVudChldmVudDogTW91c2VFdmVudCwgcm93Q2xpY2s6IFJvd0RhdGEpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucm93Q2xpY2suZW1pdChyb3dDbGljayk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0aW9uQWxsUm93RXZlbnQoJGV2ZW50OiBTZWxlY3Rpb25TZXR0aW5ncykge1xuICAgIHRoaXMucm93QWxsU2VsZWN0ZWQuZW1pdCgkZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdGlvblJvd0V2ZW50KCRldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLnJvd1NlbGVjdGVkLmVtaXQodGhpcy5zZWxlY3Rpb25TZXR0aW5ncyk7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgcHVibGljIHJvd1BlclBhZ2VDaGFuZ2VFdmVudCgkZXZlbnQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucm93UGVyUGFnZUNoYW5nZS5lbWl0KCRldmVudCk7XG4gIH1cblxuICBwdWJsaWMgcGFnZUNoYW5nZUV2ZW50KCRldmVudDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoJGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0RXZlbnQoJGV2ZW50OiB1bmtub3duKSB7XG4gICAgdGhpcy5zb3J0Q29sdW1uLmVtaXQoJGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTdHlsZUxlZnRGb3JDb2x1bW5GaXhlZCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmRhdGF0YWJsZVNldHRpbmdzPy5hY3RpdmF0ZVNlbGVjdGlvbiAmJiB0aGlzLnRoU2VsZWN0aW9uUmVmXG4gICAgICA/IHRoaXMudGhTZWxlY3Rpb25SZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aFxuICAgICAgOiAwO1xuICB9XG5cbiAgcHVibGljIGdldExlZnRWYWx1ZUZpeEZpcnN0Q29sdW1uKCk6IG51bWJlciB7XG4gICAgbGV0IHZhbHVlID0gMDtcbiAgICBpZiAodGhpcy5kYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVTZWxlY3Rpb24gJiYgdGhpcy50aFNlbGVjdGlvblJlZikge1xuICAgICAgdmFsdWUgKz0gdGhpcy50aFNlbGVjdGlvblJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIH1cbiAgICBpZiAodGhpcy5oYXNTdWJSb3coKSAmJiB0aGlzLnRoU3ViUm93UmVmKSB7XG4gICAgICB2YWx1ZSArPSB0aGlzLnRoU3ViUm93UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRVbmhpZGRlbkNvbHVtbnMoKTogQ29sdW1uRGVmW10ge1xuICAgIHJldHVybiB0aGlzLmRhdGF0YWJsZVNldHRpbmdzPy5jb2x1bW5EZWZzLmZpbHRlcigoaGVhZFRpdGxlKSA9PiAhaGVhZFRpdGxlLmhpZGUpIHx8IFtdO1xuICB9XG5cbiAgcHVibGljIGdldENvbHVtbnMoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhdGFibGVTZXR0aW5ncz8uaXNMb2FkaW5nXG4gICAgICA/IFsnJywgJycsICcnLCAnJywgJyddXG4gICAgICA6IHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LmNvbHVtbkRlZnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0RmllbGRzKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZ1xuICAgICAgPyBbJycsICcnLCAnJywgJycsICcnXVxuICAgICAgOiB0aGlzLmRhdGF0YWJsZVNldHRpbmdzPy5yb3dEYXRhO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWMtZGF0YXRhYmxlXCIgW25nQ2xhc3NdPVwieyAnIG1jLWRhdGF0YWJsZS1oZWlnaHQnOiBkYXRhdGFibGVTZXR0aW5ncz8uZml4SGVhZGVyUm93IH1cIj5cbiAgPGRpdiBjbGFzcz1cIm1jLWRhdGF0YWJsZV9faGVhZGVyXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibW96LWRhdGF0YWJsZS1jYXB0aW9uXCI+PC9uZy1jb250ZW50PlxuICAgIDxkaXY+XG4gICAgICA8bW96LWRhdGF0YWJsZS1zZWxlY3Rpb25cbiAgICAgICAgW3NlbGVjdGlvblNldHRpbmdzXT1cInNlbGVjdGlvblNldHRpbmdzXCJcbiAgICAgICAgW3BhZ2luYXRpb25FbmFibGVkXT1cImRhdGF0YWJsZVNldHRpbmdzPy5hY3RpdmF0ZVBhZ2luYXRpb25cIlxuICAgICAgICBbcm93RGF0YV09XCJkYXRhdGFibGVTZXR0aW5ncz8ucm93RGF0YVwiXG4gICAgICAgICh1cGRhdGVTZWxlY3Rpb25BbGxFbWl0dGVyKT1cInNlbGVjdGlvbkFsbFJvd0V2ZW50KCRldmVudClcIlxuICAgICAgPjwvbW96LWRhdGF0YWJsZS1zZWxlY3Rpb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2NvbnRhaW5lclwiXG4gICAgW25nQ2xhc3NdPVwieyAnIG1jLWRhdGF0YWJsZS1oZWlnaHQnOiBkYXRhdGFibGVTZXR0aW5ncz8uZml4SGVhZGVyUm93IH1cIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJtYy1kYXRhdGFibGVfX21haW5cIlxuICAgICAgW25nQ2xhc3NdPVwieyAnIG1jLWRhdGF0YWJsZS1oZWlnaHQnOiBkYXRhdGFibGVTZXR0aW5ncz8uZml4SGVhZGVyUm93IH1cIlxuICAgID5cbiAgICAgIDx0YWJsZSBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fdGFibGVcIj5cbiAgICAgICAgPHRoZWFkIFtuZ0NsYXNzXT1cInsgJ2ZpeC1oZWFkZXItcm93JzogZGF0YXRhYmxlU2V0dGluZ3M/LmZpeEhlYWRlclJvdyB9XCI+XG4gICAgICAgICAgPHRyICpuZ0lmPVwiZ2V0Q29sdW1ucygpICYmIGdldENvbHVtbnMoKS5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2NlbGwtY2hlY2tib3ggbW96LWRhdGF0YWJsZV9fdGggbWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBkYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVTZWxlY3Rpb24gJiZcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25Db21wb25lbnQgJiZcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25TZXR0aW5ncyAmJlxuICAgICAgICAgICAgICAgICgoZGF0YXRhYmxlU2V0dGluZ3M/LnJvd0RhdGEgfHwgW10pLmxlbmd0aCA+IDAgfHwgZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZylcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgI3RoU2VsZWN0aW9uXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhdGFibGVTZXR0aW5ncz8uaXNMb2FkaW5nOyBlbHNlIG5vdExvYWRpbmdDaGVja2JveFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvbi1ib3ggbXUtbWItMTAwIGNoZWNrYm94LWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90TG9hZGluZ0NoZWNrYm94PlxuICAgICAgICAgICAgICAgIDxtb3otY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbkNvbXBvbmVudC5vblVkcGF0ZVNlbGVjdGlvbkFsbFBhZ2VSb3dzKCRldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblJvd0V2ZW50KCRldmVudClcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzZWxlY3Rpb25Db21wb25lbnQuaXNJbmRldGVybWluYXRlXCJcbiAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvblNldHRpbmdzLmFsbFNlbGVjdGVkICYmICFzZWxlY3Rpb25Db21wb25lbnQuaXNJbmRldGVybWluYXRlXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkYXRhdGFibGVTZXR0aW5ncz8uaXNMb2FkaW5nIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9tb3otY2hlY2tib3g+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICpuZ0lmPVwiaGFzU3ViUm93KCkgJiYgIWRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmdcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fZml4LWZpcnN0LWNvbHVtblwiXG4gICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImdldFN0eWxlTGVmdEZvckNvbHVtbkZpeGVkKClcIlxuICAgICAgICAgICAgICAjdGhTdWJSb3dcbiAgICAgICAgICAgID48L3RoPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uRGVmIG9mIGdldENvbHVtbnMoKVwiPlxuICAgICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1vei1kYXRhdGFibGVfX3RoXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFjb2x1bW5EZWYuaGlkZVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgJ21jLWRhdGF0YWJsZV9fZml4LWZpcnN0LWNvbHVtbic6XG4gICAgICAgICAgICAgICAgICAgIGRhdGF0YWJsZVNldHRpbmdzPy5maXhGaXJzdENvbHVtbiAmJlxuICAgICAgICAgICAgICAgICAgICBnZXRVbmhpZGRlbkNvbHVtbnMoKVswXS5maWVsZCA9PT0gY29sdW1uRGVmLmZpZWxkXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZ2V0TGVmdFZhbHVlRml4Rmlyc3RDb2x1bW4oKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZzsgZWxzZSBub3RMb2FkaW5nSGVhZGluZ1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNrZWxldG9uLWJveCBtdS1tYi0xMDAgY2VsbHMtbG9hZGluZ1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RMb2FkaW5nSGVhZGluZz5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgW21vekRhdGF0YWJsZVNvcnRdPVwiY29sdW1uRGVmXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBoZWFkZXI6IGNvbHVtbkRlZi5zb3J0IH1cIlxuICAgICAgICAgICAgICAgICAgICAoc29ydEVtaXR0ZXIpPVwic29ydEV2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldEN1c3RvbUhlYWRlcihjb2x1bW5EZWYuZmllbGQpIGFzIGN1c3RvbUhlYWRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgZGVmYXVsdEhlYWRlckNlbGxcbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tSGVhZGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBjb2x1bW5EZWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0SGVhZGVyQ2VsbD5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBjb2x1bW5EZWYuaGVhZGVyTmFtZSB8IHVwcGVyY2FzZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGhlYWQ+XG4gICAgICAgIDx0Ym9keT5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAoZGF0YXRhYmxlU2V0dGluZ3M/LnJvd0RhdGE/Lmxlbmd0aCB8fCAwKSA+IDAgfHwgZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZztcbiAgICAgICAgICAgICAgZWxzZSBlbXB0eUJvZHlcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcm93IG9mIGdldEZpZWxkcygpOyBpbmRleCBhcyBpXCI+XG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fcm93LXBhcmVudFwiIChjbGljayk9XCJyb3dDbGlja0V2ZW50KCRldmVudCwgcm93KVwiPlxuICAgICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2ZpeC1maXJzdC1jb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVTZWxlY3Rpb24gJiYgc2VsZWN0aW9uQ29tcG9uZW50XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZzsgZWxzZSBub3RMb2FkaW5nQ2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNrZWxldG9uLWJveCBtdS1tYi0xMDAgY2hlY2tib3gtbG9hZGluZ1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdExvYWRpbmdDaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgPG1vei1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25Db21wb25lbnQub25VZHBhdGVTZWxlY3Rpb25Sb3cocm93KTsgc2VsZWN0aW9uUm93RXZlbnQoJGV2ZW50KVxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyb3cuc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInJvdy5zZWxlY3RlZCB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJvdy5kaXNhYmxlU2VsZWN0aW9uIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L21vei1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzU3ViUm93KCkgJiYgIWRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInJvd1snc3ViUm93J107IGVsc2Ugbm9TdWJSb3dcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fY2VsbC1idXR0b24gbWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZ2V0U3R5bGVMZWZ0Rm9yQ29sdW1uRml4ZWQoKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fZXhwYW5kIG1jLWRhdGF0YWJsZV9fYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUm93RXhwYW5zaW9uKGkpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYy1kYXRhdGFibGVfX2J0bi1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWV4cGFuZGVkUm93c1tpXTsgZWxzZSBzdWJyb3dDbG9zZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vei1pY29uIFtpY29uTmFtZV09XCInTmF2aWdhdGlvbl9Db250cm9sX0NpcmNsZS0tTW9yZV8yNHB4J1wiPjwvbW96LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3Vicm93Q2xvc2VkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bW96LWljb24gW2ljb25OYW1lXT1cIidOYXZpZ2F0aW9uX0NvbnRyb2xfQ2lyY2xlLS1MZXNzXzI0cHgnXCI+PC9tb3otaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vU3ViUm93XG4gICAgICAgICAgICAgICAgICAgID48dGRcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fY2VsbC1idXR0b24gbWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC5weF09XCJnZXRTdHlsZUxlZnRGb3JDb2x1bW5GaXhlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvdGRcbiAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbkRlZiBvZiBnZXRDb2x1bW5zKClcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFjb2x1bW5EZWYuaGlkZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAnbWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGF0YWJsZVNldHRpbmdzPy5maXhGaXJzdENvbHVtbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0VW5oaWRkZW5Db2x1bW5zKClbMF0uZmllbGQgPT09IGNvbHVtbkRlZi5maWVsZFxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZ2V0TGVmdFZhbHVlRml4Rmlyc3RDb2x1bW4oKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhdGFibGVTZXR0aW5ncz8uaXNMb2FkaW5nOyBlbHNlIG5vdExvYWRpbmdDZWxsc1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvbi1ib3ggbXUtbWItMTAwIGNlbGxzLWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90TG9hZGluZ0NlbGxzPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdldEN1c3RvbUNvbnRlbnQoY29sdW1uRGVmLmZpZWxkKSBhcyBjdXN0b21Db250ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGRlZmF1bHRDb250ZW50Q2VsbFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tQ29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93OiByb3csXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5EZWZzOiBkYXRhdGFibGVTZXR0aW5ncz8uY29sdW1uRGVmcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogcm93W2NvbHVtbkRlZi5maWVsZF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Q29udGVudENlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyByb3dbY29sdW1uRGVmLmZpZWxkXSB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDx0ciAqbmdJZj1cImV4cGFuZGVkUm93c1tpXVwiPlxuICAgICAgICAgICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiZ2V0Q29sc3BhbkZvckV4cGFuc2lvblJvdygpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdldEN1c3RvbUV4cGFuc2lvblJvd0NvbnRlbnQoKSBhcyBleHBhbnNpb25Sb3dDb250ZW50Q29tcG9uZW50XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBhbnNpb25Sb3dDb250ZW50Q29tcG9uZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJSb3dDb250ZW50OiByb3dbJ3N1YlJvdyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlCb2R5PlxuICAgICAgICAgICAgPHRyIGNsYXNzPVwibWMtZGF0YXRhYmxlX19lbXB0eVwiPlxuICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjVcIiBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fZW1wdHktY2VsbFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2VtcHR5LWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGF0YWJsZVNldHRpbmdzPy5sYWJlbHM/LmVtcHR5Qm9keVRpdGxlIHx8ICdUaGVyZSBpcyBubyByZXN1bHQuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Ryb25nXG4gICAgICAgICAgICAgICAgICAgICAgICA+PGJyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhdGFibGVTZXR0aW5ncz8ubGFiZWxzPy5lbXB0eUJvZHlEZXNjcmlwdGlvbiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQbGVhc2UgdHJ5IGNoYW5naW5nIHlvdXIgZmlsdGVycy4nXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVFbXB0eUJvZHlCdXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBtb3otYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGhlbWVdPVwiJ25ldXRyYWwnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIidzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFyaWF0aW9uXT1cIidib3JkZXJlZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVtcHR5QnV0dG9uQ2xpY2tFdmVudCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bW96LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbk5hbWU9XCJ7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGF0YWJsZVNldHRpbmdzPy5pY29ucz8uZW1wdHlCb2R5QnV0dG9uSWNvbiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ05hdmlnYXRpb25fRGlzcGxheV9GaWx0ZXJfMjRweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbW96LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXRhdGFibGVTZXR0aW5ncz8ubGFiZWxzPy5lbXB0eUJvZHlCdXR0b25UaXRsZSB8fCAnQ2hhbmdlIGZpbHRlcnMnIH19XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPjwvbmctdGVtcGxhdGVcbiAgICAgICAgICA+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgICA8L3RhYmxlPlxuICAgIDwvZGl2PlxuICAgIDxtb3otZGF0YXRhYmxlLWZvb3RlclxuICAgICAgKm5nSWY9XCJkYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVQYWdpbmF0aW9uXCJcbiAgICAgIFtmb290ZXJTZXR0aW5nc109XCJmb290ZXJTZXR0aW5nc1wiXG4gICAgICBbaXNMb2FkaW5nXT1cImRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmdcIlxuICAgICAgKHJvd1BlclBhZ2VDaGFuZ2VFbWl0dGVyKT1cInJvd1BlclBhZ2VDaGFuZ2VFdmVudCgkZXZlbnQpXCJcbiAgICAgIChwYWdlQ2hhbmdlRW1pdHRlcik9XCJwYWdlQ2hhbmdlRXZlbnQoJGV2ZW50KVwiXG4gICAgPjwvbW96LWRhdGF0YWJsZS1mb290ZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW96LWRhdGF0YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9kYXRhdGFibGUvbW96LWRhdGF0YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9kYXRhdGFibGUvbW96LWRhdGF0YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxlQUFlLEVBSWYsWUFBWSxFQUNaLE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxFQUNULGlCQUFpQixHQUVsQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUc3RyxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQzs7Ozs7Ozs7OztBQVMxSCxNQUFNLE9BQU8scUJBQXFCO0lBTmxDO1FBV0Usc0JBQXNCO1FBQ1osYUFBUSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDdkMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDekMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUNwRCxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO1FBQ3ZELDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFLL0QseUJBQXlCO1FBQ2YsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDeEMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQWNqRCx5QkFBb0IsR0FBa0MsSUFB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VTtzQkFBbkIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBRXNDLGNBQWM7c0JBQTFELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDRCxXQUFXO3NCQUFwRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBR2pDLG9CQUFvQjtzQkFEMUIsZUFBZTt1QkFBQywrQkFBK0I7Z0JBSXpDLHFCQUFxQjtzQkFEM0IsZUFBZTt1QkFBQyxnQ0FBZ0M7Z0JBSTFDLHlCQUF5QjtzQkFEL0IsWUFBWTt1QkFBQyx3Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIFF1ZXJ5TGlzdCxcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIENvbnRlbnRDaGlsZCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIEVsZW1lbnRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm93RGF0YSB9IGZyb20gJy4vbW9kZWwvcm93LWRhdGEnO1xuaW1wb3J0IHsgU2VsZWN0aW9uU2V0dGluZ3MgfSBmcm9tICcuL21vZGVsL3NlbGVjdGlvbi1zZXR0aW5ncyc7XG5pbXBvcnQgeyBNb3pEYXRhdGFibGVTZWxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0aW9uL21vei1kYXRhdGFibGUtc2VsZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb3pEYXRhdGFibGVIZWFkZXJDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2hlYWRlci9tb3otZGF0YXRhYmxlLWhlYWRlci1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb3pEYXRhdGFibGVDb250ZW50Q2VsbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb250ZW50L21vei1kYXRhdGFibGUtY29udGVudC1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhdGFibGVTZXR0aW5ncyB9IGZyb20gJy4vbW9kZWwvZGF0YXRhYmxlLXNldHRpbmdzJztcbmltcG9ydCB7IEZvb3RlclNldHRpbmdzIH0gZnJvbSAnLi9tb2RlbC9mb290ZXItc2V0dGluZ3MnO1xuaW1wb3J0IHsgTW96RGF0YXRhYmxlUm93RXhwYW5zaW9uQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yb3cvbW96LWRhdGF0YWJsZS1yb3ctZXhwYW5zaW9uLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbkRlZiB9IGZyb20gJy4vbW9kZWwvY29sdW1uLWRlZic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vei1kYXRhdGFibGUnLFxuICBzdHlsZVVybHM6IFsnLi9tb3otZGF0YXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9tb3otZGF0YXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTW96RGF0YXRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBmb290ZXJTZXR0aW5ncz86IEZvb3RlclNldHRpbmdzO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0aW9uU2V0dGluZ3M/OiBTZWxlY3Rpb25TZXR0aW5ncztcbiAgQElucHV0KCkgcHVibGljIGRhdGF0YWJsZVNldHRpbmdzPzogRGF0YXRhYmxlU2V0dGluZ3M7XG5cbiAgLy8gRlJPTSBCT0RZIERBVEFUQUJMRVxuICBAT3V0cHV0KCkgcm93Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFJvd0RhdGE+KCk7XG4gIEBPdXRwdXQoKSBzb3J0Q29sdW1uID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duPigpO1xuICBAT3V0cHV0KCkgcm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGlvblNldHRpbmdzPigpO1xuICBAT3V0cHV0KCkgcm93QWxsU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGlvblNldHRpbmdzPigpO1xuICBAT3V0cHV0KCkgZW1wdHlCb2R5QnV0dG9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAVmlld0NoaWxkKE1vekRhdGF0YWJsZVNlbGVjdGlvbkNvbXBvbmVudClcbiAgcHVibGljIHNlbGVjdGlvbkNvbXBvbmVudD86IE1vekRhdGF0YWJsZVNlbGVjdGlvbkNvbXBvbmVudDtcblxuICAvLyBGUk9NIFBBR0lOQVRJT04gRk9PVEVSXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSByb3dQZXJQYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQFZpZXdDaGlsZCgndGhTZWxlY3Rpb24nLCB7IHN0YXRpYzogZmFsc2UgfSkgdGhTZWxlY3Rpb25SZWY/OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCd0aFN1YlJvdycsIHsgc3RhdGljOiBmYWxzZSB9KSB0aFN1YlJvd1JlZj86IEVsZW1lbnRSZWY7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihNb3pEYXRhdGFibGVIZWFkZXJDZWxsQ29tcG9uZW50KVxuICBwdWJsaWMgaGVhZGVyQ2VsbENvbXBvbmVudHM/OiBRdWVyeUxpc3Q8TW96RGF0YXRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudD47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihNb3pEYXRhdGFibGVDb250ZW50Q2VsbENvbXBvbmVudClcbiAgcHVibGljIGNvbnRlbnRDZWxsQ29tcG9uZW50cz86IFF1ZXJ5TGlzdDxNb3pEYXRhdGFibGVDb250ZW50Q2VsbENvbXBvbmVudD47XG5cbiAgQENvbnRlbnRDaGlsZChNb3pEYXRhdGFibGVSb3dFeHBhbnNpb25Db250ZW50Q29tcG9uZW50KVxuICBwdWJsaWMgZXhwYW5zaW9uQ29udGVudENvbXBvbmVudD86IE1vekRhdGF0YWJsZVJvd0V4cGFuc2lvbkNvbnRlbnRDb21wb25lbnQ7XG5cbiAgcHVibGljIGN1c3RvbUhlYWRlckNlbGxzTWFwOiBNYXA8c3RyaW5nLCBUZW1wbGF0ZVJlZjxhbnk+PiA9IG5ldyBNYXA8c3RyaW5nLCBUZW1wbGF0ZVJlZjxhbnk+PigpO1xuICBwdWJsaWMgY3VzdG9tQ29udGVudENlbGxzTWFwOiBNYXA8c3RyaW5nLCBUZW1wbGF0ZVJlZjxhbnk+PiA9IG5ldyBNYXA8c3RyaW5nLCBUZW1wbGF0ZVJlZjxhbnk+PigpO1xuICBwdWJsaWMgZXhwYW5kZWRSb3dzOiBib29sZWFuW10gPSBbXTtcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5idWlsZEN1c3RvbUhlYWRlck1hcCgpO1xuICAgIHRoaXMuYnVpbGRDdXN0b21Db250ZW50TWFwKCk7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRDdXN0b21IZWFkZXJNYXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGVhZGVyQ2VsbENvbXBvbmVudHMpIHtcbiAgICAgIHRoaXMuaGVhZGVyQ2VsbENvbXBvbmVudHMuZm9yRWFjaCgoaGVhZGVyKSA9PiB7XG4gICAgICAgIGlmIChoZWFkZXIuZmllbGQgJiYgaGVhZGVyLnRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgdGhpcy5jdXN0b21IZWFkZXJDZWxsc01hcC5zZXQoaGVhZGVyLmZpZWxkLCBoZWFkZXIudGVtcGxhdGVSZWYpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYnVpbGRDdXN0b21Db250ZW50TWFwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbnRlbnRDZWxsQ29tcG9uZW50cykge1xuICAgICAgdGhpcy5jb250ZW50Q2VsbENvbXBvbmVudHMuZm9yRWFjaCgoY2VsbCkgPT4ge1xuICAgICAgICBpZiAoY2VsbC5maWVsZCAmJiBjZWxsLnRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgdGhpcy5jdXN0b21Db250ZW50Q2VsbHNNYXAuc2V0KGNlbGwuZmllbGQsIGNlbGwudGVtcGxhdGVSZWYpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VzdG9tRXhwYW5zaW9uUm93Q29udGVudCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5leHBhbnNpb25Db250ZW50Q29tcG9uZW50Py50ZW1wbGF0ZVJlZjtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVSb3dFeHBhbnNpb24oaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuZXhwYW5kZWRSb3dzW2luZGV4XSA9ICF0aGlzLmV4cGFuZGVkUm93c1tpbmRleF07XG4gIH1cblxuICBwdWJsaWMgaGFzU3ViUm93KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5kYXRhdGFibGVTZXR0aW5ncz8ucm93RGF0YS5maWx0ZXIoKHJvdykgPT4gcm93WydzdWJSb3cnXSkubGVuZ3RoIHx8IDApID4gMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDdXN0b21IZWFkZXIoY29sdW1uSWQ6IHN0cmluZyk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbUhlYWRlckNlbGxzTWFwLmdldChjb2x1bW5JZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VzdG9tQ29udGVudChjb2x1bW5JZDogc3RyaW5nKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tQ29udGVudENlbGxzTWFwLmdldChjb2x1bW5JZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29sc3BhbkZvckV4cGFuc2lvblJvdygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmRhdGF0YWJsZVNldHRpbmdzPy5hY3RpdmF0ZVNlbGVjdGlvblxuICAgICAgPyAodGhpcy5kYXRhdGFibGVTZXR0aW5ncz8uY29sdW1uRGVmcz8ubGVuZ3RoIHx8IDApICsgMlxuICAgICAgOiAodGhpcy5kYXRhdGFibGVTZXR0aW5ncz8uY29sdW1uRGVmcz8ubGVuZ3RoIHx8IDApICsgMTtcbiAgfVxuXG4gIHB1YmxpYyBlbXB0eUJ1dHRvbkNsaWNrRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5lbXB0eUJvZHlCdXR0b25DbGlja2VkLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgcm93Q2xpY2tFdmVudChldmVudDogTW91c2VFdmVudCwgcm93Q2xpY2s6IFJvd0RhdGEpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucm93Q2xpY2suZW1pdChyb3dDbGljayk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0aW9uQWxsUm93RXZlbnQoJGV2ZW50OiBTZWxlY3Rpb25TZXR0aW5ncykge1xuICAgIHRoaXMucm93QWxsU2VsZWN0ZWQuZW1pdCgkZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdGlvblJvd0V2ZW50KCRldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLnJvd1NlbGVjdGVkLmVtaXQodGhpcy5zZWxlY3Rpb25TZXR0aW5ncyk7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgcHVibGljIHJvd1BlclBhZ2VDaGFuZ2VFdmVudCgkZXZlbnQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucm93UGVyUGFnZUNoYW5nZS5lbWl0KCRldmVudCk7XG4gIH1cblxuICBwdWJsaWMgcGFnZUNoYW5nZUV2ZW50KCRldmVudDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoJGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0RXZlbnQoJGV2ZW50OiB1bmtub3duKSB7XG4gICAgdGhpcy5zb3J0Q29sdW1uLmVtaXQoJGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTdHlsZUxlZnRGb3JDb2x1bW5GaXhlZCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmRhdGF0YWJsZVNldHRpbmdzPy5hY3RpdmF0ZVNlbGVjdGlvbiAmJiB0aGlzLnRoU2VsZWN0aW9uUmVmXG4gICAgICA/IHRoaXMudGhTZWxlY3Rpb25SZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aFxuICAgICAgOiAwO1xuICB9XG5cbiAgcHVibGljIGdldExlZnRWYWx1ZUZpeEZpcnN0Q29sdW1uKCk6IG51bWJlciB7XG4gICAgbGV0IHZhbHVlID0gMDtcbiAgICBpZiAodGhpcy5kYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVTZWxlY3Rpb24gJiYgdGhpcy50aFNlbGVjdGlvblJlZikge1xuICAgICAgdmFsdWUgKz0gdGhpcy50aFNlbGVjdGlvblJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIH1cbiAgICBpZiAodGhpcy5oYXNTdWJSb3coKSAmJiB0aGlzLnRoU3ViUm93UmVmKSB7XG4gICAgICB2YWx1ZSArPSB0aGlzLnRoU3ViUm93UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRVbmhpZGRlbkNvbHVtbnMoKTogQ29sdW1uRGVmW10ge1xuICAgIHJldHVybiB0aGlzLmRhdGF0YWJsZVNldHRpbmdzPy5jb2x1bW5EZWZzLmZpbHRlcigoaGVhZFRpdGxlKSA9PiAhaGVhZFRpdGxlLmhpZGUpIHx8IFtdO1xuICB9XG5cbiAgcHVibGljIGdldENvbHVtbnMoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhdGFibGVTZXR0aW5ncz8uaXNMb2FkaW5nXG4gICAgICA/IFsnJywgJycsICcnLCAnJywgJyddXG4gICAgICA6IHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LmNvbHVtbkRlZnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0RmllbGRzKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZ1xuICAgICAgPyBbJycsICcnLCAnJywgJycsICcnXVxuICAgICAgOiB0aGlzLmRhdGF0YWJsZVNldHRpbmdzPy5yb3dEYXRhO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWMtZGF0YXRhYmxlXCIgW25nQ2xhc3NdPVwieyAnIG1jLWRhdGF0YWJsZS1oZWlnaHQnOiBkYXRhdGFibGVTZXR0aW5ncz8uZml4SGVhZGVyUm93IH1cIj5cbiAgPGRpdiBjbGFzcz1cIm1jLWRhdGF0YWJsZV9faGVhZGVyXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibW96LWRhdGF0YWJsZS1jYXB0aW9uXCI+PC9uZy1jb250ZW50PlxuICAgIDxkaXY+XG4gICAgICA8bW96LWRhdGF0YWJsZS1zZWxlY3Rpb25cbiAgICAgICAgW3NlbGVjdGlvblNldHRpbmdzXT1cInNlbGVjdGlvblNldHRpbmdzXCJcbiAgICAgICAgW3BhZ2luYXRpb25FbmFibGVkXT1cImRhdGF0YWJsZVNldHRpbmdzPy5hY3RpdmF0ZVBhZ2luYXRpb25cIlxuICAgICAgICBbcm93RGF0YV09XCJkYXRhdGFibGVTZXR0aW5ncz8ucm93RGF0YVwiXG4gICAgICAgICh1cGRhdGVTZWxlY3Rpb25BbGxFbWl0dGVyKT1cInNlbGVjdGlvbkFsbFJvd0V2ZW50KCRldmVudClcIlxuICAgICAgPjwvbW96LWRhdGF0YWJsZS1zZWxlY3Rpb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2NvbnRhaW5lclwiXG4gICAgW25nQ2xhc3NdPVwieyAnIG1jLWRhdGF0YWJsZS1oZWlnaHQnOiBkYXRhdGFibGVTZXR0aW5ncz8uZml4SGVhZGVyUm93IH1cIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJtYy1kYXRhdGFibGVfX21haW5cIlxuICAgICAgW25nQ2xhc3NdPVwieyAnIG1jLWRhdGF0YWJsZS1oZWlnaHQnOiBkYXRhdGFibGVTZXR0aW5ncz8uZml4SGVhZGVyUm93IH1cIlxuICAgID5cbiAgICAgIDx0YWJsZSBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fdGFibGVcIiBzdW1tYXJ5PVwiVGFibGUgZGlzcGxheWluZyBkYXRhXCI+XG4gICAgICAgIDx0aGVhZCBbbmdDbGFzc109XCJ7ICdmaXgtaGVhZGVyLXJvdyc6IGRhdGF0YWJsZVNldHRpbmdzPy5maXhIZWFkZXJSb3cgfVwiPlxuICAgICAgICAgIDx0ciAqbmdJZj1cImdldENvbHVtbnMoKSAmJiBnZXRDb2x1bW5zKCkubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgIGNsYXNzPVwibWMtZGF0YXRhYmxlX19jZWxsLWNoZWNrYm94IG1vei1kYXRhdGFibGVfX3RoIG1jLWRhdGF0YWJsZV9fZml4LWZpcnN0LWNvbHVtblwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlU2VsZWN0aW9uICYmXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uQ29tcG9uZW50ICYmXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uU2V0dGluZ3MgJiZcbiAgICAgICAgICAgICAgICAoKGRhdGF0YWJsZVNldHRpbmdzPy5yb3dEYXRhIHx8IFtdKS5sZW5ndGggPiAwIHx8IGRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmcpXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICN0aFNlbGVjdGlvblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZzsgZWxzZSBub3RMb2FkaW5nQ2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2tlbGV0b24tYm94IG11LW1iLTEwMCBjaGVja2JveC1sb2FkaW5nXCI+PC9kaXY+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdExvYWRpbmdDaGVja2JveD5cbiAgICAgICAgICAgICAgICA8bW96LWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIlxuICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25Db21wb25lbnQub25VZHBhdGVTZWxlY3Rpb25BbGxQYWdlUm93cygkZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25Sb3dFdmVudCgkZXZlbnQpXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic2VsZWN0aW9uQ29tcG9uZW50LmlzSW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvblNldHRpbmdzLmFsbFNlbGVjdGVkICYmICFzZWxlY3Rpb25Db21wb25lbnQuaXNJbmRldGVybWluYXRlKSB8fFxuICAgICAgICAgICAgICAgICAgICAoIXNlbGVjdGlvblNldHRpbmdzLmFsbFNlbGVjdGVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgIXNlbGVjdGlvbkNvbXBvbmVudC5pc0luZGV0ZXJtaW5hdGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5zZWxlY3RlZElkcyB8fCBbXSkubGVuZ3RoID4gMClcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZyB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvbW96LWNoZWNrYm94PlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDx0aFxuICAgICAgICAgICAgICAqbmdJZj1cImhhc1N1YlJvdygpICYmICFkYXRhdGFibGVTZXR0aW5ncz8uaXNMb2FkaW5nXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2ZpeC1maXJzdC1jb2x1bW5cIlxuICAgICAgICAgICAgICBbc3R5bGUubGVmdC5weF09XCJnZXRTdHlsZUxlZnRGb3JDb2x1bW5GaXhlZCgpXCJcbiAgICAgICAgICAgICAgI3RoU3ViUm93XG4gICAgICAgICAgICA+PC90aD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbkRlZiBvZiBnZXRDb2x1bW5zKClcIj5cbiAgICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtb3otZGF0YXRhYmxlX190aFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhY29sdW1uRGVmLmhpZGVcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICdtYy1kYXRhdGFibGVfX2ZpeC1maXJzdC1jb2x1bW4nOlxuICAgICAgICAgICAgICAgICAgICBkYXRhdGFibGVTZXR0aW5ncz8uZml4Rmlyc3RDb2x1bW4gJiZcbiAgICAgICAgICAgICAgICAgICAgZ2V0VW5oaWRkZW5Db2x1bW5zKClbMF0uZmllbGQgPT09IGNvbHVtbkRlZi5maWVsZFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImdldExlZnRWYWx1ZUZpeEZpcnN0Q29sdW1uKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmc7IGVsc2Ugbm90TG9hZGluZ0hlYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvbi1ib3ggbXUtbWItMTAwIGNlbGxzLWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90TG9hZGluZ0hlYWRpbmc+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIFttb3pEYXRhdGFibGVTb3J0XT1cImNvbHVtbkRlZlwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgaGVhZGVyOiBjb2x1bW5EZWYuc29ydCB9XCJcbiAgICAgICAgICAgICAgICAgICAgKHNvcnRFbWl0dGVyKT1cInNvcnRFdmVudCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRDdXN0b21IZWFkZXIoY29sdW1uRGVmLmZpZWxkKSBhcyBjdXN0b21IZWFkZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGRlZmF1bHRIZWFkZXJDZWxsXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbUhlYWRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogY29sdW1uRGVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEhlYWRlckNlbGw+XG4gICAgICAgICAgICAgICAgICAgICAge3sgY29sdW1uRGVmLmhlYWRlck5hbWUgfCB1cHBlcmNhc2UgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgKGRhdGF0YWJsZVNldHRpbmdzPy5yb3dEYXRhPy5sZW5ndGggfHwgMCkgPiAwIHx8IGRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmc7XG4gICAgICAgICAgICAgIGVsc2UgZW1wdHlCb2R5XG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJvdyBvZiBnZXRGaWVsZHMoKTsgaW5kZXggYXMgaVwiPlxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJtYy1kYXRhdGFibGVfX3Jvdy1wYXJlbnRcIiAoY2xpY2spPVwicm93Q2xpY2tFdmVudCgkZXZlbnQsIHJvdylcIj5cbiAgICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlU2VsZWN0aW9uICYmIHNlbGVjdGlvbkNvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmc7IGVsc2Ugbm90TG9hZGluZ0NoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvbi1ib3ggbXUtbWItMTAwIGNoZWNrYm94LWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RMb2FkaW5nQ2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgIDxtb3otY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uQ29tcG9uZW50Lm9uVWRwYXRlU2VsZWN0aW9uUm93KHJvdyk7IHNlbGVjdGlvblJvd0V2ZW50KCRldmVudClcbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicm93LnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJyb3cuc2VsZWN0ZWQgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyb3cuZGlzYWJsZVNlbGVjdGlvbiB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9tb3otY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc1N1YlJvdygpICYmICFkYXRhdGFibGVTZXR0aW5ncz8uaXNMb2FkaW5nXCI+XG4gICAgICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyb3dbJ3N1YlJvdyddOyBlbHNlIG5vU3ViUm93XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2NlbGwtYnV0dG9uIG1jLWRhdGF0YWJsZV9fZml4LWZpcnN0LWNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImdldFN0eWxlTGVmdEZvckNvbHVtbkZpeGVkKClcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2V4cGFuZCBtYy1kYXRhdGFibGVfX2J0blwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVJvd0V4cGFuc2lvbihpKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWMtZGF0YXRhYmxlX19idG4taWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFleHBhbmRlZFJvd3NbaV07IGVsc2Ugc3Vicm93Q2xvc2VkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtb3otaWNvbiBbaWNvbk5hbWVdPVwiJ05hdmlnYXRpb25fQ29udHJvbF9DaXJjbGUtLU1vcmVfMjRweCdcIj48L21vei1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3N1YnJvd0Nsb3NlZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vei1pY29uIFtpY29uTmFtZV09XCInTmF2aWdhdGlvbl9Db250cm9sX0NpcmNsZS0tTGVzc18yNHB4J1wiPjwvbW96LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub1N1YlJvd1xuICAgICAgICAgICAgICAgICAgICA+PHRkXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2NlbGwtYnV0dG9uIG1jLWRhdGF0YWJsZV9fZml4LWZpcnN0LWNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZ2V0U3R5bGVMZWZ0Rm9yQ29sdW1uRml4ZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgID48L3RkXG4gICAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW5EZWYgb2YgZ2V0Q29sdW1ucygpXCI+XG4gICAgICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhY29sdW1uRGVmLmhpZGVcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgJ21jLWRhdGF0YWJsZV9fZml4LWZpcnN0LWNvbHVtbic6XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhdGFibGVTZXR0aW5ncz8uZml4Rmlyc3RDb2x1bW4gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldFVuaGlkZGVuQ29sdW1ucygpWzBdLmZpZWxkID09PSBjb2x1bW5EZWYuZmllbGRcbiAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImdldExlZnRWYWx1ZUZpeEZpcnN0Q29sdW1uKClcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZzsgZWxzZSBub3RMb2FkaW5nQ2VsbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2tlbGV0b24tYm94IG11LW1iLTEwMCBjZWxscy1sb2FkaW5nXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdExvYWRpbmdDZWxscz5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDdXN0b21Db250ZW50KGNvbHVtbkRlZi5maWVsZCkgYXMgY3VzdG9tQ29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBkZWZhdWx0Q29udGVudENlbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbUNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdzogcm93LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRGVmczogZGF0YXRhYmxlU2V0dGluZ3M/LmNvbHVtbkRlZnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHJvd1tjb2x1bW5EZWYuZmllbGRdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbnRlbnRDZWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgcm93W2NvbHVtbkRlZi5maWVsZF0gfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJleHBhbmRlZFJvd3NbaV1cIj5cbiAgICAgICAgICAgICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cImdldENvbHNwYW5Gb3JFeHBhbnNpb25Sb3coKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnZXRDdXN0b21FeHBhbnNpb25Sb3dDb250ZW50KCkgYXMgZXhwYW5zaW9uUm93Q29udGVudENvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5zaW9uUm93Q29udGVudENvbXBvbmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViUm93Q29udGVudDogcm93WydzdWJSb3cnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VtcHR5Qm9keT5cbiAgICAgICAgICAgIDx0ciBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fZW1wdHlcIj5cbiAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCI1XCIgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2VtcHR5LWNlbGxcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWMtZGF0YXRhYmxlX19lbXB0eS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhdGFibGVTZXR0aW5ncz8ubGFiZWxzPy5lbXB0eUJvZHlUaXRsZSB8fCAnVGhlcmUgaXMgbm8gcmVzdWx0LidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3N0cm9uZ1xuICAgICAgICAgICAgICAgICAgICAgICAgPjxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YXRhYmxlU2V0dGluZ3M/LmxhYmVscz8uZW1wdHlCb2R5RGVzY3JpcHRpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIHRyeSBjaGFuZ2luZyB5b3VyIGZpbHRlcnMuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlRW1wdHlCb2R5QnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgbW96LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cIiduZXV0cmFsJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCIncydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhcmlhdGlvbl09XCInYm9yZGVyZWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlbXB0eUJ1dHRvbkNsaWNrRXZlbnQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1vei1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGljb25OYW1lPVwie3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhdGFibGVTZXR0aW5ncz8uaWNvbnM/LmVtcHR5Qm9keUJ1dHRvbkljb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdOYXZpZ2F0aW9uX0Rpc3BsYXlfRmlsdGVyXzI0cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L21vei1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZGF0YXRhYmxlU2V0dGluZ3M/LmxhYmVscz8uZW1wdHlCb2R5QnV0dG9uVGl0bGUgfHwgJ0NoYW5nZSBmaWx0ZXJzJyB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj48L25nLXRlbXBsYXRlXG4gICAgICAgICAgPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cbiAgICA8bW96LWRhdGF0YWJsZS1mb290ZXJcbiAgICAgICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlUGFnaW5hdGlvblwiXG4gICAgICBbZm9vdGVyU2V0dGluZ3NdPVwiZm9vdGVyU2V0dGluZ3NcIlxuICAgICAgW2lzTG9hZGluZ109XCJkYXRhdGFibGVTZXR0aW5ncz8uaXNMb2FkaW5nXCJcbiAgICAgIChyb3dQZXJQYWdlQ2hhbmdlRW1pdHRlcik9XCJyb3dQZXJQYWdlQ2hhbmdlRXZlbnQoJGV2ZW50KVwiXG4gICAgICAocGFnZUNoYW5nZUVtaXR0ZXIpPVwicGFnZUNoYW5nZUV2ZW50KCRldmVudClcIlxuICAgID48L21vei1kYXRhdGFibGUtZm9vdGVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19