@acorex/components 7.4.7 → 7.5.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.
Files changed (135) hide show
  1. package/button/lib/button.module.d.ts +2 -1
  2. package/common/lib/classes/datalist.class.d.ts +3 -3
  3. package/common/lib/components/selection-base.component.class.d.ts +3 -9
  4. package/datetime-box/lib/datetime-box.component.d.ts +2 -1
  5. package/dialog/lib/dialog.class.d.ts +4 -2
  6. package/dialog/lib/dialog.service.d.ts +3 -2
  7. package/dropdown/lib/dropdown-box.component.d.ts +1 -0
  8. package/esm2022/action-sheet/lib/action-sheet.component.mjs +2 -2
  9. package/esm2022/alert/lib/alert.component.mjs +12 -12
  10. package/esm2022/avatar/lib/avatar.component.mjs +2 -2
  11. package/esm2022/button/lib/button.component.mjs +2 -2
  12. package/esm2022/button/lib/button.module.mjs +4 -3
  13. package/esm2022/common/lib/classes/datalist.class.mjs +52 -1
  14. package/esm2022/common/lib/components/selection-base.component.class.mjs +13 -36
  15. package/esm2022/common/lib/components/value-component.class.mjs +3 -3
  16. package/esm2022/datetime-box/lib/datetime-box.component.mjs +8 -6
  17. package/esm2022/decorators/lib/components/generic-content.component.mjs +21 -21
  18. package/esm2022/decorators/lib/components/icon.component.mjs +3 -3
  19. package/esm2022/dialog/lib/dialog.class.mjs +1 -1
  20. package/esm2022/dialog/lib/dialog.component.mjs +3 -17
  21. package/esm2022/dialog/lib/dialog.service.mjs +47 -24
  22. package/esm2022/dropdown/lib/dropdown-box.component.mjs +8 -5
  23. package/esm2022/dropdown/lib/dropdown-panel.component.mjs +3 -3
  24. package/esm2022/form/lib/form-field.component.mjs +2 -2
  25. package/esm2022/label/lib/label.component.mjs +2 -2
  26. package/esm2022/list/acorex-components-list.mjs +5 -0
  27. package/esm2022/list/index.mjs +3 -0
  28. package/esm2022/list/lib/list.component.mjs +221 -0
  29. package/esm2022/list/lib/list.module.mjs +22 -0
  30. package/esm2022/loading/lib/loading.module.mjs +22 -8
  31. package/esm2022/loading/lib/loading.service.mjs +9 -13
  32. package/esm2022/menu/index.mjs +4 -1
  33. package/esm2022/menu/lib/class/root-menu.class.mjs +3 -0
  34. package/esm2022/menu/lib/menu-item/menu-item.component.mjs +96 -0
  35. package/esm2022/menu/lib/menu.component.mjs +4 -4
  36. package/esm2022/menu/lib/menu.module.mjs +11 -16
  37. package/esm2022/menu/lib/menu2.component.mjs +45 -0
  38. package/esm2022/mixin/lib/datalist.class.mjs +46 -2
  39. package/esm2022/notification/lib/notification.component.mjs +7 -7
  40. package/esm2022/popover/lib/popover.component.mjs +8 -5
  41. package/esm2022/popup/lib/popup.component.mjs +1 -2
  42. package/esm2022/popup/lib/popup.service.mjs +1 -2
  43. package/esm2022/progress-bar/lib/progress-bar.component.mjs +2 -2
  44. package/esm2022/result/lib/result.component.mjs +2 -2
  45. package/esm2022/select-box/index.mjs +2 -1
  46. package/esm2022/select-box/lib/select-box.component.mjs +3 -3
  47. package/esm2022/select-box/lib/select-box.module.mjs +15 -6
  48. package/esm2022/select-box/lib/select-box2.component.mjs +97 -0
  49. package/esm2022/selection-list/lib/selection-list.component.mjs +22 -7
  50. package/esm2022/tabs/lib/tabs.component.mjs +2 -2
  51. package/esm2022/text-area/lib/text-area.component.mjs +14 -6
  52. package/esm2022/toast/lib/toast.component.mjs +5 -5
  53. package/fesm2022/acorex-components-action-sheet.mjs +2 -2
  54. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  55. package/fesm2022/acorex-components-alert.mjs +11 -11
  56. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  57. package/fesm2022/acorex-components-avatar.mjs +2 -2
  58. package/fesm2022/acorex-components-button.mjs +5 -4
  59. package/fesm2022/acorex-components-button.mjs.map +1 -1
  60. package/fesm2022/acorex-components-common.mjs +65 -37
  61. package/fesm2022/acorex-components-common.mjs.map +1 -1
  62. package/fesm2022/acorex-components-datetime-box.mjs +7 -5
  63. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  64. package/fesm2022/acorex-components-decorators.mjs +22 -22
  65. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  66. package/fesm2022/acorex-components-dialog.mjs +47 -38
  67. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  68. package/fesm2022/acorex-components-dropdown.mjs +9 -7
  69. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  70. package/fesm2022/acorex-components-form.mjs +2 -2
  71. package/fesm2022/acorex-components-form.mjs.map +1 -1
  72. package/fesm2022/acorex-components-label.mjs +2 -2
  73. package/fesm2022/acorex-components-label.mjs.map +1 -1
  74. package/fesm2022/acorex-components-list.mjs +246 -0
  75. package/fesm2022/acorex-components-list.mjs.map +1 -0
  76. package/fesm2022/acorex-components-loading.mjs +23 -15
  77. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  78. package/fesm2022/acorex-components-menu.mjs +148 -21
  79. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  80. package/fesm2022/acorex-components-mixin.mjs +46 -1
  81. package/fesm2022/acorex-components-mixin.mjs.map +1 -1
  82. package/fesm2022/acorex-components-notification.mjs +7 -7
  83. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  84. package/fesm2022/acorex-components-popover.mjs +7 -4
  85. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  86. package/fesm2022/acorex-components-popup.mjs +0 -2
  87. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  88. package/fesm2022/acorex-components-progress-bar.mjs +2 -2
  89. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  90. package/fesm2022/acorex-components-result.mjs +2 -2
  91. package/fesm2022/acorex-components-select-box.mjs +116 -18
  92. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  93. package/fesm2022/acorex-components-selection-list.mjs +21 -6
  94. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  95. package/fesm2022/acorex-components-tabs.mjs +2 -2
  96. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  97. package/fesm2022/acorex-components-text-area.mjs +13 -5
  98. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  99. package/fesm2022/acorex-components-toast.mjs +3 -3
  100. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  101. package/list/README.md +3 -0
  102. package/list/index.d.ts +2 -0
  103. package/list/lib/list.component.d.ts +59 -0
  104. package/list/lib/list.module.d.ts +9 -0
  105. package/loading/lib/loading.module.d.ts +3 -2
  106. package/menu/index.d.ts +3 -0
  107. package/menu/lib/class/root-menu.class.d.ts +4 -0
  108. package/menu/lib/menu-item/menu-item.component.d.ts +22 -0
  109. package/menu/lib/menu.component.d.ts +3 -3
  110. package/menu/lib/menu.module.d.ts +10 -7
  111. package/menu/lib/menu2.component.d.ts +12 -0
  112. package/mixin/lib/base-components.class.d.ts +2 -2
  113. package/mixin/lib/base-menu-mixin.class.d.ts +5 -5
  114. package/mixin/lib/button-mixin.class.d.ts +2 -2
  115. package/mixin/lib/clickable-mixin.class.d.ts +2 -2
  116. package/mixin/lib/color-look-mixing.class.d.ts +2 -2
  117. package/mixin/lib/datalist-component.class.d.ts +10 -10
  118. package/mixin/lib/datalist.class.d.ts +38 -0
  119. package/mixin/lib/dropdown-mixin.class.d.ts +2 -2
  120. package/mixin/lib/interactive-mixin.class.d.ts +4 -4
  121. package/mixin/lib/mixin.class.d.ts +61 -61
  122. package/mixin/lib/page-component.class.d.ts +2 -2
  123. package/mixin/lib/selection-component.class.d.ts +2 -2
  124. package/mixin/lib/sizable-mixin.class.d.ts +2 -2
  125. package/mixin/lib/textbox-mixin.class.d.ts +2 -2
  126. package/mixin/lib/value-mixin.class.d.ts +8 -8
  127. package/notification/lib/notification.component.d.ts +3 -3
  128. package/package.json +7 -1
  129. package/popover/lib/popover.component.d.ts +2 -1
  130. package/select-box/index.d.ts +1 -0
  131. package/select-box/lib/select-box.module.d.ts +15 -12
  132. package/select-box/lib/select-box2.component.d.ts +25 -0
  133. package/selection-list/lib/selection-list.component.d.ts +5 -1
  134. package/text-area/lib/text-area.component.d.ts +10 -3
  135. package/toast/lib/toast.component.d.ts +3 -3
@@ -1,9 +1,9 @@
1
1
  import { Overlay } from '@angular/cdk/overlay';
2
2
  import { ComponentPortal } from '@angular/cdk/portal';
3
- import { Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChild, TemplateRef, ElementRef, ChangeDetectorRef, Input, } from '@angular/core';
4
3
  import { AXBaseMenuMixin } from '@acorex/components/mixin';
5
4
  import { AXPlatform } from '@acorex/core/platform';
6
5
  import { AXTranslator } from '@acorex/core/translation';
6
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, Input, TemplateRef, ViewEncapsulation, } from '@angular/core';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/cdk/overlay";
9
9
  import * as i2 from "@acorex/core/platform";
@@ -319,7 +319,7 @@ export class AXMenuComponent extends AXBaseMenuMixin {
319
319
  this.cdr.markForCheck();
320
320
  }
