desy-angular 11.1.0 → 12.1.0
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.
- package/esm2022/lib/desy-buttons/components/button/button.component.mjs +5 -4
- package/esm2022/lib/desy-buttons/components/button-loader/button-loader.component.mjs +8 -5
- package/esm2022/lib/desy-buttons/components/dropdown/dropdown.component.mjs +23 -8
- package/esm2022/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.mjs +3 -3
- package/esm2022/lib/desy-buttons/components/listbox/listbox.component.mjs +6 -5
- package/esm2022/lib/desy-buttons/components/pill/pill.component.mjs +5 -4
- package/esm2022/lib/desy-buttons/components/toggle/toggle.component.mjs +4 -3
- package/esm2022/lib/desy-buttons/interfaces/listbox-item-data.mjs +1 -1
- package/esm2022/lib/desy-commons/interfaces/divider-data.mjs +1 -1
- package/esm2022/lib/desy-commons/interfaces/title-data.mjs +1 -1
- package/esm2022/lib/desy-forms/components/character-count/character-count.component.mjs +30 -4
- package/esm2022/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.mjs +6 -5
- package/esm2022/lib/desy-forms/components/checkboxes/checkboxes.component.mjs +11 -10
- package/esm2022/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.mjs +3 -3
- package/esm2022/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.mjs +28 -2
- package/esm2022/lib/desy-forms/components/date-input/date-input.component.mjs +10 -9
- package/esm2022/lib/desy-forms/components/error-message/error-message.component.mjs +4 -3
- package/esm2022/lib/desy-forms/components/fieldset/fieldset.component.mjs +5 -4
- package/esm2022/lib/desy-forms/components/fieldset/legend/legend.component.mjs +17 -6
- package/esm2022/lib/desy-forms/components/file-upload/file-upload.component.mjs +8 -7
- package/esm2022/lib/desy-forms/components/hint/hint.component.mjs +4 -3
- package/esm2022/lib/desy-forms/components/input/input.component.mjs +22 -12
- package/esm2022/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.mjs +28 -2
- package/esm2022/lib/desy-forms/components/input-group/input-group.component.mjs +11 -10
- package/esm2022/lib/desy-forms/components/label/label.component.mjs +4 -3
- package/esm2022/lib/desy-forms/components/radios/radio-item/radio-item.component.mjs +6 -5
- package/esm2022/lib/desy-forms/components/radios/radios.component.mjs +11 -10
- package/esm2022/lib/desy-forms/components/search-bar/search-bar.component.mjs +7 -6
- package/esm2022/lib/desy-forms/components/select/select.component.mjs +10 -9
- package/esm2022/lib/desy-forms/components/textarea/textarea.component.mjs +8 -7
- package/esm2022/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.mjs +4 -3
- package/esm2022/lib/desy-forms/components/tree/tree-item/tree-item.component.mjs +13 -12
- package/esm2022/lib/desy-forms/components/tree/tree-sub/tree-sub.component.mjs +5 -4
- package/esm2022/lib/desy-forms/components/tree/tree.component.mjs +5 -4
- package/esm2022/lib/desy-forms/interfaces/error-message-data.mjs +1 -1
- package/esm2022/lib/desy-forms/interfaces/fieldset-data.mjs +1 -1
- package/esm2022/lib/desy-forms/interfaces/hint-data.mjs +1 -1
- package/esm2022/lib/desy-forms/interfaces/item-checkbox-data.mjs +1 -1
- package/esm2022/lib/desy-forms/interfaces/item-date-input-data.mjs +1 -1
- package/esm2022/lib/desy-forms/interfaces/item-input-group-data.mjs +1 -1
- package/esm2022/lib/desy-forms/interfaces/item-radio-data.mjs +1 -1
- package/esm2022/lib/desy-forms/interfaces/label-data.mjs +1 -1
- package/esm2022/lib/desy-forms/interfaces/select-item-data.mjs +1 -1
- package/esm2022/lib/desy-modals/components/dialog/dialog.component.mjs +6 -5
- package/esm2022/lib/desy-modals/components/modal/modal.component.mjs +15 -14
- package/esm2022/lib/desy-modals/interfaces/dialog-options.mjs +1 -1
- package/esm2022/lib/desy-modals/interfaces/modal-options.mjs +1 -1
- package/esm2022/lib/desy-modals/services/dialog.service.mjs +2 -2
- package/esm2022/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.mjs +4 -3
- package/esm2022/lib/desy-nav/components/error-summary/error-summary.component.mjs +11 -8
- package/esm2022/lib/desy-nav/components/footer/footer.component.mjs +6 -5
- package/esm2022/lib/desy-nav/components/header/header-mobileText/header-mobile-text.component.mjs +246 -2
- package/esm2022/lib/desy-nav/components/header/header-navigation/header-navigation.component.mjs +4 -3
- package/esm2022/lib/desy-nav/components/header/header.component.mjs +15 -14
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-dropdown/header-advanced-dropdown.component.mjs +1 -1
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-sub/header-advanced-sub.component.mjs +7 -3
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-super/header-advanced-super.component.mjs +7 -3
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-title-container/header-advanced-title-container.component.mjs +7 -3
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced.component.mjs +6 -5
- package/esm2022/lib/desy-nav/components/header-mini/header-mini.component.mjs +5 -4
- package/esm2022/lib/desy-nav/components/links-list/links-list-item/links-list-item.component.mjs +3 -3
- package/esm2022/lib/desy-nav/components/links-list/links-list.component.mjs +6 -4
- package/esm2022/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.mjs +6 -5
- package/esm2022/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.mjs +3 -3
- package/esm2022/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.mjs +1 -1
- package/esm2022/lib/desy-nav/components/menu-navigation/menu-navigation.component.mjs +280 -31
- package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.mjs +3 -3
- package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.mjs +3 -3
- package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical.component.mjs +6 -5
- package/esm2022/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.mjs +3 -3
- package/esm2022/lib/desy-nav/components/menubar/menubar.component.mjs +281 -32
- package/esm2022/lib/desy-nav/components/nav/nav-item/nav-item.component.mjs +3 -3
- package/esm2022/lib/desy-nav/components/nav/nav.component.mjs +6 -5
- package/esm2022/lib/desy-nav/components/notification/notification.component.mjs +12 -16
- package/esm2022/lib/desy-nav/components/skip-link/skip-link.component.mjs +4 -3
- package/esm2022/lib/desy-nav/interfaces/breadcrumbs.data.mjs +1 -1
- package/esm2022/lib/desy-nav/interfaces/error-summary-data.mjs +1 -1
- package/esm2022/lib/desy-nav/interfaces/footer-data.mjs +1 -1
- package/esm2022/lib/desy-nav/interfaces/header-dropdown-data.mjs +1 -1
- package/esm2022/lib/desy-nav/interfaces/header-mobile-text-data.mjs +1 -1
- package/esm2022/lib/desy-nav/interfaces/header-navigation-item-data.mjs +1 -1
- package/esm2022/lib/desy-nav/interfaces/header-subnav-data.mjs +1 -1
- package/esm2022/lib/desy-nav/interfaces/menu-horizontal-item-data.mjs +1 -1
- package/esm2022/lib/desy-nav/interfaces/menu-navigation-item-sub-item-sub-item.mjs +1 -1
- package/esm2022/lib/desy-nav/interfaces/menu-navigation-item-sub-item.mjs +1 -1
- package/esm2022/lib/desy-nav/interfaces/menu-navigation.mjs +1 -1
- package/esm2022/lib/desy-nav/interfaces/menu-vertical-items-data.mjs +1 -1
- package/esm2022/lib/desy-nav/interfaces/menu-vertical-sub-data.mjs +1 -1
- package/esm2022/lib/desy-nav/interfaces/menu-vertical-sub-items-data.mjs +1 -1
- package/esm2022/lib/desy-nav/interfaces/menubar-item-sub.mjs +1 -1
- package/esm2022/lib/desy-nav/interfaces/menubar-item.mjs +1 -1
- package/esm2022/lib/desy-nav/interfaces/nav-item.data.mjs +1 -1
- package/esm2022/lib/desy-nav/interfaces/notification-items-data.mjs +1 -1
- package/esm2022/lib/desy-nav/interfaces/notification-options.mjs +1 -1
- package/esm2022/lib/desy-pagination/components/pagination/pagination.component.mjs +10 -9
- package/esm2022/lib/desy-tables/components/table/table.component.mjs +5 -4
- package/esm2022/lib/desy-tables/components/table-advanced/table-advanced.component.mjs +26 -10
- package/esm2022/lib/desy-tables/directives/focus-clicked-cell.directive.mjs +16 -7
- package/esm2022/lib/desy-tables/interfaces/cell-data.mjs +1 -1
- package/esm2022/lib/desy-tables/interfaces/wrapper-data.mjs +1 -1
- package/esm2022/lib/desy-views/components/accordion/accordion.component.mjs +281 -30
- package/esm2022/lib/desy-views/components/accordion-history/accordion-history.component.mjs +5 -4
- package/esm2022/lib/desy-views/components/alert/alert.component.mjs +4 -3
- package/esm2022/lib/desy-views/components/card/card.component.mjs +4 -3
- package/esm2022/lib/desy-views/components/collapsible/collapsible.component.mjs +17 -5
- package/esm2022/lib/desy-views/components/description-list/description-list.component.mjs +4 -3
- package/esm2022/lib/desy-views/components/details/details.component.mjs +16 -4
- package/esm2022/lib/desy-views/components/item/item.component.mjs +11 -10
- package/esm2022/lib/desy-views/components/media-object/media-object.component.mjs +288 -36
- package/esm2022/lib/desy-views/components/spinner/spinner.component.mjs +280 -28
- package/esm2022/lib/desy-views/components/status/status.component.mjs +294 -35
- package/esm2022/lib/desy-views/components/status-item/status-item.component.mjs +296 -43
- package/esm2022/lib/desy-views/components/tabs/tab-item/tab-item.component.mjs +6 -4
- package/esm2022/lib/desy-views/components/tabs/tabs.component.mjs +288 -39
- package/esm2022/lib/desy-views/components/tooltip/tooltip.component.mjs +284 -46
- package/esm2022/lib/desy-views/interfaces/accordion-item.data.mjs +1 -1
- package/esm2022/lib/desy-views/interfaces/alert-options.mjs +1 -1
- package/esm2022/lib/desy-views/interfaces/description-item.data.mjs +1 -1
- package/esm2022/lib/desy-views/interfaces/status-data.mjs +1 -1
- package/esm2022/lib/desy-views/interfaces/tabs-items-data.mjs +1 -1
- package/esm2022/lib/desy-views/interfaces/tabs-panel-data.mjs +1 -1
- package/esm2022/lib/desy-views/interfaces/term-definition.data.mjs +1 -1
- package/esm2022/lib/shared/components/accessibility/accessibility-attributes.mjs +78 -0
- package/esm2022/lib/shared/components/accessibility/accessibility.component.mjs +124 -2
- package/esm2022/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.mjs +126 -2
- package/esm2022/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.mjs +126 -2
- package/esm2022/lib/shared/directives/accessibility-directive.mjs +52 -0
- package/esm2022/lib/shared/interfaces/accessibility-data.mjs +2 -0
- package/esm2022/lib/shared/pipes/make-html-list.pipe.mjs +2 -2
- package/esm2022/lib/shared/shared.module.mjs +12 -7
- package/esm2022/lib/shared/utils/search-utils.mjs +5 -1
- package/esm2022/public-api.mjs +4 -1
- package/fesm2022/desy-angular.mjs +3784 -633
- package/fesm2022/desy-angular.mjs.map +1 -1
- package/lib/desy-buttons/components/button-loader/button-loader.component.d.ts +2 -0
- package/lib/desy-buttons/components/dropdown/dropdown.component.d.ts +4 -2
- package/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.d.ts +3 -3
- package/lib/desy-buttons/components/listbox/listbox.component.d.ts +1 -1
- package/lib/desy-buttons/interfaces/listbox-item-data.d.ts +2 -2
- package/lib/desy-commons/interfaces/divider-data.d.ts +1 -0
- package/lib/desy-commons/interfaces/title-data.d.ts +2 -2
- package/lib/desy-forms/components/character-count/character-count.component.d.ts +7 -1
- package/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.d.ts +2 -3
- package/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.d.ts +14 -1
- package/lib/desy-forms/components/fieldset/legend/legend.component.d.ts +6 -2
- package/lib/desy-forms/components/file-upload/file-upload.component.d.ts +1 -1
- package/lib/desy-forms/components/input/input.component.d.ts +8 -3
- package/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.d.ts +14 -1
- package/lib/desy-forms/components/input-group/input-group.component.d.ts +1 -1
- package/lib/desy-forms/components/search-bar/search-bar.component.d.ts +1 -1
- package/lib/desy-forms/components/select/select.component.d.ts +1 -1
- package/lib/desy-forms/components/textarea/textarea.component.d.ts +1 -1
- package/lib/desy-forms/components/tree/tree-item/tree-item.component.d.ts +5 -5
- package/lib/desy-forms/interfaces/error-message-data.d.ts +2 -2
- package/lib/desy-forms/interfaces/fieldset-data.d.ts +2 -2
- package/lib/desy-forms/interfaces/hint-data.d.ts +2 -2
- package/lib/desy-forms/interfaces/item-checkbox-data.d.ts +3 -3
- package/lib/desy-forms/interfaces/item-date-input-data.d.ts +3 -3
- package/lib/desy-forms/interfaces/item-input-group-data.d.ts +3 -3
- package/lib/desy-forms/interfaces/item-radio-data.d.ts +3 -3
- package/lib/desy-forms/interfaces/label-data.d.ts +3 -2
- package/lib/desy-forms/interfaces/select-item-data.d.ts +2 -2
- package/lib/desy-modals/components/dialog/dialog.component.d.ts +3 -3
- package/lib/desy-modals/components/modal/modal.component.d.ts +8 -8
- package/lib/desy-modals/interfaces/dialog-options.d.ts +2 -2
- package/lib/desy-modals/interfaces/modal-options.d.ts +4 -4
- package/lib/desy-modals/services/dialog.service.d.ts +1 -1
- package/lib/desy-nav/components/error-summary/error-summary.component.d.ts +4 -3
- package/lib/desy-nav/components/header/header-mobileText/header-mobile-text.component.d.ts +61 -0
- package/lib/desy-nav/components/header-advanced/header-advanced-sub/header-advanced-sub.component.d.ts +3 -1
- package/lib/desy-nav/components/header-advanced/header-advanced-super/header-advanced-super.component.d.ts +3 -1
- package/lib/desy-nav/components/header-advanced/header-advanced-title-container/header-advanced-title-container.component.d.ts +3 -1
- package/lib/desy-nav/components/links-list/links-list-item/links-list-item.component.d.ts +2 -2
- package/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.d.ts +3 -3
- package/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.d.ts +1 -1
- package/lib/desy-nav/components/menu-navigation/menu-navigation.component.d.ts +75 -13
- package/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.d.ts +3 -3
- package/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.d.ts +3 -3
- package/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.d.ts +3 -3
- package/lib/desy-nav/components/menubar/menubar.component.d.ts +75 -13
- package/lib/desy-nav/components/nav/nav-item/nav-item.component.d.ts +2 -2
- package/lib/desy-nav/components/notification/notification.component.d.ts +7 -9
- package/lib/desy-nav/interfaces/breadcrumbs.data.d.ts +2 -2
- package/lib/desy-nav/interfaces/error-summary-data.d.ts +2 -2
- package/lib/desy-nav/interfaces/footer-data.d.ts +7 -3
- package/lib/desy-nav/interfaces/header-dropdown-data.d.ts +2 -2
- package/lib/desy-nav/interfaces/header-mobile-text-data.d.ts +2 -2
- package/lib/desy-nav/interfaces/header-navigation-item-data.d.ts +3 -2
- package/lib/desy-nav/interfaces/header-subnav-data.d.ts +2 -2
- package/lib/desy-nav/interfaces/menu-horizontal-item-data.d.ts +3 -2
- package/lib/desy-nav/interfaces/menu-navigation-item-sub-item-sub-item.d.ts +5 -2
- package/lib/desy-nav/interfaces/menu-navigation-item-sub-item.d.ts +5 -2
- package/lib/desy-nav/interfaces/menu-navigation.d.ts +5 -2
- package/lib/desy-nav/interfaces/menu-vertical-items-data.d.ts +2 -2
- package/lib/desy-nav/interfaces/menu-vertical-sub-data.d.ts +2 -2
- package/lib/desy-nav/interfaces/menu-vertical-sub-items-data.d.ts +2 -2
- package/lib/desy-nav/interfaces/menubar-item-sub.d.ts +2 -2
- package/lib/desy-nav/interfaces/menubar-item.d.ts +3 -3
- package/lib/desy-nav/interfaces/nav-item.data.d.ts +3 -2
- package/lib/desy-nav/interfaces/notification-items-data.d.ts +2 -2
- package/lib/desy-nav/interfaces/notification-options.d.ts +4 -4
- package/lib/desy-pagination/components/pagination/pagination.component.d.ts +1 -1
- package/lib/desy-tables/components/table-advanced/table-advanced.component.d.ts +8 -3
- package/lib/desy-tables/directives/focus-clicked-cell.directive.d.ts +1 -0
- package/lib/desy-tables/interfaces/cell-data.d.ts +2 -2
- package/lib/desy-tables/interfaces/wrapper-data.d.ts +2 -2
- package/lib/desy-views/components/accordion/accordion.component.d.ts +75 -13
- package/lib/desy-views/components/alert/alert.component.d.ts +1 -1
- package/lib/desy-views/components/collapsible/collapsible.component.d.ts +3 -1
- package/lib/desy-views/components/details/details.component.d.ts +3 -1
- package/lib/desy-views/components/item/item.component.d.ts +7 -7
- package/lib/desy-views/components/media-object/media-object.component.d.ts +79 -17
- package/lib/desy-views/components/spinner/spinner.component.d.ts +75 -13
- package/lib/desy-views/components/status/status.component.d.ts +76 -14
- package/lib/desy-views/components/status-item/status-item.component.d.ts +83 -21
- package/lib/desy-views/components/tabs/tab-item/tab-item.component.d.ts +4 -3
- package/lib/desy-views/components/tabs/tabs.component.d.ts +77 -15
- package/lib/desy-views/components/tooltip/tooltip.component.d.ts +76 -18
- package/lib/desy-views/interfaces/accordion-item.data.d.ts +2 -2
- package/lib/desy-views/interfaces/alert-options.d.ts +2 -2
- package/lib/desy-views/interfaces/description-item.data.d.ts +2 -2
- package/lib/desy-views/interfaces/status-data.d.ts +2 -2
- package/lib/desy-views/interfaces/tabs-items-data.d.ts +2 -2
- package/lib/desy-views/interfaces/tabs-panel-data.d.ts +2 -2
- package/lib/desy-views/interfaces/term-definition.data.d.ts +2 -2
- package/lib/shared/components/accessibility/accessibility-attributes.d.ts +1 -0
- package/lib/shared/components/accessibility/accessibility.component.d.ts +78 -17
- package/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.d.ts +79 -16
- package/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.d.ts +79 -16
- package/lib/shared/directives/accessibility-directive.d.ts +16 -0
- package/lib/shared/interfaces/accessibility-data.d.ts +77 -0
- package/lib/shared/shared.module.d.ts +4 -3
- package/package.json +1 -1
- package/public-api.d.ts +3 -0
- package/esm2022/lib/desy-forms/interfaces/accesibility-data.mjs +0 -2
- package/esm2022/lib/shared/interfaces/accesibility-data.mjs +0 -2
- package/lib/desy-forms/interfaces/accesibility-data.d.ts +0 -15
- package/lib/shared/interfaces/accesibility-data.d.ts +0 -16
|
@@ -7,26 +7,91 @@ import { AccordionItemComponent } from './accordion-item/accordion-item.componen
|
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@angular/common";
|
|
9
9
|
import * as i2 from "../../../shared/directives/custom-inner-content.directive";
|
|
10
|
-
import * as i3 from "../../../shared/
|
|
10
|
+
import * as i3 from "../../../shared/directives/accessibility-directive";
|
|
11
|
+
import * as i4 from "../../../shared/pipes/make-html-list.pipe";
|
|
11
12
|
export class AccordionComponent extends AccessibilityComponent {
|
|
12
13
|
constructor() {
|
|
13
14
|
super(...arguments);
|
|
15
|
+
this.classes = "block";
|
|
16
|
+
this.role = null;
|
|
17
|
+
this.ariaLabel = null;
|
|
18
|
+
this.ariaDescribedBy = null;
|
|
19
|
+
this.ariaLabelledBy = null;
|
|
20
|
+
this.ariaHidden = null;
|
|
21
|
+
this.ariaDisabled = null;
|
|
22
|
+
this.ariaControls = null;
|
|
23
|
+
this.ariaCurrent = null;
|
|
24
|
+
this.ariaLive = null;
|
|
25
|
+
this.ariaExpanded = null;
|
|
26
|
+
this.ariaErrorMessage = null;
|
|
27
|
+
this.ariaHasPopup = null;
|
|
28
|
+
this.ariaModal = null;
|
|
29
|
+
this.ariaChecked = null;
|
|
30
|
+
this.ariaPressed = null;
|
|
31
|
+
this.ariaReadonly = null;
|
|
32
|
+
this.ariaRequired = null;
|
|
33
|
+
this.ariaSelected = null;
|
|
34
|
+
this.ariaValuemin = null;
|
|
35
|
+
this.ariaValuemax = null;
|
|
36
|
+
this.ariaValuenow = null;
|
|
37
|
+
this.ariaValuetext = null;
|
|
38
|
+
this.ariaOrientation = null;
|
|
39
|
+
this.ariaLevel = null;
|
|
40
|
+
this.ariaMultiselectable = null;
|
|
41
|
+
this.ariaPlaceholder = null;
|
|
42
|
+
this.ariaPosinset = null;
|
|
43
|
+
this.ariaSetsize = null;
|
|
44
|
+
this.ariaSort = null;
|
|
45
|
+
this.ariaBusy = null;
|
|
46
|
+
this.ariaDropeffect = null;
|
|
47
|
+
this.ariaGrabbed = null;
|
|
48
|
+
this.ariaActivedescendant = null;
|
|
49
|
+
this.ariaAtomic = null;
|
|
50
|
+
this.ariaAutocomplete = null;
|
|
51
|
+
this.ariaBraillelabel = null;
|
|
52
|
+
this.ariaBrailleroledescription = null;
|
|
53
|
+
this.ariaColcount = null;
|
|
54
|
+
this.ariaColindex = null;
|
|
55
|
+
this.ariaColindextext = null;
|
|
56
|
+
this.ariaColspan = null;
|
|
57
|
+
this.ariaDescription = null;
|
|
58
|
+
this.ariaDetails = null;
|
|
59
|
+
this.ariaFlowto = null;
|
|
60
|
+
this.ariaInvalid = null;
|
|
61
|
+
this.ariaKeyshortcuts = null;
|
|
62
|
+
this.ariaOwns = null;
|
|
63
|
+
this.ariaRelevant = null;
|
|
64
|
+
this.ariaRoledescription = null;
|
|
65
|
+
this.ariaRowcount = null;
|
|
66
|
+
this.ariaRowindex = null;
|
|
67
|
+
this.ariaRowindextext = null;
|
|
68
|
+
this.ariaRowspan = null;
|
|
69
|
+
this.tabindex = null;
|
|
70
|
+
this.title = null;
|
|
71
|
+
this.alt = null;
|
|
72
|
+
this.lang = null;
|
|
73
|
+
this.accesskey = null;
|
|
74
|
+
this.autocomplete = null;
|
|
75
|
+
this.autofocus = null;
|
|
76
|
+
this.contenteditable = null;
|
|
77
|
+
this.dir = null;
|
|
78
|
+
this.draggable = null;
|
|
79
|
+
this.enterkeyhint = null;
|
|
80
|
+
this.hidden = null;
|
|
81
|
+
this.inputmode = null;
|
|
82
|
+
this.spellcheck = null;
|
|
83
|
+
this.translate = null;
|
|
84
|
+
this.ariaMultiline = null;
|
|
85
|
+
this.for = null;
|
|
86
|
+
this.form = null;
|
|
87
|
+
this.headers = null;
|
|
88
|
+
this.placeholder = null;
|
|
89
|
+
this.readonly = null;
|
|
90
|
+
this.required = null;
|
|
14
91
|
this.showAll = true;
|
|
15
92
|
}
|
|
16
93
|
ngOnChanges(changes) {
|
|
17
|
-
this.
|
|
18
|
-
this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;
|
|
19
|
-
this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;
|
|
20
|
-
this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;
|
|
21
|
-
this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;
|
|
22
|
-
this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;
|
|
23
|
-
this.ariaControlsData = this.ariaControls ? this.ariaControls : null;
|
|
24
|
-
this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;
|
|
25
|
-
this.ariaLiveData = this.ariaLive ? this.ariaLive : null;
|
|
26
|
-
this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;
|
|
27
|
-
this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;
|
|
28
|
-
this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;
|
|
29
|
-
this.ariaModalData = this.ariaModal ? this.ariaModal : null;
|
|
94
|
+
this.classes = this.classes ? this.classes + " block" : null;
|
|
30
95
|
}
|
|
31
96
|
getItemId(item, index) {
|
|
32
97
|
let id;
|
|
@@ -114,7 +179,7 @@ export class AccordionComponent extends AccessibilityComponent {
|
|
|
114
179
|
return item instanceof AccordionItemComponent ? item.contentComponent : null;
|
|
115
180
|
}
|
|
116
181
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
117
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AccordionComponent, selector: "desy-accordion", inputs: { id: "id", idPrefix: "idPrefix", allowToggle: "allowToggle", allowMultiple: "allowMultiple", heading: "heading", headingLevel: "headingLevel", showControl: "showControl", items: "items", classes: "classes" }, host: { properties: { "class": "this.classes", "attr.role": "this.roleData", "attr.aria-label": "this.ariaLabelData", "attr.aria-describedby": "this.ariaDescribedbyData", "attr.aria-labelledby": "this.ariaLabelledbyData", "attr.aria-hidden": "this.ariaHiddenData", "attr.aria-disabled": "this.ariaDisabledData", "attr.aria-controls": "this.ariaControlsData", "attr.aria-current": "this.ariaCurrentData", "attr.aria-live": "this.ariaLiveData", "attr.aria-expanded": "this.ariaExpandedData", "attr.aria-errormessage": "this.ariaErrormessageData", "attr.aria-haspopup": "this.ariaHaspopupData", "attr.aria-modal": "this.ariaModalData" } }, queries: [{ propertyName: "headingComponent", predicate: AccordionHeaderComponent }, { propertyName: "itemComponentList", predicate: AccordionItemComponent }], viewQueries: [{ propertyName: "itemSelectors", predicate: ["itemSelector"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "\n <div class=\"flex justify-between\">\n <ng-container *ngIf=\"headingComponent || heading\">\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h1 *ngSwitchCase=\"1\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h5>\n </ng-container>\n <button [attr.id]=\"id\" *ngIf=\"showControl\" (click)=\"changeAll()\" type=\"button\"\n class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus text-right\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </ng-container>\n </div>\n <div class=\"Accordion\">\n <div *ngFor=\"let item of getItems(); index as i\" class=\"-my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\n <div *ngIf=\"item.open\" class=\"Accordion-panel\"\n [class]=\"item.classes\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.role]=\"(item.role ? role : 'accordion')\" \n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n<ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\n <button #itemSelector [id]=\"id + '-title'\" type=\"button\" class=\"Accordion-trigger group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" (click)=\"toggleItem(item)\" [attr.disabled]=\"item.disabled\" [ngClass]=\"item.disabled ? 'cursor-not-allowed' : classes\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\" aria-hidden=\"true\" [ngClass]=\"{'hidden': item.disabled}\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showHeaderButton, text: 'Mostrar' }\"></ng-container> \n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-hide', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideHeaderButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n</ng-template>\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: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "pipe", type: i3.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
|
|
182
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AccordionComponent, selector: "desy-accordion", inputs: { id: "id", idPrefix: "idPrefix", allowToggle: "allowToggle", allowMultiple: "allowMultiple", heading: "heading", headingLevel: "headingLevel", showControl: "showControl", items: "items", classes: "classes" }, host: { properties: { "class": "this.classes", "attr.role": "this.role", "attr.aria-label": "this.ariaLabel", "attr.aria-describedby": "this.ariaDescribedBy", "attr.aria-labelledby": "this.ariaLabelledBy", "attr.aria-hidden": "this.ariaHidden", "attr.aria-disabled": "this.ariaDisabled", "attr.aria-controls": "this.ariaControls", "attr.aria-current": "this.ariaCurrent", "attr.aria-live": "this.ariaLive", "attr.aria-expanded": "this.ariaExpanded", "attr.aria-errormessage": "this.ariaErrorMessage", "attr.aria-haspopup": "this.ariaHasPopup", "attr.aria-modal": "this.ariaModal", "attr.aria-checked": "this.ariaChecked", "attr.aria-pressed": "this.ariaPressed", "attr.aria-readonly": "this.ariaReadonly", "attr.aria-required": "this.ariaRequired", "attr.aria-selected": "this.ariaSelected", "attr.aria-valuemin": "this.ariaValuemin", "attr.aria-valuemax": "this.ariaValuemax", "attr.aria-valuenow": "this.ariaValuenow", "attr.aria-valuetext": "this.ariaValuetext", "attr.aria-orientation": "this.ariaOrientation", "attr.aria-level": "this.ariaLevel", "attr.aria-multiselectable": "this.ariaMultiselectable", "attr.aria-placeholder": "this.ariaPlaceholder", "attr.aria-posinset": "this.ariaPosinset", "attr.aria-setsize": "this.ariaSetsize", "attr.aria-sort": "this.ariaSort", "attr.aria-busy": "this.ariaBusy", "attr.aria-dropeffect": "this.ariaDropeffect", "attr.aria-grabbed": "this.ariaGrabbed", "attr.aria-activedescendant": "this.ariaActivedescendant", "attr.aria-atomic": "this.ariaAtomic", "attr.aria-autocomplete": "this.ariaAutocomplete", "attr.aria-braillelabel": "this.ariaBraillelabel", "attr.aria-brailleroledescription": "this.ariaBrailleroledescription", "attr.aria-colcount": "this.ariaColcount", "attr.aria-colindex": "this.ariaColindex", "attr.aria-colindextext": "this.ariaColindextext", "attr.aria-colspan": "this.ariaColspan", "attr.aria-description": "this.ariaDescription", "attr.aria-details": "this.ariaDetails", "attr.aria-flowto": "this.ariaFlowto", "attr.aria-invalid": "this.ariaInvalid", "attr.aria-keyshortcuts": "this.ariaKeyshortcuts", "attr.aria-owns": "this.ariaOwns", "attr.aria-relevant": "this.ariaRelevant", "attr.aria-roledescription": "this.ariaRoledescription", "attr.aria-rowcount": "this.ariaRowcount", "attr.aria-rowindex": "this.ariaRowindex", "attr.aria-rowindextext": "this.ariaRowindextext", "attr.aria-rowspan": "this.ariaRowspan", "attr.tabindex": "this.tabindex", "attr.title": "this.title", "attr.alt": "this.alt", "attr.lang": "this.lang", "attr.accesskey": "this.accesskey", "attr.autocomplete": "this.autocomplete", "attr.autofocus": "this.autofocus", "attr.contenteditable": "this.contenteditable", "attr.dir": "this.dir", "attr.draggable": "this.draggable", "attr.enterkeyhint": "this.enterkeyhint", "attr.hidden": "this.hidden", "attr.inputmode": "this.inputmode", "attr.spellcheck": "this.spellcheck", "attr.translate": "this.translate", "attr.aria-multiline": "this.ariaMultiline", "attr.for": "this.for", "attr.form": "this.form", "attr.headers": "this.headers", "attr.placeholder": "this.placeholder", "attr.readonly": "this.readonly", "attr.required": "this.required" } }, queries: [{ propertyName: "headingComponent", predicate: AccordionHeaderComponent }, { propertyName: "itemComponentList", predicate: AccordionItemComponent }], viewQueries: [{ propertyName: "itemSelectors", predicate: ["itemSelector"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "\n <div class=\"flex justify-between\">\n <ng-container *ngIf=\"headingComponent || heading\">\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h1 *ngSwitchCase=\"1\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h5>\n </ng-container>\n <button [attr.id]=\"id\" *ngIf=\"showControl\" (click)=\"changeAll()\" type=\"button\"\n class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus text-right\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </ng-container>\n </div>\n <div class=\"Accordion\">\n <div *ngFor=\"let item of getItems(); index as i\" class=\"-my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\n <div *ngIf=\"item.open\" class=\"c-accordion__panel\"\n [class]=\"item.classes\"\n [attr.id]=\"getItemId(item, i)\"\n [desyAppAccessibility]=\"item\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n<ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\n <button #itemSelector [id]=\"id + '-title'\" type=\"button\" class=\"group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open === true ? 'true' : 'false'\" (click)=\"toggleItem(item)\" [attr.disabled]=\"item.disabled\" [ngClass]=\"item.disabled ? 'cursor-not-allowed' : ''\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\" aria-hidden=\"true\" [ngClass]=\"{'hidden': item.disabled}\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showHeaderButton, text: 'Mostrar' }\"></ng-container> \n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-hide', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideHeaderButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n</ng-template>\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: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "directive", type: i3.AccessibilityDirective, selector: "[desyAppAccessibility]", inputs: ["desyAppAccessibility"] }, { kind: "pipe", type: i4.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
|
|
118
183
|
}
|
|
119
184
|
__decorate([
|
|
120
185
|
DesyContentChild(),
|
|
@@ -122,7 +187,7 @@ __decorate([
|
|
|
122
187
|
], AccordionComponent.prototype, "headingComponent", void 0);
|
|
123
188
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionComponent, decorators: [{
|
|
124
189
|
type: Component,
|
|
125
|
-
args: [{ selector: 'desy-accordion', template: "\n <div class=\"flex justify-between\">\n <ng-container *ngIf=\"headingComponent || heading\">\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h1 *ngSwitchCase=\"1\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h5>\n </ng-container>\n <button [attr.id]=\"id\" *ngIf=\"showControl\" (click)=\"changeAll()\" type=\"button\"\n class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus text-right\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </ng-container>\n </div>\n <div class=\"Accordion\">\n <div *ngFor=\"let item of getItems(); index as i\" class=\"-my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\n <div *ngIf=\"item.open\" class=\"
|
|
190
|
+
args: [{ selector: 'desy-accordion', template: "\n <div class=\"flex justify-between\">\n <ng-container *ngIf=\"headingComponent || heading\">\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h1 *ngSwitchCase=\"1\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h5>\n </ng-container>\n <button [attr.id]=\"id\" *ngIf=\"showControl\" (click)=\"changeAll()\" type=\"button\"\n class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus text-right\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </ng-container>\n </div>\n <div class=\"Accordion\">\n <div *ngFor=\"let item of getItems(); index as i\" class=\"-my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\n <div *ngIf=\"item.open\" class=\"c-accordion__panel\"\n [class]=\"item.classes\"\n [attr.id]=\"getItemId(item, i)\"\n [desyAppAccessibility]=\"item\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n<ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\n <button #itemSelector [id]=\"id + '-title'\" type=\"button\" class=\"group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open === true ? 'true' : 'false'\" (click)=\"toggleItem(item)\" [attr.disabled]=\"item.disabled\" [ngClass]=\"item.disabled ? 'cursor-not-allowed' : ''\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\" aria-hidden=\"true\" [ngClass]=\"{'hidden': item.disabled}\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showHeaderButton, text: 'Mostrar' }\"></ng-container> \n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-hide', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideHeaderButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n</ng-template>\n" }]
|
|
126
191
|
}], propDecorators: { itemSelectors: [{
|
|
127
192
|
type: ViewChildren,
|
|
128
193
|
args: ['itemSelector']
|
|
@@ -147,45 +212,231 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
147
212
|
}, {
|
|
148
213
|
type: HostBinding,
|
|
149
214
|
args: ['class']
|
|
150
|
-
}],
|
|
215
|
+
}], role: [{
|
|
151
216
|
type: HostBinding,
|
|
152
217
|
args: ['attr.role']
|
|
153
|
-
}],
|
|
218
|
+
}], ariaLabel: [{
|
|
154
219
|
type: HostBinding,
|
|
155
220
|
args: ['attr.aria-label']
|
|
156
|
-
}],
|
|
221
|
+
}], ariaDescribedBy: [{
|
|
157
222
|
type: HostBinding,
|
|
158
223
|
args: ['attr.aria-describedby']
|
|
159
|
-
}],
|
|
224
|
+
}], ariaLabelledBy: [{
|
|
160
225
|
type: HostBinding,
|
|
161
226
|
args: ['attr.aria-labelledby']
|
|
162
|
-
}],
|
|
227
|
+
}], ariaHidden: [{
|
|
163
228
|
type: HostBinding,
|
|
164
229
|
args: ['attr.aria-hidden']
|
|
165
|
-
}],
|
|
230
|
+
}], ariaDisabled: [{
|
|
166
231
|
type: HostBinding,
|
|
167
232
|
args: ['attr.aria-disabled']
|
|
168
|
-
}],
|
|
233
|
+
}], ariaControls: [{
|
|
169
234
|
type: HostBinding,
|
|
170
235
|
args: ['attr.aria-controls']
|
|
171
|
-
}],
|
|
236
|
+
}], ariaCurrent: [{
|
|
172
237
|
type: HostBinding,
|
|
173
238
|
args: ['attr.aria-current']
|
|
174
|
-
}],
|
|
239
|
+
}], ariaLive: [{
|
|
175
240
|
type: HostBinding,
|
|
176
241
|
args: ['attr.aria-live']
|
|
177
|
-
}],
|
|
242
|
+
}], ariaExpanded: [{
|
|
178
243
|
type: HostBinding,
|
|
179
244
|
args: ['attr.aria-expanded']
|
|
180
|
-
}],
|
|
245
|
+
}], ariaErrorMessage: [{
|
|
181
246
|
type: HostBinding,
|
|
182
247
|
args: ['attr.aria-errormessage']
|
|
183
|
-
}],
|
|
248
|
+
}], ariaHasPopup: [{
|
|
184
249
|
type: HostBinding,
|
|
185
250
|
args: ['attr.aria-haspopup']
|
|
186
|
-
}],
|
|
251
|
+
}], ariaModal: [{
|
|
187
252
|
type: HostBinding,
|
|
188
253
|
args: ['attr.aria-modal']
|
|
254
|
+
}], ariaChecked: [{
|
|
255
|
+
type: HostBinding,
|
|
256
|
+
args: ['attr.aria-checked']
|
|
257
|
+
}], ariaPressed: [{
|
|
258
|
+
type: HostBinding,
|
|
259
|
+
args: ['attr.aria-pressed']
|
|
260
|
+
}], ariaReadonly: [{
|
|
261
|
+
type: HostBinding,
|
|
262
|
+
args: ['attr.aria-readonly']
|
|
263
|
+
}], ariaRequired: [{
|
|
264
|
+
type: HostBinding,
|
|
265
|
+
args: ['attr.aria-required']
|
|
266
|
+
}], ariaSelected: [{
|
|
267
|
+
type: HostBinding,
|
|
268
|
+
args: ['attr.aria-selected']
|
|
269
|
+
}], ariaValuemin: [{
|
|
270
|
+
type: HostBinding,
|
|
271
|
+
args: ['attr.aria-valuemin']
|
|
272
|
+
}], ariaValuemax: [{
|
|
273
|
+
type: HostBinding,
|
|
274
|
+
args: ['attr.aria-valuemax']
|
|
275
|
+
}], ariaValuenow: [{
|
|
276
|
+
type: HostBinding,
|
|
277
|
+
args: ['attr.aria-valuenow']
|
|
278
|
+
}], ariaValuetext: [{
|
|
279
|
+
type: HostBinding,
|
|
280
|
+
args: ['attr.aria-valuetext']
|
|
281
|
+
}], ariaOrientation: [{
|
|
282
|
+
type: HostBinding,
|
|
283
|
+
args: ['attr.aria-orientation']
|
|
284
|
+
}], ariaLevel: [{
|
|
285
|
+
type: HostBinding,
|
|
286
|
+
args: ['attr.aria-level']
|
|
287
|
+
}], ariaMultiselectable: [{
|
|
288
|
+
type: HostBinding,
|
|
289
|
+
args: ['attr.aria-multiselectable']
|
|
290
|
+
}], ariaPlaceholder: [{
|
|
291
|
+
type: HostBinding,
|
|
292
|
+
args: ['attr.aria-placeholder']
|
|
293
|
+
}], ariaPosinset: [{
|
|
294
|
+
type: HostBinding,
|
|
295
|
+
args: ['attr.aria-posinset']
|
|
296
|
+
}], ariaSetsize: [{
|
|
297
|
+
type: HostBinding,
|
|
298
|
+
args: ['attr.aria-setsize']
|
|
299
|
+
}], ariaSort: [{
|
|
300
|
+
type: HostBinding,
|
|
301
|
+
args: ['attr.aria-sort']
|
|
302
|
+
}], ariaBusy: [{
|
|
303
|
+
type: HostBinding,
|
|
304
|
+
args: ['attr.aria-busy']
|
|
305
|
+
}], ariaDropeffect: [{
|
|
306
|
+
type: HostBinding,
|
|
307
|
+
args: ['attr.aria-dropeffect']
|
|
308
|
+
}], ariaGrabbed: [{
|
|
309
|
+
type: HostBinding,
|
|
310
|
+
args: ['attr.aria-grabbed']
|
|
311
|
+
}], ariaActivedescendant: [{
|
|
312
|
+
type: HostBinding,
|
|
313
|
+
args: ['attr.aria-activedescendant']
|
|
314
|
+
}], ariaAtomic: [{
|
|
315
|
+
type: HostBinding,
|
|
316
|
+
args: ['attr.aria-atomic']
|
|
317
|
+
}], ariaAutocomplete: [{
|
|
318
|
+
type: HostBinding,
|
|
319
|
+
args: ['attr.aria-autocomplete']
|
|
320
|
+
}], ariaBraillelabel: [{
|
|
321
|
+
type: HostBinding,
|
|
322
|
+
args: ['attr.aria-braillelabel']
|
|
323
|
+
}], ariaBrailleroledescription: [{
|
|
324
|
+
type: HostBinding,
|
|
325
|
+
args: ['attr.aria-brailleroledescription']
|
|
326
|
+
}], ariaColcount: [{
|
|
327
|
+
type: HostBinding,
|
|
328
|
+
args: ['attr.aria-colcount']
|
|
329
|
+
}], ariaColindex: [{
|
|
330
|
+
type: HostBinding,
|
|
331
|
+
args: ['attr.aria-colindex']
|
|
332
|
+
}], ariaColindextext: [{
|
|
333
|
+
type: HostBinding,
|
|
334
|
+
args: ['attr.aria-colindextext']
|
|
335
|
+
}], ariaColspan: [{
|
|
336
|
+
type: HostBinding,
|
|
337
|
+
args: ['attr.aria-colspan']
|
|
338
|
+
}], ariaDescription: [{
|
|
339
|
+
type: HostBinding,
|
|
340
|
+
args: ['attr.aria-description']
|
|
341
|
+
}], ariaDetails: [{
|
|
342
|
+
type: HostBinding,
|
|
343
|
+
args: ['attr.aria-details']
|
|
344
|
+
}], ariaFlowto: [{
|
|
345
|
+
type: HostBinding,
|
|
346
|
+
args: ['attr.aria-flowto']
|
|
347
|
+
}], ariaInvalid: [{
|
|
348
|
+
type: HostBinding,
|
|
349
|
+
args: ['attr.aria-invalid']
|
|
350
|
+
}], ariaKeyshortcuts: [{
|
|
351
|
+
type: HostBinding,
|
|
352
|
+
args: ['attr.aria-keyshortcuts']
|
|
353
|
+
}], ariaOwns: [{
|
|
354
|
+
type: HostBinding,
|
|
355
|
+
args: ['attr.aria-owns']
|
|
356
|
+
}], ariaRelevant: [{
|
|
357
|
+
type: HostBinding,
|
|
358
|
+
args: ['attr.aria-relevant']
|
|
359
|
+
}], ariaRoledescription: [{
|
|
360
|
+
type: HostBinding,
|
|
361
|
+
args: ['attr.aria-roledescription']
|
|
362
|
+
}], ariaRowcount: [{
|
|
363
|
+
type: HostBinding,
|
|
364
|
+
args: ['attr.aria-rowcount']
|
|
365
|
+
}], ariaRowindex: [{
|
|
366
|
+
type: HostBinding,
|
|
367
|
+
args: ['attr.aria-rowindex']
|
|
368
|
+
}], ariaRowindextext: [{
|
|
369
|
+
type: HostBinding,
|
|
370
|
+
args: ['attr.aria-rowindextext']
|
|
371
|
+
}], ariaRowspan: [{
|
|
372
|
+
type: HostBinding,
|
|
373
|
+
args: ['attr.aria-rowspan']
|
|
374
|
+
}], tabindex: [{
|
|
375
|
+
type: HostBinding,
|
|
376
|
+
args: ['attr.tabindex']
|
|
377
|
+
}], title: [{
|
|
378
|
+
type: HostBinding,
|
|
379
|
+
args: ['attr.title']
|
|
380
|
+
}], alt: [{
|
|
381
|
+
type: HostBinding,
|
|
382
|
+
args: ['attr.alt']
|
|
383
|
+
}], lang: [{
|
|
384
|
+
type: HostBinding,
|
|
385
|
+
args: ['attr.lang']
|
|
386
|
+
}], accesskey: [{
|
|
387
|
+
type: HostBinding,
|
|
388
|
+
args: ['attr.accesskey']
|
|
389
|
+
}], autocomplete: [{
|
|
390
|
+
type: HostBinding,
|
|
391
|
+
args: ['attr.autocomplete']
|
|
392
|
+
}], autofocus: [{
|
|
393
|
+
type: HostBinding,
|
|
394
|
+
args: ['attr.autofocus']
|
|
395
|
+
}], contenteditable: [{
|
|
396
|
+
type: HostBinding,
|
|
397
|
+
args: ['attr.contenteditable']
|
|
398
|
+
}], dir: [{
|
|
399
|
+
type: HostBinding,
|
|
400
|
+
args: ['attr.dir']
|
|
401
|
+
}], draggable: [{
|
|
402
|
+
type: HostBinding,
|
|
403
|
+
args: ['attr.draggable']
|
|
404
|
+
}], enterkeyhint: [{
|
|
405
|
+
type: HostBinding,
|
|
406
|
+
args: ['attr.enterkeyhint']
|
|
407
|
+
}], hidden: [{
|
|
408
|
+
type: HostBinding,
|
|
409
|
+
args: ['attr.hidden']
|
|
410
|
+
}], inputmode: [{
|
|
411
|
+
type: HostBinding,
|
|
412
|
+
args: ['attr.inputmode']
|
|
413
|
+
}], spellcheck: [{
|
|
414
|
+
type: HostBinding,
|
|
415
|
+
args: ['attr.spellcheck']
|
|
416
|
+
}], translate: [{
|
|
417
|
+
type: HostBinding,
|
|
418
|
+
args: ['attr.translate']
|
|
419
|
+
}], ariaMultiline: [{
|
|
420
|
+
type: HostBinding,
|
|
421
|
+
args: ['attr.aria-multiline']
|
|
422
|
+
}], for: [{
|
|
423
|
+
type: HostBinding,
|
|
424
|
+
args: ['attr.for']
|
|
425
|
+
}], form: [{
|
|
426
|
+
type: HostBinding,
|
|
427
|
+
args: ['attr.form']
|
|
428
|
+
}], headers: [{
|
|
429
|
+
type: HostBinding,
|
|
430
|
+
args: ['attr.headers']
|
|
431
|
+
}], placeholder: [{
|
|
432
|
+
type: HostBinding,
|
|
433
|
+
args: ['attr.placeholder']
|
|
434
|
+
}], readonly: [{
|
|
435
|
+
type: HostBinding,
|
|
436
|
+
args: ['attr.readonly']
|
|
437
|
+
}], required: [{
|
|
438
|
+
type: HostBinding,
|
|
439
|
+
args: ['attr.required']
|
|
189
440
|
}], headingComponent: [{
|
|
190
441
|
type: ContentChildren,
|
|
191
442
|
args: [AccordionHeaderComponent]
|
|
@@ -193,4 +444,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
193
444
|
type: ContentChildren,
|
|
194
445
|
args: [AccordionItemComponent]
|
|
195
446
|
}] } });
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktdmlld3MvY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktdmlld3MvY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBaUIsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlJLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRTNGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7OztBQU9uRixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsc0JBQXNCO0lBSjlEOztRQW9DRSxZQUFPLEdBQUcsSUFBSSxDQUFDO0tBa0hoQjtJQS9HQyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDN0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDNUQsSUFBSSxDQUFDLG1CQUFt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O2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRXlCLE9BQU87c0JBQXJDLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsT0FBTztnQkFDSCxRQUFRO3NCQUFqQyxXQUFXO3VCQUFDLFdBQVc7Z0JBQ1EsYUFBYTtzQkFBNUMsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBQ1EsbUJBQW1CO3NCQUF4RCxXQUFXO3VCQUFDLHVCQUF1QjtnQkFDQyxrQkFBa0I7c0JBQXRELFdBQVc7dUJBQUMsc0JBQXNCO2dCQUNGLGNBQWM7c0JBQTlDLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUNJLGdCQUFnQjtzQkFBbEQsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBQ0UsZ0JBQWdCO3NCQUFsRCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDQyxlQUFlO3NCQUFoRCxXQUFXO3VCQUFDLG1CQUFtQjtnQkFDRCxZQUFZO3NCQUExQyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFDTSxnQkFBZ0I7c0JBQWxELFdBQVc7dUJBQUMsb0JBQW9CO2dCQUNNLG9CQUFvQjtzQkFBMUQsV0FBVzt1QkFBQyx3QkFBd0I7Z0JBQ0YsZ0JBQWdCO3NCQUFsRCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDRCxhQUFhO3NCQUE1QyxXQUFXO3VCQUFDLGlCQUFpQjtnQkFHYSxnQkFBZ0I7c0JBQTFELGVBQWU7dUJBQUMsd0JBQXdCO2dCQUNBLGlCQUFpQjtzQkFBekQsZUFBZTt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkNoYW5nZXMsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZGVzeS1jb21tb25zL2NvbXBvbmVudHMvY29udGVudC9jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgRGVzeUNvbnRlbnRDaGlsZCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktY29udGVudC1jaGlsZC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQWNjb3JkaW9uSGVhZGVyRGF0YSwgQWNjb3JkaW9uSXRlbURhdGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFjY29yZGlvbkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vYWNjb3JkaW9uLWhlYWRlci9hY2NvcmRpb24taGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY2NvcmRpb25JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9hY2NvcmRpb24taXRlbS9hY2NvcmRpb24taXRlbS5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Rlc3ktYWNjb3JkaW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY29yZGlvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uQ29tcG9uZW50IGV4dGVuZHMgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgQFZpZXdDaGlsZHJlbignaXRlbVNlbGVjdG9yJykgaXRlbVNlbGVjdG9yczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuICBcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgQElucHV0KCkgaWRQcmVmaXg6IHN0cmluZztcbiAgQElucHV0KCkgYWxsb3dUb2dnbGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGFsbG93TXVsdGlwbGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGhlYWRpbmc6IEFjY29yZGlvbkhlYWRlckRhdGE7XG4gIEBJbnB1dCgpIGhlYWRpbmdMZXZlbDtcbiAgQElucHV0KCkgc2hvd0NvbnRyb2w6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGl0ZW1zOiBBY2NvcmRpb25JdGVtRGF0YVtdO1xuXG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzc2VzOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgcm9sZURhdGE6IGFueTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWwnKSBhcmlhTGFiZWxEYXRhOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JykgYXJpYURlc2NyaWJlZGJ5RGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbGxlZGJ5JykgYXJpYUxhYmVsbGVkYnlEYXRhOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWhpZGRlbicpIGFyaWFIaWRkZW5EYXRhOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRpc2FibGVkJykgYXJpYURpc2FibGVkRGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1jb250cm9scycpIGFyaWFDb250cm9sc0RhdGE6IGFueTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtY3VycmVudCcpIGFyaWFDdXJyZW50RGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1saXZlJykgYXJpYUxpdmVEYXRhOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWV4cGFuZGVkJykgYXJpYUV4cGFuZGVkRGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2UnKSBhcmlhRXJyb3JtZXNzYWdlRGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1oYXNwb3B1cCcpIGFyaWFIYXNwb3B1cERhdGE6IGFueTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbW9kYWwnKSBhcmlhTW9kYWxEYXRhOiBhbnlcblxuICBARGVzeUNvbnRlbnRDaGlsZCgpXG4gIEBDb250ZW50Q2hpbGRyZW4oQWNjb3JkaW9uSGVhZGVyQ29tcG9uZW50KSBoZWFkaW5nQ29tcG9uZW50OiBBY2NvcmRpb25IZWFkZXJDb21wb25lbnQ7XG4gIEBDb250ZW50Q2hpbGRyZW4oQWNjb3JkaW9uSXRlbUNvbXBvbmVudCkgaXRlbUNvbXBvbmVudExpc3Q6IFF1ZXJ5TGlzdDxBY2NvcmRpb25JdGVtQ29tcG9uZW50PjtcblxuICBzaG93QWxsID0gdHJ1ZTtcbiAgY3VycmVudEl0ZW06IG51bWJlcjtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5yb2xlRGF0YSA9IHRoaXMucm9sZSA/IHRoaXMucm9sZSA6IG51bGw7XG4gICAgdGhpcy5hcmlhTGFiZWxEYXRhID0gdGhpcy5hcmlhTGFiZWwgPyB0aGlzLmFyaWFMYWJlbCA6IG51bGw7XG4gICAgdGhpcy5hcmlhRGVzY3JpYmVkYnlEYXRhID0gdGhpcy5hcmlhRGVzY3JpYmVkQnkgPyB0aGlzLmFyaWFEZXNjcmliZWRCeSA6IG51bGw7XG4gICAgdGhpcy5hcmlhTGFiZWxsZWRieURhdGEgPSB0aGlzLmFyaWFMYWJlbGxlZEJ5ID8gdGhpcy5hcmlhTGFiZWxsZWRCeSA6IG51bGw7XG4gICAgdGhpcy5hcmlhSGlkZGVuRGF0YSA9IHRoaXMuYXJpYUhpZGRlbiA/IHRoaXMuYXJpYUhpZGRlbiA6IG51bGw7XG4gICAgdGhpcy5hcmlhRGlzYWJsZWREYXRhID0gdGhpcy5hcmlhRGlzYWJsZWQgPyB0aGlzLmFyaWFEaXNhYmxlZCA6IG51bGw7XG4gICAgdGhpcy5hcmlhQ29udHJvbHNEYXRhID0gdGhpcy5hcmlhQ29udHJvbHMgPyB0aGlzLmFyaWFDb250cm9scyA6IG51bGw7XG4gICAgdGhpcy5hcmlhQ3VycmVudERhdGEgPSB0aGlzLmFyaWFDdXJyZW50ID8gdGhpcy5hcmlhQ3VycmVudCA6IG51bGw7XG4gICAgdGhpcy5hcmlhTGl2ZURhdGEgPSB0aGlzLmFyaWFMaXZlID8gdGhpcy5hcmlhTGl2ZSA6IG51bGw7XG4gICAgdGhpcy5hcmlhRXhwYW5kZWREYXRhID0gdGhpcy5hcmlhRXhwYW5kZWQgPyB0aGlzLmFyaWFFeHBhbmRlZCA6IG51bGw7XG4gICAgdGhpcy5hcmlhRXJyb3JtZXNzYWdlRGF0YSA9IHRoaXMuYXJpYUVycm9yTWVzc2FnZSA/IHRoaXMuYXJpYUVycm9yTWVzc2FnZSA6IG51bGw7XG4gICAgdGhpcy5hcmlhSGFzcG9wdXBEYXRhID0gdGhpcy5hcmlhSGFzUG9wdXAgPyB0aGlzLmFyaWFIYXNQb3B1cCA6IG51bGw7XG4gICAgdGhpcy5hcmlhTW9kYWxEYXRhID0gdGhpcy5hcmlhTW9kYWwgPyB0aGlzLmFyaWFNb2RhbCA6IG51bGw7XG4gIH1cblxuICBnZXRJdGVtSWQoaXRlbSwgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgbGV0IGlkO1xuICAgIGlmIChpdGVtLmlkKSB7XG4gICAgICBpZCA9IGl0ZW0uaWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlkID0gdGhpcy5pZFByZWZpeCA/IHRoaXMuaWRQcmVmaXggKyAnLScgKyAoaW5kZXggKyAxKSA6IChpbmRleCArIDEpO1xuICAgIH1cbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICBjaGFuZ2VBbGwoKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldEl0ZW1zKCk7XG4gICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGNvbnN0IGlzQ2hhbmdlID0gaXRlbS5vcGVuICE9PSB0aGlzLnNob3dBbGw7XG4gICAgICBpdGVtLm9wZW4gPSB0aGlzLnNob3dBbGw7XG4gICAgICBpZiAoaXNDaGFuZ2UgJiYgaXRlbSBpbnN0YW5jZW9mIEFjY29yZGlvbkl0ZW1Db21wb25lbnQpIHtcbiAgICAgICAgaXRlbS5vcGVuQ2hhbmdlLmVtaXQoaXRlbS5vcGVuKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNob3dBbGwgPSAhdGhpcy5zaG93QWxsO1xuICB9XG5cbiAgdG9nZ2xlSXRlbShpdGVtOiBBY2NvcmRpb25JdGVtRGF0YSk6IHZvaWQge1xuICAgIGlmICghaXRlbS5vcGVuIHx8IHRoaXMuYWxsb3dUb2dnbGUpIHtcbiAgICAgIGNvbnN0IG5ld09wZW5WYWx1ZSA9ICFpdGVtLm9wZW47XG4gICAgICBpZiAoIXRoaXMuYWxsb3dNdWx0aXBsZSkge1xuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0SXRlbXMoKTtcbiAgICAgICAgaXRlbXMuZm9yRWFjaChpdCA9PiB7XG4gICAgICAgICAgY29uc3Qgd2FzT3BlbiA9IGl0Lm9wZW47XG4gICAgICAgICAgaXQub3BlbiA9IGZhbHNlO1xuICAgICAgICAgIGlmICh3YXNPcGVuICYmIGl0ICE9PSBpdGVtICYmIGl0IGluc3RhbmNlb2YgQWNjb3JkaW9uSXRlbUNvbXBvbmVudCkge1xuICAgICAgICAgICAgaXQub3BlbkNoYW5nZS5lbWl0KGl0Lm9wZW4pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpdGVtLm9wZW4gPSBuZXdPcGVuVmFsdWU7XG4gICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIEFjY29yZGlvbkl0ZW1Db21wb25lbnQpIHtcbiAgICAgICAgaXRlbS5vcGVuQ2hhbmdlLmVtaXQoaXRlbS5vcGVuKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmb2N1c0ZpcnN0SXRlbShldmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5pdGVtU2VsZWN0b3JzLnRvQXJyYXkoKVswXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBmb2N1c0xhc3RJdGVtKGV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLml0ZW1TZWxlY3RvcnMudG9BcnJheSgpW3RoaXMuaXRlbVNlbGVjdG9ycy5sZW5ndGggLSAxXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBmb2N1c05leHRJdGVtKGV2ZW50LCBmb2N1c2VkSXRlbTogbnVtYmVyKTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCBzZWxlY3RvcnMgPSB0aGlzLml0ZW1TZWxlY3RvcnMudG9BcnJheSgpO1xuICAgIGlmIChzZWxlY3RvcnNbKGZvY3VzZWRJdGVtICsgMSkgJSBzZWxlY3RvcnMubGVuZ3RoXSAhPSBudWxsKSB7XG4gICAgICBzZWxlY3RvcnNbKGZvY3VzZWRJdGVtICsgMSkgJSBzZWxlY3RvcnMubGVuZ3RoXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgZm9jdXNQcmV2aW91c0l0ZW0oZXZlbnQsIGZvY3VzZWRJdGVtOiBudW1iZXIpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IHNlbGVjdG9ycyA9IHRoaXMuaXRlbVNlbGVjdG9ycy50b0FycmF5KCk7XG4gICAgaWYgKHNlbGVjdG9yc1soZm9jdXNlZEl0ZW0gKyBzZWxlY3RvcnMubGVuZ3RoIC0gMSkgJSBzZWxlY3RvcnMubGVuZ3RoXSAhPSBudWxsKSB7XG4gICAgICBzZWxlY3RvcnNbKGZvY3VzZWRJdGVtICsgc2VsZWN0b3JzLmxlbmd0aCAtIDEpICUgc2VsZWN0b3JzLmxlbmd0aF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEl0ZW0oaTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50SXRlbSA9IGk7XG4gIH1cblxuICBnZXRUaXRsZUNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICBsZXQgY2xhc3NlcyA9ICdjLWgyIG1iLWJhc2UnO1xuICAgIGlmICh0aGlzLmhlYWRpbmdDb21wb25lbnQgJiYgdGhpcy5oZWFkaW5nQ29tcG9uZW50LmNsYXNzZXMpIHtcbiAgICAgIGNsYXNzZXMgPSB0aGlzLmhlYWRpbmdDb21wb25lbnQuY2xhc3NlcztcbiAgICB9IGVsc2UgaWYgKHRoaXMuaGVhZGluZyAmJiB0aGlzLmhlYWRpbmcuY2xhc3Nlcykge1xuICAgICAgY2xhc3NlcyA9IHRoaXMuaGVhZGluZy5jbGFzc2VzO1xuICAgIH1cbiAgICByZXR1cm4gY2xhc3NlcztcbiAgfVxuXG4gIGdldEl0ZW1zKCk6IEFjY29yZGlvbkl0ZW1EYXRhW10ge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pdGVtQ29tcG9uZW50TGlzdCAmJiB0aGlzLml0ZW1Db21wb25lbnRMaXN0Lmxlbmd0aCA+IDAgPyB0aGlzLml0ZW1Db21wb25lbnRMaXN0LnRvQXJyYXkoKSA6IHRoaXMuaXRlbXM7XG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG5cbiAgZ2V0SXRlbUhlYWRlcihpdGVtOiBBY2NvcmRpb25JdGVtRGF0YSk6IEFjY29yZGlvbkhlYWRlckNvbXBvbmVudCB7XG4gICAgcmV0dXJuIGl0ZW0gaW5zdGFuY2VvZiBBY2NvcmRpb25JdGVtQ29tcG9uZW50ID8gaXRlbS5oZWFkZXJDb21wb25lbnQgOiBudWxsO1xuICB9XG5cbiAgZ2V0SXRlbUNvbnRlbnQoaXRlbTogQWNjb3JkaW9uSXRlbURhdGEpOiBDb250ZW50Q29tcG9uZW50IHtcbiAgICByZXR1cm4gaXRlbSBpbnN0YW5jZW9mIEFjY29yZGlvbkl0ZW1Db21wb25lbnQgPyBpdGVtLmNvbnRlbnRDb21wb25lbnQgOiBudWxsO1xuICB9XG5cbn1cbiIsIlxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZ0NvbXBvbmVudCB8fCBoZWFkaW5nXCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJoZWFkaW5nTGV2ZWwgPiAwICYmIGhlYWRpbmdMZXZlbCA8IDYgPyBoZWFkaW5nTGV2ZWwgOiAyXCI+XG4gICAgICAgIDxoMSAqbmdTd2l0Y2hDYXNlPVwiMVwiIFtjbGFzc109XCJnZXRUaXRsZUNsYXNzZXMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgPyBoZWFkaW5nQ29tcG9uZW50IDogbnVsbCxcbiAgICAgICAgICAgIGh0bWw6IGhlYWRpbmcgPyBoZWFkaW5nLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogaGVhZGluZyA/IGhlYWRpbmcudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDE+XG4gICAgICAgIDxoMiAqbmdTd2l0Y2hDYXNlPVwiMlwiIFtjbGFzc109XCJnZXRUaXRsZUNsYXNzZXMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgPyBoZWFkaW5nQ29tcG9uZW50IDogbnVsbCxcbiAgICAgICAgICAgIGh0bWw6IGhlYWRpbmcgPyBoZWFkaW5nLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogaGVhZGluZyA/IGhlYWRpbmcudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDI+XG4gICAgICAgIDxoMyAqbmdTd2l0Y2hDYXNlPVwiM1wiIFtjbGFzc109XCJnZXRUaXRsZUNsYXNzZXMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgPyBoZWFkaW5nQ29tcG9uZW50IDogbnVsbCxcbiAgICAgICAgICAgIGh0bWw6IGhlYWRpbmcgPyBoZWFkaW5nLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogaGVhZGluZyA/IGhlYWRpbmcudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDM+XG4gICAgICAgIDxoNCAqbmdTd2l0Y2hDYXNlPVwiNFwiIFtjbGFzc109XCJnZXRUaXRsZUNsYXNzZXMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgPyBoZWFkaW5nQ29tcG9uZW50IDogbnVsbCxcbiAgICAgICAgICAgIGh0bWw6IGhlYWRpbmcgPyBoZWFkaW5nLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogaGVhZGluZyA/IGhlYWRpbmcudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDQ+XG4gICAgICAgIDxoNSAqbmdTd2l0Y2hDYXNlPVwiNVwiIFtjbGFzc109XCJnZXRUaXRsZUNsYXNzZXMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgPyBoZWFkaW5nQ29tcG9uZW50IDogbnVsbCxcbiAgICAgICAgICAgIGh0bWw6IGhlYWRpbmcgPyBoZWFkaW5nLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogaGVhZGluZyA/IGhlYWRpbmcudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxidXR0b24gW2F0dHIuaWRdPVwiaWRcIiAqbmdJZj1cInNob3dDb250cm9sXCIgKGNsaWNrKT1cImNoYW5nZUFsbCgpXCIgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibWwtYXV0byBweS1iYXNlIHRleHQtc20gdGV4dC1uZXV0cmFsLWRhcmsgdW5kZXJsaW5lIGZvY3VzOnRleHQtYmxhY2sgZm9jdXM6Ymctd2FybmluZy1iYXNlIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpzaGFkb3ctb3V0bGluZS1mb2N1cyB0ZXh0LXJpZ2h0XCI+XG4gICAgICAgIHt7c2hvd0FsbCA/ICdNb3N0cmFyJyA6ICdPY3VsdGFyJ319IHRvZG9cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIkFjY29yZGlvblwiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0SXRlbXMoKTsgaW5kZXggYXMgaVwiIGNsYXNzPVwiLW15LXB4IHB4LXhzIHB5LXNtIGJvcmRlci10IGJvcmRlci1iIGJvcmRlci1uZXV0cmFsLWJhc2VcIlxuICAgICAgICAgKGtleWRvd24uaG9tZSk9XCJmb2N1c0ZpcnN0SXRlbSgkZXZlbnQpXCJcbiAgICAgICAgIChrZXlkb3duLmVuZCk9XCJmb2N1c0xhc3RJdGVtKCRldmVudClcIlxuICAgICAgICAgKGtleWRvd24uYXJyb3d1cCk9XCJmb2N1c1ByZXZpb3VzSXRlbSgkZXZlbnQsIGkpXCJcbiAgICAgICAgIChrZXlkb3duLmFycm93ZG93bik9XCJmb2N1c05leHRJdGVtKCRldmVudCwgaSlcIlxuICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEl0ZW0oaSlcIj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaGVhZGluZ0xldmVsID4gMCAmJiBoZWFkaW5nTGV2ZWwgPCA2ID8gaGVhZGluZ0xldmVsIDogMlwiPlxuICAgICAgICA8aDIgKm5nU3dpdGNoQ2FzZT1cIjFcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2gyPlxuICAgICAgICA8aDMgKm5nU3dpdGNoQ2FzZT1cIjJcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2gzPlxuICAgICAgICA8aDQgKm5nU3dpdGNoQ2FzZT1cIjNcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2g0PlxuICAgICAgICA8aDUgKm5nU3dpdGNoQ2FzZT1cIjRcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2g1PlxuICAgICAgICA8aDYgKm5nU3dpdGNoQ2FzZT1cIjVcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2g2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8cCBjbGFzcz1cInNyLW9ubHlcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5IYXogY2xpY2sgZW4gZWwgYm90w7NuIGFudGVyaW9yIHBhcmEgbW9zdHJhciB1IG9jdWx0YXI8L3A+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS5vcGVuXCIgY2xhc3M9XCJBY2NvcmRpb24tcGFuZWxcIlxuICAgICAgICAgICBbY2xhc3NdPVwiaXRlbS5jbGFzc2VzXCJcbiAgICAgICAgICAgW2F0dHIuaWRdPVwiZ2V0SXRlbUlkKGl0ZW0sIGkpXCJcbiAgICAgICAgICAgW2F0dHIucm9sZV09XCIoaXRlbS5yb2xlID8gcm9sZSA6ICdhY2NvcmRpb24nKVwiICAgICAgICAgICBcbiAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJjdXJyZW50SXRlbSA9PT0gaSA/ICd0cnVlJyA6ICdmYWxzZSdcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIml0ZW0uYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwiaXRlbS5hcmlhRXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmFyaWFMYWJlbFwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpdGVtLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiaXRlbS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCInYWNjb3JkaW9uLScgKyBnZXRJdGVtSWQoaXRlbSwgaSlcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiaXRlbS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtbGl2ZV09XCJpdGVtLmFyaWFMaXZlXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpdGVtLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiaXRlbS5hcmlhSGFzUG9wdXBcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBnZXRJdGVtQ29udGVudChpdGVtKSwgaHRtbDogaXRlbS5odG1sLCB0ZXh0OiBpdGVtLnRleHQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPG5nLXRlbXBsYXRlICNpdGVtSGVhZGVyQ29udGVudCBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtaWQ9XCJpZFwiIGxldC1pbmRleD1cImluZGV4XCI+XG4gIDxidXR0b24gI2l0ZW1TZWxlY3RvciBbaWRdPVwiaWQgKyAnLXRpdGxlJ1wiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIkFjY29yZGlvbi10cmlnZ2VyIGdyb3VwIHJlbGF0aXZlIHctZnVsbCBweS1zbSBmb250LXNlbWlib2xkIHRleHQtbGVmdCBjdXJzb3ItcG9pbnRlciBmb2N1czpiZy13YXJuaW5nLWJhc2UgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnNoYWRvdy1vdXRsaW5lLWZvY3VzIGZvY3VzOnRleHQtYmxhY2tcIlxuICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiaWRcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIml0ZW0ub3BlblwiIChjbGljayk9XCJ0b2dnbGVJdGVtKGl0ZW0pXCIgW2F0dHIuZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiIFtuZ0NsYXNzXT1cIml0ZW0uZGlzYWJsZWQgPyAnY3Vyc29yLW5vdC1hbGxvd2VkJyA6IGNsYXNzZXNcIj5cbiAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGdldEl0ZW1IZWFkZXIoaXRlbSksIGh0bWw6IGl0ZW0uaGVhZGVySHRtbCwgdGV4dDogaXRlbS5oZWFkZXJUZXh0IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8c3BhbiAqbmdJZj1cIiFpdGVtLmRpc2FibGVkXCIgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC15LTAgcmlnaHQtMCBweS1zbSBmb250LW5vcm1hbCB0ZXh0LXNtIHRleHQtbmV1dHJhbC1kYXJrIHVuZGVybGluZSBncm91cC1mb2N1czp0ZXh0LWJsYWNrIHBvaW50ZXItZXZlbnRzLW5vbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBbbmdDbGFzc109XCJ7J2hpZGRlbic6IGl0ZW0uZGlzYWJsZWR9XCI+XG4gICAgICA8c3BhbiAqbmdJZj1cIiFpdGVtLm9wZW5cIiBbY2xhc3NdPVwiWydBY2NvcmRpb24tc2hvdycsIGl0ZW0uc2hvd0hlYWRlckJ1dHRvbj8uY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBpdGVtLnNob3dIZWFkZXJCdXR0b24sIHRleHQ6ICdNb3N0cmFyJyB9XCI+PC9uZy1jb250YWluZXI+ICAgICAgXG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cImFsbG93VG9nZ2xlICYmIGl0ZW0ub3BlblwiIFtjbGFzc109XCJbJ0FjY29yZGlvbi1oaWRlJywgaXRlbS5zaG93SGVhZGVyQnV0dG9uPy5jbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGl0ZW0uaGlkZUhlYWRlckJ1dHRvbiwgdGV4dDogJ09jdWx0YXInIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
447
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktdmlld3MvY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktdmlld3MvY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBaUIsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlJLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRTNGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7QUFPbkYsTUFBTSxPQUFPLGtCQUFtQixTQUFRLHNCQUFzQjtJQUo5RDs7UUFpQmlDLFlBQU8sR0FBUSxPQUFPLENBQUM7UUFDNUIsU0FBSSxHQUFXLElBQUksQ0FBQztRQUNkLGNBQVMsR0FBVyxJQUFJLENBQUM7UUFDbkIsb0JBQWUsR0FBVyxJQUFJLENBQUM7UUFDaEMsbUJBQWMsR0FBVyxJQUFJLENBQUM7UUFDbEMsZUFBVSxHQUFXLElBQUksQ0FBQztRQUN4QixpQkFBWSxHQUFXLElBQUksQ0FBQztRQUM1QixpQkFBWSxHQUFXLElBQUksQ0FBQztRQUM3QixnQkFBVyxHQUFXLElBQUksQ0FBQztRQUM5QixhQUFRLEdBQVcsSUFBSSxDQUFDO1FB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Vzt1QkFBQyxrQkFBa0I7Z0JBQ0QsUUFBUTtzQkFBckMsV0FBVzt1QkFBQyxlQUFlO2dCQUNFLFFBQVE7c0JBQXJDLFdBQVc7dUJBQUMsZUFBZTtnQkFHZSxnQkFBZ0I7c0JBQTFELGVBQWU7dUJBQUMsd0JBQXdCO2dCQUNBLGlCQUFpQjtzQkFBekQsZUFBZTt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkNoYW5nZXMsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZGVzeS1jb21tb25zL2NvbXBvbmVudHMvY29udGVudC9jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgRGVzeUNvbnRlbnRDaGlsZCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktY29udGVudC1jaGlsZC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQWNjb3JkaW9uSGVhZGVyRGF0YSwgQWNjb3JkaW9uSXRlbURhdGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFjY29yZGlvbkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vYWNjb3JkaW9uLWhlYWRlci9hY2NvcmRpb24taGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY2NvcmRpb25JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9hY2NvcmRpb24taXRlbS9hY2NvcmRpb24taXRlbS5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Rlc3ktYWNjb3JkaW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY29yZGlvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uQ29tcG9uZW50IGV4dGVuZHMgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgQFZpZXdDaGlsZHJlbignaXRlbVNlbGVjdG9yJykgaXRlbVNlbGVjdG9yczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuICBcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgQElucHV0KCkgaWRQcmVmaXg6IHN0cmluZztcbiAgQElucHV0KCkgYWxsb3dUb2dnbGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGFsbG93TXVsdGlwbGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGhlYWRpbmc6IEFjY29yZGlvbkhlYWRlckRhdGE7XG4gIEBJbnB1dCgpIGhlYWRpbmdMZXZlbDtcbiAgQElucHV0KCkgc2hvd0NvbnRyb2w6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGl0ZW1zOiBBY2NvcmRpb25JdGVtRGF0YVtdO1xuXG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzc2VzOiBhbnkgPSBcImJsb2NrXCI7XG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgcm9sZTogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWwnKSBhcmlhTGFiZWw6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JykgYXJpYURlc2NyaWJlZEJ5OiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbGxlZGJ5JykgYXJpYUxhYmVsbGVkQnk6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWhpZGRlbicpIGFyaWFIaWRkZW46IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRpc2FibGVkJykgYXJpYURpc2FibGVkOiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1jb250cm9scycpIGFyaWFDb250cm9sczogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtY3VycmVudCcpIGFyaWFDdXJyZW50OiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1saXZlJykgYXJpYUxpdmU6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWV4cGFuZGVkJykgYXJpYUV4cGFuZGVkOiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2UnKSBhcmlhRXJyb3JNZXNzYWdlOiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1oYXNwb3B1cCcpIGFyaWFIYXNQb3B1cDogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbW9kYWwnKSBhcmlhTW9kYWw6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWNoZWNrZWQnKSBhcmlhQ2hlY2tlZDogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtcHJlc3NlZCcpIGFyaWFQcmVzc2VkOiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1yZWFkb25seScpIGFyaWFSZWFkb25seTogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtcmVxdWlyZWQnKSBhcmlhUmVxdWlyZWQ6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXNlbGVjdGVkJykgYXJpYVNlbGVjdGVkOiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS12YWx1ZW1pbicpIGFyaWFWYWx1ZW1pbjogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtdmFsdWVtYXgnKSBhcmlhVmFsdWVtYXg6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXZhbHVlbm93JykgYXJpYVZhbHVlbm93OiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS12YWx1ZXRleHQnKSBhcmlhVmFsdWV0ZXh0OiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1vcmllbnRhdGlvbicpIGFyaWFPcmllbnRhdGlvbjogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGV2ZWwnKSBhcmlhTGV2ZWw6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLW11bHRpc2VsZWN0YWJsZScpIGFyaWFNdWx0aXNlbGVjdGFibGU6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXBsYWNlaG9sZGVyJykgYXJpYVBsYWNlaG9sZGVyOiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1wb3NpbnNldCcpIGFyaWFQb3NpbnNldDogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtc2V0c2l6ZScpIGFyaWFTZXRzaXplOiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1zb3J0JykgYXJpYVNvcnQ6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWJ1c3knKSBhcmlhQnVzeTogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZHJvcGVmZmVjdCcpIGFyaWFEcm9wZWZmZWN0OiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1ncmFiYmVkJykgYXJpYUdyYWJiZWQ6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnQnKSBhcmlhQWN0aXZlZGVzY2VuZGFudDogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtYXRvbWljJykgYXJpYUF0b21pYzogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtYXV0b2NvbXBsZXRlJykgYXJpYUF1dG9jb21wbGV0ZTogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtYnJhaWxsZWxhYmVsJykgYXJpYUJyYWlsbGVsYWJlbDogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtYnJhaWxsZXJvbGVkZXNjcmlwdGlvbicpIGFyaWFCcmFpbGxlcm9sZWRlc2NyaXB0aW9uOiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1jb2xjb3VudCcpIGFyaWFDb2xjb3VudDogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtY29saW5kZXgnKSBhcmlhQ29saW5kZXg6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWNvbGluZGV4dGV4dCcpIGFyaWFDb2xpbmRleHRleHQ6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWNvbHNwYW4nKSBhcmlhQ29sc3Bhbjogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpcHRpb24nKSBhcmlhRGVzY3JpcHRpb246IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRldGFpbHMnKSBhcmlhRGV0YWlsczogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZmxvd3RvJykgYXJpYUZsb3d0bzogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtaW52YWxpZCcpIGFyaWFJbnZhbGlkOiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1rZXlzaG9ydGN1dHMnKSBhcmlhS2V5c2hvcnRjdXRzOiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1vd25zJykgYXJpYU93bnM6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXJlbGV2YW50JykgYXJpYVJlbGV2YW50OiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1yb2xlZGVzY3JpcHRpb24nKSBhcmlhUm9sZWRlc2NyaXB0aW9uOiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1yb3djb3VudCcpIGFyaWFSb3djb3VudDogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtcm93aW5kZXgnKSBhcmlhUm93aW5kZXg6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXJvd2luZGV4dGV4dCcpIGFyaWFSb3dpbmRleHRleHQ6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXJvd3NwYW4nKSBhcmlhUm93c3Bhbjogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JykgdGFiaW5kZXg6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci50aXRsZScpIHRpdGxlOiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYWx0JykgYWx0OiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIubGFuZycpIGxhbmc6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hY2Nlc3NrZXknKSBhY2Nlc3NrZXk6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hdXRvY29tcGxldGUnKSBhdXRvY29tcGxldGU6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hdXRvZm9jdXMnKSBhdXRvZm9jdXM6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5jb250ZW50ZWRpdGFibGUnKSBjb250ZW50ZWRpdGFibGU6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5kaXInKSBkaXI6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5kcmFnZ2FibGUnKSBkcmFnZ2FibGU6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5lbnRlcmtleWhpbnQnKSBlbnRlcmtleWhpbnQ6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5oaWRkZW4nKSBoaWRkZW46IGJvb2xlYW4gPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuaW5wdXRtb2RlJykgaW5wdXRtb2RlOiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuc3BlbGxjaGVjaycpIHNwZWxsY2hlY2s6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci50cmFuc2xhdGUnKSB0cmFuc2xhdGU6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLW11bHRpbGluZScpIGFyaWFNdWx0aWxpbmU6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5mb3InKSBmb3I6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5mb3JtJykgZm9ybTogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmhlYWRlcnMnKSBoZWFkZXJzOiBzdHJpbmcgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIucGxhY2Vob2xkZXInKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJlYWRvbmx5JykgcmVhZG9ubHk6IHN0cmluZyA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5yZXF1aXJlZCcpIHJlcXVpcmVkOiBzdHJpbmcgPSBudWxsO1xuXG4gIEBEZXN5Q29udGVudENoaWxkKClcbiAgQENvbnRlbnRDaGlsZHJlbihBY2NvcmRpb25IZWFkZXJDb21wb25lbnQpIGhlYWRpbmdDb21wb25lbnQ6IEFjY29yZGlvbkhlYWRlckNvbXBvbmVudDtcbiAgQENvbnRlbnRDaGlsZHJlbihBY2NvcmRpb25JdGVtQ29tcG9uZW50KSBpdGVtQ29tcG9uZW50TGlzdDogUXVlcnlMaXN0PEFjY29yZGlvbkl0ZW1Db21wb25lbnQ+O1xuXG4gIHNob3dBbGwgPSB0cnVlO1xuICBjdXJyZW50SXRlbTogbnVtYmVyO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLmNsYXNzZXMgPSB0aGlzLmNsYXNzZXMgPyB0aGlzLmNsYXNzZXMgKyBcIiBibG9ja1wiIDogbnVsbDtcbiAgfVxuXG4gIGdldEl0ZW1JZChpdGVtLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBsZXQgaWQ7XG4gICAgaWYgKGl0ZW0uaWQpIHtcbiAgICAgIGlkID0gaXRlbS5pZDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWQgPSB0aGlzLmlkUHJlZml4ID8gdGhpcy5pZFByZWZpeCArICctJyArIChpbmRleCArIDEpIDogKGluZGV4ICsgMSk7XG4gICAgfVxuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIGNoYW5nZUFsbCgpOiB2b2lkIHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0SXRlbXMoKTtcbiAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgY29uc3QgaXNDaGFuZ2UgPSBpdGVtLm9wZW4gIT09IHRoaXMuc2hvd0FsbDtcbiAgICAgIGl0ZW0ub3BlbiA9IHRoaXMuc2hvd0FsbDtcbiAgICAgIGlmIChpc0NoYW5nZSAmJiBpdGVtIGluc3RhbmNlb2YgQWNjb3JkaW9uSXRlbUNvbXBvbmVudCkge1xuICAgICAgICBpdGVtLm9wZW5DaGFuZ2UuZW1pdChpdGVtLm9wZW4pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc2hvd0FsbCA9ICF0aGlzLnNob3dBbGw7XG4gIH1cblxuICB0b2dnbGVJdGVtKGl0ZW06IEFjY29yZGlvbkl0ZW1EYXRhKTogdm9pZCB7XG4gICAgaWYgKCFpdGVtLm9wZW4gfHwgdGhpcy5hbGxvd1RvZ2dsZSkge1xuICAgICAgY29uc3QgbmV3T3BlblZhbHVlID0gIWl0ZW0ub3BlbjtcbiAgICAgIGlmICghdGhpcy5hbGxvd011bHRpcGxlKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRJdGVtcygpO1xuICAgICAgICBpdGVtcy5mb3JFYWNoKGl0ID0+IHtcbiAgICAgICAgICBjb25zdCB3YXNPcGVuID0gaXQub3BlbjtcbiAgICAgICAgICBpdC5vcGVuID0gZmFsc2U7XG4gICAgICAgICAgaWYgKHdhc09wZW4gJiYgaXQgIT09IGl0ZW0gJiYgaXQgaW5zdGFuY2VvZiBBY2NvcmRpb25JdGVtQ29tcG9uZW50KSB7XG4gICAgICAgICAgICBpdC5vcGVuQ2hhbmdlLmVtaXQoaXQub3Blbik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGl0ZW0ub3BlbiA9IG5ld09wZW5WYWx1ZTtcbiAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgQWNjb3JkaW9uSXRlbUNvbXBvbmVudCkge1xuICAgICAgICBpdGVtLm9wZW5DaGFuZ2UuZW1pdChpdGVtLm9wZW4pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZvY3VzRmlyc3RJdGVtKGV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLml0ZW1TZWxlY3RvcnMudG9BcnJheSgpWzBdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIGZvY3VzTGFzdEl0ZW0oZXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuaXRlbVNlbGVjdG9ycy50b0FycmF5KClbdGhpcy5pdGVtU2VsZWN0b3JzLmxlbmd0aCAtIDFdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIGZvY3VzTmV4dEl0ZW0oZXZlbnQsIGZvY3VzZWRJdGVtOiBudW1iZXIpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IHNlbGVjdG9ycyA9IHRoaXMuaXRlbVNlbGVjdG9ycy50b0FycmF5KCk7XG4gICAgaWYgKHNlbGVjdG9yc1soZm9jdXNlZEl0ZW0gKyAxKSAlIHNlbGVjdG9ycy5sZW5ndGhdICE9IG51bGwpIHtcbiAgICAgIHNlbGVjdG9yc1soZm9jdXNlZEl0ZW0gKyAxKSAlIHNlbGVjdG9ycy5sZW5ndGhdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBmb2N1c1ByZXZpb3VzSXRlbShldmVudCwgZm9jdXNlZEl0ZW06IG51bWJlcik6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3Qgc2VsZWN0b3JzID0gdGhpcy5pdGVtU2VsZWN0b3JzLnRvQXJyYXkoKTtcbiAgICBpZiAoc2VsZWN0b3JzWyhmb2N1c2VkSXRlbSArIHNlbGVjdG9ycy5sZW5ndGggLSAxKSAlIHNlbGVjdG9ycy5sZW5ndGhdICE9IG51bGwpIHtcbiAgICAgIHNlbGVjdG9yc1soZm9jdXNlZEl0ZW0gKyBzZWxlY3RvcnMubGVuZ3RoIC0gMSkgJSBzZWxlY3RvcnMubGVuZ3RoXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0SXRlbShpOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRJdGVtID0gaTtcbiAgfVxuXG4gIGdldFRpdGxlQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgIGxldCBjbGFzc2VzID0gJ2MtaDIgbWItYmFzZSc7XG4gICAgaWYgKHRoaXMuaGVhZGluZ0NvbXBvbmVudCAmJiB0aGlzLmhlYWRpbmdDb21wb25lbnQuY2xhc3Nlcykge1xuICAgICAgY2xhc3NlcyA9IHRoaXMuaGVhZGluZ0NvbXBvbmVudC5jbGFzc2VzO1xuICAgIH0gZWxzZSBpZiAodGhpcy5oZWFkaW5nICYmIHRoaXMuaGVhZGluZy5jbGFzc2VzKSB7XG4gICAgICBjbGFzc2VzID0gdGhpcy5oZWFkaW5nLmNsYXNzZXM7XG4gICAgfVxuICAgIHJldHVybiBjbGFzc2VzO1xuICB9XG5cbiAgZ2V0SXRlbXMoKTogQWNjb3JkaW9uSXRlbURhdGFbXSB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1Db21wb25lbnRMaXN0ICYmIHRoaXMuaXRlbUNvbXBvbmVudExpc3QubGVuZ3RoID4gMCA/IHRoaXMuaXRlbUNvbXBvbmVudExpc3QudG9BcnJheSgpIDogdGhpcy5pdGVtcztcbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cblxuICBnZXRJdGVtSGVhZGVyKGl0ZW06IEFjY29yZGlvbkl0ZW1EYXRhKTogQWNjb3JkaW9uSGVhZGVyQ29tcG9uZW50IHtcbiAgICByZXR1cm4gaXRlbSBpbnN0YW5jZW9mIEFjY29yZGlvbkl0ZW1Db21wb25lbnQgPyBpdGVtLmhlYWRlckNvbXBvbmVudCA6IG51bGw7XG4gIH1cblxuICBnZXRJdGVtQ29udGVudChpdGVtOiBBY2NvcmRpb25JdGVtRGF0YSk6IENvbnRlbnRDb21wb25lbnQge1xuICAgIHJldHVybiBpdGVtIGluc3RhbmNlb2YgQWNjb3JkaW9uSXRlbUNvbXBvbmVudCA/IGl0ZW0uY29udGVudENvbXBvbmVudCA6IG51bGw7XG4gIH1cblxufVxuIiwiXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlblwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkaW5nQ29tcG9uZW50IHx8IGhlYWRpbmdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImhlYWRpbmdMZXZlbCA+IDAgJiYgaGVhZGluZ0xldmVsIDwgNiA/IGhlYWRpbmdMZXZlbCA6IDJcIj5cbiAgICAgICAgPGgxICpuZ1N3aXRjaENhc2U9XCIxXCIgW2NsYXNzXT1cImdldFRpdGxlQ2xhc3NlcygpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cIntcbiAgICAgICAgICAgIGNvbXBvbmVudDogaGVhZGluZ0NvbXBvbmVudCA/IGhlYWRpbmdDb21wb25lbnQgOiBudWxsLFxuICAgICAgICAgICAgaHRtbDogaGVhZGluZyA/IGhlYWRpbmcuaHRtbCA6IG51bGwsXG4gICAgICAgICAgICB0ZXh0OiBoZWFkaW5nID8gaGVhZGluZy50ZXh0IDogbnVsbFxuICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9oMT5cbiAgICAgICAgPGgyICpuZ1N3aXRjaENhc2U9XCIyXCIgW2NsYXNzXT1cImdldFRpdGxlQ2xhc3NlcygpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cIntcbiAgICAgICAgICAgIGNvbXBvbmVudDogaGVhZGluZ0NvbXBvbmVudCA/IGhlYWRpbmdDb21wb25lbnQgOiBudWxsLFxuICAgICAgICAgICAgaHRtbDogaGVhZGluZyA/IGhlYWRpbmcuaHRtbCA6IG51bGwsXG4gICAgICAgICAgICB0ZXh0OiBoZWFkaW5nID8gaGVhZGluZy50ZXh0IDogbnVsbFxuICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9oMj5cbiAgICAgICAgPGgzICpuZ1N3aXRjaENhc2U9XCIzXCIgW2NsYXNzXT1cImdldFRpdGxlQ2xhc3NlcygpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cIntcbiAgICAgICAgICAgIGNvbXBvbmVudDogaGVhZGluZ0NvbXBvbmVudCA/IGhlYWRpbmdDb21wb25lbnQgOiBudWxsLFxuICAgICAgICAgICAgaHRtbDogaGVhZGluZyA/IGhlYWRpbmcuaHRtbCA6IG51bGwsXG4gICAgICAgICAgICB0ZXh0OiBoZWFkaW5nID8gaGVhZGluZy50ZXh0IDogbnVsbFxuICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9oMz5cbiAgICAgICAgPGg0ICpuZ1N3aXRjaENhc2U9XCI0XCIgW2NsYXNzXT1cImdldFRpdGxlQ2xhc3NlcygpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cIntcbiAgICAgICAgICAgIGNvbXBvbmVudDogaGVhZGluZ0NvbXBvbmVudCA/IGhlYWRpbmdDb21wb25lbnQgOiBudWxsLFxuICAgICAgICAgICAgaHRtbDogaGVhZGluZyA/IGhlYWRpbmcuaHRtbCA6IG51bGwsXG4gICAgICAgICAgICB0ZXh0OiBoZWFkaW5nID8gaGVhZGluZy50ZXh0IDogbnVsbFxuICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9oND5cbiAgICAgICAgPGg1ICpuZ1N3aXRjaENhc2U9XCI1XCIgW2NsYXNzXT1cImdldFRpdGxlQ2xhc3NlcygpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cIntcbiAgICAgICAgICAgIGNvbXBvbmVudDogaGVhZGluZ0NvbXBvbmVudCA/IGhlYWRpbmdDb21wb25lbnQgOiBudWxsLFxuICAgICAgICAgICAgaHRtbDogaGVhZGluZyA/IGhlYWRpbmcuaHRtbCA6IG51bGwsXG4gICAgICAgICAgICB0ZXh0OiBoZWFkaW5nID8gaGVhZGluZy50ZXh0IDogbnVsbFxuICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9oNT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPGJ1dHRvbiBbYXR0ci5pZF09XCJpZFwiICpuZ0lmPVwic2hvd0NvbnRyb2xcIiAoY2xpY2spPVwiY2hhbmdlQWxsKClcIiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtbC1hdXRvIHB5LWJhc2UgdGV4dC1zbSB0ZXh0LW5ldXRyYWwtZGFyayB1bmRlcmxpbmUgZm9jdXM6dGV4dC1ibGFjayBmb2N1czpiZy13YXJuaW5nLWJhc2UgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnNoYWRvdy1vdXRsaW5lLWZvY3VzIHRleHQtcmlnaHRcIj5cbiAgICAgICAge3tzaG93QWxsID8gJ01vc3RyYXInIDogJ09jdWx0YXInfX0gdG9kb1xuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiQWNjb3JkaW9uXCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRJdGVtcygpOyBpbmRleCBhcyBpXCIgY2xhc3M9XCItbXktcHggcHgteHMgcHktc20gYm9yZGVyLXQgYm9yZGVyLWIgYm9yZGVyLW5ldXRyYWwtYmFzZVwiXG4gICAgICAgICAoa2V5ZG93bi5ob21lKT1cImZvY3VzRmlyc3RJdGVtKCRldmVudClcIlxuICAgICAgICAgKGtleWRvd24uZW5kKT1cImZvY3VzTGFzdEl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAoa2V5ZG93bi5hcnJvd3VwKT1cImZvY3VzUHJldmlvdXNJdGVtKCRldmVudCwgaSlcIlxuICAgICAgICAgKGtleWRvd24uYXJyb3dkb3duKT1cImZvY3VzTmV4dEl0ZW0oJGV2ZW50LCBpKVwiXG4gICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShpKVwiPlxuXG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJoZWFkaW5nTGV2ZWwgPiAwICYmIGhlYWRpbmdMZXZlbCA8IDYgPyBoZWFkaW5nTGV2ZWwgOiAyXCI+XG4gICAgICAgIDxoMiAqbmdTd2l0Y2hDYXNlPVwiMVwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtSGVhZGVyQ29udGVudDsgY29udGV4dDoge2l0ZW06IGl0ZW0sIGlkOiBnZXRJdGVtSWQoaXRlbSwgaSksIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPjwvaDI+XG4gICAgICAgIDxoMyAqbmdTd2l0Y2hDYXNlPVwiMlwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtSGVhZGVyQ29udGVudDsgY29udGV4dDoge2l0ZW06IGl0ZW0sIGlkOiBnZXRJdGVtSWQoaXRlbSwgaSksIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPjwvaDM+XG4gICAgICAgIDxoNCAqbmdTd2l0Y2hDYXNlPVwiM1wiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtSGVhZGVyQ29udGVudDsgY29udGV4dDoge2l0ZW06IGl0ZW0sIGlkOiBnZXRJdGVtSWQoaXRlbSwgaSksIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPjwvaDQ+XG4gICAgICAgIDxoNSAqbmdTd2l0Y2hDYXNlPVwiNFwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtSGVhZGVyQ29udGVudDsgY29udGV4dDoge2l0ZW06IGl0ZW0sIGlkOiBnZXRJdGVtSWQoaXRlbSwgaSksIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPjwvaDU+XG4gICAgICAgIDxoNiAqbmdTd2l0Y2hDYXNlPVwiNVwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtSGVhZGVyQ29udGVudDsgY29udGV4dDoge2l0ZW06IGl0ZW0sIGlkOiBnZXRJdGVtSWQoaXRlbSwgaSksIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPjwvaDY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxwIGNsYXNzPVwic3Itb25seVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPkhheiBjbGljayBlbiBlbCBib3TDs24gYW50ZXJpb3IgcGFyYSBtb3N0cmFyIHUgb2N1bHRhcjwvcD5cbiAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLm9wZW5cIiBjbGFzcz1cImMtYWNjb3JkaW9uX19wYW5lbFwiXG4gICAgICAgICAgIFtjbGFzc109XCJpdGVtLmNsYXNzZXNcIlxuICAgICAgICAgICBbYXR0ci5pZF09XCJnZXRJdGVtSWQoaXRlbSwgaSlcIlxuICAgICAgICAgICBbZGVzeUFwcEFjY2Vzc2liaWxpdHldPVwiaXRlbVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGdldEl0ZW1Db250ZW50KGl0ZW0pLCBodG1sOiBpdGVtLmh0bWwsIHRleHQ6IGl0ZW0udGV4dCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48bmctdGVtcGxhdGUgI2l0ZW1IZWFkZXJDb250ZW50IGxldC1pdGVtPVwiaXRlbVwiIGxldC1pZD1cImlkXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgPGJ1dHRvbiAjaXRlbVNlbGVjdG9yIFtpZF09XCJpZCArICctdGl0bGUnXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZ3JvdXAgcmVsYXRpdmUgdy1mdWxsIHB5LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1sZWZ0IGN1cnNvci1wb2ludGVyIGZvY3VzOmJnLXdhcm5pbmctYmFzZSBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6c2hhZG93LW91dGxpbmUtZm9jdXMgZm9jdXM6dGV4dC1ibGFja1wiXG4gICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpZFwiIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXRlbS5vcGVuID09PSB0cnVlID8gJ3RydWUnIDogJ2ZhbHNlJ1wiIChjbGljayk9XCJ0b2dnbGVJdGVtKGl0ZW0pXCIgW2F0dHIuZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiIFtuZ0NsYXNzXT1cIml0ZW0uZGlzYWJsZWQgPyAnY3Vyc29yLW5vdC1hbGxvd2VkJyA6ICcnXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBnZXRJdGVtSGVhZGVyKGl0ZW0pLCBodG1sOiBpdGVtLmhlYWRlckh0bWwsIHRleHQ6IGl0ZW0uaGVhZGVyVGV4dCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPHNwYW4gKm5nSWY9XCIhaXRlbS5kaXNhYmxlZFwiIGNsYXNzPVwiYWJzb2x1dGUgaW5zZXQteS0wIHJpZ2h0LTAgcHktc20gZm9udC1ub3JtYWwgdGV4dC1zbSB0ZXh0LW5ldXRyYWwtZGFyayB1bmRlcmxpbmUgZ3JvdXAtZm9jdXM6dGV4dC1ibGFjayBwb2ludGVyLWV2ZW50cy1ub25lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgW25nQ2xhc3NdPVwieydoaWRkZW4nOiBpdGVtLmRpc2FibGVkfVwiPlxuICAgICAgPHNwYW4gKm5nSWY9XCIhaXRlbS5vcGVuXCIgW2NsYXNzXT1cIlsnQWNjb3JkaW9uLXNob3cnLCBpdGVtLnNob3dIZWFkZXJCdXR0b24/LmNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogaXRlbS5zaG93SGVhZGVyQnV0dG9uLCB0ZXh0OiAnTW9zdHJhcicgfVwiPjwvbmctY29udGFpbmVyPiAgICAgIFxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJhbGxvd1RvZ2dsZSAmJiBpdGVtLm9wZW5cIiBbY2xhc3NdPVwiWydBY2NvcmRpb24taGlkZScsIGl0ZW0uc2hvd0hlYWRlckJ1dHRvbj8uY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBpdGVtLmhpZGVIZWFkZXJCdXR0b24sIHRleHQ6ICdPY3VsdGFyJyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L3NwYW4+XG4gICAgPC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|