desy-angular 4.0.0 → 5.1.1

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 (73) hide show
  1. package/bundles/desy-angular.umd.js +1473 -386
  2. package/bundles/desy-angular.umd.js.map +1 -1
  3. package/bundles/desy-angular.umd.min.js +2 -2
  4. package/bundles/desy-angular.umd.min.js.map +1 -1
  5. package/desy-angular.d.ts +30 -25
  6. package/desy-angular.metadata.json +1 -1
  7. package/esm2015/desy-angular.js +31 -26
  8. package/esm2015/lib/desy-angular.module.js +1 -3
  9. package/esm2015/lib/desy-buttons/components/button/button.component.js +9 -16
  10. package/esm2015/lib/desy-buttons/components/button-loader/button-loader.component.js +8 -3
  11. package/esm2015/lib/desy-buttons/components/dropdown/dropdown.component.js +70 -70
  12. package/esm2015/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.js +6 -15
  13. package/esm2015/lib/desy-buttons/components/listbox/listbox.component.js +67 -55
  14. package/esm2015/lib/desy-buttons/components/pill/pill.component.js +5 -3
  15. package/esm2015/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.js +15 -0
  16. package/esm2015/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.js +15 -0
  17. package/esm2015/lib/desy-buttons/components/toggle/toggle.component.js +41 -0
  18. package/esm2015/lib/desy-buttons/desy-buttons.module.js +12 -3
  19. package/esm2015/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.js +36 -2
  20. package/esm2015/lib/desy-forms/components/checkboxes/checkboxes.component.js +2 -2
  21. package/esm2015/lib/desy-forms/components/tree/interfaces/itree-item.js +3 -0
  22. package/esm2015/lib/desy-forms/components/tree/interfaces/quit-tree-item-focus-options.js +2 -0
  23. package/esm2015/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.js +151 -0
  24. package/esm2015/lib/desy-forms/components/tree/tree-item/tree-item.component.js +365 -0
  25. package/esm2015/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.js +25 -0
  26. package/esm2015/lib/desy-forms/components/tree/tree-sub/tree-sub.component.js +14 -0
  27. package/esm2015/lib/desy-forms/components/tree/tree.component.js +396 -0
  28. package/esm2015/lib/desy-forms/desy-forms.module.js +15 -1
  29. package/esm2015/lib/desy-forms/interfaces/item-checkbox-data.js +1 -1
  30. package/esm2015/lib/desy-modals/components/modal/modal.component.js +2 -2
  31. package/esm2015/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.js +14 -49
  32. package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.js +7 -4
  33. package/esm2015/lib/desy-nav/components/header/header-subnav/header-subnav.component.js +9 -37
  34. package/esm2015/lib/desy-nav/components/header/header.component.js +2 -2
  35. package/esm2015/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.js +2 -2
  36. package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical.component.js +12 -3
  37. package/esm2015/lib/desy-nav/components/menubar/menubar.component.js +3 -3
  38. package/esm2015/lib/desy-nav/components/nav/nav.component.js +33 -2
  39. package/esm2015/lib/desy-nav/desy-nav.module.js +4 -2
  40. package/esm2015/lib/desy-nav/interfaces/header-dropdown-data.js +1 -1
  41. package/esm2015/lib/desy-nav/interfaces/header-subnav-data.js +1 -1
  42. package/esm2015/lib/desy-pagination/components/pagination/pagination.component.js +2 -2
  43. package/esm2015/lib/desy-views/components/alert/alert.component.js +28 -23
  44. package/esm2015/public-api.js +5 -1
  45. package/fesm2015/desy-angular.js +1371 -351
  46. package/fesm2015/desy-angular.js.map +1 -1
  47. package/lib/desy-buttons/components/button/button.component.d.ts +6 -6
  48. package/lib/desy-buttons/components/button-loader/button-loader.component.d.ts +1 -0
  49. package/lib/desy-buttons/components/dropdown/dropdown.component.d.ts +4 -7
  50. package/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.d.ts +2 -6
  51. package/lib/desy-buttons/components/listbox/listbox.component.d.ts +1 -2
  52. package/lib/desy-buttons/components/pill/pill.component.d.ts +1 -0
  53. package/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.d.ts +5 -0
  54. package/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.d.ts +5 -0
  55. package/lib/desy-buttons/components/toggle/toggle.component.d.ts +15 -0
  56. package/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.d.ts +5 -0
  57. package/lib/desy-forms/components/tree/interfaces/itree-item.d.ts +5 -0
  58. package/lib/desy-forms/components/tree/interfaces/quit-tree-item-focus-options.d.ts +5 -0
  59. package/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.d.ts +43 -0
  60. package/lib/desy-forms/components/tree/tree-item/tree-item.component.d.ts +85 -0
  61. package/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.d.ts +10 -0
  62. package/lib/desy-forms/components/tree/tree-sub/tree-sub.component.d.ts +6 -0
  63. package/lib/desy-forms/components/tree/tree.component.d.ts +107 -0
  64. package/lib/desy-forms/interfaces/item-checkbox-data.d.ts +1 -0
  65. package/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.d.ts +7 -10
  66. package/lib/desy-nav/components/header/header-subnav/header-subnav.component.d.ts +5 -5
  67. package/lib/desy-nav/components/menu-vertical/menu-vertical.component.d.ts +1 -0
  68. package/lib/desy-nav/components/nav/nav.component.d.ts +3 -0
  69. package/lib/desy-nav/interfaces/header-dropdown-data.d.ts +5 -1
  70. package/lib/desy-nav/interfaces/header-subnav-data.d.ts +5 -1
  71. package/lib/desy-views/components/alert/alert.component.d.ts +6 -4
  72. package/package.json +2 -2
  73. package/public-api.d.ts +4 -0