321
321
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i2.AXPlatform }], target: i0.ɵɵFactoryTarget.Component }); }
322
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXMenuComponent, selector: "ax-menu", inputs: { disabled: "disabled", tabIndex: "tabIndex", textField: "textField", valueField: "valueField", items: "items", parentId: "parentId", iconField: "iconField", tooltip: "tooltip", opened: "opened", visibleField: "visibleField", disableField: "disableField", hasChildField: "hasChildField", dividerField: "dividerField", openMode: "openMode", displayMode: "displayMode", showModal: "showModal", activeCallback: "activeCallback" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", onMenuItemClick: "onMenuItemClick" }, queries: [{ propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }, { propertyName: "_contentItemTemplate", first: true, predicate: ["itemTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: displayItems, isRoot: true }\"></ng-container>\n </ul>\n <ng-template #recursiveListTmpl let-list=\"list\" let-isRoot=\"isRoot\">\n <ng-container *ngFor=\"let item of list\">\n <li *ngIf=\"item[visibleField] != false\" [class.ax-state-disabled]=\"item[disableField]\"\n (click)=\"_onMenuClick($event, item)\">\n <div class=\"ax-menu-item\" [ngClass]=\"{\n 'ax-is-parent': item.children?.length,\n 'ax-is-child': !isRoot,\n 'ax-state-active ': item.isActive\n }\" *ngIf=\"itemTemplate == null; else tmpItem\">\n <div class=\"ax-menu-item-prefix\">\n <span class=\"ax-menu-item-icon\" *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></span>\n <span>{{ _getItemDisplayTextTemplte(item) }}</span>\n </div>\n <div class=\"ax-menu-item-suffix\">\n <span class=\"ax-menu-item-icon ax-icon ax-menu-item-icon-chevron\" [ngClass]=\"{\n 'ax-icon-chevron-down': item?.children?.length > 0,\n 'ax-menu-active-icon': item.opened\n }\" *ngIf=\"!item.isLoading\"></span>\n <ax-loading *ngIf=\"item.isLoading\"> </ax-loading>\n </div>\n </div>\n <!--------------- check for custom item template --------------->\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"> </ng-container>\n </ng-container>\n </ng-template>\n <ul *ngIf=\"item?.children?.length > 0 && item.opened && !_overlayRef\"\n [class.ax-state-disabled]=\"item[disableField]\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n <li class=\"ax-menu-item-divider\" *ngIf=\"item[this.dividerField]\"></li>\n </ng-container>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <ng-template>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [context]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <!--------------- check for custom template --------------->\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n {{ 'common.no-result-found' | trans }}\n </ng-template>\n </ng-container>\n</ng-template>", styles: ["ax-menu{font-size:.875rem;display:block}ax-menu ul{width:-moz-fit-content;width:fit-content;display:flex;flex-direction:column}ax-menu ul li.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item{display:flex}ax-menu ul li .ax-menu-item.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item .ax-menu-item-prefix,ax-menu ul li .ax-menu-item .ax-menu-item-suffix{display:flex;align-items:center;justify-content:center}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon-chevron,ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon-chevron{transform:rotate(-90deg)}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon:not(:empty),ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon:not(:empty){min-width:1.25rem;min-height:1.25rem}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon{padding-inline-end:.5rem}ax-menu ul li .ax-menu-item .ax-menu-item-icon{font-size:1.25rem}ax-menu ul li.ax-state-disabled{cursor:not-allowed!important;opacity:.5}ax-menu ul li.ax-state-active .ax-menu-item-icon-chevron{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-menu .ax-horizontal>li,ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-horizontal{flex-direction:row;align-items:center}ax-menu .ax-horizontal .ax-menu-item-divider{width:1px;height:1rem;background-color:rgba(var(--ax-color-default))}ax-menu .ax-horizontal li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-horizontal li:not(.ax-menu-item-divider){padding:.5rem;cursor:pointer}ax-menu .ax-vertical{flex-direction:column;width:100%}ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-vertical .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-default));margin:.375rem 0}ax-menu .ax-vertical li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-vertical li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul{background-color:rgba(var(--ax-color-surface));border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);padding:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-menu .ax-vertical.ax-submenu-ul li{border-radius:var(--ax-rounded-border-default);cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-menu-item-divider){padding:.5rem}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-state-disabled,.ax-menu-item-divider):hover{background-color:rgba(var(--ax-color-default));color:rgba(var(--ax-color-default-fore))}ax-menu .ax-side-menu{width:100%;flex-direction:column;gap:.5rem;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}ax-menu .ax-side-menu .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-default));margin:.375rem 0}ax-menu .ax-side-menu ul{display:flex;flex-direction:column;margin-top:.5rem;width:100%;padding-inline-start:.75rem}ax-menu .ax-side-menu li .ax-menu-item-icon-chevron.ax-menu-active-icon{transform:rotate(180deg)!important}ax-menu .ax-side-menu li .ax-menu-item{justify-content:space-between}ax-menu .ax-side-menu li .ax-menu-item.ax-is-parent{font-weight:500}ax-menu .ax-side-menu li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer;font-size:1rem}ax-menu .ax-side-menu li:not(.ax-menu-item-divider) .ax-is-child{font-size:.875rem}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
322
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXMenuComponent, selector: "ax-menu", inputs: { disabled: "disabled", tabIndex: "tabIndex", textField: "textField", valueField: "valueField", items: "items", parentId: "parentId", iconField: "iconField", tooltip: "tooltip", opened: "opened", visibleField: "visibleField", disableField: "disableField", hasChildField: "hasChildField", dividerField: "dividerField", openMode: "openMode", displayMode: "displayMode", showModal: "showModal", activeCallback: "activeCallback" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", onMenuItemClick: "onMenuItemClick" }, queries: [{ propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }, { propertyName: "_contentItemTemplate", first: true, predicate: ["itemTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\n <ng-container\n *ngTemplateOutlet=\"recursiveListTmpl; context: { list: displayItems, isRoot: true }\"\n ></ng-container>\n </ul>\n <ng-template #recursiveListTmpl let-list=\"list\" let-isRoot=\"isRoot\">\n <ng-container *ngFor=\"let item of list\">\n <li\n *ngIf=\"item[visibleField] !== false\"\n [class.ax-state-disabled]=\"item[disableField]\"\n (click)=\"_onMenuClick($event, item)\"\n >\n <div\n class=\"ax-menu-item\"\n [ngClass]=\"{\n 'ax-is-parent': item.children?.length,\n 'ax-is-child': !isRoot,\n 'ax-state-active ': item.isActive\n }\"\n *ngIf=\"itemTemplate == null; else tmpItem\"\n >\n <div class=\"ax-menu-item-prefix\">\n <span class=\"ax-menu-item-icon\" *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></span>\n <span>{{ _getItemDisplayTextTemplte(item) }}</span>\n </div>\n <div class=\"ax-menu-item-suffix\">\n <span\n class=\"ax-menu-item-icon ax-icon ax-menu-item-icon-chevron\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': item?.children?.length > 0,\n 'ax-menu-active-icon': item.opened\n }\"\n *ngIf=\"!item.isLoading\"\n ></span>\n <ax-loading *ngIf=\"item.isLoading\"> </ax-loading>\n </div>\n </div>\n <!--------------- check for custom item template --------------->\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"> </ng-container>\n </ng-container>\n </ng-template>\n <ul\n *ngIf=\"item?.children?.length > 0 && item.opened && !_overlayRef\"\n [class.ax-state-disabled]=\"item[disableField]\"\n >\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: item.children }\">\n </ng-container>\n </ul>\n </li>\n <li class=\"ax-menu-item-divider\" *ngIf=\"item[this.dividerField]\"></li>\n </ng-container>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <ng-template>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [context]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <!--------------- check for custom template --------------->\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n {{ 'common.no-result-found' | trans }}\n </ng-template>\n </ng-container>\n</ng-template>\n", styles: ["ax-menu{font-size:.875rem;display:block}ax-menu ul{width:-moz-fit-content;width:fit-content;display:flex;flex-direction:column}ax-menu ul li.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item{display:flex}ax-menu ul li .ax-menu-item.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item .ax-menu-item-prefix,ax-menu ul li .ax-menu-item .ax-menu-item-suffix{display:flex;align-items:center;justify-content:center}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon-chevron,ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon-chevron{transform:rotate(-90deg)}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon:not(:empty),ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon:not(:empty){min-width:1.25rem;min-height:1.25rem}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon{padding-inline-end:.5rem}ax-menu ul li .ax-menu-item .ax-menu-item-icon{font-size:1.25rem}ax-menu ul li.ax-state-disabled{cursor:not-allowed!important;opacity:.5}ax-menu ul li.ax-state-active .ax-menu-item-icon-chevron{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-menu .ax-horizontal>li,ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-horizontal{flex-direction:row;align-items:center}ax-menu .ax-horizontal .ax-menu-item-divider{width:1px;height:1rem;background-color:rgba(var(--ax-color-default))}ax-menu .ax-horizontal li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-horizontal li:not(.ax-menu-item-divider){padding:.5rem;cursor:pointer}ax-menu .ax-vertical{flex-direction:column;width:100%}ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-vertical .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-default));margin:.375rem 0}ax-menu .ax-vertical li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-vertical li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul{background-color:rgba(var(--ax-color-surface));border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);padding:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-menu .ax-vertical.ax-submenu-ul li{border-radius:var(--ax-rounded-border-default);cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-menu-item-divider){padding:.5rem}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-state-disabled,.ax-menu-item-divider):hover{background-color:rgba(var(--ax-color-default));color:rgba(var(--ax-color-default-fore))}ax-menu .ax-side-menu{width:100%;flex-direction:column;gap:.5rem;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}ax-menu .ax-side-menu .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-default));margin:.375rem 0}ax-menu .ax-side-menu ul{display:flex;flex-direction:column;margin-top:.5rem;width:100%;padding-inline-start:.75rem}ax-menu .ax-side-menu li .ax-menu-item-icon-chevron.ax-menu-active-icon{transform:rotate(180deg)!important}ax-menu .ax-side-menu li .ax-menu-item{justify-content:space-between}ax-menu .ax-side-menu li .ax-menu-item.ax-is-parent{font-weight:500}ax-menu .ax-side-menu li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer;font-size:1rem}ax-menu .ax-side-menu li:not(.ax-menu-item-divider) .ax-is-child{font-size:.875rem}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
323
323
  }
324
324
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXMenuComponent, decorators: [{
325
325
  type: Component,
@@ -340,7 +340,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImpor
340
340
  'openMode',
341
341
  'displayMode',
342
342
  'showModal',
343
- ], outputs: ['onBlur', 'onFocus', 'onMenuItemClick'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: displayItems, isRoot: true }\"></ng-container>\n </ul>\n <ng-template #recursiveListTmpl let-list=\"list\" let-isRoot=\"isRoot\">\n <ng-container *ngFor=\"let item of list\">\n <li *ngIf=\"item[visibleField] != false\" [class.ax-state-disabled]=\"item[disableField]\"\n (click)=\"_onMenuClick($event, item)\">\n <div class=\"ax-menu-item\" [ngClass]=\"{\n 'ax-is-parent': item.children?.length,\n 'ax-is-child': !isRoot,\n 'ax-state-active ': item.isActive\n }\" *ngIf=\"itemTemplate == null; else tmpItem\">\n <div class=\"ax-menu-item-prefix\">\n <span class=\"ax-menu-item-icon\" *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></span>\n <span>{{ _getItemDisplayTextTemplte(item) }}</span>\n </div>\n <div class=\"ax-menu-item-suffix\">\n <span class=\"ax-menu-item-icon ax-icon ax-menu-item-icon-chevron\" [ngClass]=\"{\n 'ax-icon-chevron-down': item?.children?.length > 0,\n 'ax-menu-active-icon': item.opened\n }\" *ngIf=\"!item.isLoading\"></span>\n <ax-loading *ngIf=\"item.isLoading\"> </ax-loading>\n </div>\n </div>\n <!--------------- check for custom item template --------------->\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"> </ng-container>\n </ng-container>\n </ng-template>\n <ul *ngIf=\"item?.children?.length > 0 && item.opened && !_overlayRef\"\n [class.ax-state-disabled]=\"item[disableField]\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n <li class=\"ax-menu-item-divider\" *ngIf=\"item[this.dividerField]\"></li>\n </ng-container>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <ng-template>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [context]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <!--------------- check for custom template --------------->\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n {{ 'common.no-result-found' | trans }}\n </ng-template>\n </ng-container>\n</ng-template>", styles: ["ax-menu{font-size:.875rem;display:block}ax-menu ul{width:-moz-fit-content;width:fit-content;display:flex;flex-direction:column}ax-menu ul li.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item{display:flex}ax-menu ul li .ax-menu-item.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item .ax-menu-item-prefix,ax-menu ul li .ax-menu-item .ax-menu-item-suffix{display:flex;align-items:center;justify-content:center}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon-chevron,ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon-chevron{transform:rotate(-90deg)}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon:not(:empty),ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon:not(:empty){min-width:1.25rem;min-height:1.25rem}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon{padding-inline-end:.5rem}ax-menu ul li .ax-menu-item .ax-menu-item-icon{font-size:1.25rem}ax-menu ul li.ax-state-disabled{cursor:not-allowed!important;opacity:.5}ax-menu ul li.ax-state-active .ax-menu-item-icon-chevron{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-menu .ax-horizontal>li,ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-horizontal{flex-direction:row;align-items:center}ax-menu .ax-horizontal .ax-menu-item-divider{width:1px;height:1rem;background-color:rgba(var(--ax-color-default))}ax-menu .ax-horizontal li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-horizontal li:not(.ax-menu-item-divider){padding:.5rem;cursor:pointer}ax-menu .ax-vertical{flex-direction:column;width:100%}ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-vertical .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-default));margin:.375rem 0}ax-menu .ax-vertical li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-vertical li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul{background-color:rgba(var(--ax-color-surface));border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);padding:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-menu .ax-vertical.ax-submenu-ul li{border-radius:var(--ax-rounded-border-default);cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-menu-item-divider){padding:.5rem}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-state-disabled,.ax-menu-item-divider):hover{background-color:rgba(var(--ax-color-default));color:rgba(var(--ax-color-default-fore))}ax-menu .ax-side-menu{width:100%;flex-direction:column;gap:.5rem;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}ax-menu .ax-side-menu .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-default));margin:.375rem 0}ax-menu .ax-side-menu ul{display:flex;flex-direction:column;margin-top:.5rem;width:100%;padding-inline-start:.75rem}ax-menu .ax-side-menu li .ax-menu-item-icon-chevron.ax-menu-active-icon{transform:rotate(180deg)!important}ax-menu .ax-side-menu li .ax-menu-item{justify-content:space-between}ax-menu .ax-side-menu li .ax-menu-item.ax-is-parent{font-weight:500}ax-menu .ax-side-menu li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer;font-size:1rem}ax-menu .ax-side-menu li:not(.ax-menu-item-divider) .ax-is-child{font-size:.875rem}\n"] }]
343
+ ], outputs: ['onBlur', 'onFocus', 'onMenuItemClick'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\n <ng-container\n *ngTemplateOutlet=\"recursiveListTmpl; context: { list: displayItems, isRoot: true }\"\n ></ng-container>\n </ul>\n <ng-template #recursiveListTmpl let-list=\"list\" let-isRoot=\"isRoot\">\n <ng-container *ngFor=\"let item of list\">\n <li\n *ngIf=\"item[visibleField] !== false\"\n [class.ax-state-disabled]=\"item[disableField]\"\n (click)=\"_onMenuClick($event, item)\"\n >\n <div\n class=\"ax-menu-item\"\n [ngClass]=\"{\n 'ax-is-parent': item.children?.length,\n 'ax-is-child': !isRoot,\n 'ax-state-active ': item.isActive\n }\"\n *ngIf=\"itemTemplate == null; else tmpItem\"\n >\n <div class=\"ax-menu-item-prefix\">\n <span class=\"ax-menu-item-icon\" *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></span>\n <span>{{ _getItemDisplayTextTemplte(item) }}</span>\n </div>\n <div class=\"ax-menu-item-suffix\">\n <span\n class=\"ax-menu-item-icon ax-icon ax-menu-item-icon-chevron\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': item?.children?.length > 0,\n 'ax-menu-active-icon': item.opened\n }\"\n *ngIf=\"!item.isLoading\"\n ></span>\n <ax-loading *ngIf=\"item.isLoading\"> </ax-loading>\n </div>\n </div>\n <!--------------- check for custom item template --------------->\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"> </ng-container>\n </ng-container>\n </ng-template>\n <ul\n *ngIf=\"item?.children?.length > 0 && item.opened && !_overlayRef\"\n [class.ax-state-disabled]=\"item[disableField]\"\n >\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: item.children }\">\n </ng-container>\n </ul>\n </li>\n <li class=\"ax-menu-item-divider\" *ngIf=\"item[this.dividerField]\"></li>\n </ng-container>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <ng-template>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [context]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <!--------------- check for custom template --------------->\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n {{ 'common.no-result-found' | trans }}\n </ng-template>\n </ng-container>\n</ng-template>\n", styles: ["ax-menu{font-size:.875rem;display:block}ax-menu ul{width:-moz-fit-content;width:fit-content;display:flex;flex-direction:column}ax-menu ul li.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item{display:flex}ax-menu ul li .ax-menu-item.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item .ax-menu-item-prefix,ax-menu ul li .ax-menu-item .ax-menu-item-suffix{display:flex;align-items:center;justify-content:center}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon-chevron,ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon-chevron{transform:rotate(-90deg)}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon:not(:empty),ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon:not(:empty){min-width:1.25rem;min-height:1.25rem}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon{padding-inline-end:.5rem}ax-menu ul li .ax-menu-item .ax-menu-item-icon{font-size:1.25rem}ax-menu ul li.ax-state-disabled{cursor:not-allowed!important;opacity:.5}ax-menu ul li.ax-state-active .ax-menu-item-icon-chevron{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-menu .ax-horizontal>li,ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-horizontal{flex-direction:row;align-items:center}ax-menu .ax-horizontal .ax-menu-item-divider{width:1px;height:1rem;background-color:rgba(var(--ax-color-default))}ax-menu .ax-horizontal li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-horizontal li:not(.ax-menu-item-divider){padding:.5rem;cursor:pointer}ax-menu .ax-vertical{flex-direction:column;width:100%}ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-vertical .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-default));margin:.375rem 0}ax-menu .ax-vertical li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-vertical li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul{background-color:rgba(var(--ax-color-surface));border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);padding:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-menu .ax-vertical.ax-submenu-ul li{border-radius:var(--ax-rounded-border-default);cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-menu-item-divider){padding:.5rem}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-state-disabled,.ax-menu-item-divider):hover{background-color:rgba(var(--ax-color-default));color:rgba(var(--ax-color-default-fore))}ax-menu .ax-side-menu{width:100%;flex-direction:column;gap:.5rem;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}ax-menu .ax-side-menu .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-default));margin:.375rem 0}ax-menu .ax-side-menu ul{display:flex;flex-direction:column;margin-top:.5rem;width:100%;padding-inline-start:.75rem}ax-menu .ax-side-menu li .ax-menu-item-icon-chevron.ax-menu-active-icon{transform:rotate(180deg)!important}ax-menu .ax-side-menu li .ax-menu-item{justify-content:space-between}ax-menu .ax-side-menu li .ax-menu-item.ax-is-parent{font-weight:500}ax-menu .ax-side-menu li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer;font-size:1rem}ax-menu .ax-side-menu li:not(.ax-menu-item-divider) .ax-is-child{font-size:.875rem}\n"] }]
344
344
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Overlay }, { type: i2.AXPlatform }]; }, propDecorators: { activeCallback: [{
345
345
  type: Input
346
346
  }], _contentEmptyTemplate: [{
@@ -350,4 +350,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImpor
350
350
  type: ContentChild,
351
351
  args: ['itemTemplate']
352
352
  }] } });
353
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBRWpCLFlBQVksRUFDWixXQUFXLEVBQ1gsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUFFeEQ7Ozs7R0FJRztBQTJCSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxlQUFlO0lBY2xELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBWUQsWUFDVSxXQUF1QixFQUN2QixHQUFzQixFQUN0QixRQUFpQixFQUNqQixTQUFxQjtRQUU3QixLQUFLLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBTGhCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENB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bmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgT25Jbml0LFxuICBDb250ZW50Q2hpbGQsXG4gIFRlbXBsYXRlUmVmLFxuICBFbGVtZW50UmVmLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhCYXNlTWVudU1peGluIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21peGluJztcbmltcG9ydCB7IEFYUGxhdGZvcm0gfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcblxuLyoqXG4gKiBUaGUgQnV0dG9uIGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IFtcbiAgICAnZGlzYWJsZWQnLFxuICAgICd0YWJJbmRleCcsXG4gICAgJ3RleHRGaWVsZCcsXG4gICAgJ3ZhbHVlRmllbGQnLFxuICAgICdpdGVtcycsXG4gICAgJ3BhcmVudElkJyxcbiAgICAnaWNvbkZpZWxkJyxcbiAgICAndG9vbHRpcCcsXG4gICAgJ29wZW5lZCcsXG4gICAgJ3Zpc2libGVGaWVsZCcsXG4gICAgJ2Rpc2FibGVGaWVsZCcsXG4gICAgJ2hhc0NoaWxkRmllbGQnLFxuICAgICdkaXZpZGVyRmllbGQnLFxuICAgICdvcGVuTW9kZScsXG4gICAgJ2Rpc3BsYXlNb2RlJyxcbiAgICAnc2hvd01vZGFsJyxcbiAgXSxcbiAgb3V0cHV0czogWydvbkJsdXInLCAnb25Gb2N1cycsICdvbk1lbnVJdGVtQ2xpY2snXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYTWVudUNvbXBvbmVudCBleHRlbmRzIEFYQmFzZU1lbnVNaXhpbiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KClcbiAgYWN0aXZlQ2FsbGJhY2s/OiAoaXRlbTogYW55KSA9PiBib29sZWFuO1xuXG5cbiAgQENvbnRlbnRDaGlsZCgnZW1wdHlUZW1wbGF0ZScpXG4gIHByaXZhdGUgX2NvbnRlbnRFbXB0eVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ2l0ZW1UZW1wbGF0ZScpXG4gIHByaXZhdGUgX2NvbnRlbnRJdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHVibGljIF9vdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuXG4gIGdldCBlbXB0eVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9jb250ZW50RW1wdHlUZW1wbGF0ZTtcbiAgfVxuXG4gIGdldCBpdGVtVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRJdGVtVGVtcGxhdGU7XG4gIH1cblxuICBpc1J0bDogYm9vbGVhbiA9IG5ldyBBWFBsYXRmb3JtKCkuaXNSdGwoKTtcblxuICBwcml2YXRlIF9sZXZlbENvdW50OiBudW1iZXIgPSAwO1xuXG4gIHByaXZhdGUgX29sZEl0ZW06IGFueTtcblxuICBwcm90ZWN0ZWQgX2xvYWRpbmdPcHRpb25zID0ge1xuICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ2xheW91dC5sb2FkaW5nLnRleHQnKSxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgX3BsYXRmb3JtOiBBWFBsYXRmb3JtXG4gICkge1xuICAgIHN1cGVyKF9lbGVtZW50UmVmLCBjZHIpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm9uSW5pdCgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm9uVmlld0luaXQoKTtcbiAgfVxuXG4gIF9vbk1lbnVNb3VzZUVudGVyKGU6IE1vdXNlRXZlbnQsIGl0ZW06IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBlLnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcblxuICAgIGlmICh0aGlzLmlzTG9hZGluZyB8fCB0YXJnZXRFbGVtZW50LnRhZ05hbWUgPT09ICdVTCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcGVuTW9kZSA9PT0gJ2hvdmVyJykge1xuICAgICAgdGhpcy5faGFuZGVsTWVudUxvZ2ljKGUsIGl0ZW0pO1xuICAgIH1cblxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgX29uTWVudUNsaWNrKGU6IE1vdXNlRXZlbnQsIGl0ZW06IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBlLnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcblxuICAgIGlmICh0aGlzLmlzTG9hZGluZyB8fCB0YXJnZXRFbGVtZW50LnRhZ05hbWUgPT09ICdVTCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcGVuTW9kZSA9PT0gJ2NsaWNrJykge1xuICAgICAgdGhpcy5faGFuZGVsTWVudUxvZ2ljKGUsIGl0ZW0pO1xuICAgIH1cblxuICAgIHRoaXMub25NZW51SXRlbUNsaWNrLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaXRlbTogaXRlbSxcbiAgICAgIG5hdGl2ZUV2ZW50OiBlLFxuICAgIH0pO1xuXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBfZ2V0RGlyZWN0aW9uKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICdob3Jpem9udGFsJyAmJiB0aGlzLl9sZXZlbENvdW50ID09PSAwKSB7XG4gICAgICByZXR1cm4gJ2F4LWhvcml6b250YWwnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fbGV2ZWxDb3VudCA+IDApIHtcbiAgICAgIHJldHVybiAnYXgtdmVydGljYWwgYXgtc3VibWVudS11bCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRpc3BsYXlNb2RlID09PSAnc2lkZW1lbnUnKSB7XG4gICAgICByZXR1cm4gJ2F4LXNpZGUtbWVudSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnYXgtdmVydGljYWwnO1xuICAgIH1cbiAgfVxuXG4gIC8vIHByaXZhdGUgX3JlbW92ZUFjdGl2ZShpdGVtczogYW55KTogdm9pZCB7XG4gIC8vICAgaXRlbXMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAvLyAgICAgZWxlbWVudC5hY3RpdmUgPSBmYWxzZTtcbiAgLy8gICAgIGlmIChlbGVtZW50Py5jaGlsZHJlbj8ubGVuZ3RoID4gMCkge1xuICAvLyAgICAgICB0aGlzLl9yZW1vdmVBY3RpdmUoZWxlbWVudC5jaGlsZHJlbik7XG4gIC8vICAgICB9XG4gIC8vICAgfSk7XG4gIC8vIH1cblxuICBwcml2YXRlIF9jbG9zZU9wZW5DaGlsZChpdGVtczogYW55KTogdm9pZCB7XG4gICAgaXRlbXMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgZWxlbWVudC5vcGVuZWQgPSBmYWxzZTtcbiAgICAgIGlmIChlbGVtZW50Py5jaGlsZHJlbj8ubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLl9jbG9zZU9wZW5DaGlsZChlbGVtZW50LmNoaWxkcmVuKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRQYXJlbnQoaXRlbXM6IGFueSwgcGFyZW50SWQ6IGFueSk6IHZvaWQge1xuICAgIGl0ZW1zLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgIGVsZW1lbnQucGFyZW50SWQgPSBwYXJlbnRJZDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRlbE1lbnVMb2dpYyhlOiBNb3VzZUV2ZW50LCBpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIWl0ZW1bdGhpcy5kaXNhYmxlRmllbGRdIHx8IGl0ZW1bdGhpcy5kaXZpZGVyRmllbGRdID09PSBmYWxzZSkge1xuICAgICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IGUudGFyZ2V0IGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgaWYgKFxuICAgICAgICAodGFyZ2V0RWxlbWVudC5jbG9zZXN0KCdsaScpICYmIHRoaXMub3Blbk1vZGUgPT09ICdjbGljaycpIHx8XG4gICAgICAgICh0YXJnZXRFbGVtZW50LmNsb3Nlc3QoJ2xpJykgJiYgdGhpcy5vcGVuTW9kZSA9PT0gJ2hvdmVyJylcbiAgICAgICkge1xuICAgICAgICBpZiAodGhpcy5fb3ZlcmxheVJlZiAmJiB0aGlzLl9vbGRJdGVtICE9PSBpdGVtKSB7XG4gICAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kaXNwbGF5TW9kZSA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgICAgdGhpcy5kaXNwbGF5SXRlbXMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFpdGVtLnBhcmVudElkICYmIGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSAhPT0gZWxlbWVudFt0aGlzLnZhbHVlRmllbGRdKSB7XG4gICAgICAgICAgICAgIGVsZW1lbnQub3BlbmVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGl0ZW0/LmNoaWxkcmVuPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICdob3Jpem9udGFsJykge1xuICAgICAgICAgICAgdGhpcy5faW5pdFBhcmVudChpdGVtLmNoaWxkcmVuLCBpdGVtW3RoaXMudmFsdWVGaWVsZF0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy5kaXNwbGF5TW9kZSA9PT0gJ2hvcml6b250YWwnIHx8IHRoaXMuZGlzcGxheU1vZGUgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9vbGRJdGVtICE9PSBpdGVtKSB7XG4gICAgICAgICAgICAgIHRoaXMuX29wZW5Bc092ZXJsYXkodGFyZ2V0RWxlbWVudC5jbG9zZXN0KCdsaScpLCBpdGVtLmNoaWxkcmVuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fY2xvc2VPcGVuQ2hpbGQoaXRlbS5jaGlsZHJlbik7XG5cbiAgICAgICAgICBpZiAodGhpcy5kaXNwbGF5TW9kZSA9PT0gJ2hvcml6b250YWwnIHx8IHRoaXMuZGlzcGxheU1vZGUgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgIGl0ZW0ub3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaXRlbS5vcGVuZWQgPSAhaXRlbS5vcGVuZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICdob3Jpem9udGFsJyB8fCB0aGlzLmRpc3BsYXlNb2RlID09PSAndmVydGljYWwnKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5fb2xkSXRlbSAmJlxuICAgICAgICAgICAgdGhpcy5fb2xkSXRlbT8ub3BlbmVkICYmXG4gICAgICAgICAgICBpdGVtW3RoaXMudmFsdWVGaWVsZF0gIT09IHRoaXMuX29sZEl0ZW1bdGhpcy52YWx1ZUZpZWxkXVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5fb2xkSXRlbS5vcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fb2xkSXRlbSA9IGl0ZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vcGVuQXNPdmVybGF5KHRhcmdldFJlZiwgb3ZlcmxheUl0ZW1zOiBhbnlbXSk6IHZvaWQge1xuICAgIGxldCBwb3NpdGlvbnMgPSBbXTtcbiAgICBpZiAodGhpcy5kaXNwbGF5TW9kZSA9PT0gJ3ZlcnRpY2FsJykge1xuICAgICAgaWYgKHRoaXMuX2xldmVsQ291bnQgPj0gMSkge1xuICAgICAgICBwb3NpdGlvbnMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgICBvcmlnaW5ZOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgICBvcmlnaW5ZOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvcmlnaW5ZOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnY2VudGVyJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcG9zaXRpb25zID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WTogJ2NlbnRlcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuX2xldmVsQ291bnQgPj0gMSkge1xuICAgICAgICBwb3NpdGlvbnMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgICBvcmlnaW5ZOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBvc2l0aW9ucyA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuY2xvc2UoKSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXlcbiAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGFyZ2V0UmVmKVxuICAgICAgICAud2l0aFBvc2l0aW9ucyhbLi4ucG9zaXRpb25zXSlcbiAgICAgICAgLndpdGhQdXNoKGZhbHNlKVxuICAgICAgICAud2l0aERlZmF1bHRPZmZzZXRYKDEyKSxcblxuICAgICAgZGlyZWN0aW9uOiB0aGlzLl9wbGF0Zm9ybS5pc1J0bCgpID8gJ3J0bCcgOiAnbHRyJyxcbiAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICBwYW5lbENsYXNzOiBbJ2F4LWFuaW1hdGUtZmFkZUluJywgJ2F4LWFuaW1hdGUtZmFzdGVyJywgJ2F4LW92ZXJsYXktbWVudSddLFxuICAgICAgbWF4SGVpZ2h0OiAndW5zZXQnLFxuICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgYmFja2Ryb3BDbGFzczogWydjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCddLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVmID0gdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2gobmV3IENvbXBvbmVudFBvcnRhbChBWE1lbnVDb21wb25lbnQpKTtcblxuICAgIHJlZi5pbnN0YW5jZS5pdGVtcyA9IG92ZXJsYXlJdGVtcztcblxuICAgIHJlZi5pbnN0YW5jZS5kaXNwbGF5TW9kZSA9IHRoaXMuZGlzcGxheU1vZGU7XG5cbiAgICByZWYuaW5zdGFuY2Uub3Blbk1vZGUgPSAnaG92ZXInO1xuXG4gICAgcmVmLmluc3RhbmNlLl9sZXZlbENvdW50ID0gdGhpcy5fbGV2ZWxDb3VudCArIDE7XG5cbiAgICByZWYuaW5zdGFuY2UuZGlzYWJsZUZpZWxkID0gdGhpcy5kaXNhYmxlRmllbGQ7XG5cbiAgICByZWYuaW5zdGFuY2UudmlzaWJsZUZpZWxkID0gdGhpcy52aXNpYmxlRmllbGQ7XG5cbiAgICByZWYuaW5zdGFuY2UudmFsdWVGaWVsZCA9IHRoaXMudmFsdWVGaWVsZDtcblxuICAgIHJlZi5pbnN0YW5jZS50ZXh0RmllbGQgPSB0aGlzLnRleHRGaWVsZDtcblxuICAgIHJlZi5pbnN0YW5jZS5pY29uRmllbGQgPSB0aGlzLmljb25GaWVsZDtcblxuICAgIHJlZi5pbnN0YW5jZS5kaXZpZGVyRmllbGQgPSB0aGlzLmRpdmlkZXJGaWVsZDtcblxuICAgIHJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgcmVmLmluc3RhbmNlPy5fb3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fb3ZlcmxheVJlZi5vdXRzaWRlUG9pbnRlckV2ZW50cygpLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgaWYgKHRoaXMuX292ZXJsYXlSZWYgJiYgdGhpcy5vcGVuTW9kZSA9PT0gJ2NsaWNrJykge1xuICAgICAgICB0aGlzLl9jbG9zZSgpO1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5fcGxhdGZvcm0uc2Nyb2xsLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5fb3ZlcmxheVJlZikge1xuICAgICAgICB0aGlzLl9jbG9zZSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5fcGxhdGZvcm0ucmVzaXplLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5fb3ZlcmxheVJlZikge1xuICAgICAgICB0aGlzLl9jbG9zZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2UoKSB7XG4gICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgICB0aGlzLl9vbGRJdGVtID0gbnVsbDtcbiAgICB0aGlzLmRpc3BsYXlJdGVtcy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICBlbGVtZW50Lm9wZW5lZCA9IGZhbHNlO1xuICAgICAgZWxlbWVudC5hY3RpdmUgPSBmYWxzZTtcbiAgICB9KTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvdmVycmlkZSBvbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uZGV0YWNoKCk7XG4gIH1cblxuXG4gIHByb3RlY3RlZCBpc0FjdGl2ZShpdGVtOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuYWN0aXZlQ2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlQ2FsbGJhY2soaXRlbSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5SXRlbXMubGVuZ3RoOyBlbHNlIHRtcEVtcHR5XCI+XG4gIDx1bCBbbmdDbGFzc109XCJfZ2V0RGlyZWN0aW9uKClcIiBbY2xhc3MuYXgtcnRsXT1cInJ0bFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZWN1cnNpdmVMaXN0VG1wbDsgY29udGV4dDogeyBsaXN0OiBkaXNwbGF5SXRlbXMsIGlzUm9vdDogdHJ1ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvdWw+XG4gIDxuZy10ZW1wbGF0ZSAjcmVjdXJzaXZlTGlzdFRtcGwgbGV0LWxpc3Q9XCJsaXN0XCIgbGV0LWlzUm9vdD1cImlzUm9vdFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGlzdFwiPlxuICAgICAgPGxpICpuZ0lmPVwiaXRlbVt2aXNpYmxlRmllbGRdICE9IGZhbHNlXCIgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cIml0ZW1bZGlzYWJsZUZpZWxkXVwiXG4gICAgICAgIChjbGljayk9XCJfb25NZW51Q2xpY2soJGV2ZW50LCBpdGVtKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbWVudS1pdGVtXCIgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2F4LWlzLXBhcmVudCc6IGl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCxcbiAgICAgICAgICAgICdheC1pcy1jaGlsZCc6ICFpc1Jvb3QsXG4gICAgICAgICAgICAnYXgtc3RhdGUtYWN0aXZlICc6IGl0ZW0uaXNBY3RpdmVcbiAgICAgICAgICB9XCIgKm5nSWY9XCJpdGVtVGVtcGxhdGUgPT0gbnVsbDsgZWxzZSB0bXBJdGVtXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LW1lbnUtaXRlbS1wcmVmaXhcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtbWVudS1pdGVtLWljb25cIiAqbmdJZj1cIml0ZW1baWNvbkZpZWxkXVwiIFtjbGFzc109XCJpdGVtW2ljb25GaWVsZF1cIj48L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57eyBfZ2V0SXRlbURpc3BsYXlUZXh0VGVtcGx0ZShpdGVtKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbWVudS1pdGVtLXN1ZmZpeFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1tZW51LWl0ZW0taWNvbiBheC1pY29uIGF4LW1lbnUtaXRlbS1pY29uLWNoZXZyb25cIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ2F4LWljb24tY2hldnJvbi1kb3duJzogaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aCA+IDAsXG4gICAgICAgICAgICAgICAgJ2F4LW1lbnUtYWN0aXZlLWljb24nOiBpdGVtLm9wZW5lZFxuICAgICAgICAgICAgICB9XCIgKm5nSWY9XCIhaXRlbS5pc0xvYWRpbmdcIj48L3NwYW4+XG4gICAgICAgICAgICA8YXgtbG9hZGluZyAqbmdJZj1cIml0ZW0uaXNMb2FkaW5nXCI+IDwvYXgtbG9hZGluZz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tIGNoZWNrIGZvciBjdXN0b20gIGl0ZW0gdGVtcGxhdGUgIC0tLS0tLS0tLS0tLS0tLT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0bXBJdGVtPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8dWwgKm5nSWY9XCJpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoID4gMCAmJiBpdGVtLm9wZW5lZCAmJiAhX292ZXJsYXlSZWZcIlxuICAgICAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpdGVtW2Rpc2FibGVGaWVsZF1cIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVjdXJzaXZlTGlzdFRtcGw7IGNvbnRleHQ6IHsgbGlzdDogaXRlbS5jaGlsZHJlbiB9XCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cImF4LW1lbnUtaXRlbS1kaXZpZGVyXCIgKm5nSWY9XCJpdGVtW3RoaXMuZGl2aWRlckZpZWxkXVwiPjwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xvYWRpbmdcIj5cbiAgPG5nLXRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlciBheC1wLTRcIj5cbiAgICAgIDxheC1sb2FkaW5nIFtjb250ZXh0XT1cIl9sb2FkaW5nT3B0aW9uc1wiPjwvYXgtbG9hZGluZz5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3RtcEVtcHR5PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxuICAgIDwhLS0tLS0tLS0tLS0tLS0tIGNoZWNrIGZvciBjdXN0b20gdGVtcGxhdGUgIC0tLS0tLS0tLS0tLS0tLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW1wdHlUZW1wbGF0ZTsgZWxzZSBlbHNlRW1wdHlUZW1wbGF0ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5VGVtcGxhdGVcIj4gPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNlbHNlRW1wdHlUZW1wbGF0ZT5cbiAgICAgIHt7ICdjb21tb24ubm8tcmVzdWx0LWZvdW5kJyB8IHRyYW5zIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPiJdfQ==
353
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUVMLFdBQVcsRUFDWCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFFdkI7Ozs7R0FJRztBQTJCSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxlQUFlO0lBWWxELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBWUQsWUFDVSxXQUF1QixFQUN2QixHQUFzQixFQUN0QixRQUFpQixFQUNqQixTQUFxQjtRQUU3QixLQUFLLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBTGhCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENB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bmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuXG5pbXBvcnQgeyBBWEJhc2VNZW51TWl4aW4gfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbWl4aW4nO1xuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBUaGUgQnV0dG9uIGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IFtcbiAgICAnZGlzYWJsZWQnLFxuICAgICd0YWJJbmRleCcsXG4gICAgJ3RleHRGaWVsZCcsXG4gICAgJ3ZhbHVlRmllbGQnLFxuICAgICdpdGVtcycsXG4gICAgJ3BhcmVudElkJyxcbiAgICAnaWNvbkZpZWxkJyxcbiAgICAndG9vbHRpcCcsXG4gICAgJ29wZW5lZCcsXG4gICAgJ3Zpc2libGVGaWVsZCcsXG4gICAgJ2Rpc2FibGVGaWVsZCcsXG4gICAgJ2hhc0NoaWxkRmllbGQnLFxuICAgICdkaXZpZGVyRmllbGQnLFxuICAgICdvcGVuTW9kZScsXG4gICAgJ2Rpc3BsYXlNb2RlJyxcbiAgICAnc2hvd01vZGFsJyxcbiAgXSxcbiAgb3V0cHV0czogWydvbkJsdXInLCAnb25Gb2N1cycsICdvbk1lbnVJdGVtQ2xpY2snXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYTWVudUNvbXBvbmVudCBleHRlbmRzIEFYQmFzZU1lbnVNaXhpbiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpXG4gIGFjdGl2ZUNhbGxiYWNrPzogKGl0ZW06IGFueSkgPT4gYm9vbGVhbjtcblxuICBAQ29udGVudENoaWxkKCdlbXB0eVRlbXBsYXRlJylcbiAgcHJpdmF0ZSBfY29udGVudEVtcHR5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZCgnaXRlbVRlbXBsYXRlJylcbiAgcHJpdmF0ZSBfY29udGVudEl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwdWJsaWMgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG5cbiAgZ2V0IGVtcHR5VGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRFbXB0eVRlbXBsYXRlO1xuICB9XG5cbiAgZ2V0IGl0ZW1UZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fY29udGVudEl0ZW1UZW1wbGF0ZTtcbiAgfVxuXG4gIGlzUnRsOiBib29sZWFuID0gbmV3IEFYUGxhdGZvcm0oKS5pc1J0bCgpO1xuXG4gIHByaXZhdGUgX2xldmVsQ291bnQgPSAwO1xuXG4gIHByaXZhdGUgX29sZEl0ZW06IGFueTtcblxuICBwcm90ZWN0ZWQgX2xvYWRpbmdPcHRpb25zID0ge1xuICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ2xheW91dC5sb2FkaW5nLnRleHQnKSxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgX3BsYXRmb3JtOiBBWFBsYXRmb3JtLFxuICApIHtcbiAgICBzdXBlcihfZWxlbWVudFJlZiwgY2RyKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5vbkluaXQoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5vblZpZXdJbml0KCk7XG4gIH1cblxuICBfb25NZW51TW91c2VFbnRlcihlOiBNb3VzZUV2ZW50LCBpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZS50YXJnZXQgYXMgSFRNTERpdkVsZW1lbnQ7XG5cbiAgICBpZiAodGhpcy5pc0xvYWRpbmcgfHwgdGFyZ2V0RWxlbWVudC50YWdOYW1lID09PSAnVUwnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3Blbk1vZGUgPT09ICdob3ZlcicpIHtcbiAgICAgIHRoaXMuX2hhbmRlbE1lbnVMb2dpYyhlLCBpdGVtKTtcbiAgICB9XG5cbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIF9vbk1lbnVDbGljayhlOiBNb3VzZUV2ZW50LCBpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZS50YXJnZXQgYXMgSFRNTERpdkVsZW1lbnQ7XG5cbiAgICBpZiAodGhpcy5pc0xvYWRpbmcgfHwgdGFyZ2V0RWxlbWVudC50YWdOYW1lID09PSAnVUwnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3Blbk1vZGUgPT09ICdjbGljaycpIHtcbiAgICAgIHRoaXMuX2hhbmRlbE1lbnVMb2dpYyhlLCBpdGVtKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uTWVudUl0ZW1DbGljay5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGl0ZW06IGl0ZW0sXG4gICAgICBuYXRpdmVFdmVudDogZSxcbiAgICB9KTtcblxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgX2dldERpcmVjdGlvbigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmRpc3BsYXlNb2RlID09PSAnaG9yaXpvbnRhbCcgJiYgdGhpcy5fbGV2ZWxDb3VudCA9PT0gMCkge1xuICAgICAgcmV0dXJuICdheC1ob3Jpem9udGFsJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2xldmVsQ291bnQgPiAwKSB7XG4gICAgICByZXR1cm4gJ2F4LXZlcnRpY2FsIGF4LXN1Ym1lbnUtdWwnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5kaXNwbGF5TW9kZSA9PT0gJ3NpZGVtZW51Jykge1xuICAgICAgcmV0dXJuICdheC1zaWRlLW1lbnUnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ2F4LXZlcnRpY2FsJztcbiAgICB9XG4gIH1cblxuICAvLyBwcml2YXRlIF9yZW1vdmVBY3RpdmUoaXRlbXM6IGFueSk6IHZvaWQge1xuICAvLyAgIGl0ZW1zLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgLy8gICAgIGVsZW1lbnQuYWN0aXZlID0gZmFsc2U7XG4gIC8vICAgICBpZiAoZWxlbWVudD8uY2hpbGRyZW4/Lmxlbmd0aCA+IDApIHtcbiAgLy8gICAgICAgdGhpcy5fcmVtb3ZlQWN0aXZlKGVsZW1lbnQuY2hpbGRyZW4pO1xuICAvLyAgICAgfVxuICAvLyAgIH0pO1xuICAvLyB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VPcGVuQ2hpbGQoaXRlbXM6IGFueSk6IHZvaWQge1xuICAgIGl0ZW1zLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgIGVsZW1lbnQub3BlbmVkID0gZmFsc2U7XG4gICAgICBpZiAoZWxlbWVudD8uY2hpbGRyZW4/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5fY2xvc2VPcGVuQ2hpbGQoZWxlbWVudC5jaGlsZHJlbik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0UGFyZW50KGl0ZW1zOiBhbnksIHBhcmVudElkOiBhbnkpOiB2b2lkIHtcbiAgICBpdGVtcy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICBlbGVtZW50LnBhcmVudElkID0gcGFyZW50SWQ7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kZWxNZW51TG9naWMoZTogTW91c2VFdmVudCwgaXRlbTogYW55KTogdm9pZCB7XG4gICAgaWYgKCFpdGVtW3RoaXMuZGlzYWJsZUZpZWxkXSB8fCBpdGVtW3RoaXMuZGl2aWRlckZpZWxkXSA9PT0gZmFsc2UpIHtcbiAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBlLnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIGlmIChcbiAgICAgICAgKHRhcmdldEVsZW1lbnQuY2xvc2VzdCgnbGknKSAmJiB0aGlzLm9wZW5Nb2RlID09PSAnY2xpY2snKSB8fFxuICAgICAgICAodGFyZ2V0RWxlbWVudC5jbG9zZXN0KCdsaScpICYmIHRoaXMub3Blbk1vZGUgPT09ICdob3ZlcicpXG4gICAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuX292ZXJsYXlSZWYgJiYgdGhpcy5fb2xkSXRlbSAhPT0gaXRlbSkge1xuICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICdob3Jpem9udGFsJykge1xuICAgICAgICAgIHRoaXMuZGlzcGxheUl0ZW1zLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGlmICghaXRlbS5wYXJlbnRJZCAmJiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gIT09IGVsZW1lbnRbdGhpcy52YWx1ZUZpZWxkXSkge1xuICAgICAgICAgICAgICBlbGVtZW50Lm9wZW5lZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGlmICh0aGlzLmRpc3BsYXlNb2RlID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2luaXRQYXJlbnQoaXRlbS5jaGlsZHJlbiwgaXRlbVt0aGlzLnZhbHVlRmllbGRdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICdob3Jpem9udGFsJyB8fCB0aGlzLmRpc3BsYXlNb2RlID09PSAndmVydGljYWwnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fb2xkSXRlbSAhPT0gaXRlbSkge1xuICAgICAgICAgICAgICB0aGlzLl9vcGVuQXNPdmVybGF5KHRhcmdldEVsZW1lbnQuY2xvc2VzdCgnbGknKSwgaXRlbS5jaGlsZHJlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX2Nsb3NlT3BlbkNoaWxkKGl0ZW0uY2hpbGRyZW4pO1xuXG4gICAgICAgICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICdob3Jpem9udGFsJyB8fCB0aGlzLmRpc3BsYXlNb2RlID09PSAndmVydGljYWwnKSB7XG4gICAgICAgICAgICBpdGVtLm9wZW5lZCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGl0ZW0ub3BlbmVkID0gIWl0ZW0ub3BlbmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlNb2RlID09PSAnaG9yaXpvbnRhbCcgfHwgdGhpcy5kaXNwbGF5TW9kZSA9PT0gJ3ZlcnRpY2FsJykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuX29sZEl0ZW0gJiZcbiAgICAgICAgICAgIHRoaXMuX29sZEl0ZW0/Lm9wZW5lZCAmJlxuICAgICAgICAgICAgaXRlbVt0aGlzLnZhbHVlRmllbGRdICE9PSB0aGlzLl9vbGRJdGVtW3RoaXMudmFsdWVGaWVsZF1cbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuX29sZEl0ZW0ub3BlbmVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX29sZEl0ZW0gPSBpdGVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb3BlbkFzT3ZlcmxheSh0YXJnZXRSZWYsIG92ZXJsYXlJdGVtczogYW55W10pOiB2b2lkIHtcbiAgICBsZXQgcG9zaXRpb25zID0gW107XG4gICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgIGlmICh0aGlzLl9sZXZlbENvdW50ID49IDEpIHtcbiAgICAgICAgcG9zaXRpb25zID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WTogJ2NlbnRlcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBvc2l0aW9ucyA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICdjZW50ZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLl9sZXZlbENvdW50ID49IDEpIHtcbiAgICAgICAgcG9zaXRpb25zID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwb3NpdGlvbnMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmNsb3NlKCksXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5XG4gICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRhcmdldFJlZilcbiAgICAgICAgLndpdGhQb3NpdGlvbnMoWy4uLnBvc2l0aW9uc10pXG4gICAgICAgIC53aXRoUHVzaChmYWxzZSlcbiAgICAgICAgLndpdGhEZWZhdWx0T2Zmc2V0WCgxMiksXG5cbiAgICAgIGRpcmVjdGlvbjogdGhpcy5fcGxhdGZvcm0uaXNSdGwoKSA/ICdydGwnIDogJ2x0cicsXG4gICAgICBkaXNwb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgcGFuZWxDbGFzczogWydheC1hbmltYXRlLWZhZGVJbicsICdheC1hbmltYXRlLWZhc3RlcicsICdheC1vdmVybGF5LW1lbnUnXSxcbiAgICAgIG1heEhlaWdodDogJ3Vuc2V0JyxcbiAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6IFsnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlZiA9IHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKG5ldyBDb21wb25lbnRQb3J0YWwoQVhNZW51Q29tcG9uZW50KSk7XG5cbiAgICByZWYuaW5zdGFuY2UuaXRlbXMgPSBvdmVybGF5SXRlbXM7XG5cbiAgICByZWYuaW5zdGFuY2UuZGlzcGxheU1vZGUgPSB0aGlzLmRpc3BsYXlNb2RlO1xuXG4gICAgcmVmLmluc3RhbmNlLm9wZW5Nb2RlID0gJ2hvdmVyJztcblxuICAgIHJlZi5pbnN0YW5jZS5fbGV2ZWxDb3VudCA9IHRoaXMuX2xldmVsQ291bnQgKyAxO1xuXG4gICAgcmVmLmluc3RhbmNlLmRpc2FibGVGaWVsZCA9IHRoaXMuZGlzYWJsZUZpZWxkO1xuXG4gICAgcmVmLmluc3RhbmNlLnZpc2libGVGaWVsZCA9IHRoaXMudmlzaWJsZUZpZWxkO1xuXG4gICAgcmVmLmluc3RhbmNlLnZhbHVlRmllbGQgPSB0aGlzLnZhbHVlRmllbGQ7XG5cbiAgICByZWYuaW5zdGFuY2UudGV4dEZpZWxkID0gdGhpcy50ZXh0RmllbGQ7XG5cbiAgICByZWYuaW5zdGFuY2UuaWNvbkZpZWxkID0gdGhpcy5pY29uRmllbGQ7XG5cbiAgICByZWYuaW5zdGFuY2UuZGl2aWRlckZpZWxkID0gdGhpcy5kaXZpZGVyRmllbGQ7XG5cbiAgICByZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgIHJlZi5pbnN0YW5jZT8uX292ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX292ZXJsYXlSZWYub3V0c2lkZVBvaW50ZXJFdmVudHMoKS5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgIGlmICh0aGlzLl9vdmVybGF5UmVmICYmIHRoaXMub3Blbk1vZGUgPT09ICdjbGljaycpIHtcbiAgICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuX3BsYXRmb3JtLnNjcm9sbC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuX3BsYXRmb3JtLnJlc2l6ZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlKCkge1xuICAgIHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgdGhpcy5fb2xkSXRlbSA9IG51bGw7XG4gICAgdGhpcy5kaXNwbGF5SXRlbXMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgZWxlbWVudC5vcGVuZWQgPSBmYWxzZTtcbiAgICAgIGVsZW1lbnQuYWN0aXZlID0gZmFsc2U7XG4gICAgfSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX292ZXJsYXlSZWY/LmRldGFjaCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzQWN0aXZlKGl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgdGhpcy5hY3RpdmVDYWxsYmFjayA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gdGhpcy5hY3RpdmVDYWxsYmFjayhpdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5SXRlbXMubGVuZ3RoOyBlbHNlIHRtcEVtcHR5XCI+XG4gIDx1bCBbbmdDbGFzc109XCJfZ2V0RGlyZWN0aW9uKClcIiBbY2xhc3MuYXgtcnRsXT1cInJ0bFwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVjdXJzaXZlTGlzdFRtcGw7IGNvbnRleHQ6IHsgbGlzdDogZGlzcGxheUl0ZW1zLCBpc1Jvb3Q6IHRydWUgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L3VsPlxuICA8bmctdGVtcGxhdGUgI3JlY3Vyc2l2ZUxpc3RUbXBsIGxldC1saXN0PVwibGlzdFwiIGxldC1pc1Jvb3Q9XCJpc1Jvb3RcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxpc3RcIj5cbiAgICAgIDxsaVxuICAgICAgICAqbmdJZj1cIml0ZW1bdmlzaWJsZUZpZWxkXSAhPT0gZmFsc2VcIlxuICAgICAgICBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiaXRlbVtkaXNhYmxlRmllbGRdXCJcbiAgICAgICAgKGNsaWNrKT1cIl9vbk1lbnVDbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYXgtbWVudS1pdGVtXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnYXgtaXMtcGFyZW50JzogaXRlbS5jaGlsZHJlbj8ubGVuZ3RoLFxuICAgICAgICAgICAgJ2F4LWlzLWNoaWxkJzogIWlzUm9vdCxcbiAgICAgICAgICAgICdheC1zdGF0ZS1hY3RpdmUgJzogaXRlbS5pc0FjdGl2ZVxuICAgICAgICAgIH1cIlxuICAgICAgICAgICpuZ0lmPVwiaXRlbVRlbXBsYXRlID09IG51bGw7IGVsc2UgdG1wSXRlbVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbWVudS1pdGVtLXByZWZpeFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1tZW51LWl0ZW0taWNvblwiICpuZ0lmPVwiaXRlbVtpY29uRmllbGRdXCIgW2NsYXNzXT1cIml0ZW1baWNvbkZpZWxkXVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IF9nZXRJdGVtRGlzcGxheVRleHRUZW1wbHRlKGl0ZW0pIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1tZW51LWl0ZW0tc3VmZml4XCI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImF4LW1lbnUtaXRlbS1pY29uIGF4LWljb24gYXgtbWVudS1pdGVtLWljb24tY2hldnJvblwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAnYXgtaWNvbi1jaGV2cm9uLWRvd24nOiBpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoID4gMCxcbiAgICAgICAgICAgICAgICAnYXgtbWVudS1hY3RpdmUtaWNvbic6IGl0ZW0ub3BlbmVkXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAqbmdJZj1cIiFpdGVtLmlzTG9hZGluZ1wiXG4gICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgPGF4LWxvYWRpbmcgKm5nSWY9XCJpdGVtLmlzTG9hZGluZ1wiPiA8L2F4LWxvYWRpbmc+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLSBjaGVjayBmb3IgY3VzdG9tICBpdGVtIHRlbXBsYXRlICAtLS0tLS0tLS0tLS0tLS0+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdG1wSXRlbT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0gfVwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPHVsXG4gICAgICAgICAgKm5nSWY9XCJpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoID4gMCAmJiBpdGVtLm9wZW5lZCAmJiAhX292ZXJsYXlSZWZcIlxuICAgICAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpdGVtW2Rpc2FibGVGaWVsZF1cIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlY3Vyc2l2ZUxpc3RUbXBsOyBjb250ZXh0OiB7IGxpc3Q6IGl0ZW0uY2hpbGRyZW4gfVwiPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cImF4LW1lbnUtaXRlbS1kaXZpZGVyXCIgKm5nSWY9XCJpdGVtW3RoaXMuZGl2aWRlckZpZWxkXVwiPjwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xvYWRpbmdcIj5cbiAgPG5nLXRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlciBheC1wLTRcIj5cbiAgICAgIDxheC1sb2FkaW5nIFtjb250ZXh0XT1cIl9sb2FkaW5nT3B0aW9uc1wiPjwvYXgtbG9hZGluZz5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3RtcEVtcHR5PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxuICAgIDwhLS0tLS0tLS0tLS0tLS0tIGNoZWNrIGZvciBjdXN0b20gdGVtcGxhdGUgIC0tLS0tLS0tLS0tLS0tLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW1wdHlUZW1wbGF0ZTsgZWxzZSBlbHNlRW1wdHlUZW1wbGF0ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5VGVtcGxhdGVcIj4gPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNlbHNlRW1wdHlUZW1wbGF0ZT5cbiAgICAgIHt7ICdjb21tb24ubm8tcmVzdWx0LWZvdW5kJyB8IHRyYW5zIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,24 +1,19 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { AXMenuComponent } from './menu.component';
1
+ import { AXDecoratorModule } from '@acorex/components/decorators';
4
2
  import { AXLoadingModule } from '@acorex/components/loading';