@@ -67,7 +67,7 @@ export class MenuHorizontalComponent extends AccessibilityComponent {
67
67
  MenuHorizontalComponent.decorators = [
68
68
  { type: Component, args: [{
69
69
  selector: 'desy-menu-horizontal',
70
- template: "<!-- menu-horizontal -->\r\n<nav [class]=\"['c-menu-horizontal', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ul class=\"c-menu-horizontal__list lg:flex lg:flex-wrap\">\r\n <ng-container *ngFor=\"let item of getItemList(); index as i\">\r\n <li *ngIf=\"item\">\r\n <span *ngIf=\"item.active; else elseBlock\" [attr.id]=\"getItemId(item, i)\"\r\n [class]=\"['c-menu-horizontal__active flex items-center relative py-sm lg:px-lg lg:py-base border border-transparent truncate font-semibold', item.classes] | makeHtmlList\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n aria-current=\"page\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.ariaDisabled ? item.ariaDisabled : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.tabindex]=\"item.tabindex ? item.tabindex : null\">\r\n <strong (desyContentEmpty)=\"handleEmptyItem(i)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </strong>\r\n </span>\r\n <ng-template #elseBlock>\r\n <a *ngIf=\"item.routerLink && !item.href\" (click)=\"onClick($event, item)\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [routerLink]=\"item.routerLink\"\r\n [fragment]=\"item.fragment\"\r\n [class]=\"['c-menu-horizontal__link relative flex items-center py-sm lg:px-lg lg:py-base border border-transparent text-black hover:text-primary-base underline truncate focus:outline-none', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'opacity-50 pointer-events-none': item.disabled}\"\r\n [attr.disabled]=\"item.disabled ? 'disabled' : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\">\r\n <span class=\"flex items-center pointer-events-none\" (desyContentEmpty)=\"handleEmptyItem(i)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </span>\r\n </a>\r\n <a *ngIf=\"!item.routerLink && item.href\" (click)=\"onClick($event, item)\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [href]=\"item.href | externalHref\"\r\n [target]=\"item.target\"\r\n [class]=\"['c-menu-horizontal__link relative flex items-center py-sm lg:px-lg lg:py-base border border-transparent text-black hover:text-primary-base underline truncate focus:outline-none', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'opacity-50 pointer-events-none': item.disabled}\"\r\n [attr.disabled]=\"item.disabled ? 'disabled' : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\">\r\n <span class=\"flex items-center pointer-events-none\" (desyContentEmpty)=\"handleEmptyItem(i)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </span>\r\n </a>\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</nav>\r\n<!-- /menu-horizontal -->\r\n"
70
+ template: "<!-- menu-horizontal -->\r\n<nav [class]=\"['c-menu-horizontal', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ul class=\"c-menu-horizontal__list lg:flex lg:flex-wrap\">\r\n <ng-container *ngFor=\"let item of getItemList(); index as i\">\r\n <li *ngIf=\"item\">\r\n <span *ngIf=\"item.active; else elseBlock\" [attr.id]=\"getItemId(item, i)\"\r\n [class]=\"['c-menu-horizontal__active flex items-center relative py-sm lg:px-lg lg:py-base border border-transparent truncate font-semibold', item.classes] | makeHtmlList\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n aria-current=\"page\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.ariaDisabled ? item.ariaDisabled : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.tabindex]=\"item.tabindex ? item.tabindex : null\">\r\n <strong (desyContentEmpty)=\"handleEmptyItem(i)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </strong>\r\n </span>\r\n <ng-template #elseBlock>\r\n <a *ngIf=\"item.routerLink && !item.href\" (click)=\"onClick($event, item)\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [routerLink]=\"item.routerLink\"\r\n [fragment]=\"item.fragment\"\r\n [class]=\"['c-menu-horizontal__link relative flex items-center py-sm lg:px-lg lg:py-base border border-transparent text-black hover:text-primary-base underline truncate focus:outline-none', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'no-underline pointer-events-none': item.disabled}\"\r\n [attr.disabled]=\"item.disabled ? 'disabled' : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\">\r\n <span class=\"flex items-center pointer-events-none\" (desyContentEmpty)=\"handleEmptyItem(i)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </span>\r\n </a>\r\n <a *ngIf=\"!item.routerLink && item.href\" (click)=\"onClick($event, item)\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [href]=\"item.href | externalHref\"\r\n [target]=\"item.target\"\r\n [class]=\"['c-menu-horizontal__link relative flex items-center py-sm lg:px-lg lg:py-base border border-transparent text-black hover:text-primary-base underline truncate focus:outline-none', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'no-underline pointer-events-none': item.disabled}\"\r\n [attr.disabled]=\"item.disabled ? 'disabled' : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\">\r\n <span class=\"flex items-center pointer-events-none\" (desyContentEmpty)=\"handleEmptyItem(i)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </span>\r\n </a>\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</nav>\r\n<!-- /menu-horizontal -->\r\n"
71
71
  },] }
72
72
  ];
73
73
  MenuHorizontalComponent.propDecorators = {
@@ -78,4 +78,4 @@ MenuHorizontalComponent.propDecorators = {
78
78
  itemComponents: [{ type: ContentChildren, args: [MenuHorizontalItemComponent,] }],
79
79
  clickEvent: [{ type: Output }]
80
80
  };
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1ob3Jpem9udGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktbmF2L2NvbXBvbmVudHMvbWVudS1ob3Jpem9udGFsL21lbnUtaG9yaXpvbnRhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQTJCLE1BQU0sZUFBZSxDQUFDO0FBRTNILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBTWxHLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxzQkFBc0I7SUFKbkU7O1FBYVksZUFBVSxHQUFHLElBQUksWUFBWSxFQUErQixDQUFDO0lBa0V6RSxDQUFDO0lBaEVDLFdBQVcsQ0FBQyxPQUFzQjtJQUNsQyxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVUsRUFBRSxJQUE0QjtRQUM5QyxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDOUI7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDMUIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzNCO1lBQ0QsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUVuQixpRkFBaUY7UUFDakYsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxZQUFhLDJCQUEyQixFQUFFO2dCQUM3QyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDL0I7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdEMsSUFBSSxJQUFJLFlBQVksMkJBQTJCLEVBQUU7WUFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUN2QztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDckQsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLFFBQVEsR0FBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNySCxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUN2QztRQUVELFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNsQyxNQUFNLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO2FBQ3JEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsZUFBZSxDQUFDLFFBQWdCO1FBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUE0QixFQUFFLEtBQWE7UUFDbkQsSUFBSSxFQUFFLENBQUM7UUFDUCxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDWCxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztTQUNkO2FBQU0sSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDekI7YUFBTTtZQUNMLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQztTQUN2QztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs7O1lBOUVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxxMU5BQStDO2FBQ2hEOzs7aUJBR0UsS0FBSzt1QkFDTCxLQUFLO3NCQUNMLEtBQUs7b0JBQ0wsS0FBSzs2QkFFTCxlQUFlLFNBQUMsMkJBQTJCO3lCQUUzQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1lbnVIb3Jpem9udGFsSXRlbURhdGEsIE1lbnVIb3Jpem9udGFsSXRlbUV2ZW50RGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQge01lbnVIb3Jpem9udGFsSXRlbUNvbXBvbmVudH0gZnJvbSAnLi9tZW51LWhvcml6b250YWwtaXRlbS9tZW51LWhvcml6b250YWwtaXRlbS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZXN5LW1lbnUtaG9yaXpvbnRhbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUtaG9yaXpvbnRhbC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE1lbnVIb3Jpem9udGFsQ29tcG9uZW50IGV4dGVuZHMgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaWRQcmVmaXg6IHN0cmluZztcclxuICBASW5wdXQoKSBjbGFzc2VzOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXRlbXM6IE1lbnVIb3Jpem9udGFsSXRlbURhdGFbXTtcclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbihNZW51SG9yaXpvbnRhbEl0ZW1Db21wb25lbnQpIGl0ZW1Db21wb25lbnRzOiBRdWVyeUxpc3Q8TWVudUhvcml6b250YWxJdGVtQ29tcG9uZW50PjtcclxuXHJcbiAgQE91dHB1dCgpIGNsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPE1lbnVIb3Jpem9udGFsSXRlbUV2ZW50RGF0YT4oKTtcclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgb25DbGljayhldmVudDogYW55LCBpdGVtOiBNZW51SG9yaXpvbnRhbEl0ZW1EYXRhKTogdm9pZCB7XHJcbiAgICBjb25zdCBpdGVtc0FjdGl2ZUNoYW5nZSA9IFtdO1xyXG4gICAgaWYgKCFpdGVtLmFjdGl2ZSkge1xyXG4gICAgICBpdGVtc0FjdGl2ZUNoYW5nZS5wdXNoKGl0ZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGl0ZW1MaXN0ID0gdGhpcy5nZXRJdGVtTGlzdCgpO1xyXG4gICAgaXRlbUxpc3QuZm9yRWFjaChpID0+IHtcclxuICAgICAgaWYgKGkuYWN0aXZlICYmIGkgIT09IGl0ZW0pIHtcclxuICAgICAgICBpdGVtc0FjdGl2ZUNoYW5nZS5wdXNoKGkpO1xyXG4gICAgICB9XHJcbiAgICAgIGkuYWN0aXZlID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICAgIGl0ZW0uYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAvLyBTZSBlbWl0ZSBlbCBldmVudG8gc8OzbG8gcGFyYSBsb3MgaXRlbXMgY3V5byB2YWxvciBkZSBhY3RpdmUgaGEgc2lkbyBtb2RpZmljYWRvXHJcbiAgICBpdGVtc0FjdGl2ZUNoYW5nZS5mb3JFYWNoKGkgPT4ge1xyXG4gICAgICBpZiAoaSBpbnN0YW5jZW9mICBNZW51SG9yaXpvbnRhbEl0ZW1Db21wb25lbnQpIHtcclxuICAgICAgICBpLmFjdGl2ZUNoYW5nZS5lbWl0KGkuYWN0aXZlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5jbGlja0V2ZW50LmVtaXQoeyBpdGVtLCBldmVudCB9KTtcclxuICAgIGlmIChpdGVtIGluc3RhbmNlb2YgTWVudUhvcml6b250YWxJdGVtQ29tcG9uZW50KSB7XHJcbiAgICAgIGl0ZW0uY2xpY2tFdmVudC5lbWl0KHsgaXRlbSwgZXZlbnQgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRJZFByZWZpeCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaWRQcmVmaXggPyB0aGlzLmlkUHJlZml4IDogJ21lbnUtaXRlbSc7XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtTGlzdCgpOiBNZW51SG9yaXpvbnRhbEl0ZW1EYXRhW10ge1xyXG4gICAgY29uc3QgaXRlbUxpc3QgPSAgdGhpcy5pdGVtQ29tcG9uZW50cyAmJiB0aGlzLml0ZW1Db21wb25lbnRzLmxlbmd0aCA+IDAgPyB0aGlzLml0ZW1Db21wb25lbnRzLnRvQXJyYXkoKSA6IHRoaXMuaXRlbXM7XHJcbiAgICBpZiAoIWl0ZW1MaXN0IHx8IGl0ZW1MaXN0Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGl0ZW1zIGFyZSByZXF1aXJlZGApO1xyXG4gICAgfVxyXG5cclxuICAgIGl0ZW1MaXN0LmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGlmICghaXRlbS5yb3V0ZXJMaW5rICYmICFpdGVtLmhyZWYpIHtcclxuICAgICAgICB0aHJvdyBFcnJvcignaXRlbSByb3V0ZXJMaW5rIG9yIGhyZWYgYXJlIHJlcXVpcmVkJyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGl0ZW1MaXN0O1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRW1wdHlJdGVtKHBvc2l0aW9uOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihgaXRlbSBjb250ZW50LCBodG1sIG9yIHRleHQgYXJlIHJlcXVpcmVkIGF0IHBvc2l0aW9uICR7cG9zaXRpb259YCk7XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtSWQoaXRlbTogTWVudUhvcml6b250YWxJdGVtRGF0YSwgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBsZXQgaWQ7XHJcbiAgICBpZiAoaXRlbS5pZCkge1xyXG4gICAgICBpZCA9IGl0ZW0uaWQ7XHJcbiAgICB9IGVsc2UgaWYgKGluZGV4ID09PSAwKSB7XHJcbiAgICAgIGlkID0gdGhpcy5nZXRJZFByZWZpeCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWQgPSB0aGlzLmdldElkUHJlZml4KCkgKyAnLScgKyBpbmRleDtcclxuICAgIH1cclxuICAgIHJldHVybiBpZDtcclxuICB9XHJcbn1cclxuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1ob3Jpem9udGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktbmF2L2NvbXBvbmVudHMvbWVudS1ob3Jpem9udGFsL21lbnUtaG9yaXpvbnRhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQTJCLE1BQU0sZUFBZSxDQUFDO0FBRTNILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBTWxHLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxzQkFBc0I7SUFKbkU7O1FBYVksZUFBVSxHQUFHLElBQUksWUFBWSxFQUErQixDQUFDO0lBa0V6RSxDQUFDO0lBaEVDLFdBQVcsQ0FBQyxPQUFzQjtJQUNsQyxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVUsRUFBRSxJQUE0QjtRQUM5QyxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDOUI7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDMUIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzNCO1lBQ0QsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUVuQixpRkFBaUY7UUFDakYsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxZQUFhLDJCQUEyQixFQUFFO2dCQUM3QyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDL0I7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdEMsSUFBSSxJQUFJLFlBQVksMkJBQTJCLEVBQUU7WUFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUN2QztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDckQsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLFFBQVEsR0FBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNySCxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUN2QztRQUVELFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNsQyxNQUFNLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO2FBQ3JEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsZUFBZSxDQUFDLFFBQWdCO1FBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUE0QixFQUFFLEtBQWE7UUFDbkQsSUFBSSxFQUFFLENBQUM7UUFDUCxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDWCxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztTQUNkO2FBQU0sSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDekI7YUFBTTtZQUNMLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQztTQUN2QztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs7O1lBOUVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyx5MU5BQStDO2FBQ2hEOzs7aUJBR0UsS0FBSzt1QkFDTCxLQUFLO3NCQUNMLEtBQUs7b0JBQ0wsS0FBSzs2QkFFTCxlQUFlLFNBQUMsMkJBQTJCO3lCQUUzQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1lbnVIb3Jpem9udGFsSXRlbURhdGEsIE1lbnVIb3Jpem9udGFsSXRlbUV2ZW50RGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQge01lbnVIb3Jpem9udGFsSXRlbUNvbXBvbmVudH0gZnJvbSAnLi9tZW51LWhvcml6b250YWwtaXRlbS9tZW51LWhvcml6b250YWwtaXRlbS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZXN5LW1lbnUtaG9yaXpvbnRhbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUtaG9yaXpvbnRhbC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE1lbnVIb3Jpem9udGFsQ29tcG9uZW50IGV4dGVuZHMgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaWRQcmVmaXg6IHN0cmluZztcclxuICBASW5wdXQoKSBjbGFzc2VzOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXRlbXM6IE1lbnVIb3Jpem9udGFsSXRlbURhdGFbXTtcclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbihNZW51SG9yaXpvbnRhbEl0ZW1Db21wb25lbnQpIGl0ZW1Db21wb25lbnRzOiBRdWVyeUxpc3Q8TWVudUhvcml6b250YWxJdGVtQ29tcG9uZW50PjtcclxuXHJcbiAgQE91dHB1dCgpIGNsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPE1lbnVIb3Jpem9udGFsSXRlbUV2ZW50RGF0YT4oKTtcclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgb25DbGljayhldmVudDogYW55LCBpdGVtOiBNZW51SG9yaXpvbnRhbEl0ZW1EYXRhKTogdm9pZCB7XHJcbiAgICBjb25zdCBpdGVtc0FjdGl2ZUNoYW5nZSA9IFtdO1xyXG4gICAgaWYgKCFpdGVtLmFjdGl2ZSkge1xyXG4gICAgICBpdGVtc0FjdGl2ZUNoYW5nZS5wdXNoKGl0ZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGl0ZW1MaXN0ID0gdGhpcy5nZXRJdGVtTGlzdCgpO1xyXG4gICAgaXRlbUxpc3QuZm9yRWFjaChpID0+IHtcclxuICAgICAgaWYgKGkuYWN0aXZlICYmIGkgIT09IGl0ZW0pIHtcclxuICAgICAgICBpdGVtc0FjdGl2ZUNoYW5nZS5wdXNoKGkpO1xyXG4gICAgICB9XHJcbiAgICAgIGkuYWN0aXZlID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICAgIGl0ZW0uYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAvLyBTZSBlbWl0ZSBlbCBldmVudG8gc8OzbG8gcGFyYSBsb3MgaXRlbXMgY3V5byB2YWxvciBkZSBhY3RpdmUgaGEgc2lkbyBtb2RpZmljYWRvXHJcbiAgICBpdGVtc0FjdGl2ZUNoYW5nZS5mb3JFYWNoKGkgPT4ge1xyXG4gICAgICBpZiAoaSBpbnN0YW5jZW9mICBNZW51SG9yaXpvbnRhbEl0ZW1Db21wb25lbnQpIHtcclxuICAgICAgICBpLmFjdGl2ZUNoYW5nZS5lbWl0KGkuYWN0aXZlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5jbGlja0V2ZW50LmVtaXQoeyBpdGVtLCBldmVudCB9KTtcclxuICAgIGlmIChpdGVtIGluc3RhbmNlb2YgTWVudUhvcml6b250YWxJdGVtQ29tcG9uZW50KSB7XHJcbiAgICAgIGl0ZW0uY2xpY2tFdmVudC5lbWl0KHsgaXRlbSwgZXZlbnQgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRJZFByZWZpeCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaWRQcmVmaXggPyB0aGlzLmlkUHJlZml4IDogJ21lbnUtaXRlbSc7XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtTGlzdCgpOiBNZW51SG9yaXpvbnRhbEl0ZW1EYXRhW10ge1xyXG4gICAgY29uc3QgaXRlbUxpc3QgPSAgdGhpcy5pdGVtQ29tcG9uZW50cyAmJiB0aGlzLml0ZW1Db21wb25lbnRzLmxlbmd0aCA+IDAgPyB0aGlzLml0ZW1Db21wb25lbnRzLnRvQXJyYXkoKSA6IHRoaXMuaXRlbXM7XHJcbiAgICBpZiAoIWl0ZW1MaXN0IHx8IGl0ZW1MaXN0Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGl0ZW1zIGFyZSByZXF1aXJlZGApO1xyXG4gICAgfVxyXG5cclxuICAgIGl0ZW1MaXN0LmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGlmICghaXRlbS5yb3V0ZXJMaW5rICYmICFpdGVtLmhyZWYpIHtcclxuICAgICAgICB0aHJvdyBFcnJvcignaXRlbSByb3V0ZXJMaW5rIG9yIGhyZWYgYXJlIHJlcXVpcmVkJyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGl0ZW1MaXN0O1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRW1wdHlJdGVtKHBvc2l0aW9uOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihgaXRlbSBjb250ZW50LCBodG1sIG9yIHRleHQgYXJlIHJlcXVpcmVkIGF0IHBvc2l0aW9uICR7cG9zaXRpb259YCk7XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtSWQoaXRlbTogTWVudUhvcml6b250YWxJdGVtRGF0YSwgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBsZXQgaWQ7XHJcbiAgICBpZiAoaXRlbS5pZCkge1xyXG4gICAgICBpZCA9IGl0ZW0uaWQ7XHJcbiAgICB9IGVsc2UgaWYgKGluZGV4ID09PSAwKSB7XHJcbiAgICAgIGlkID0gdGhpcy5nZXRJZFByZWZpeCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWQgPSB0aGlzLmdldElkUHJlZml4KCkgKyAnLScgKyBpbmRleDtcclxuICAgIH1cclxuICAgIHJldHVybiBpZDtcclxuICB9XHJcbn1cclxuIl19
@@ -25,7 +25,7 @@ export class MenuVerticalComponent extends AccessibilityComponent {
25
25
  else {
26
26
  const idPrefix = this.idPrefix ? this.idPrefix : 'nav-item';
27
27
  if (i === 0) {
28
- return idPrefix;
28
+ return idPrefix + '-0';
29
29
  }
30
30
  else {
31
31
  return idPrefix + '-' + i;
@@ -62,11 +62,20 @@ export class MenuVerticalComponent extends AccessibilityComponent {
62
62
  const subItems = sub instanceof MenuVerticalItemSubComponent ? sub.itemComponents.toArray() : sub.items;
63
63
  return subItems && subItems.length > 0 ? subItems : null;
64
64
  }
65
+ focus(id, idFocus) {
66
+ const elementToQuitFocus = document.getElementById(id);
67
+ elementToQuitFocus.blur();
68
+ if (idFocus) {
69
+ const elementToFocus = document.getElementById(idFocus);
70
+ elementToFocus.tabIndex = 0;
71
+ elementToFocus === null || elementToFocus === void 0 ? void 0 : elementToFocus.focus();
72
+ }
73
+ }
65
74
  }
66
75
  MenuVerticalComponent.decorators = [
67
76
  { type: Component, args: [{
68
77
  selector: 'desy-menu-vertical',
69
- template: "<!--\r\n Template para ser utilizado tanto por los items como por los subitems:\r\n - item: Item que representa\r\n - index: indice del item en la lista\r\n - id: identificador del item\r\n - isRoot: si pertenece al nivel raiz\r\n-->\r\n<ng-template #itemTemplate let-item=\"item\" let-index=\"index\" let-id=\"id\" let-sub=\"sub\" let-isRoot=\"isRoot\">\r\n <ng-container *ngIf=\"item\">\r\n <li class=\"m-base\" [ngClass]=\"{'origin-top-left text-sm': !isRoot}\">\r\n <ng-container *ngIf=\"item.href || item.routerLink; else notHref\">\r\n <a *ngIf=\"item.href; else hasRouterLink\" [attr.id]=\"id\"\r\n (desyContentEmpty)=\"handleItemContentEmpty(index, isRoot)\"\r\n [href]=\"item.href | externalHref\"\r\n [class]=\"['block px-xs focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{\r\n 'underline': hasUnderline,\r\n 'hover:text-primary-base hover:underline': !item.disabled,\r\n 'no-underline pointer-events-none': item.disabled,\r\n 'font-bold': item.active\r\n }\"\r\n [attr.title]=\"item.title\"\r\n [attr.tabindex]=\"item.disabled ? -1 : null\"\r\n [attr.target]=\"item.target ? item.target : null\"\r\n [attr.aria-current]=\"item.active ? 'page' : null\"\r\n [attr.aria-disabled]=\"item.disabled\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"item.ariaControls\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\r\n [attr.disabled]=\"item.disabled\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: getItemHtml(item), text: item.text }\"></ng-container>\r\n </a>\r\n <ng-template #hasRouterLink>\r\n <!-- Todos los enlaces que admiten o href o routerLink estar\u00EDa bien unificarlos (en todos los componentes).\r\n Para ello, ser\u00EDa necesario crear una directiva para a\u00F1adir o quitar la directiva routerLink si no tiene href.\r\n Sin embargo, esto no es posible actualmente, ya que Angular todav\u00EDa no permite a\u00F1adir directivas din\u00E1micamente:\r\n https://angular.io/guide/roadmap#support-adding-directives-to-host-elements -->\r\n <a [attr.id]=\"id\"\r\n (desyContentEmpty)=\"handleItemContentEmpty(index, isRoot)\"\r\n [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment ? item.fragment : null\" [routerLinkActive]=\"item.routerLinkActiveClasses\"\r\n [class]=\"['block px-xs focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{\r\n 'underline': hasUnderline,\r\n 'hover:text-primary-base hover:underline': !item.disabled,\r\n 'no-underline pointer-events-none': item.disabled,\r\n 'font-bold': item.active\r\n }\"\r\n [attr.title]=\"item.title\"\r\n [attr.tabindex]=\"item.disabled ? -1 : null\"\r\n [attr.target]=\"item.target ? item.target : null\"\r\n [attr.aria-current]=\"item.active ? 'page' : null\"\r\n [attr.aria-disabled]=\"item.disabled\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"item.ariaControls\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\r\n [attr.disabled]=\"item.disabled\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: getItemHtml(item), text: item.text }\"></ng-container>\r\n </a>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #notHref>\r\n <span [attr.id]=\"id\"\r\n (desyContentEmpty)=\"handleItemContentEmpty(index, isRoot)\"\r\n [class]=\"['block px-xs', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'font-bold': item.active}\"\r\n\r\n [attr.title]=\"item.title\"\r\n [attr.tabindex]=\"item.disabled ? -1 : null\"\r\n [attr.aria-current]=\"item.active ? 'page' : null\"\r\n [attr.aria-disabled]=\"item.disabled\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"item.ariaControls\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\r\n [attr.disabled]=\"item.disabled\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: getItemHtml(item), text: item.text }\"></ng-container>\r\n </span>\r\n </ng-template>\r\n <ng-container *ngIf=\"isRoot && sub\">\r\n <ul *ngIf=\"getSubItems(sub)\" [ngClass]=\"sub.classes\"\r\n [attr.aria-describedby]=\"sub.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"sub.ariaErrorMessage\"\r\n [attr.aria-label]=\"sub.ariaLabel\"\r\n [attr.aria-labelledby]=\"sub.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"sub.ariaHidden\"\r\n [attr.aria-disabled]=\"sub.ariaDisabled\"\r\n [attr.aria-controls]=\"sub.ariaControls\"\r\n [attr.aria-current]=\"sub.ariaCurrent\"\r\n [attr.aria-live]=\"sub.ariaLive\"\r\n [attr.aria-expanded]=\"sub.ariaExpanded\"\r\n [attr.aria-haspopup]=\"sub.ariaHasPopup\"\r\n [attr.tabindex]=\"sub.tabindex\">\r\n <ng-container *ngFor=\"let subItem of getSubItems(sub); index as subIndex\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n item: subItem,\r\n id: getSubItemId(item, index, subIndex),\r\n index: subIndex,\r\n isRoot: false\r\n }\">\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n <div *ngIf=\"!getSubItems(sub)\"\r\n [class]=\"['mb-base px-xs origin-top-left text-sm text-neutral-dark', sub.classes] | makeHtmlList\"\r\n [id]=\"'sub-' + id\">\r\n <ng-container *desyCustomInnerContent=\"{ component: sub, html: sub.html }\"></ng-container>\r\n </div>\r\n </ng-container>\r\n </li>\r\n <li *ngIf=\"item.divider\" class=\"my-sm border-b border-neutral-base\" aria-hidden=\"true\">\r\n <div class=\"sr-only\">Separador</div>\r\n </li>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<nav [ngClass]=\"classes\"\r\n [attr.role]=\"(role ? role : null)\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\"\r\n [attr.tabindex]=\"tabindex\">\r\n <ul class=\"text-base\">\r\n <ng-container *ngFor=\"let item of getItems(); index as index\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: item, id: getId(item, index), index: index, sub: getItemSub(item), isRoot: true }\">\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n</nav>\r\n",
78
+ template: "<!--\r\n Template para ser utilizado tanto por los items como por los subitems:\r\n - item: Item que representa\r\n - index: indice del item en la lista\r\n - id: identificador del item\r\n - isRoot: si pertenece al nivel raiz\r\n-->\r\n<ng-template #itemTemplate let-item=\"item\" let-index=\"index\" let-id=\"id\" let-sub=\"sub\" let-isRoot=\"isRoot\">\r\n <ng-container *ngIf=\"item\">\r\n <li class=\"m-base\" [ngClass]=\"{'origin-top-left text-sm': !isRoot}\">\r\n <ng-container *ngIf=\"item.href || item.routerLink; else notHref\">\r\n <a *ngIf=\"item.href; else hasRouterLink\" [attr.id]=\"id\"\r\n (desyContentEmpty)=\"handleItemContentEmpty(index, isRoot)\"\r\n [href]=\"item.href | externalHref\"\r\n [class]=\"['block px-xs focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{\r\n 'underline': hasUnderline,\r\n 'hover:text-primary-base hover:underline': !item.disabled,\r\n 'no-underline pointer-events-none': item.disabled,\r\n 'font-bold': item.active\r\n }\"\r\n [attr.title]=\"item.title\"\r\n [attr.tabindex]=\"item.disabled ? -1 : null\"\r\n [attr.target]=\"item.target ? item.target : null\"\r\n [attr.aria-current]=\"item.active ? 'page' : null\"\r\n [attr.aria-disabled]=\"item.disabled\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"item.ariaControls\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\r\n [attr.disabled]=\"item.disabled\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: getItemHtml(item), text: item.text }\"></ng-container>\r\n </a>\r\n <ng-template #hasRouterLink>\r\n <!-- Todos los enlaces que admiten o href o routerLink estar\u00EDa bien unificarlos (en todos los componentes).\r\n Para ello, ser\u00EDa necesario crear una directiva para a\u00F1adir o quitar la directiva routerLink si no tiene href.\r\n Sin embargo, esto no es posible actualmente, ya que Angular todav\u00EDa no permite a\u00F1adir directivas din\u00E1micamente:\r\n https://angular.io/guide/roadmap#support-adding-directives-to-host-elements -->\r\n <a [attr.id]=\"id\"\r\n (desyContentEmpty)=\"handleItemContentEmpty(index, isRoot)\"\r\n [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment ? item.fragment : null\"\r\n [routerLinkActive]=\"item.routerLinkActiveClasses ? item.routerLinkActiveClasses : []\"\r\n [class]=\"['block px-xs focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{\r\n 'underline': hasUnderline,\r\n 'hover:text-primary-base hover:underline': !item.disabled,\r\n 'no-underline pointer-events-none': item.disabled,\r\n 'font-bold': item.active\r\n }\"\r\n [attr.title]=\"item.title\"\r\n [attr.tabindex]=\"item.disabled ? -1 : null\"\r\n [attr.target]=\"item.target ? item.target : null\"\r\n [attr.aria-current]=\"item.active ? 'page' : null\"\r\n [attr.aria-disabled]=\"item.disabled\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"item.ariaControls\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\r\n [attr.disabled]=\"item.disabled\"\r\n \r\n (click)=\"focus(id, item.fragment ? item.fragment : null)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: getItemHtml(item), text: item.text }\"></ng-container>\r\n </a>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #notHref>\r\n <span [attr.id]=\"id\"\r\n (desyContentEmpty)=\"handleItemContentEmpty(index, isRoot)\"\r\n [class]=\"['block px-xs', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'font-bold': item.active}\"\r\n\r\n [attr.title]=\"item.title\"\r\n [attr.tabindex]=\"item.disabled ? -1 : null\"\r\n [attr.aria-current]=\"item.active ? 'page' : null\"\r\n [attr.aria-disabled]=\"item.disabled\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"item.ariaControls\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\r\n [attr.disabled]=\"item.disabled\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: getItemHtml(item), text: item.text }\"></ng-container>\r\n </span>\r\n </ng-template>\r\n <ng-container *ngIf=\"isRoot && sub\">\r\n <ul *ngIf=\"getSubItems(sub)\" [ngClass]=\"sub.classes\"\r\n [attr.aria-describedby]=\"sub.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"sub.ariaErrorMessage\"\r\n [attr.aria-label]=\"sub.ariaLabel\"\r\n [attr.aria-labelledby]=\"sub.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"sub.ariaHidden\"\r\n [attr.aria-disabled]=\"sub.ariaDisabled\"\r\n [attr.aria-controls]=\"sub.ariaControls\"\r\n [attr.aria-current]=\"sub.ariaCurrent\"\r\n [attr.aria-live]=\"sub.ariaLive\"\r\n [attr.aria-expanded]=\"sub.ariaExpanded\"\r\n [attr.aria-haspopup]=\"sub.ariaHasPopup\"\r\n [attr.tabindex]=\"sub.tabindex\">\r\n <ng-container *ngFor=\"let subItem of getSubItems(sub); index as subIndex\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n item: subItem,\r\n id: getSubItemId(item, index, subIndex),\r\n index: subIndex,\r\n isRoot: false\r\n }\">\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n <div *ngIf=\"!getSubItems(sub)\"\r\n [class]=\"['mb-base px-xs origin-top-left text-sm text-neutral-dark', sub.classes] | makeHtmlList\"\r\n [id]=\"'sub-' + id\">\r\n <ng-container *desyCustomInnerContent=\"{ component: sub, html: sub.html }\"></ng-container>\r\n </div>\r\n </ng-container>\r\n </li>\r\n <li *ngIf=\"item.divider\" class=\"my-sm border-b border-neutral-base\" aria-hidden=\"true\">\r\n <div class=\"sr-only\">Separador</div>\r\n </li>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<nav [ngClass]=\"classes\"\r\n [attr.role]=\"(role ? role : null)\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\"\r\n [attr.tabindex]=\"tabindex\">\r\n <ul class=\"text-base\">\r\n <ng-container *ngFor=\"let item of getItems(); index as index\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: item, id: getId(item, index), index: index, sub: getItemSub(item), isRoot: true }\">\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n</nav>\r\n",
70
79
  animations: [
71
80
  trigger('displayMenuVertical', [
72
81
  state('void', style({
@@ -92,4 +101,4 @@ MenuVerticalComponent.propDecorators = {
92
101
  classes: [{ type: Input }],
93
102
  itemComponents: [{ type: ContentChildren, args: [MenuVerticalItemComponent,] }]
94
103
  };
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS12ZXJ0aWNhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LW5hdi9jb21wb25lbnRzL21lbnUtdmVydGljYWwvbWVudS12ZXJ0aWNhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXBFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzVGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBcUJ2RyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsc0JBQXNCO0lBVS9ELHNCQUFzQixDQUFDLEtBQWEsRUFBRSxNQUFlO1FBQ25ELE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxrREFBa0QsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQTJCO1FBQ3JDLElBQUksUUFBZ0IsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBWSxJQUFJLENBQUMsSUFBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVksV0FBVyxDQUFDLFVBQVUsQ0FB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QUNkLFNBQVMsRUFBRSxhQUFhO3lCQUN6QixDQUFDLENBQUM7d0JBQ0gsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUM7NEJBQ2YsT0FBTyxFQUFFLEtBQUs7NEJBQ2QsU0FBUyxFQUFFLFlBQVk7eUJBQ3hCLENBQUMsQ0FBQzt3QkFDSCxVQUFVLENBQUMsUUFBUSxFQUFFOzRCQUNuQixPQUFPLENBQUMsZ0JBQWdCLENBQUM7eUJBQzFCLENBQUM7cUJBQ0gsQ0FBQztpQkFDSDthQUNGOzs7aUJBR0UsS0FBSzt1QkFDTCxLQUFLO29CQUNMLEtBQUs7MkJBQ0wsS0FBSztzQkFDTCxLQUFLOzZCQUVMLGVBQWUsU0FBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIENvbnRlbnRDaGlsZHJlbiwgUXVlcnlMaXN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuaW1wb3J0IHtNZW51VmVydGljYWxJdGVtc0RhdGEsIE1lbnVWZXJ0aWNhbFN1YkRhdGEsIE1lbnVWZXJ0aWNhbFN1Ykl0ZW1zRGF0YX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBTdHJpbmdVdGlscyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC91dGlscy9zdHJpbmctdXRpbHMnO1xyXG5pbXBvcnQge01lbnVWZXJ0aWNhbEl0ZW1Db21wb25lbnR9IGZyb20gJy4vbWVudS12ZXJ0aWNhbC1pdGVtL21lbnUtdmVydGljYWwtaXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQge01lbnVWZXJ0aWNhbEl0ZW1TdWJDb21wb25lbnR9IGZyb20gJy4vbWVudS12ZXJ0aWNhbC1pdGVtLXN1Yi9tZW51LXZlcnRpY2FsLWl0ZW0tc3ViLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Rlc3ktbWVudS12ZXJ0aWNhbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUtdmVydGljYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ2Rpc3BsYXlNZW51VmVydGljYWwnLCBbXHJcbiAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoe1xyXG4gICAgICAgIG9wYWNpdHk6ICcwLjAnLFxyXG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKDAuOTUpJ1xyXG4gICAgICB9KSksXHJcbiAgICAgIHN0YXRlKCcqJywgc3R5bGUoe1xyXG4gICAgICAgIG9wYWNpdHk6ICcxLjAnLFxyXG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKDEuMCknXHJcbiAgICAgIH0pKSxcclxuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xyXG4gICAgICAgIGFuaW1hdGUoJzEwMG1zIGVhc2Utb3V0JylcclxuICAgICAgXSlcclxuICAgIF0pXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVudVZlcnRpY2FsQ29tcG9uZW50IGV4dGVuZHMgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaWRQcmVmaXg6IHN0cmluZztcclxuICBASW5wdXQoKSBpdGVtczogTWVudVZlcnRpY2FsSXRlbXNEYXRhW107XHJcbiAgQElucHV0KCkgaGFzVW5kZXJsaW5lOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGNsYXNzZXM6IHN0cmluZztcclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbihNZW51VmVydGljYWxJdGVtQ29tcG9uZW50KSBpdGVtQ29tcG9uZW50czogUXVlcnlMaXN0PE1lbnVWZXJ0aWNhbEl0ZW1Db21wb25lbnQ+O1xyXG5cclxuICBoYW5kbGVJdGVtQ29udGVudEVtcHR5KGluZGV4OiBudW1iZXIsIGlzUm9vdDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKGAke2lzUm9vdCA/ICdJdGVtJyA6ICdTdWJpdGVtJ30gY29udGVudCwgaHRtbCBvciB0ZXh0IGFyIHJlcXVpcmVkIGF0IHBvc2l0aW9uICR7aW5kZXh9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtSHRtbChpdGVtOiBNZW51VmVydGljYWxJdGVtc0RhdGEpOiBzdHJpbmcge1xyXG4gICAgbGV0IGl0ZW1IdG1sOiBzdHJpbmc7XHJcbiAgICBpZiAoaXRlbS5hY3RpdmUpIHtcclxuICAgICAgaXRlbUh0bWwgPSBpdGVtLmh0bWwgPyBgPHN0cm9uZz4keyBpdGVtLmh0bWwgfTwvc3Ryb25nPmAgOiBgPHN0cm9uZz4keyBTdHJpbmdVdGlscy5lc2NhcGVIdG1sKGl0ZW0udGV4dCkgfTwvc3Ryb25nPmA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpdGVtSHRtbCA9IGl0ZW0uaHRtbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaXRlbUh0bWw7XHJcbiAgfVxyXG5cclxuICBnZXRJZChpdGVtOiBNZW51VmVydGljYWxJdGVtc0RhdGEsIGk6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAoaXRlbS5pZCkge1xyXG4gICAgICByZXR1cm4gaXRlbS5pZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGlkUHJlZml4ID0gdGhpcy5pZFByZWZpeCA/IHRoaXMuaWRQcmVmaXggOiAnbmF2LWl0ZW0nO1xyXG4gICAgICBpZiAoaSA9PT0gMCkge1xyXG4gICAgICAgIHJldHVybiBpZFByZWZpeDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gaWRQcmVmaXggKyAnLScgKyBpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRTdWJJdGVtSWQoaXRlbTogTWVudVZlcnRpY2FsSXRlbXNEYXRhLCBpdGVtSW5kZXg6IG51bWJlciwgc3ViSXRlbUluZGV4OiBudW1iZXIpOiBzdHJpbmd7XHJcbiAgICBsZXQgc3ViSXRlbUlkOiBzdHJpbmc7XHJcbiAgICBjb25zdCBzdWIgPSB0aGlzLmdldEl0ZW1TdWIoaXRlbSk7XHJcbiAgICBjb25zdCBzdWJJdGVtcyA9IHRoaXMuZ2V0U3ViSXRlbXMoc3ViKTtcclxuICAgIGNvbnN0IHN1Ykl0ZW0gPSBzdWJJdGVtc1tzdWJJdGVtSW5kZXhdO1xyXG4gICAgaWYgKHN1Ykl0ZW0pIHtcclxuICAgICAgaWYgKHN1Ykl0ZW0uaWQpIHtcclxuICAgICAgICBzdWJJdGVtSWQgPSBzdWJJdGVtLmlkO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1JZCA9IHRoaXMuZ2V0SWQoaXRlbSwgaXRlbUluZGV4KTtcclxuICAgICAgICBzdWJJdGVtSWQgPSBzdWJJdGVtSW5kZXggPT09IDAgPyBgc3ViLSR7aXRlbUlkfWAgOiBgc3ViLSR7aXRlbUlkfS0ke3N1Ykl0ZW1JbmRleH1gO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHN1Ykl0ZW1JZDtcclxuICB9XHJcblxyXG4gIGdldEl0ZW1zKCk6IE1lbnVWZXJ0aWNhbEl0ZW1zRGF0YVtdIHtcclxuICAgIGNvbnN0IGl0ZW1MaXN0ID0gdGhpcy5pdGVtQ29tcG9uZW50cyAmJiB0aGlzLml0ZW1Db21wb25lbnRzLmxlbmd0aCA+IDAgPyB0aGlzLml0ZW1Db21wb25lbnRzLnRvQXJyYXkoKSA6IHRoaXMuaXRlbXM7XHJcbiAgICBpZiAoIWl0ZW1MaXN0IHx8IGl0ZW1MaXN0Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgaXRlbXMgYXJlIHJlcXVpcmVkYCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXRlbUxpc3Q7XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtU3ViKGl0ZW06IE1lbnVWZXJ0aWNhbEl0ZW1zRGF0YSk6IE1lbnVWZXJ0aWNhbFN1YkRhdGEge1xyXG4gICAgcmV0dXJuIGl0ZW0gaW5zdGFuY2VvZiBNZW51VmVydGljYWxJdGVtQ29tcG9uZW50ID8gaXRlbS5zdWJDb21wb25lbnQgOiBpdGVtLnN1YjtcclxuICB9XHJcblxyXG4gIGdldFN1Ykl0ZW1zKHN1YjogTWVudVZlcnRpY2FsU3ViRGF0YSk6IE1lbnVWZXJ0aWNhbFN1Ykl0ZW1zRGF0YVtdIHtcclxuICAgIGNvbnN0IHN1Ykl0ZW1zID0gc3ViIGluc3RhbmNlb2YgTWVudVZlcnRpY2FsSXRlbVN1YkNvbXBvbmVudCA/IHN1Yi5pdGVtQ29tcG9uZW50cy50b0FycmF5KCkgOiBzdWIuaXRlbXM7XHJcbiAgICByZXR1cm4gc3ViSXRlbXMgJiYgc3ViSXRlbXMubGVuZ3RoID4gMCA/IHN1Ykl0ZW1zIDogbnVsbDtcclxuICB9XHJcbn1cclxuIl19
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS12ZXJ0aWNhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LW5hdi9jb21wb25lbnRzL21lbnUtdmVydGljYWwvbWVudS12ZXJ0aWNhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXBFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzVGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBcUJ2RyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsc0JBQXNCO0lBVS9ELHNCQUFzQixDQUFDLEtBQWEsRUFBRSxNQUFlO1FBQ25ELE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxrREFBa0QsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQTJCO1FBQ3JDLElBQUksUUFBZ0IsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBWSxJQUFJLENBQUMsSUFBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVksV0FBVyxDQUFDLFVBQVUsQ0FB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LGNBQWMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hELGNBQWMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxLQUFLLEdBQUc7U0FDekI7SUFDSCxDQUFDOzs7WUFwR0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLHNzUkFBNkM7Z0JBQzdDLFVBQVUsRUFBRTtvQkFDVixPQUFPLENBQUMscUJBQXFCLEVBQUU7d0JBQzdCLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDOzRCQUNsQixPQUFPLEVBQUUsS0FBSzs0QkFDZCxTQUFTLEVBQUUsYUFBYTt5QkFDekIsQ0FBQyxDQUFDO3dCQUNILEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDOzRCQUNmLE9BQU8sRUFBRSxLQUFLOzRCQUNkLFNBQVMsRUFBRSxZQUFZO3lCQUN4QixDQUFDLENBQUM7d0JBQ0gsVUFBVSxDQUFDLFFBQVEsRUFBRTs0QkFDbkIsT0FBTyxDQUFDLGdCQUFnQixDQUFDO3lCQUMxQixDQUFDO3FCQUNILENBQUM7aUJBQ0g7YUFDRjs7O2lCQUdFLEtBQUs7dUJBQ0wsS0FBSztvQkFDTCxLQUFLOzJCQUNMLEtBQUs7c0JBQ0wsS0FBSzs2QkFFTCxlQUFlLFNBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBDb250ZW50Q2hpbGRyZW4sIFF1ZXJ5TGlzdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjY2Vzc2liaWxpdHlDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cyc7XHJcbmltcG9ydCB7TWVudVZlcnRpY2FsSXRlbXNEYXRhLCBNZW51VmVydGljYWxTdWJEYXRhLCBNZW51VmVydGljYWxTdWJJdGVtc0RhdGF9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgU3RyaW5nVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvc3RyaW5nLXV0aWxzJztcclxuaW1wb3J0IHtNZW51VmVydGljYWxJdGVtQ29tcG9uZW50fSBmcm9tICcuL21lbnUtdmVydGljYWwtaXRlbS9tZW51LXZlcnRpY2FsLWl0ZW0uY29tcG9uZW50JztcclxuaW1wb3J0IHtNZW51VmVydGljYWxJdGVtU3ViQ29tcG9uZW50fSBmcm9tICcuL21lbnUtdmVydGljYWwtaXRlbS1zdWIvbWVudS12ZXJ0aWNhbC1pdGVtLXN1Yi5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZXN5LW1lbnUtdmVydGljYWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LXZlcnRpY2FsLmNvbXBvbmVudC5odG1sJyxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdkaXNwbGF5TWVudVZlcnRpY2FsJywgW1xyXG4gICAgICBzdGF0ZSgndm9pZCcsIHN0eWxlKHtcclxuICAgICAgICBvcGFjaXR5OiAnMC4wJyxcclxuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgwLjk1KSdcclxuICAgICAgfSkpLFxyXG4gICAgICBzdGF0ZSgnKicsIHN0eWxlKHtcclxuICAgICAgICBvcGFjaXR5OiAnMS4wJyxcclxuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgxLjApJ1xyXG4gICAgICB9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcclxuICAgICAgICBhbmltYXRlKCcxMDBtcyBlYXNlLW91dCcpXHJcbiAgICAgIF0pXHJcbiAgICBdKVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1lbnVWZXJ0aWNhbENvbXBvbmVudCBleHRlbmRzIEFjY2Vzc2liaWxpdHlDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSBpZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGlkUHJlZml4OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXRlbXM6IE1lbnVWZXJ0aWNhbEl0ZW1zRGF0YVtdO1xyXG4gIEBJbnB1dCgpIGhhc1VuZGVybGluZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBjbGFzc2VzOiBzdHJpbmc7XHJcblxyXG4gIEBDb250ZW50Q2hpbGRyZW4oTWVudVZlcnRpY2FsSXRlbUNvbXBvbmVudCkgaXRlbUNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxNZW51VmVydGljYWxJdGVtQ29tcG9uZW50PjtcclxuXHJcbiAgaGFuZGxlSXRlbUNvbnRlbnRFbXB0eShpbmRleDogbnVtYmVyLCBpc1Jvb3Q6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihgJHtpc1Jvb3QgPyAnSXRlbScgOiAnU3ViaXRlbSd9IGNvbnRlbnQsIGh0bWwgb3IgdGV4dCBhciByZXF1aXJlZCBhdCBwb3NpdGlvbiAke2luZGV4fWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbUh0bWwoaXRlbTogTWVudVZlcnRpY2FsSXRlbXNEYXRhKTogc3RyaW5nIHtcclxuICAgIGxldCBpdGVtSHRtbDogc3RyaW5nO1xyXG4gICAgaWYgKGl0ZW0uYWN0aXZlKSB7XHJcbiAgICAgIGl0ZW1IdG1sID0gaXRlbS5odG1sID8gYDxzdHJvbmc+JHsgaXRlbS5odG1sIH08L3N0cm9uZz5gIDogYDxzdHJvbmc+JHsgU3RyaW5nVXRpbHMuZXNjYXBlSHRtbChpdGVtLnRleHQpIH08L3N0cm9uZz5gO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbUh0bWwgPSBpdGVtLmh0bWw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGl0ZW1IdG1sO1xyXG4gIH1cclxuXHJcbiAgZ2V0SWQoaXRlbTogTWVudVZlcnRpY2FsSXRlbXNEYXRhLCBpOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKGl0ZW0uaWQpIHtcclxuICAgICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBpZFByZWZpeCA9IHRoaXMuaWRQcmVmaXggPyB0aGlzLmlkUHJlZml4IDogJ25hdi1pdGVtJztcclxuICAgICAgaWYgKGkgPT09IDApIHtcclxuICAgICAgICByZXR1cm4gaWRQcmVmaXggKyAnLTAnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBpZFByZWZpeCArICctJyArIGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFN1Ykl0ZW1JZChpdGVtOiBNZW51VmVydGljYWxJdGVtc0RhdGEsIGl0ZW1JbmRleDogbnVtYmVyLCBzdWJJdGVtSW5kZXg6IG51bWJlcik6IHN0cmluZ3tcclxuICAgIGxldCBzdWJJdGVtSWQ6IHN0cmluZztcclxuICAgIGNvbnN0IHN1YiA9IHRoaXMuZ2V0SXRlbVN1YihpdGVtKTtcclxuICAgIGNvbnN0IHN1Ykl0ZW1zID0gdGhpcy5nZXRTdWJJdGVtcyhzdWIpO1xyXG4gICAgY29uc3Qgc3ViSXRlbSA9IHN1Ykl0ZW1zW3N1Ykl0ZW1JbmRleF07XHJcbiAgICBpZiAoc3ViSXRlbSkge1xyXG4gICAgICBpZiAoc3ViSXRlbS5pZCkge1xyXG4gICAgICAgIHN1Ykl0ZW1JZCA9IHN1Ykl0ZW0uaWQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgaXRlbUlkID0gdGhpcy5nZXRJZChpdGVtLCBpdGVtSW5kZXgpO1xyXG4gICAgICAgIHN1Ykl0ZW1JZCA9IHN1Ykl0ZW1JbmRleCA9PT0gMCA/IGBzdWItJHtpdGVtSWR9YCA6IGBzdWItJHtpdGVtSWR9LSR7c3ViSXRlbUluZGV4fWA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc3ViSXRlbUlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbXMoKTogTWVudVZlcnRpY2FsSXRlbXNEYXRhW10ge1xyXG4gICAgY29uc3QgaXRlbUxpc3QgPSB0aGlzLml0ZW1Db21wb25lbnRzICYmIHRoaXMuaXRlbUNvbXBvbmVudHMubGVuZ3RoID4gMCA/IHRoaXMuaXRlbUNvbXBvbmVudHMudG9BcnJheSgpIDogdGhpcy5pdGVtcztcclxuICAgIGlmICghaXRlbUxpc3QgfHwgaXRlbUxpc3QubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpdGVtcyBhcmUgcmVxdWlyZWRgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBpdGVtTGlzdDtcclxuICB9XHJcblxyXG4gIGdldEl0ZW1TdWIoaXRlbTogTWVudVZlcnRpY2FsSXRlbXNEYXRhKTogTWVudVZlcnRpY2FsU3ViRGF0YSB7XHJcbiAgICByZXR1cm4gaXRlbSBpbnN0YW5jZW9mIE1lbnVWZXJ0aWNhbEl0ZW1Db21wb25lbnQgPyBpdGVtLnN1YkNvbXBvbmVudCA6IGl0ZW0uc3ViO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3ViSXRlbXMoc3ViOiBNZW51VmVydGljYWxTdWJEYXRhKTogTWVudVZlcnRpY2FsU3ViSXRlbXNEYXRhW10ge1xyXG4gICAgY29uc3Qgc3ViSXRlbXMgPSBzdWIgaW5zdGFuY2VvZiBNZW51VmVydGljYWxJdGVtU3ViQ29tcG9uZW50ID8gc3ViLml0ZW1Db21wb25lbnRzLnRvQXJyYXkoKSA6IHN1Yi5pdGVtcztcclxuICAgIHJldHVybiBzdWJJdGVtcyAmJiBzdWJJdGVtcy5sZW5ndGggPiAwID8gc3ViSXRlbXMgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgZm9jdXMoIGlkIDogc3RyaW5nLCBpZEZvY3VzIDogc3RyaW5nKSB7ICAgIFxyXG4gICAgY29uc3QgZWxlbWVudFRvUXVpdEZvY3VzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xyXG4gICAgZWxlbWVudFRvUXVpdEZvY3VzLmJsdXIoKTtcclxuXHJcbiAgICBpZiAoaWRGb2N1cyl7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWRGb2N1cyk7XHJcbiAgICAgIGVsZW1lbnRUb0ZvY3VzLnRhYkluZGV4ID0gMDtcclxuICAgICAgZWxlbWVudFRvRm9jdXM/LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==