3
+ import { AXPopoverModule } from '@acorex/components/popover';
5
4
  import { AXTranslationModule } from '@acorex/core/translation';
6
- import { AXDecoratorModule } from '@acorex/components/decorators';
7
5
  import { OverlayModule } from '@angular/cdk/overlay';
6
+ import { CommonModule } from '@angular/common';
7
+ import { NgModule } from '@angular/core';
8
+ import { AXMenuItemComponent } from './menu-item/menu-item.component';
9
+ import { AXMenuComponent } from './menu.component';
10
+ import { AXMenu2Component } from './menu2.component';
8
11
  import * as i0 from "@angular/core";
9
- const COMPONENT = [AXMenuComponent];
10
- const MODULES = [
11
- AXDecoratorModule,
12
- AXLoadingModule,
13
- AXTranslationModule,
14
- OverlayModule,
15
- ];
12
+ const COMPONENT = [AXMenuItemComponent, AXMenuComponent, AXMenu2Component];
13
+ const MODULES = [AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule];
16
14
  export class AXMenuModule {
17
15
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
18
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.9", ngImport: i0, type: AXMenuModule, declarations: [AXMenuComponent], imports: [CommonModule, AXDecoratorModule,
19
- AXLoadingModule,
20
- AXTranslationModule,
21
- OverlayModule], exports: [AXMenuComponent] }); }
16
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.9", ngImport: i0, type: AXMenuModule, declarations: [AXMenuItemComponent, AXMenuComponent, AXMenu2Component], imports: [CommonModule, AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule], exports: [AXMenuItemComponent, AXMenuComponent, AXMenu2Component] }); }
22
17
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXMenuModule, imports: [CommonModule, MODULES] }); }
23
18
  }
24
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXMenuModule, decorators: [{
@@ -30,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImpor
30
25
  providers: [],
31
26
  }]
32
27
  }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUVyRCxNQUFNLFNBQVMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ3BDLE1BQU0sT0FBTyxHQUFHO0lBQ2QsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixtQkFBbUI7SUFDbkIsYUFBYTtDQUNkLENBQUM7QUFRRixNQUFNLE9BQU8sWUFBWTs4R0FBWixZQUFZOytHQUFaLFlBQVksaUJBZE4sZUFBZSxhQVV0QixZQUFZLEVBUnRCLGlCQUFpQjtZQUNqQixlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLGFBQWEsYUFMSSxlQUFlOytHQWNyQixZQUFZLFlBSmIsWUFBWSxFQUFLLE9BQU87OzJGQUl2QixZQUFZO2tCQU54QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxPQUFPLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQVhNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcblxuY29uc3QgQ09NUE9ORU5UID0gW0FYTWVudUNvbXBvbmVudF07XG5jb25zdCBNT0RVTEVTID0gW1xuICBBWERlY29yYXRvck1vZHVsZSxcbiAgQVhMb2FkaW5nTW9kdWxlLFxuICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICBPdmVybGF5TW9kdWxlLFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbLi4uQ09NUE9ORU5UXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgLi4uTU9EVUxFU10sXG4gIGV4cG9ydHM6IFsuLi5DT01QT05FTlRdLFxuICBwcm92aWRlcnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1lbnVNb2R1bGUge31cbiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFckQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUMzRSxNQUFNLE9BQU8sR0FBRyxDQUFDLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFRMUcsTUFBTSxPQUFPLFlBQVk7OEdBQVosWUFBWTsrR0FBWixZQUFZLGlCQVROLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsYUFLN0QsWUFBWSxFQUpQLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsZUFBZSxhQURyRixtQkFBbUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCOytHQVM1RCxZQUFZLFlBSmIsWUFBWSxFQUFLLE9BQU87OzJGQUl2QixZQUFZO2tCQU54QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxPQUFPLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9tZW51LWl0ZW0vbWVudS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWE1lbnVDb21wb25lbnQgfSBmcm9tICcuL21lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IEFYTWVudTJDb21wb25lbnQgfSBmcm9tICcuL21lbnUyLmNvbXBvbmVudCc7XG5cbmNvbnN0IENPTVBPTkVOVCA9IFtBWE1lbnVJdGVtQ29tcG9uZW50LCBBWE1lbnVDb21wb25lbnQsIEFYTWVudTJDb21wb25lbnRdO1xuY29uc3QgTU9EVUxFUyA9IFtBWERlY29yYXRvck1vZHVsZSwgQVhMb2FkaW5nTW9kdWxlLCBBWFRyYW5zbGF0aW9uTW9kdWxlLCBPdmVybGF5TW9kdWxlLCBBWFBvcG92ZXJNb2R1bGVdO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFsuLi5DT01QT05FTlRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCAuLi5NT0RVTEVTXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYTWVudU1vZHVsZSB7fVxuIl19
@@ -0,0 +1,45 @@
1
+ import { MXBaseComponent } from '@acorex/components/common';
2
+ import { Component, ContentChildren, HostBinding, Input, QueryList, ViewEncapsulation, } from '@angular/core';
3
+ import { AXRootMenu } from './class/root-menu.class';
4
+ import { AXMenuItemComponent } from './menu-item/menu-item.component';
5
+ import * as i0 from "@angular/core";
6
+ export class AXMenu2Component extends MXBaseComponent {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.oriatation = 'horizontal';
10
+ }
11
+ ngAfterViewInit() {
12
+ this.children.forEach((c) => {
13
+ c.isRoot = true;
14
+ c.parent = this;
15
+ });
16
+ }
17
+ get __hostClass() {
18
+ return `ax-oriatation-${this.oriatation}`;
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXMenu2Component, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXMenu2Component, selector: "ax-menu2", inputs: { oriatation: "oriatation" }, host: { properties: { "class": "this.__hostClass" } }, providers: [
22
+ {
23
+ provide: AXRootMenu,
24
+ useExisting: AXMenu2Component,
25
+ },
26
+ ], queries: [{ propertyName: "children", predicate: AXMenuItemComponent }], usesInheritance: true, ngImport: i0, template: `<ng-content select="ax-menu-item"></ng-content>`, isInline: true, styles: ["ax-menu2{font-size:inherit;width:100%}ax-menu2.ax-oriatation-horizontal{display:flex}ax-menu2.ax-oriatation-horizontal ax-menu-item:not(ax-menu2.ax-oriatation-horizontal ax-menu-item:last-child){margin-inline-end:1.75rem}ax-menu2.ax-oriatation-vertical{display:flex;flex-direction:column}ax-menu2.ax-oriatation-vertical ax-menu-item:not(ax-menu2.ax-oriatation-vertical ax-menu-item:last-child){margin-block-end:1.75rem}ax-menu2 ax-menu-item:hover:not(ax-menu2 ax-menu-item:hover.ax-state-disabled){color:rgba(var(--ax-color-primary-500))}ax-menu-item{font-weight:500;transition:all .3s;position:relative;display:flex;align-items:center}ax-menu-item:not(ax-menu-item.ax-state-disabled){cursor:pointer}ax-menu-item.ax-state-disabled{opacity:.5;cursor:not-allowed}ax-menu-item.ax-state-selected{color:rgba(var(--ax-color-primary-500))}ax-menu-item .ax-menu-item-child-icon{font-size:1.25rem}.ax-menu-item-children{padding:.5rem 0}.ax-menu-item-children:not(.ax-menu-item-children:empty){background-color:rgba(var(--ax-color-surface));border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);min-width:12rem;display:flex;flex-direction:column}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item{padding:.5rem 1rem;font-size:.875rem}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled){background-color:rgba(var(--ax-color-default),.5)}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-suffix{opacity:1}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-suffix{opacity:.5}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-prefix{margin-inline-end:.75rem}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item .ax-menu-item-text{flex:1}html[dir=rtl] ax-menu.ax-oriatation-horizontal .ax-menu-item-child-icon{transform:scaleX(-1);-moz-transform:scaleX(-1);-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1)}.ax-parent-horizontal .ax-menu-item-child-icon{transform:rotate(-90deg)}\n"], encapsulation: i0.ViewEncapsulation.None }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXMenu2Component, decorators: [{
29
+ type: Component,
30
+ args: [{ selector: 'ax-menu2', template: `<ng-content select="ax-menu-item"></ng-content>`, encapsulation: ViewEncapsulation.None, providers: [
31
+ {
32
+ provide: AXRootMenu,
33
+ useExisting: AXMenu2Component,
34
+ },
35
+ ], styles: ["ax-menu2{font-size:inherit;width:100%}ax-menu2.ax-oriatation-horizontal{display:flex}ax-menu2.ax-oriatation-horizontal ax-menu-item:not(ax-menu2.ax-oriatation-horizontal ax-menu-item:last-child){margin-inline-end:1.75rem}ax-menu2.ax-oriatation-vertical{display:flex;flex-direction:column}ax-menu2.ax-oriatation-vertical ax-menu-item:not(ax-menu2.ax-oriatation-vertical ax-menu-item:last-child){margin-block-end:1.75rem}ax-menu2 ax-menu-item:hover:not(ax-menu2 ax-menu-item:hover.ax-state-disabled){color:rgba(var(--ax-color-primary-500))}ax-menu-item{font-weight:500;transition:all .3s;position:relative;display:flex;align-items:center}ax-menu-item:not(ax-menu-item.ax-state-disabled){cursor:pointer}ax-menu-item.ax-state-disabled{opacity:.5;cursor:not-allowed}ax-menu-item.ax-state-selected{color:rgba(var(--ax-color-primary-500))}ax-menu-item .ax-menu-item-child-icon{font-size:1.25rem}.ax-menu-item-children{padding:.5rem 0}.ax-menu-item-children:not(.ax-menu-item-children:empty){background-color:rgba(var(--ax-color-surface));border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);min-width:12rem;display:flex;flex-direction:column}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item{padding:.5rem 1rem;font-size:.875rem}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled){background-color:rgba(var(--ax-color-default),.5)}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-suffix{opacity:1}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-suffix{opacity:.5}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-prefix{margin-inline-end:.75rem}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item .ax-menu-item-text{flex:1}html[dir=rtl] ax-menu.ax-oriatation-horizontal .ax-menu-item-child-icon{transform:scaleX(-1);-moz-transform:scaleX(-1);-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1)}.ax-parent-horizontal .ax-menu-item-child-icon{transform:rotate(-90deg)}\n"] }]
36
+ }], propDecorators: { oriatation: [{
37
+ type: Input
38
+ }], children: [{
39
+ type: ContentChildren,
40
+ args: [AXMenuItemComponent]
41
+ }], __hostClass: [{
42
+ type: HostBinding,
43
+ args: ['class']
44
+ }] } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudTIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9tZW51Mi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRSxPQUFPLEVBRUwsU0FBUyxFQUNULGVBQWUsRUFDZixXQUFXLEVBQ1gsS0FBSyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQWN0RSxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZUFBZTtJQVpyRDs7UUFhVyxlQUFVLEdBQWtCLFlBQVksQ0FBQztLQWdCbkQ7SUFYQyxlQUFlO1FBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMxQixDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNoQixDQUFDLENBQUMsTUFBTSxHQUFHLElBQXNDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFDSSxXQUFXO1FBQ2IsT0FBTyxpQkFBaUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzVDLENBQUM7OEdBaEJVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLGdJQVBoQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixXQUFXLEVBQUUsZ0JBQWdCO2FBQzlCO1NBQ0YsbURBS2dCLG1CQUFtQixvREFiMUIsaURBQWlEOzsyRkFVaEQsZ0JBQWdCO2tCQVo1QixTQUFTOytCQUNFLFVBQVUsWUFDVixpREFBaUQsaUJBRTVDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLFVBQVU7NEJBQ25CLFdBQVcsa0JBQWtCO3lCQUM5QjtxQkFDRjs4QkFHUSxVQUFVO3NCQUFsQixLQUFLO2dCQUdOLFFBQVE7c0JBRFAsZUFBZTt1QkFBQyxtQkFBbUI7Z0JBV2hDLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhPcmllbnRhdGlvbiwgTVhCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUm9vdE1lbnUgfSBmcm9tICcuL2NsYXNzL3Jvb3QtbWVudS5jbGFzcyc7XG5pbXBvcnQgeyBBWE1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9tZW51LWl0ZW0vbWVudS1pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LW1lbnUyJyxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudCBzZWxlY3Q9XCJheC1tZW51LWl0ZW1cIj48L25nLWNvbnRlbnQ+YCxcbiAgc3R5bGVVcmxzOiBbJy4vbWVudTIuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhSb290TWVudSxcbiAgICAgIHVzZUV4aXN0aW5nOiBBWE1lbnUyQ29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTWVudTJDb21wb25lbnQgZXh0ZW5kcyBNWEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgb3JpYXRhdGlvbjogQVhPcmllbnRhdGlvbiA9ICdob3Jpem9udGFsJztcblxuICBAQ29udGVudENoaWxkcmVuKEFYTWVudUl0ZW1Db21wb25lbnQpXG4gIGNoaWxkcmVuOiBRdWVyeUxpc3Q8QVhNZW51SXRlbUNvbXBvbmVudD47XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xuICAgICAgYy5pc1Jvb3QgPSB0cnVlO1xuICAgICAgYy5wYXJlbnQgPSB0aGlzIGFzIHVua25vd24gYXMgQVhNZW51SXRlbUNvbXBvbmVudDtcbiAgICB9KTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGF4LW9yaWF0YXRpb24tJHt0aGlzLm9yaWF0YXRpb259YDtcbiAgfVxufVxuIl19
@@ -1,3 +1,47 @@
1
+ import { BehaviorSubject, Subject, combineLatest, defer } from 'rxjs';
2
+ import { switchMap, startWith, share, map, finalize } from 'rxjs/operators';
3
+ export function prepare(callback) {
4
+ return (source) => defer(() => {
5
+ callback();
6
+ return source;
7
+ });
8
+ }
9
+ export function indicate(indicator) {
10
+ return (source) => source.pipe(prepare(() => indicator.next(true)), finalize(() => indicator.next(false)));
11
+ }
1
12
  ;
2
- export {};
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWxpc3QuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWl4aW4vc3JjL2xpYi9kYXRhbGlzdC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgaW50ZXJmYWNlIEFYRGF0YUxpc3RRdWVyeSB7XG4gICAgdGFrZT86IG51bWJlcjtcbiAgICBza2lwPzogbnVtYmVyO1xuICAgIHNlYXJjaFF1ZXJ5Pzogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBBWERhdGFMaXN0RmV0Y2hDYWxsYmFja1Jlc3VsdCB7XG4gICAgaXRlbXM6IGFueVtdO1xuICAgIHRvdGFsOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBBWERhdGFMaXN0RmV0Y2hEYXRhQ2FsbGJhY2sgPSAoZTogQVhEYXRhTGlzdFF1ZXJ5KSA9PiBQcm9taXNlPGFueVtdIHwgQVhEYXRhTGlzdEZldGNoQ2FsbGJhY2tSZXN1bHQ+O1xuXG5leHBvcnQgdHlwZSBBWERhdGFMaXN0SXRlbXMgPSBhbnlbXSB8IEFYRGF0YUxpc3RGZXRjaERhdGFDYWxsYmFjazsiXX0=
13
+ export class AXPaginatedDataSource {
14
+ constructor(endpoint, initialSort, initialQuery, take = 20) {
15
+ this.endpoint = endpoint;
16
+ this.take = take;
17
+ this.pageNumber = new Subject();
18
+ this.loading = new Subject();
19
+ this.loading$ = this.loading.asObservable();
20
+ this.query = new BehaviorSubject(initialQuery);
21
+ this.sort = new BehaviorSubject(initialSort);
22
+ const param$ = combineLatest([this.query, this.sort]);
23
+ this.page$ = param$.pipe(switchMap(([query, sort]) => this.pageNumber.pipe(startWith(0), switchMap(page => this.endpoint({
24
+ take,
25
+ skip: page * take,
26
+ sort
27
+ }, query).pipe(indicate(this.loading))))), share());
28
+ }
29
+ sortBy(sort) {
30
+ const lastSort = this.sort.getValue();
31
+ const nextSort = { ...lastSort, ...sort };
32
+ this.sort.next(nextSort);
33
+ }
34
+ queryBy(query) {
35
+ const lastQuery = this.query.getValue();
36
+ const nextQuery = { ...lastQuery, ...query };
37
+ this.query.next(nextQuery);
38
+ }
39
+ fetch(page) {
40
+ this.pageNumber.next(page);
41
+ }
42
+ connect() {
43
+ return this.page$.pipe(map(page => page.items));
44
+ }
45
+ disconnect() { }
46
+ }
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWxpc3QuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWl4aW4vc3JjL2xpYi9kYXRhbGlzdC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHNUUsTUFBTSxVQUFVLE9BQU8sQ0FBSSxRQUFvQjtJQUMzQyxPQUFPLENBQUMsTUFBcUIsRUFBaUIsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7UUFDeEQsUUFBUSxFQUFFLENBQUM7UUFDWCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFJLFNBQTJCO0lBQ25ELE9BQU8sQ0FBQyxNQUFxQixFQUFpQixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDeEQsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDbkMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDeEMsQ0FBQTtBQUNMLENBQUM7QUFVQSxDQUFDO0FBZ0NGLE1BQU0sT0FBTyxxQkFBcUI7SUFVOUIsWUFDWSxRQUFtQyxFQUMzQyxXQUFzQixFQUN0QixZQUFlLEVBQ1IsT0FBTyxFQUFFO1FBSFIsYUFBUSxHQUFSLFFBQVEsQ0FBMkI7UUFHcEMsU0FBSSxHQUFKLElBQUksQ0FBSztRQWJaLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBR25DLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBRWxDLGFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBUzFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxlQUFlLENBQUksWUFBWSxDQUFDLENBQUE7UUFDakQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGVBQWUsQ0FBWSxXQUFXLENBQUMsQ0FBQTtRQUN2RCxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDcEIsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUM3QyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQ1osU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FDM0I7WUFDSSxJQUFJO1lBQ0osSUFBSSxFQUFFLElBQUksR0FBRyxJQUFJO1lBQ2pCLElBQUk7U0FDUCxFQUNELEtBQUssQ0FDUixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FDbEMsQ0FBQyxFQUNGLEtBQUssRUFBRSxDQUNWLENBQUE7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQXdCO1FBQzNCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEMsTUFBTSxRQUFRLEdBQUcsRUFBRSxHQUFHLFFBQVEsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBaUI7UUFDckIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4QyxNQUFNLFNBQVMsR0FBRyxFQUFFLEdBQUcsU0FBUyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFZO1FBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxVQUFVLEtBQVcsQ0FBQztDQUV6QiIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZGVmZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCwgc3RhcnRXaXRoLCBzaGFyZSwgbWFwLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJlcGFyZTxUPihjYWxsYmFjazogKCkgPT4gdm9pZCk6IChzb3VyY2U6IE9ic2VydmFibGU8VD4pID0+IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiAoc291cmNlOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiA9PiBkZWZlcigoKSA9PiB7XG4gICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgIHJldHVybiBzb3VyY2U7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmRpY2F0ZTxUPihpbmRpY2F0b3I6IFN1YmplY3Q8Ym9vbGVhbj4pOiAoc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gKHNvdXJjZTogT2JzZXJ2YWJsZTxUPik6IE9ic2VydmFibGU8VD4gPT4gc291cmNlLnBpcGUoXG4gICAgICAgIHByZXBhcmUoKCkgPT4gaW5kaWNhdG9yLm5leHQodHJ1ZSkpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiBpbmRpY2F0b3IubmV4dChmYWxzZSkpXG4gICAgKVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYRGF0YUxpc3RRdWVyeSB7XG4gICAgdGFrZT86IG51bWJlcjtcbiAgICBza2lwPzogbnVtYmVyO1xuICAgIHNlYXJjaFF1ZXJ5Pzogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBBWERhdGFMaXN0RmV0Y2hDYWxsYmFja1Jlc3VsdCB7XG4gICAgaXRlbXM6IGFueVtdO1xuICAgIHRvdGFsOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBBWERhdGFMaXN0RmV0Y2hEYXRhQ2FsbGJhY2sgPSAoZTogQVhEYXRhTGlzdFF1ZXJ5KSA9PiBQcm9taXNlPGFueVtdIHwgQVhEYXRhTGlzdEZldGNoQ2FsbGJhY2tSZXN1bHQ+O1xuXG5leHBvcnQgdHlwZSBBWERhdGFMaXN0SXRlbXMgPSBhbnlbXSB8IEFYRGF0YUxpc3RGZXRjaERhdGFDYWxsYmFjaztcblxuXG5leHBvcnQgaW50ZXJmYWNlIEFYU29ydDxUPiB7XG4gICAgcHJvcGVydHk6IGtleW9mIFQ7XG4gICAgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUGFnZVJlcXVlc3Q8VD4ge1xuICAgIHRha2U6IG51bWJlcjtcbiAgICBza2lwOiBudW1iZXI7XG4gICAgc29ydD86IEFYU29ydDxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBhZ2VkUmVzdWx0PFQ+IHtcbiAgICBpdGVtczogVFtdO1xuICAgIHRvdGFsOiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIEFYUGFnaW5hdGVkRW5kcG9pbnQ8VCwgUT4gPSAocGFnZWFibGU6IEFYUGFnZVJlcXVlc3Q8VD4sIHF1ZXJ5OiBRKSA9PiBPYnNlcnZhYmxlPEFYUGFnZWRSZXN1bHQ8VD4+XG5cblxuZXhwb3J0IGludGVyZmFjZSBBWFNpbXBsZURhdGFTb3VyY2U8VD4gZXh0ZW5kcyBEYXRhU291cmNlPFQ+IHtcbiAgICBjb25uZWN0KCk6IE9ic2VydmFibGU8VFtdPjtcbiAgICBkaXNjb25uZWN0KCk6IHZvaWQ7XG59XG5cblxuZXhwb3J0IGNsYXNzIEFYUGFnaW5hdGVkRGF0YVNvdXJjZTxULCBRPiBpbXBsZW1lbnRzIEFYU2ltcGxlRGF0YVNvdXJjZTxUPiB7XG4gICAgcHJpdmF0ZSBwYWdlTnVtYmVyID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICAgIHByaXZhdGUgc29ydDogQmVoYXZpb3JTdWJqZWN0PEFYU29ydDxUPj47XG4gICAgcHJpdmF0ZSBxdWVyeTogQmVoYXZpb3JTdWJqZWN0PFE+O1xuICAgIHByaXZhdGUgbG9hZGluZyA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBwdWJsaWMgbG9hZGluZyQgPSB0aGlzLmxvYWRpbmcuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIHBhZ2UkOiBPYnNlcnZhYmxlPEFYUGFnZWRSZXN1bHQ8VD4+O1xuXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbmRwb2ludDogQVhQYWdpbmF0ZWRFbmRwb2ludDxULCBRPixcbiAgICAgICAgaW5pdGlhbFNvcnQ6IEFYU29ydDxUPixcbiAgICAgICAgaW5pdGlhbFF1ZXJ5OiBRLFxuICAgICAgICBwdWJsaWMgdGFrZSA9IDIwKSB7XG4gICAgICAgIHRoaXMucXVlcnkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFE+KGluaXRpYWxRdWVyeSlcbiAgICAgICAgdGhpcy5zb3J0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBWFNvcnQ8VD4+KGluaXRpYWxTb3J0KVxuICAgICAgICBjb25zdCBwYXJhbSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnF1ZXJ5LCB0aGlzLnNvcnRdKTtcbiAgICAgICAgdGhpcy5wYWdlJCA9IHBhcmFtJC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChbcXVlcnksIHNvcnRdKSA9PiB0aGlzLnBhZ2VOdW1iZXIucGlwZShcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgoMCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHBhZ2UgPT4gdGhpcy5lbmRwb2ludChcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNraXA6IHBhZ2UgKiB0YWtlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc29ydFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBxdWVyeVxuICAgICAgICAgICAgICAgICkucGlwZShpbmRpY2F0ZSh0aGlzLmxvYWRpbmcpKSlcbiAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICApXG4gICAgfVxuXG4gICAgc29ydEJ5KHNvcnQ6IFBhcnRpYWw8QVhTb3J0PFQ+Pik6IHZvaWQge1xuICAgICAgICBjb25zdCBsYXN0U29ydCA9IHRoaXMuc29ydC5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBuZXh0U29ydCA9IHsgLi4ubGFzdFNvcnQsIC4uLnNvcnQgfTtcbiAgICAgICAgdGhpcy5zb3J0Lm5leHQobmV4dFNvcnQpO1xuICAgIH1cblxuICAgIHF1ZXJ5QnkocXVlcnk6IFBhcnRpYWw8UT4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbGFzdFF1ZXJ5ID0gdGhpcy5xdWVyeS5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBuZXh0UXVlcnkgPSB7IC4uLmxhc3RRdWVyeSwgLi4ucXVlcnkgfTtcbiAgICAgICAgdGhpcy5xdWVyeS5uZXh0KG5leHRRdWVyeSk7XG4gICAgfVxuXG4gICAgZmV0Y2gocGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZU51bWJlci5uZXh0KHBhZ2UpO1xuICAgIH1cblxuICAgIGNvbm5lY3QoKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFnZSQucGlwZShtYXAocGFnZSA9PiBwYWdlLml0ZW1zKSk7XG4gICAgfVxuXG4gICAgZGlzY29ubmVjdCgpOiB2b2lkIHsgfVxuXG59Il19
@@ -1,7 +1,7 @@
1
1
  import { AXClosbaleComponent, MXBaseComponent } from '@acorex/components/common';
2
+ import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';
2
3
  import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
3
4
  import { ChangeDetectionStrategy, Component, HostBinding, Inject, TemplateRef, ViewEncapsulation, } from '@angular/core';
4
- import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/cdk/dialog";
7
7
  import * as i2 from "@angular/common";
@@ -16,8 +16,8 @@ import * as i6 from "@acorex/components/decorators";
16
16
  */
17
17
  export class AXNotificationComponent extends MXBaseComponent {
18
18
  /**
19
- * @ignore
20
- */
19
+ * @ignore
20
+ */
21
21
  constructor(config, dialogRef) {
22
22
  super();
23
23
  this.config = config;
@@ -59,7 +59,7 @@ export class AXNotificationComponent extends MXBaseComponent {
59
59
  this._icon = 'ax-icon ax-icon-warning-fill';
60
60
  break;
61
61
  case 'info':
62
- this._icon = 'ax-icon ax-icon-info-fill';
62
+ this._icon = 'ax-icon ax-icon-info';
63
63
  break;
64
64
  default:
65
65
  this._icon = this.config.icon || 'ax-icon ax-icon-check-circle-fill';
@@ -85,11 +85,11 @@ export class AXNotificationComponent extends MXBaseComponent {
85
85
  });
86
86
  }
87
87
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXNotificationComponent, deps: [{ token: DIALOG_DATA }, { token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
88
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXNotificationComponent, selector: "ax-notification", host: { properties: { "class": "this.__hostClass" } }, providers: [{ provide: AXClosbaleComponent, useExisting: AXNotificationComponent }], usesInheritance: true, ngImport: i0, template: "<span class=\"ax-notification-icon {{_icon}}\"></span>\n<div class=\"ax-notification-content\">\n <div class=\"ax-notification-title\">{{ config.title }}</div>\n <ng-template *ngIf=\"_selectedPortal\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\"></ng-template>\n </ng-template>\n <div *ngIf=\"!_selectedPortal\">{{ config.content }}</div>\n <div class=\"ax-notification-buttons\" *ngIf=\"config.buttons?.length\">\n <ng-container *ngFor=\"let button of config.buttons\">\n <ax-button class=\"ax-xs\" [text]=\"button.text\" [color]=\"button.color\" [look]=\"button.look\"\n [disabled]=\"button.disabled\" (onClick)=\"_handleButtonClick(button)\">\n <ax-loading *ngIf=\"button.loading\"></ax-loading>\n </ax-button>\n </ng-container>\n\n </div>\n</div>\n<ax-close-button *ngIf=\"config.closeButton\"></ax-close-button>\n<div class=\"ax-notification-progress\" [style.animation-duration.ms]=\"config.timeOut\"\n *ngIf=\"config.timeOutProgress && config.timeOut\"></div>", styles: [".ax-dark ax-notification{background-color:rgba(var(--ax-color-default))}ax-notification{width:max(20vw,380px);display:flex;padding:1rem;border-radius:var(--ax-rounded-border-default);font-size:.875rem;border:1px solid;background-color:rgba(var(--ax-color-surface));border-color:rgba(var(--ax-color-border-default));position:relative;overflow:hidden;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-notification.ax-primary .ax-notification-icon{color:rgba(var(--ax-color-primary-500))}ax-notification.ax-primary .ax-notification-progress{background-color:rgba(var(--ax-color-primary-500))}ax-notification.ax-secondary .ax-notification-icon{color:rgba(var(--ax-color-secondary-500))}ax-notification.ax-secondary .ax-notification-progress{background-color:rgba(var(--ax-color-secondary-500))}ax-notification.ax-success .ax-notification-icon{color:rgba(var(--ax-color-success-500))}ax-notification.ax-success .ax-notification-progress{background-color:rgba(var(--ax-color-success-500))}ax-notification.ax-warning .ax-notification-icon{color:rgba(var(--ax-color-warning-500))}ax-notification.ax-warning .ax-notification-progress{background-color:rgba(var(--ax-color-warning-500))}ax-notification.ax-danger .ax-notification-icon{color:rgba(var(--ax-color-danger-500))}ax-notification.ax-danger .ax-notification-progress{background-color:rgba(var(--ax-color-danger-500))}ax-notification.ax-info .ax-notification-icon{color:rgba(var(--ax-color-info-500))}ax-notification.ax-info .ax-notification-progress{background-color:rgba(var(--ax-color-info-500))}@media (max-width: 599px){ax-notification{width:98vw}}ax-notification .ax-notification-icon,ax-notification .ax-icon-close{font-size:1.25rem}ax-notification .ax-notification-icon{padding-inline-end:.75rem}ax-notification .ax-notification-content{display:flex;flex-direction:column;flex:1;color:rgba(var(--ax-color-default-fore));font-weight:400}ax-notification .ax-notification-content .ax-notification-title{font-weight:500;margin-bottom:.25rem;color:rgba(var(--ax-color-default-fore))}ax-notification .ax-notification-content .ax-notification-buttons{margin-top:.75rem;display:flex;gap:.75rem}ax-notification .ax-icon-close{cursor:pointer;height:-moz-fit-content;height:fit-content;color:rgba(var(--ax-color-default-fore))}ax-notification .ax-icon-close:hover{opacity:.6}ax-notification .ax-notification-progress{position:absolute;right:0;left:0;bottom:0;height:.25rem;width:100%;animation-duration:4s;animation-timing-function:linear;animation-name:progressBar;background-color:rgba(var(--ax-color-border-default))}@keyframes progressBar{0%{width:100%}to{width:0%}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: i6.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
88
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXNotificationComponent, selector: "ax-notification", host: { properties: { "class": "this.__hostClass" } }, providers: [{ provide: AXClosbaleComponent, useExisting: AXNotificationComponent }], usesInheritance: true, ngImport: i0, template: "<span class=\"ax-notification-icon {{_icon}}\"></span>\n<div class=\"ax-notification-content\">\n <div class=\"ax-notification-title\">{{ config.title }}</div>\n <ng-template *ngIf=\"_selectedPortal\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\"></ng-template>\n </ng-template>\n <div *ngIf=\"!_selectedPortal\">{{ config.content }}</div>\n <div class=\"ax-notification-buttons\" *ngIf=\"config.buttons?.length\">\n <ng-container *ngFor=\"let button of config.buttons\">\n <ax-button class=\"ax-xs\" [text]=\"button.text\" [color]=\"button.color\" [look]=\"button.look\"\n [disabled]=\"button.disabled\" (onClick)=\"_handleButtonClick(button)\">\n <ax-loading *ngIf=\"button.loading\"></ax-loading>\n </ax-button>\n </ng-container>\n\n </div>\n</div>\n<ax-close-button *ngIf=\"config.closeButton\"></ax-close-button>\n<div class=\"ax-notification-progress\" [style.animation-duration.ms]=\"config.timeOut\"\n *ngIf=\"config.timeOutProgress && config.timeOut\"></div>", styles: [".ax-dark ax-notification{background-color:rgba(var(--ax-color-gray-900));border-color:rgba(var(--ax-color-gray-950))}ax-notification{width:max(20vw,380px);display:flex;padding:1rem;border-radius:var(--ax-rounded-border-default);font-size:.875rem;border:1px solid;background-color:rgba(var(--ax-color-surface));border-color:rgba(var(--ax-color-border-default));position:relative;overflow:hidden;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-notification.ax-primary .ax-notification-icon{color:rgba(var(--ax-color-primary-500))}ax-notification.ax-primary .ax-notification-progress{background-color:rgba(var(--ax-color-primary-500))}ax-notification.ax-secondary .ax-notification-icon{color:rgba(var(--ax-color-secondary-500))}ax-notification.ax-secondary .ax-notification-progress{background-color:rgba(var(--ax-color-secondary-500))}ax-notification.ax-success .ax-notification-icon{color:rgba(var(--ax-color-success-500))}ax-notification.ax-success .ax-notification-progress{background-color:rgba(var(--ax-color-success-500))}ax-notification.ax-warning .ax-notification-icon{color:rgba(var(--ax-color-warning-500))}ax-notification.ax-warning .ax-notification-progress{background-color:rgba(var(--ax-color-warning-500))}ax-notification.ax-danger .ax-notification-icon{color:rgba(var(--ax-color-danger-500))}ax-notification.ax-danger .ax-notification-progress{background-color:rgba(var(--ax-color-danger-500))}ax-notification.ax-info .ax-notification-icon{color:rgba(var(--ax-color-info-500))}ax-notification.ax-info .ax-notification-progress{background-color:rgba(var(--ax-color-info-500))}@media (max-width: 599px){ax-notification{width:98vw}}ax-notification .ax-notification-icon,ax-notification .ax-icon-close{font-size:1.25rem}ax-notification .ax-notification-icon{padding-inline-end:.75rem}ax-notification .ax-notification-content{display:flex;flex-direction:column;flex:1;color:rgba(var(--ax-color-text-default));font-weight:400}ax-notification .ax-notification-content .ax-notification-title{font-weight:500;margin-bottom:.25rem}ax-notification .ax-notification-content .ax-notification-buttons{margin-top:.75rem;display:flex;gap:.75rem}ax-notification .ax-icon-close{cursor:pointer;height:-moz-fit-content;height:fit-content}ax-notification .ax-icon-close:hover{opacity:.6}ax-notification .ax-notification-progress{position:absolute;right:0;left:0;bottom:0;height:.25rem;width:100%;animation-duration:4s;animation-timing-function:linear;animation-name:progressBar;background-color:rgba(var(--ax-color-border-default))}@keyframes progressBar{0%{width:100%}to{width:0%}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: i6.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
89
89
  }
90
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXNotificationComponent, decorators: [{
91
91
  type: Component,
92
- args: [{ selector: 'ax-notification', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXClosbaleComponent, useExisting: AXNotificationComponent }], template: "<span class=\"ax-notification-icon {{_icon}}\"></span>\n<div class=\"ax-notification-content\">\n <div class=\"ax-notification-title\">{{ config.title }}</div>\n <ng-template *ngIf=\"_selectedPortal\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\"></ng-template>\n </ng-template>\n <div *ngIf=\"!_selectedPortal\">{{ config.content }}</div>\n <div class=\"ax-notification-buttons\" *ngIf=\"config.buttons?.length\">\n <ng-container *ngFor=\"let button of config.buttons\">\n <ax-button class=\"ax-xs\" [text]=\"button.text\" [color]=\"button.color\" [look]=\"button.look\"\n [disabled]=\"button.disabled\" (onClick)=\"_handleButtonClick(button)\">\n <ax-loading *ngIf=\"button.loading\"></ax-loading>\n </ax-button>\n </ng-container>\n\n </div>\n</div>\n<ax-close-button *ngIf=\"config.closeButton\"></ax-close-button>\n<div class=\"ax-notification-progress\" [style.animation-duration.ms]=\"config.timeOut\"\n *ngIf=\"config.timeOutProgress && config.timeOut\"></div>", styles: [".ax-dark ax-notification{background-color:rgba(var(--ax-color-default))}ax-notification{width:max(20vw,380px);display:flex;padding:1rem;border-radius:var(--ax-rounded-border-default);font-size:.875rem;border:1px solid;background-color:rgba(var(--ax-color-surface));border-color:rgba(var(--ax-color-border-default));position:relative;overflow:hidden;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-notification.ax-primary .ax-notification-icon{color:rgba(var(--ax-color-primary-500))}ax-notification.ax-primary .ax-notification-progress{background-color:rgba(var(--ax-color-primary-500))}ax-notification.ax-secondary .ax-notification-icon{color:rgba(var(--ax-color-secondary-500))}ax-notification.ax-secondary .ax-notification-progress{background-color:rgba(var(--ax-color-secondary-500))}ax-notification.ax-success .ax-notification-icon{color:rgba(var(--ax-color-success-500))}ax-notification.ax-success .ax-notification-progress{background-color:rgba(var(--ax-color-success-500))}ax-notification.ax-warning .ax-notification-icon{color:rgba(var(--ax-color-warning-500))}ax-notification.ax-warning .ax-notification-progress{background-color:rgba(var(--ax-color-warning-500))}ax-notification.ax-danger .ax-notification-icon{color:rgba(var(--ax-color-danger-500))}ax-notification.ax-danger .ax-notification-progress{background-color:rgba(var(--ax-color-danger-500))}ax-notification.ax-info .ax-notification-icon{color:rgba(var(--ax-color-info-500))}ax-notification.ax-info .ax-notification-progress{background-color:rgba(var(--ax-color-info-500))}@media (max-width: 599px){ax-notification{width:98vw}}ax-notification .ax-notification-icon,ax-notification .ax-icon-close{font-size:1.25rem}ax-notification .ax-notification-icon{padding-inline-end:.75rem}ax-notification .ax-notification-content{display:flex;flex-direction:column;flex:1;color:rgba(var(--ax-color-default-fore));font-weight:400}ax-notification .ax-notification-content .ax-notification-title{font-weight:500;margin-bottom:.25rem;color:rgba(var(--ax-color-default-fore))}ax-notification .ax-notification-content .ax-notification-buttons{margin-top:.75rem;display:flex;gap:.75rem}ax-notification .ax-icon-close{cursor:pointer;height:-moz-fit-content;height:fit-content;color:rgba(var(--ax-color-default-fore))}ax-notification .ax-icon-close:hover{opacity:.6}ax-notification .ax-notification-progress{position:absolute;right:0;left:0;bottom:0;height:.25rem;width:100%;animation-duration:4s;animation-timing-function:linear;animation-name:progressBar;background-color:rgba(var(--ax-color-border-default))}@keyframes progressBar{0%{width:100%}to{width:0%}}\n"] }]
92
+ args: [{ selector: 'ax-notification', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXClosbaleComponent, useExisting: AXNotificationComponent }], template: "<span class=\"ax-notification-icon {{_icon}}\"></span>\n<div class=\"ax-notification-content\">\n <div class=\"ax-notification-title\">{{ config.title }}</div>\n <ng-template *ngIf=\"_selectedPortal\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\"></ng-template>\n </ng-template>\n <div *ngIf=\"!_selectedPortal\">{{ config.content }}</div>\n <div class=\"ax-notification-buttons\" *ngIf=\"config.buttons?.length\">\n <ng-container *ngFor=\"let button of config.buttons\">\n <ax-button class=\"ax-xs\" [text]=\"button.text\" [color]=\"button.color\" [look]=\"button.look\"\n [disabled]=\"button.disabled\" (onClick)=\"_handleButtonClick(button)\">\n <ax-loading *ngIf=\"button.loading\"></ax-loading>\n </ax-button>\n </ng-container>\n\n </div>\n</div>\n<ax-close-button *ngIf=\"config.closeButton\"></ax-close-button>\n<div class=\"ax-notification-progress\" [style.animation-duration.ms]=\"config.timeOut\"\n *ngIf=\"config.timeOutProgress && config.timeOut\"></div>", styles: [".ax-dark ax-notification{background-color:rgba(var(--ax-color-gray-900));border-color:rgba(var(--ax-color-gray-950))}ax-notification{width:max(20vw,380px);display:flex;padding:1rem;border-radius:var(--ax-rounded-border-default);font-size:.875rem;border:1px solid;background-color:rgba(var(--ax-color-surface));border-color:rgba(var(--ax-color-border-default));position:relative;overflow:hidden;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-notification.ax-primary .ax-notification-icon{color:rgba(var(--ax-color-primary-500))}ax-notification.ax-primary .ax-notification-progress{background-color:rgba(var(--ax-color-primary-500))}ax-notification.ax-secondary .ax-notification-icon{color:rgba(var(--ax-color-secondary-500))}ax-notification.ax-secondary .ax-notification-progress{background-color:rgba(var(--ax-color-secondary-500))}ax-notification.ax-success .ax-notification-icon{color:rgba(var(--ax-color-success-500))}ax-notification.ax-success .ax-notification-progress{background-color:rgba(var(--ax-color-success-500))}ax-notification.ax-warning .ax-notification-icon{color:rgba(var(--ax-color-warning-500))}ax-notification.ax-warning .ax-notification-progress{background-color:rgba(var(--ax-color-warning-500))}ax-notification.ax-danger .ax-notification-icon{color:rgba(var(--ax-color-danger-500))}ax-notification.ax-danger .ax-notification-progress{background-color:rgba(var(--ax-color-danger-500))}ax-notification.ax-info .ax-notification-icon{color:rgba(var(--ax-color-info-500))}ax-notification.ax-info .ax-notification-progress{background-color:rgba(var(--ax-color-info-500))}@media (max-width: 599px){ax-notification{width:98vw}}ax-notification .ax-notification-icon,ax-notification .ax-icon-close{font-size:1.25rem}ax-notification .ax-notification-icon{padding-inline-end:.75rem}ax-notification .ax-notification-content{display:flex;flex-direction:column;flex:1;color:rgba(var(--ax-color-text-default));font-weight:400}ax-notification .ax-notification-content .ax-notification-title{font-weight:500;margin-bottom:.25rem}ax-notification .ax-notification-content .ax-notification-buttons{margin-top:.75rem;display:flex;gap:.75rem}ax-notification .ax-icon-close{cursor:pointer;height:-moz-fit-content;height:fit-content}ax-notification .ax-icon-close:hover{opacity:.6}ax-notification .ax-notification-progress{position:absolute;right:0;left:0;bottom:0;height:.25rem;width:100%;animation-duration:4s;animation-timing-function:linear;animation-name:progressBar;background-color:rgba(var(--ax-color-border-default))}@keyframes progressBar{0%{width:100%}to{width:0%}}\n"] }]
93
93
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
94
94
  type: Inject,
95
95
  args: [DIALOG_DATA]
@@ -97,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImpor
97
97
  type: HostBinding,
98
98
  args: ['class']
99
99
  }] } });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9ub3RpZmljYXRpb24vc3JjL2xpYi9ub3RpZmljYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9zcmMvbGliL25vdGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQXlCLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxlQUFlLEVBQXlCLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdGLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxNQUFNLEVBQ04sV0FBVyxFQUNYLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7OztBQUU3RDs7OztHQUlHO0FBU0gsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGVBQWU7SUFLMUQ7O0tBRUM7SUFDRCxZQUVTLE1BQTBCLEVBQ3pCLFNBQTJDO1FBRW5ELEtBQUssRUFBRSxDQUFDO1FBSEQsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFDekIsY0FBUyxHQUFULFNBQVMsQ0FBa0M7SUFHckQsQ0FBQztJQUdELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLGNBQWM7UUFDcEIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUN2QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sWUFBWSxXQUFXLEVBQUU7WUFDOUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUErQixFQUMzQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FDeEIsQ0FBQztZQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDekI7YUFBTSxJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFO1lBQ3BELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFpQyxDQUFDLENBQUM7WUFDMUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ3JCLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7Z0JBQ3pCLEtBQUssU0FBUztvQkFDWixJQUFJLENBQUMsS0FBSyxHQUFHLG1DQUFtQyxDQUFDO29CQUNqRCxNQUFNO2dCQUNSLEtBQUssUUFBUTtvQkFDWCxJQUFJLENBQUMsS0FBSyxHQUFHLDRCQUE0QixDQUFDO29CQUMxQyxNQUFNO2dCQUNSLEtBQUssU0FBUztvQkFDWixJQUFJLENBQUMsS0FBSyxHQUFHLDhCQUE4QixDQUFDO29CQUM1QyxNQUFNO2dCQUNSLEtBQUssTUFBTTtvQkFDVCxJQUFJLENBQUMsS0FBSyxHQUFHLDJCQUEyQixDQUFDO29CQUN6QyxNQUFNO2dCQUNSO29CQUNFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksbUNBQW1DLENBQUM7b0JBQ3JFLE1BQU07YUFDVDtTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVTLGtCQUFrQixDQUFDLE1BQWdDO1FBQzNELElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUNsQixNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRUQsSUFDWSxXQUFXO1FBQ3JCLE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDbkIsU0FBUyxFQUFFLElBQUk7WUFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRTtTQUNuQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXJGVSx1QkFBdUIsa0JBU3hCLFdBQVc7a0dBVFYsdUJBQXVCLGlHQUZ2QixDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRSxDQUFDLGlEQ3hCckYseS9CQW1CeUQ7OzJGRE81Qyx1QkFBdUI7a0JBUm5DLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLHlCQUF5QixFQUFFLENBQUM7OzBCQVdoRixNQUFNOzJCQUFDLFdBQVc7b0VBbUVULFdBQVc7c0JBRHRCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ2xvc2JhbGVDb21wb25lbnQsIEFYQ29tcG9uZW50Q2xvc2VFdmVudCwgTVhCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwsIENvbXBvbmVudFR5cGUsIFBvcnRhbCwgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE5vdGlmaWNhdGlvbkJ1dHRvbkl0ZW0sIEFYTm90aWZpY2F0aW9uRGF0YSB9IGZyb20gJy4vbm90aWZpY2F0aW9uLmNsYXNzJztcbmltcG9ydCB7IERJQUxPR19EQVRBLCBEaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcblxuLyoqXG4gKiBUaGUgQnV0dG9uIGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtbm90aWZpY2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWENsb3NiYWxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhOb3RpZmljYXRpb25Db21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTm90aWZpY2F0aW9uQ29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IHtcblxuICBfc2VsZWN0ZWRQb3J0YWw6IFBvcnRhbDx1bmtub3duPjtcbiAgX2ljb246IHN0cmluZztcblxuICAvKipcbiAqICBAaWdub3JlXG4gKi9cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChESUFMT0dfREFUQSlcbiAgICBwdWJsaWMgY29uZmlnOiBBWE5vdGlmaWNhdGlvbkRhdGEsXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWY6IERpYWxvZ1JlZjxBWENvbXBvbmVudENsb3NlRXZlbnQ+LFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuX2luaXRDb250ZW50KCk7XG4gICAgdGhpcy5faW5pdEljb24oKTtcbiAgICB0aGlzLl9oYW5kbGVUaW1lT3V0KCk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVUaW1lT3V0KCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy50aW1lT3V0KSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfSwgdGhpcy5jb25maWcudGltZU91dCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdENvbnRlbnQoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmNvbnRlbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgdGhpcy5fc2VsZWN0ZWRQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwoXG4gICAgICAgIHRoaXMuY29uZmlnLmNvbnRlbnQgYXMgVGVtcGxhdGVSZWY8dW5rbm93bj4sXG4gICAgICAgIHRoaXMuZ2V0Vmlld0NvbnRhaW5lcigpLFxuICAgICAgKTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuY29uZmlnLmNvbnRlbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkUG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbCh0aGlzLmNvbmZpZy5jb250ZW50IGFzIENvbXBvbmVudFR5cGU8dW5rbm93bj4pO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEljb24oKSB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5pY29uKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuY29uZmlnLmNvbG9yKSB7XG4gICAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICAgIHRoaXMuX2ljb24gPSAnYXgtaWNvbiBheC1pY29uLWNoZWNrLWNpcmNsZS1maWxsJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZGFuZ2VyJzpcbiAgICAgICAgICB0aGlzLl9pY29uID0gJ2F4LWljb24gYXgtaWNvbi1lcnJvci1maWxsJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgICAgdGhpcy5faWNvbiA9ICdheC1pY29uIGF4LWljb24td2FybmluZy1maWxsJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaW5mbyc6XG4gICAgICAgICAgdGhpcy5faWNvbiA9ICdheC1pY29uIGF4LWljb24taW5mby1maWxsJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aGlzLl9pY29uID0gdGhpcy5jb25maWcuaWNvbiB8fCAnYXgtaWNvbiBheC1pY29uLWNoZWNrLWNpcmNsZS1maWxsJztcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5faWNvbiA9IHRoaXMuY29uZmlnLmljb247XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVCdXR0b25DbGljayhidXR0b246IEFYTm90aWZpY2F0aW9uQnV0dG9uSXRlbSkge1xuICAgIGlmIChidXR0b24ub25DbGljaykge1xuICAgICAgYnV0dG9uLm9uQ2xpY2soeyBzb3VyY2U6IGJ1dHRvbiB9KTtcbiAgICB9XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGF4LSR7dGhpcy5jb25maWcuY29sb3J9YDtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGh0bWxFbGVtZW50OiB0aGlzLmdldEhvc3RFbGVtZW50KCksXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxzcGFuIGNsYXNzPVwiYXgtbm90aWZpY2F0aW9uLWljb24ge3tfaWNvbn19XCI+PC9zcGFuPlxuPGRpdiBjbGFzcz1cImF4LW5vdGlmaWNhdGlvbi1jb250ZW50XCI+XG4gIDxkaXYgY2xhc3M9XCJheC1ub3RpZmljYXRpb24tdGl0bGVcIj57eyBjb25maWcudGl0bGUgfX08L2Rpdj5cbiAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiX3NlbGVjdGVkUG9ydGFsXCI+XG4gICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiX3NlbGVjdGVkUG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPGRpdiAqbmdJZj1cIiFfc2VsZWN0ZWRQb3J0YWxcIj57eyBjb25maWcuY29udGVudCB9fTwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYXgtbm90aWZpY2F0aW9uLWJ1dHRvbnNcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zPy5sZW5ndGhcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidXR0b24gb2YgY29uZmlnLmJ1dHRvbnNcIj5cbiAgICAgIDxheC1idXR0b24gY2xhc3M9XCJheC14c1wiIFt0ZXh0XT1cImJ1dHRvbi50ZXh0XCIgW2NvbG9yXT1cImJ1dHRvbi5jb2xvclwiIFtsb29rXT1cImJ1dHRvbi5sb29rXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImJ1dHRvbi5kaXNhYmxlZFwiIChvbkNsaWNrKT1cIl9oYW5kbGVCdXR0b25DbGljayhidXR0b24pXCI+XG4gICAgICAgIDxheC1sb2FkaW5nICpuZ0lmPVwiYnV0dG9uLmxvYWRpbmdcIj48L2F4LWxvYWRpbmc+XG4gICAgICA8L2F4LWJ1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICA8L2Rpdj5cbjwvZGl2PlxuPGF4LWNsb3NlLWJ1dHRvbiAqbmdJZj1cImNvbmZpZy5jbG9zZUJ1dHRvblwiPjwvYXgtY2xvc2UtYnV0dG9uPlxuPGRpdiBjbGFzcz1cImF4LW5vdGlmaWNhdGlvbi1wcm9ncmVzc1wiIFtzdHlsZS5hbmltYXRpb24tZHVyYXRpb24ubXNdPVwiY29uZmlnLnRpbWVPdXRcIlxuICAqbmdJZj1cImNvbmZpZy50aW1lT3V0UHJvZ3Jlc3MgJiYgY29uZmlnLnRpbWVPdXRcIj48L2Rpdj4iXX0=
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9ub3RpZmljYXRpb24vc3JjL2xpYi9ub3RpZmljYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9zcmMvbGliL25vdGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQXlCLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBeUIsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0YsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLE1BQU0sRUFDTixXQUFXLEVBQ1gsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQUd2Qjs7OztHQUlHO0FBU0gsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGVBQWU7SUFJMUQ7O09BRUc7SUFDSCxZQUVTLE1BQTBCLEVBQ3pCLFNBQTJDO1FBRW5ELEtBQUssRUFBRSxDQUFDO1FBSEQsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFDekIsY0FBUyxHQUFULFNBQVMsQ0FBa0M7SUFHckQsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLGNBQWM7UUFDcEIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUN2QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sWUFBWSxXQUFXLEVBQUU7WUFDOUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUErQixFQUMzQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FDeEIsQ0FBQztZQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDekI7YUFBTSxJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFO1lBQ3BELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFpQyxDQUFDLENBQUM7WUFDMUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ3JCLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7Z0JBQ3pCLEtBQUssU0FBUztvQkFDWixJQUFJLENBQUMsS0FBSyxHQUFHLG1DQUFtQyxDQUFDO29CQUNqRCxNQUFNO2dCQUNSLEtBQUssUUFBUTtvQkFDWCxJQUFJLENBQUMsS0FBSyxHQUFHLDRCQUE0QixDQUFDO29CQUMxQyxNQUFNO2dCQUNSLEtBQUssU0FBUztvQkFDWixJQUFJLENBQUMsS0FBSyxHQUFHLDhCQUE4QixDQUFDO29CQUM1QyxNQUFNO2dCQUNSLEtBQUssTUFBTTtvQkFDVCxJQUFJLENBQUMsS0FBSyxHQUFHLHNCQUFzQixDQUFDO29CQUNwQyxNQUFNO2dCQUNSO29CQUNFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksbUNBQW1DLENBQUM7b0JBQ3JFLE1BQU07YUFDVDtTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVTLGtCQUFrQixDQUFDLE1BQWdDO1FBQzNELElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUNsQixNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRUQsSUFDWSxXQUFXO1FBQ3JCLE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDbkIsU0FBUyxFQUFFLElBQUk7WUFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRTtTQUNuQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQW5GVSx1QkFBdUIsa0JBUXhCLFdBQVc7a0dBUlYsdUJBQXVCLGlHQUZ2QixDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRSxDQUFDLGlEQ3hCckYseS9CQW1CeUQ7OzJGRE81Qyx1QkFBdUI7a0JBUm5DLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLHlCQUF5QixFQUFFLENBQUM7OzBCQVVoRixNQUFNOzJCQUFDLFdBQVc7b0VBa0VULFdBQVc7c0JBRHRCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ2xvc2JhbGVDb21wb25lbnQsIEFYQ29tcG9uZW50Q2xvc2VFdmVudCwgTVhCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBESUFMT0dfREFUQSwgRGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwsIENvbXBvbmVudFR5cGUsIFBvcnRhbCwgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE5vdGlmaWNhdGlvbkJ1dHRvbkl0ZW0sIEFYTm90aWZpY2F0aW9uRGF0YSB9IGZyb20gJy4vbm90aWZpY2F0aW9uLmNsYXNzJztcblxuLyoqXG4gKiBUaGUgQnV0dG9uIGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtbm90aWZpY2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWENsb3NiYWxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhOb3RpZmljYXRpb25Db21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTm90aWZpY2F0aW9uQ29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IHtcbiAgX3NlbGVjdGVkUG9ydGFsOiBQb3J0YWw8dW5rbm93bj47XG4gIF9pY29uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERJQUxPR19EQVRBKVxuICAgIHB1YmxpYyBjb25maWc6IEFYTm90aWZpY2F0aW9uRGF0YSxcbiAgICBwcml2YXRlIGRpYWxvZ1JlZjogRGlhbG9nUmVmPEFYQ29tcG9uZW50Q2xvc2VFdmVudD4sXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuX2luaXRDb250ZW50KCk7XG4gICAgdGhpcy5faW5pdEljb24oKTtcbiAgICB0aGlzLl9oYW5kbGVUaW1lT3V0KCk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVUaW1lT3V0KCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy50aW1lT3V0KSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfSwgdGhpcy5jb25maWcudGltZU91dCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdENvbnRlbnQoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmNvbnRlbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgdGhpcy5fc2VsZWN0ZWRQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwoXG4gICAgICAgIHRoaXMuY29uZmlnLmNvbnRlbnQgYXMgVGVtcGxhdGVSZWY8dW5rbm93bj4sXG4gICAgICAgIHRoaXMuZ2V0Vmlld0NvbnRhaW5lcigpLFxuICAgICAgKTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuY29uZmlnLmNvbnRlbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkUG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbCh0aGlzLmNvbmZpZy5jb250ZW50IGFzIENvbXBvbmVudFR5cGU8dW5rbm93bj4pO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEljb24oKSB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5pY29uKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuY29uZmlnLmNvbG9yKSB7XG4gICAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICAgIHRoaXMuX2ljb24gPSAnYXgtaWNvbiBheC1pY29uLWNoZWNrLWNpcmNsZS1maWxsJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZGFuZ2VyJzpcbiAgICAgICAgICB0aGlzLl9pY29uID0gJ2F4LWljb24gYXgtaWNvbi1lcnJvci1maWxsJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgICAgdGhpcy5faWNvbiA9ICdheC1pY29uIGF4LWljb24td2FybmluZy1maWxsJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaW5mbyc6XG4gICAgICAgICAgdGhpcy5faWNvbiA9ICdheC1pY29uIGF4LWljb24taW5mbyc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhpcy5faWNvbiA9IHRoaXMuY29uZmlnLmljb24gfHwgJ2F4LWljb24gYXgtaWNvbi1jaGVjay1jaXJjbGUtZmlsbCc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2ljb24gPSB0aGlzLmNvbmZpZy5pY29uO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlQnV0dG9uQ2xpY2soYnV0dG9uOiBBWE5vdGlmaWNhdGlvbkJ1dHRvbkl0ZW0pIHtcbiAgICBpZiAoYnV0dG9uLm9uQ2xpY2spIHtcbiAgICAgIGJ1dHRvbi5vbkNsaWNrKHsgc291cmNlOiBidXR0b24gfSk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHByaXZhdGUgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBheC0ke3RoaXMuY29uZmlnLmNvbG9yfWA7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5nZXRIb3N0RWxlbWVudCgpLFxuICAgIH0pO1xuICB9XG59XG4iLCI8c3BhbiBjbGFzcz1cImF4LW5vdGlmaWNhdGlvbi1pY29uIHt7X2ljb259fVwiPjwvc3Bhbj5cbjxkaXYgY2xhc3M9XCJheC1ub3RpZmljYXRpb24tY29udGVudFwiPlxuICA8ZGl2IGNsYXNzPVwiYXgtbm90aWZpY2F0aW9uLXRpdGxlXCI+e3sgY29uZmlnLnRpdGxlIH19PC9kaXY+XG4gIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIl9zZWxlY3RlZFBvcnRhbFwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cIl9zZWxlY3RlZFBvcnRhbFwiPjwvbmctdGVtcGxhdGU+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxkaXYgKm5nSWY9XCIhX3NlbGVjdGVkUG9ydGFsXCI+e3sgY29uZmlnLmNvbnRlbnQgfX08L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImF4LW5vdGlmaWNhdGlvbi1idXR0b25zXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucz8ubGVuZ3RoXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGNvbmZpZy5idXR0b25zXCI+XG4gICAgICA8YXgtYnV0dG9uIGNsYXNzPVwiYXgteHNcIiBbdGV4dF09XCJidXR0b24udGV4dFwiIFtjb2xvcl09XCJidXR0b24uY29sb3JcIiBbbG9va109XCJidXR0b24ubG9va1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJidXR0b24uZGlzYWJsZWRcIiAob25DbGljayk9XCJfaGFuZGxlQnV0dG9uQ2xpY2soYnV0dG9uKVwiPlxuICAgICAgICA8YXgtbG9hZGluZyAqbmdJZj1cImJ1dHRvbi5sb2FkaW5nXCI+PC9heC1sb2FkaW5nPlxuICAgICAgPC9heC1idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgPC9kaXY+XG48L2Rpdj5cbjxheC1jbG9zZS1idXR0b24gKm5nSWY9XCJjb25maWcuY2xvc2VCdXR0b25cIj48L2F4LWNsb3NlLWJ1dHRvbj5cbjxkaXYgY2xhc3M9XCJheC1ub3RpZmljYXRpb24tcHJvZ3Jlc3NcIiBbc3R5bGUuYW5pbWF0aW9uLWR1cmF0aW9uLm1zXT1cImNvbmZpZy50aW1lT3V0XCJcbiAgKm5nSWY9XCJjb25maWcudGltZU91dFByb2dyZXNzICYmIGNvbmZpZy50aW1lT3V0XCI+PC9kaXY+Il19