ngx-edu-sharing-ui 9.0.2 → 9.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/esm2022/lib/actionbar/actionbar.component.mjs +33 -18
  2. package/esm2022/lib/common/edu-sharing-ui-common.module.mjs +73 -62
  3. package/esm2022/lib/directives/check-text-overflow.directive.mjs +8 -2
  4. package/esm2022/lib/directives/icon.directive.mjs +38 -14
  5. package/esm2022/lib/directives/infinite-scroll.directive.mjs +85 -0
  6. package/esm2022/lib/dropdown/dropdown.component.mjs +17 -10
  7. package/esm2022/lib/edu-sharing-ui-configuration.mjs +8 -1
  8. package/esm2022/lib/edu-sharing-ui.module.mjs +5 -1
  9. package/esm2022/lib/list-items/list-base/list-base.component.mjs +6 -6
  10. package/esm2022/lib/list-items/list-counts/list-counts.component.mjs +3 -1
  11. package/esm2022/lib/list-items/list-text/list-text.component.mjs +17 -17
  12. package/esm2022/lib/mds/mds-helper.service.mjs +167 -0
  13. package/esm2022/lib/mds/mds.module.mjs +16 -0
  14. package/esm2022/lib/node-entries/drag-preview/drag-preview.component.mjs +3 -3
  15. package/esm2022/lib/node-entries/entries-model.mjs +2 -1
  16. package/esm2022/lib/node-entries/node-cache.mjs +9 -1
  17. package/esm2022/lib/node-entries/node-data-source.mjs +4 -2
  18. package/esm2022/lib/node-entries/node-entries-card/node-entries-card.component.mjs +16 -12
  19. package/esm2022/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.mjs +37 -22
  20. package/esm2022/lib/node-entries/node-entries-card-small/node-entries-card-small.component.mjs +5 -5
  21. package/esm2022/lib/node-entries/node-entries-global-options/node-entries-global-options.component.mjs +7 -3
  22. package/esm2022/lib/node-entries/node-entries-global.service.mjs +14 -1
  23. package/esm2022/lib/node-entries/node-entries-table/column-chooser/column-chooser.component.mjs +3 -3
  24. package/esm2022/lib/node-entries/node-entries-table/node-entries-table.component.mjs +45 -34
  25. package/esm2022/lib/node-entries/node-entries-wrapper.component.mjs +17 -5
  26. package/esm2022/lib/node-entries/node-entries.component.mjs +2 -2
  27. package/esm2022/lib/node-entries/node-rating/node-rating.component.mjs +35 -12
  28. package/esm2022/lib/node-entries/option-button/option-button.component.mjs +24 -11
  29. package/esm2022/lib/node-entries/sort-select-panel/sort-select-panel.component.mjs +3 -3
  30. package/esm2022/lib/node-url/node-url.component.mjs +7 -3
  31. package/esm2022/lib/pipes/file-size.pipe.mjs +6 -5
  32. package/esm2022/lib/pipes/node-title.pipe.mjs +7 -1
  33. package/esm2022/lib/pipes/option-tooltip.pipe.mjs +3 -3
  34. package/esm2022/lib/pipes/property-slug.pipe.mjs +16 -0
  35. package/esm2022/lib/services/abstract/options-helper.service.mjs +1 -1
  36. package/esm2022/lib/services/app-container.service.mjs +66 -0
  37. package/esm2022/lib/services/node-entries.service.mjs +47 -3
  38. package/esm2022/lib/services/node-helper.service.mjs +38 -12
  39. package/esm2022/lib/services/options-helper-data.service.mjs +5 -5
  40. package/esm2022/lib/services/repo-url.service.mjs +2 -1
  41. package/esm2022/lib/services/ui.service.mjs +22 -1
  42. package/esm2022/lib/spinner/spinner.component.mjs +4 -3
  43. package/esm2022/lib/translations/translation-loader.mjs +48 -14
  44. package/esm2022/lib/translations/translations.module.mjs +15 -4
  45. package/esm2022/lib/translations/translations.service.mjs +25 -7
  46. package/esm2022/lib/types/injection-tokens.mjs +9 -0
  47. package/esm2022/lib/types/option-item.mjs +9 -3
  48. package/esm2022/module.mjs +51 -43
  49. package/fesm2022/ngx-edu-sharing-ui.mjs +4595 -3931
  50. package/fesm2022/ngx-edu-sharing-ui.mjs.map +1 -1
  51. package/lib/actionbar/actionbar.component.d.ts +13 -3
  52. package/lib/common/edu-sharing-ui-common.module.d.ts +27 -25
  53. package/lib/directives/icon.directive.d.ts +6 -4
  54. package/lib/directives/infinite-scroll.directive.d.ts +22 -0
  55. package/lib/dropdown/dropdown.component.d.ts +6 -3
  56. package/lib/edu-sharing-ui-configuration.d.ts +5 -0
  57. package/lib/edu-sharing-ui.module.d.ts +7 -6
  58. package/lib/list-items/list-widget.d.ts +1 -1
  59. package/lib/mds/mds-helper.service.d.ts +37 -0
  60. package/lib/mds/mds.module.d.ts +6 -0
  61. package/lib/node-entries/entries-model.d.ts +3 -2
  62. package/lib/node-entries/node-data-source.d.ts +1 -1
  63. package/lib/node-entries/node-entries-card/node-entries-card.component.d.ts +2 -2
  64. package/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.d.ts +6 -1
  65. package/lib/node-entries/node-entries-global-options/node-entries-global-options.component.d.ts +1 -0
  66. package/lib/node-entries/node-entries-global.service.d.ts +7 -0
  67. package/lib/node-entries/node-entries-table/node-entries-table.component.d.ts +4 -1
  68. package/lib/node-entries/node-entries-wrapper.component.d.ts +8 -3
  69. package/lib/node-entries/node-rating/node-rating.component.d.ts +3 -3
  70. package/lib/node-entries/option-button/option-button.component.d.ts +8 -3
  71. package/lib/pipes/node-title.pipe.d.ts +2 -1
  72. package/lib/pipes/option-tooltip.pipe.d.ts +1 -1
  73. package/lib/pipes/property-slug.pipe.d.ts +7 -0
  74. package/lib/services/abstract/options-helper.service.d.ts +4 -4
  75. package/lib/services/app-container.service.d.ts +43 -0
  76. package/lib/services/node-entries.service.d.ts +31 -6
  77. package/lib/services/node-helper.service.d.ts +7 -5
  78. package/lib/services/options-helper-data.service.d.ts +6 -6
  79. package/lib/services/ui.service.d.ts +15 -2
  80. package/lib/spinner/spinner.component.d.ts +1 -1
  81. package/lib/translations/translation-loader.d.ts +2 -1
  82. package/lib/translations/translations.service.d.ts +5 -2
  83. package/lib/types/injection-tokens.d.ts +8 -0
  84. package/lib/types/option-item.d.ts +10 -6
  85. package/module.d.ts +50 -42
  86. package/package.json +1 -1
  87. package/esm2022/lib/translations/languages.mjs +0 -5
  88. package/lib/translations/languages.d.ts +0 -4
@@ -3,6 +3,7 @@ import { Component, Input } from '@angular/core';
3
3
  import { UIAnimation } from '../util/ui-animation';
4
4
  import { UIConstants } from '../util/ui-constants';
5
5
  import { Helper } from '../util/helper';
6
+ import { BehaviorSubject } from 'rxjs';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "../services/ui.service";
8
9
  import * as i2 from "@ngx-translate/core";
@@ -10,8 +11,8 @@ import * as i3 from "@angular/common";
10
11
  import * as i4 from "@angular/material/menu";
11
12
  import * as i5 from "@angular/material/button";
12
13
  import * as i6 from "@angular/material/tooltip";
13
- import * as i7 from "../directives/icon.directive";
14
- import * as i8 from "../dropdown/dropdown.component";
14
+ import * as i7 from "../dropdown/dropdown.component";
15
+ import * as i8 from "../directives/icon.directive";
15
16
  import * as i9 from "../pipes/option-tooltip.pipe";
16
17
  /**
17
18
  * The action bar provides several icons, usually at the top right, with actions for a current context
@@ -68,26 +69,36 @@ export class ActionbarComponent {
68
69
  * Should disabled ("greyed out") options be shown or hidden?
69
70
  */
70
71
  this.showDisabled = true;
72
+ /**
73
+ * the position of the mat tooltips
74
+ */
75
+ this.tooltipPosition = 'below';
76
+ /**
77
+ * breakpoint width at which point the mobile display count is used
78
+ */
79
+ this.mobileBreakpoint = UIConstants.MOBILE_WIDTH;
71
80
  this.optionsIn = [];
72
- this.optionsAlways = [];
73
- this.optionsMenu = [];
81
+ this.optionsAlways$ = new BehaviorSubject([]);
82
+ this.optionsMenu$ = new BehaviorSubject([]);
74
83
  this.optionsToggle = [];
75
84
  }
76
85
  prepareOptions(options) {
77
86
  options = this.uiService.filterValidOptions(Helper.deepCopyArray(options));
78
87
  if (options == null) {
79
- this.optionsAlways = [];
80
- this.optionsMenu = [];
88
+ this.optionsAlways$.next([]);
89
+ this.optionsMenu$.next([]);
81
90
  return;
82
91
  }
83
92
  this.optionsToggle = this.uiService.filterToggleOptions(options, true);
84
- this.optionsAlways = this.getActionOptions(this.uiService.filterToggleOptions(options, false)).slice(0, this.getNumberOptions());
85
- if (!this.optionsAlways.length) {
86
- this.optionsAlways = this.uiService
93
+ this.optionsAlways$.next(this.getActionOptions(this.uiService.filterToggleOptions(options, false)).slice(0, this.getNumberOptions()));
94
+ if (!this.optionsAlways$.value.length) {
95
+ this.optionsAlways$.next(this.uiService
87
96
  .filterToggleOptions(options, false)
88
- .slice(0, this.getNumberOptions());
97
+ .slice(0, this.getNumberOptions()));
89
98
  }
90
- this.optionsMenu = this.hideActionOptions(this.uiService.filterToggleOptions(options, false), this.optionsAlways);
99
+ this.optionsMenu$.next(this.hideActionOptions(this.uiService.filterToggleOptions(options, false), this.optionsAlways$.value));
100
+ this.uiService.updateOptionEnabledState(this.optionsAlways$);
101
+ this.uiService.updateOptionEnabledState(this.optionsMenu$);
91
102
  // may causes weird looking
92
103
  /*if(this.optionsMenu.length<2) {
93
104
  this.optionsAlways = this.optionsAlways.concat(this.optionsMenu);
@@ -95,7 +106,7 @@ export class ActionbarComponent {
95
106
  }*/
96
107
  }
97
108
  getNumberOptions() {
98
- if (window.innerWidth < UIConstants.MOBILE_WIDTH) {
109
+ if (window.innerWidth < this.mobileBreakpoint) {
99
110
  return this.numberOfAlwaysVisibleOptionsMobile;
100
111
  }
101
112
  return this.numberOfAlwaysVisibleOptions;
@@ -142,17 +153,17 @@ export class ActionbarComponent {
142
153
  return filtered;
143
154
  }
144
155
  canShowDropdown() {
145
- if (!this.optionsMenu.length) {
156
+ if (!this.optionsMenu$.value.length) {
146
157
  return false;
147
158
  }
148
- return this.optionsMenu.filter((o) => o.isEnabled).length > 0;
159
+ return this.optionsMenu$.value.filter((o) => o.isEnabled).length > 0;
149
160
  }
150
161
  shouldHighlight(optionIndex, option) {
151
162
  switch (this.highlight) {
152
163
  case 'first':
153
164
  return optionIndex === 0;
154
165
  case 'last':
155
- return optionIndex === this.optionsAlways.length - 1;
166
+ return optionIndex === this.optionsAlways$.value.length - 1;
156
167
  case 'manual':
157
168
  return option.isPrimary;
158
169
  }
@@ -161,11 +172,11 @@ export class ActionbarComponent {
161
172
  this.invalidate();
162
173
  }
163
174
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: ActionbarComponent, deps: [{ token: i1.UIService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
164
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: ActionbarComponent, selector: "es-actionbar", inputs: { numberOfAlwaysVisibleOptions: "numberOfAlwaysVisibleOptions", numberOfAlwaysVisibleOptionsMobile: "numberOfAlwaysVisibleOptionsMobile", appearance: "appearance", dropdownPosition: "dropdownPosition", backgroundType: "backgroundType", style: "style", highlight: "highlight", showDisabled: "showDisabled", options: "options" }, usesOnChanges: true, ngImport: i0, template: "<es-dropdown\n #dropdownRef\n [options]=\"optionsMenu\"\n [showDisabled]=\"showDisabled\"\n [position]=\"dropdownPosition\"\n></es-dropdown>\n<div\n class=\"actionbar\"\n [class.actionbar-all-flat]=\"style === 'flat'\"\n [class.actionbar-background-dark]=\"backgroundType === 'dark'\"\n [class.actionbar-background-primary]=\"backgroundType === 'primary'\"\n [class.actionbar-round]=\"appearance === 'round'\"\n [class.actionbar-icon-button]=\"appearance === 'icon-button'\"\n>\n <ng-container *ngFor=\"let option of optionsAlways; let i = index\">\n <button\n *ngIf=\"shouldHighlight(i, option)\"\n mat-flat-button\n color=\"primary\"\n [disabled]=\"!option.isEnabled\"\n [class.display-none]=\"!option.isEnabled && !showDisabled\"\n matTooltip=\"{{ option | optionTooltip }}\"\n [attr.aria-label]=\"option.name | translate\"\n (click)=\"click(option)\"\n >\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"action-always-caption\" *ngIf=\"option.showName && appearance === 'button'\">\n {{ option.name | translate }}</span\n >\n </button>\n <button\n *ngIf=\"!shouldHighlight(i, option)\"\n mat-button\n color=\"primary\"\n [disabled]=\"!option.isEnabled\"\n [class.display-none]=\"!option.isEnabled && !showDisabled\"\n matTooltip=\"{{ option | optionTooltip }}\"\n [attr.aria-label]=\"option.name | translate\"\n (click)=\"click(option)\"\n >\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"action-always-caption\" *ngIf=\"option.showName && appearance === 'button'\">\n {{ option.name | translate }}</span\n >\n </button>\n </ng-container>\n <button\n mat-button\n color=\"primary\"\n class=\"more\"\n [attr.aria-label]=\"'OPTIONS.SHOW_ALL_OPTIONS' | translate\"\n [matMenuTriggerFor]=\"dropdownRef.menu\"\n *ngIf=\"canShowDropdown()\"\n data-test=\"more-actions-button\"\n >\n <i esIcon=\"more_vert\" [aria]=\"false\"></i>\n </button>\n <div\n *ngIf=\"optionsToggle.length\"\n class=\"actionToggle\"\n [class.actionToggleDivider]=\"optionsAlways.length\"\n >\n <button\n *ngFor=\"let option of optionsToggle\"\n mat-icon-button\n matTooltip=\"{{ option.name | translate }}\"\n [attr.aria-label]=\"option.name | translate\"\n (click)=\"click(option)\"\n [class.disabled]=\"!option.isEnabled\"\n attr.data-test=\"toggle-{{ option.name }}\"\n >\n <i [esIcon]=\"option.icon\" [aria]=\"false\"></i>\n </button>\n </div>\n</div>\n", styles: [".actionbar{display:flex;align-items:center;gap:10px}.actionToggle>button{color:var(--textLight)}button{min-width:unset}.light{color:#fff;background:transparent}.disabled{pointer-events:all}.light a{color:#fff}.actionToggleDivider{padding-left:10px;border-left:1px solid #ddd}.more{color:var(--primary);background-color:transparent}.actionbar-background-dark .mat-button{color:rgb(var(--palette-foreground-text-dark))}.actionbar-background-dark .mat-button:disabled{color:rgba(var(--palette-foreground-text-dark),.75)}.actionbar-background-primary .mat-button{color:rgb(var(--palette-foreground-text-dark))}.actionbar-background-primary .mat-flat-button{background-color:#fff;color:var(--primary)}.actionbar-background-primary .mat-flat-button:disabled{color:var(--textLight)}.actionbar-round button{width:45px;height:45px;justify-content:center}.actionbar-round button{border-radius:50%;box-shadow:0 0 5px #0000004d}.actionbar-round.actionbar-background-primary .mat-button{background-color:#fff;color:var(--primary)}.actionbar-round.actionbar-all-flat button{background:white;color:var(--primary)}.actionbar-round.actionbar-all-flat button:disabled{color:var(--textLight)}.actionbar-round .more,.actionbar-round .actionAlways{background:white;color:var(--primary);display:flex;width:45px;height:45px;line-height:45px;text-align:center;align-items:center}.actionbar-round .more .edu-icons,.actionbar-round .more .material-icons,.actionbar-round .actionAlways .edu-icons,.actionbar-round .actionAlways .material-icons{position:relative;font-size:24px}.actionbar-round .more span,.actionbar-round .actionAlways span{display:none}.actionbar-round .action-always .edu-icons,.actionbar-round .action-always .material-icons{right:4px!important}@media screen and (max-width: calc(var(--mobileWidth) + var(--mobileStage) * 4)){.action-always{padding:0 1rem}.action-always-caption{display:none}.mat-flat-button{padding:5px}}.actionbar-icon-button .action-always{padding:0 1rem}.actionbar-icon-button .action-always-caption{display:none}.actionbar-icon-button .mat-flat-button{padding:5px}\n"], dependencies: [{ 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: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i7.IconDirective, selector: "i[esIcon], i.material-icons", inputs: ["altText", "aria", "esIcon"] }, { kind: "component", type: i8.DropdownComponent, selector: "es-dropdown", inputs: ["position", "options", "callbackObject", "showDisabled", "menuClass"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: i9.OptionTooltipPipe, name: "optionTooltip" }], animations: [trigger('openOverlay', UIAnimation.openOverlay(UIAnimation.ANIMATION_TIME_FAST))] }); }
175
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: ActionbarComponent, selector: "es-actionbar", inputs: { numberOfAlwaysVisibleOptions: "numberOfAlwaysVisibleOptions", numberOfAlwaysVisibleOptionsMobile: "numberOfAlwaysVisibleOptionsMobile", appearance: "appearance", dropdownPosition: "dropdownPosition", backgroundType: "backgroundType", style: "style", highlight: "highlight", showDisabled: "showDisabled", tooltipPosition: "tooltipPosition", options: "options", mobileBreakpoint: "mobileBreakpoint" }, usesOnChanges: true, ngImport: i0, template: "<es-dropdown\n #dropdownRef\n [options]=\"optionsMenu$ | async\"\n [showDisabled]=\"showDisabled\"\n [position]=\"dropdownPosition\"\n></es-dropdown>\n<div\n class=\"actionbar\"\n [class.actionbar-all-flat]=\"style === 'flat'\"\n [class.actionbar-background-dark]=\"backgroundType === 'dark'\"\n [class.actionbar-background-primary]=\"backgroundType === 'primary'\"\n [class.actionbar-round]=\"appearance === 'round'\"\n [class.actionbar-icon-button]=\"appearance === 'icon-button'\"\n>\n <ng-container *ngFor=\"let option of optionsAlways$ | async; let i = index\">\n <button\n *ngIf=\"shouldHighlight(i, option)\"\n mat-flat-button\n color=\"primary\"\n [disabled]=\"!option.isEnabled\"\n [class.display-none]=\"!option.isEnabled && !showDisabled\"\n matTooltip=\"{{ option | optionTooltip | async }}\"\n [matTooltipPosition]=\"tooltipPosition\"\n [attr.aria-label]=\"option.ariaLabel || option.name | translate\"\n (click)=\"click(option)\"\n >\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"action-always-caption\" *ngIf=\"option.showName && appearance === 'button'\">\n {{ option.name | translate }}</span\n >\n </button>\n <button\n *ngIf=\"!shouldHighlight(i, option)\"\n mat-button\n color=\"primary\"\n [disabled]=\"!option.isEnabled\"\n [class.display-none]=\"!option.isEnabled && !showDisabled\"\n matTooltip=\"{{ option | optionTooltip | async }}\"\n [matTooltipPosition]=\"tooltipPosition\"\n [attr.aria-label]=\"option.ariaLabel || option.name | translate\"\n (click)=\"click(option)\"\n >\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"action-always-caption\" *ngIf=\"option.showName && appearance === 'button'\">\n {{ option.name | translate }}</span\n >\n </button>\n </ng-container>\n <button\n mat-button\n color=\"primary\"\n class=\"more\"\n [attr.aria-label]=\"'OPTIONS.SHOW_ALL_OPTIONS' | translate\"\n [matMenuTriggerFor]=\"dropdownRef.menu\"\n *ngIf=\"canShowDropdown()\"\n data-test=\"more-actions-button\"\n >\n <i esIcon=\"more_vert\" [aria]=\"false\"></i>\n </button>\n <div\n *ngIf=\"optionsToggle.length\"\n class=\"actionToggle\"\n [class.actionToggleDivider]=\"(optionsAlways$ | async).length\"\n >\n <button\n *ngFor=\"let option of optionsToggle\"\n mat-icon-button\n matTooltip=\"{{ option.name | translate }}\"\n [attr.aria-label]=\"option.ariaLabel || option.name | translate\"\n (click)=\"click(option)\"\n [class.disabled]=\"!option.isEnabled\"\n attr.data-test=\"toggle-{{ option.name }}\"\n >\n <i [esIcon]=\"option.icon\" [aria]=\"false\"></i>\n </button>\n </div>\n</div>\n", styles: [".actionbar{display:flex;align-items:center;gap:10px}.actionToggle>button{color:var(--textLight)}button{min-width:unset}.light{color:#fff;background:transparent}.disabled{pointer-events:all}.light a{color:#fff}.actionToggleDivider{padding-left:10px;border-left:1px solid #ddd}.more{color:var(--primary);background-color:transparent}.actionbar-background-dark .mat-button{color:rgb(var(--palette-foreground-text-dark))}.actionbar-background-dark .mat-button:disabled{color:rgba(var(--palette-foreground-text-dark),.75)}.actionbar-background-primary .mdc-button{color:rgb(var(--palette-foreground-text-dark))}.actionbar-background-primary .mat-mdc-unelevated-button{background-color:#fff;color:var(--primary)}.actionbar-background-primary .mat-mdc-unelevated-button:disabled{color:#00000080;background-color:#eee}.actionbar-round button{width:45px;height:45px;justify-content:center}.actionbar-round button{border-radius:50%;box-shadow:0 0 5px #0000004d}.actionbar-round.actionbar-background-primary .mat-button{background-color:#fff;color:var(--primary)}.actionbar-round.actionbar-all-flat button{background:white;color:var(--primary)!important}.actionbar-round.actionbar-all-flat button:disabled{color:var(--textLight)!important}.actionbar-round .more,.actionbar-round .actionAlways{background:white;color:var(--primary);display:flex;width:45px;height:45px;line-height:45px;text-align:center;align-items:center}.actionbar-round .more .edu-icons,.actionbar-round .more .material-icons,.actionbar-round .actionAlways .edu-icons,.actionbar-round .actionAlways .material-icons{position:relative;font-size:24px}.actionbar-round .more span,.actionbar-round .actionAlways span{display:none}.actionbar-round .action-always .edu-icons,.actionbar-round .action-always .material-icons{right:4px!important}@media screen and (max-width: calc(var(--mobileWidth) + var(--mobileStage) * 4)){.action-always{padding:0 1rem}.action-always-caption{display:none}.mat-flat-button{padding:5px}}.actionbar-icon-button .action-always{padding:0 1rem}.actionbar-icon-button .action-always-caption{display:none}.actionbar-icon-button .mat-flat-button{padding:5px}\n"], dependencies: [{ 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: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i7.DropdownComponent, selector: "es-dropdown", inputs: ["position", "options", "callbackObject", "showDisabled", "menuClass"] }, { kind: "directive", type: i8.IconDirective, selector: "i[esIcon], i.material-icons", inputs: ["altText", "aria", "esIcon"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: i9.OptionTooltipPipe, name: "optionTooltip" }], animations: [trigger('openOverlay', UIAnimation.openOverlay(UIAnimation.ANIMATION_TIME_FAST))] }); }
165
176
  }
166
177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: ActionbarComponent, decorators: [{
167
178
  type: Component,
168
- args: [{ selector: 'es-actionbar', animations: [trigger('openOverlay', UIAnimation.openOverlay(UIAnimation.ANIMATION_TIME_FAST))], template: "<es-dropdown\n #dropdownRef\n [options]=\"optionsMenu\"\n [showDisabled]=\"showDisabled\"\n [position]=\"dropdownPosition\"\n></es-dropdown>\n<div\n class=\"actionbar\"\n [class.actionbar-all-flat]=\"style === 'flat'\"\n [class.actionbar-background-dark]=\"backgroundType === 'dark'\"\n [class.actionbar-background-primary]=\"backgroundType === 'primary'\"\n [class.actionbar-round]=\"appearance === 'round'\"\n [class.actionbar-icon-button]=\"appearance === 'icon-button'\"\n>\n <ng-container *ngFor=\"let option of optionsAlways; let i = index\">\n <button\n *ngIf=\"shouldHighlight(i, option)\"\n mat-flat-button\n color=\"primary\"\n [disabled]=\"!option.isEnabled\"\n [class.display-none]=\"!option.isEnabled && !showDisabled\"\n matTooltip=\"{{ option | optionTooltip }}\"\n [attr.aria-label]=\"option.name | translate\"\n (click)=\"click(option)\"\n >\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"action-always-caption\" *ngIf=\"option.showName && appearance === 'button'\">\n {{ option.name | translate }}</span\n >\n </button>\n <button\n *ngIf=\"!shouldHighlight(i, option)\"\n mat-button\n color=\"primary\"\n [disabled]=\"!option.isEnabled\"\n [class.display-none]=\"!option.isEnabled && !showDisabled\"\n matTooltip=\"{{ option | optionTooltip }}\"\n [attr.aria-label]=\"option.name | translate\"\n (click)=\"click(option)\"\n >\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"action-always-caption\" *ngIf=\"option.showName && appearance === 'button'\">\n {{ option.name | translate }}</span\n >\n </button>\n </ng-container>\n <button\n mat-button\n color=\"primary\"\n class=\"more\"\n [attr.aria-label]=\"'OPTIONS.SHOW_ALL_OPTIONS' | translate\"\n [matMenuTriggerFor]=\"dropdownRef.menu\"\n *ngIf=\"canShowDropdown()\"\n data-test=\"more-actions-button\"\n >\n <i esIcon=\"more_vert\" [aria]=\"false\"></i>\n </button>\n <div\n *ngIf=\"optionsToggle.length\"\n class=\"actionToggle\"\n [class.actionToggleDivider]=\"optionsAlways.length\"\n >\n <button\n *ngFor=\"let option of optionsToggle\"\n mat-icon-button\n matTooltip=\"{{ option.name | translate }}\"\n [attr.aria-label]=\"option.name | translate\"\n (click)=\"click(option)\"\n [class.disabled]=\"!option.isEnabled\"\n attr.data-test=\"toggle-{{ option.name }}\"\n >\n <i [esIcon]=\"option.icon\" [aria]=\"false\"></i>\n </button>\n </div>\n</div>\n", styles: [".actionbar{display:flex;align-items:center;gap:10px}.actionToggle>button{color:var(--textLight)}button{min-width:unset}.light{color:#fff;background:transparent}.disabled{pointer-events:all}.light a{color:#fff}.actionToggleDivider{padding-left:10px;border-left:1px solid #ddd}.more{color:var(--primary);background-color:transparent}.actionbar-background-dark .mat-button{color:rgb(var(--palette-foreground-text-dark))}.actionbar-background-dark .mat-button:disabled{color:rgba(var(--palette-foreground-text-dark),.75)}.actionbar-background-primary .mat-button{color:rgb(var(--palette-foreground-text-dark))}.actionbar-background-primary .mat-flat-button{background-color:#fff;color:var(--primary)}.actionbar-background-primary .mat-flat-button:disabled{color:var(--textLight)}.actionbar-round button{width:45px;height:45px;justify-content:center}.actionbar-round button{border-radius:50%;box-shadow:0 0 5px #0000004d}.actionbar-round.actionbar-background-primary .mat-button{background-color:#fff;color:var(--primary)}.actionbar-round.actionbar-all-flat button{background:white;color:var(--primary)}.actionbar-round.actionbar-all-flat button:disabled{color:var(--textLight)}.actionbar-round .more,.actionbar-round .actionAlways{background:white;color:var(--primary);display:flex;width:45px;height:45px;line-height:45px;text-align:center;align-items:center}.actionbar-round .more .edu-icons,.actionbar-round .more .material-icons,.actionbar-round .actionAlways .edu-icons,.actionbar-round .actionAlways .material-icons{position:relative;font-size:24px}.actionbar-round .more span,.actionbar-round .actionAlways span{display:none}.actionbar-round .action-always .edu-icons,.actionbar-round .action-always .material-icons{right:4px!important}@media screen and (max-width: calc(var(--mobileWidth) + var(--mobileStage) * 4)){.action-always{padding:0 1rem}.action-always-caption{display:none}.mat-flat-button{padding:5px}}.actionbar-icon-button .action-always{padding:0 1rem}.actionbar-icon-button .action-always-caption{display:none}.actionbar-icon-button .mat-flat-button{padding:5px}\n"] }]
179
+ args: [{ selector: 'es-actionbar', animations: [trigger('openOverlay', UIAnimation.openOverlay(UIAnimation.ANIMATION_TIME_FAST))], template: "<es-dropdown\n #dropdownRef\n [options]=\"optionsMenu$ | async\"\n [showDisabled]=\"showDisabled\"\n [position]=\"dropdownPosition\"\n></es-dropdown>\n<div\n class=\"actionbar\"\n [class.actionbar-all-flat]=\"style === 'flat'\"\n [class.actionbar-background-dark]=\"backgroundType === 'dark'\"\n [class.actionbar-background-primary]=\"backgroundType === 'primary'\"\n [class.actionbar-round]=\"appearance === 'round'\"\n [class.actionbar-icon-button]=\"appearance === 'icon-button'\"\n>\n <ng-container *ngFor=\"let option of optionsAlways$ | async; let i = index\">\n <button\n *ngIf=\"shouldHighlight(i, option)\"\n mat-flat-button\n color=\"primary\"\n [disabled]=\"!option.isEnabled\"\n [class.display-none]=\"!option.isEnabled && !showDisabled\"\n matTooltip=\"{{ option | optionTooltip | async }}\"\n [matTooltipPosition]=\"tooltipPosition\"\n [attr.aria-label]=\"option.ariaLabel || option.name | translate\"\n (click)=\"click(option)\"\n >\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"action-always-caption\" *ngIf=\"option.showName && appearance === 'button'\">\n {{ option.name | translate }}</span\n >\n </button>\n <button\n *ngIf=\"!shouldHighlight(i, option)\"\n mat-button\n color=\"primary\"\n [disabled]=\"!option.isEnabled\"\n [class.display-none]=\"!option.isEnabled && !showDisabled\"\n matTooltip=\"{{ option | optionTooltip | async }}\"\n [matTooltipPosition]=\"tooltipPosition\"\n [attr.aria-label]=\"option.ariaLabel || option.name | translate\"\n (click)=\"click(option)\"\n >\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"action-always-caption\" *ngIf=\"option.showName && appearance === 'button'\">\n {{ option.name | translate }}</span\n >\n </button>\n </ng-container>\n <button\n mat-button\n color=\"primary\"\n class=\"more\"\n [attr.aria-label]=\"'OPTIONS.SHOW_ALL_OPTIONS' | translate\"\n [matMenuTriggerFor]=\"dropdownRef.menu\"\n *ngIf=\"canShowDropdown()\"\n data-test=\"more-actions-button\"\n >\n <i esIcon=\"more_vert\" [aria]=\"false\"></i>\n </button>\n <div\n *ngIf=\"optionsToggle.length\"\n class=\"actionToggle\"\n [class.actionToggleDivider]=\"(optionsAlways$ | async).length\"\n >\n <button\n *ngFor=\"let option of optionsToggle\"\n mat-icon-button\n matTooltip=\"{{ option.name | translate }}\"\n [attr.aria-label]=\"option.ariaLabel || option.name | translate\"\n (click)=\"click(option)\"\n [class.disabled]=\"!option.isEnabled\"\n attr.data-test=\"toggle-{{ option.name }}\"\n >\n <i [esIcon]=\"option.icon\" [aria]=\"false\"></i>\n </button>\n </div>\n</div>\n", styles: [".actionbar{display:flex;align-items:center;gap:10px}.actionToggle>button{color:var(--textLight)}button{min-width:unset}.light{color:#fff;background:transparent}.disabled{pointer-events:all}.light a{color:#fff}.actionToggleDivider{padding-left:10px;border-left:1px solid #ddd}.more{color:var(--primary);background-color:transparent}.actionbar-background-dark .mat-button{color:rgb(var(--palette-foreground-text-dark))}.actionbar-background-dark .mat-button:disabled{color:rgba(var(--palette-foreground-text-dark),.75)}.actionbar-background-primary .mdc-button{color:rgb(var(--palette-foreground-text-dark))}.actionbar-background-primary .mat-mdc-unelevated-button{background-color:#fff;color:var(--primary)}.actionbar-background-primary .mat-mdc-unelevated-button:disabled{color:#00000080;background-color:#eee}.actionbar-round button{width:45px;height:45px;justify-content:center}.actionbar-round button{border-radius:50%;box-shadow:0 0 5px #0000004d}.actionbar-round.actionbar-background-primary .mat-button{background-color:#fff;color:var(--primary)}.actionbar-round.actionbar-all-flat button{background:white;color:var(--primary)!important}.actionbar-round.actionbar-all-flat button:disabled{color:var(--textLight)!important}.actionbar-round .more,.actionbar-round .actionAlways{background:white;color:var(--primary);display:flex;width:45px;height:45px;line-height:45px;text-align:center;align-items:center}.actionbar-round .more .edu-icons,.actionbar-round .more .material-icons,.actionbar-round .actionAlways .edu-icons,.actionbar-round .actionAlways .material-icons{position:relative;font-size:24px}.actionbar-round .more span,.actionbar-round .actionAlways span{display:none}.actionbar-round .action-always .edu-icons,.actionbar-round .action-always .material-icons{right:4px!important}@media screen and (max-width: calc(var(--mobileWidth) + var(--mobileStage) * 4)){.action-always{padding:0 1rem}.action-always-caption{display:none}.mat-flat-button{padding:5px}}.actionbar-icon-button .action-always{padding:0 1rem}.actionbar-icon-button .action-always-caption{display:none}.actionbar-icon-button .mat-flat-button{padding:5px}\n"] }]
169
180
  }], ctorParameters: function () { return [{ type: i1.UIService }, { type: i2.TranslateService }]; }, propDecorators: { numberOfAlwaysVisibleOptions: [{
170
181
  type: Input
171
182
  }], numberOfAlwaysVisibleOptionsMobile: [{
@@ -182,7 +193,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
182
193
  type: Input
183
194
  }], showDisabled: [{
184
195
  type: Input
196
+ }], tooltipPosition: [{
197
+ type: Input
185
198
  }], options: [{
186
199
  type: Input
200
+ }], mobileBreakpoint: [{
201
+ type: Input
187
202
  }] } });
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvYWN0aW9uYmFyL2FjdGlvbmJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL2FjdGlvbmJhci9hY3Rpb25iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUUzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFReEM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBMkMzQjs7T0FFRztJQUNILElBQWEsT0FBTyxDQUFDLE9BQXFCO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQU9ELFlBQW9CLFNBQW9CLEVBQVUsU0FBMkI7UUFBekQsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBdkQ3RTs7OztXQUlHO1FBQ00saUNBQTRCLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLHVDQUFrQyxHQUFHLENBQUMsQ0FBQztRQUNoRDs7Ozs7Ozs7V0FRRztRQUNNLGVBQVUsR0FBdUMsUUFBUSxDQUFDO1FBQ25FOzs7V0FHRztRQUNNLHFCQUFnQixHQUFxQixNQUFNLENBQUM7UUFFckQ7O1dB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QUFFLENBQUM7SUFDdEIsQ0FBQzs4R0ExSlEsa0JBQWtCO2tHQUFsQixrQkFBa0IseVpDbEIvQixraEZBMkVBLDR6R0Q5RGdCLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7OzJGQUtyRixrQkFBa0I7a0JBVDlCLFNBQVM7K0JBQ0ksY0FBYyxjQUdaLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7K0hBV3JGLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFDRyxrQ0FBa0M7c0JBQTFDLEtBQUs7Z0JBVUcsVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBS0csY0FBYztzQkFBdEIsS0FBSztnQkFJRyxLQUFLO3NCQUFiLEtBQUs7Z0JBT0csU0FBUztzQkFBakIsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlPLE9BQU87c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFVJQW5pbWF0aW9uIH0gZnJvbSAnLi4vdXRpbC91aS1hbmltYXRpb24nO1xuaW1wb3J0IHsgVUlDb25zdGFudHMgfSBmcm9tICcuLi91dGlsL3VpLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBPcHRpb25JdGVtIH0gZnJvbSAnLi4vdHlwZXMvb3B0aW9uLWl0ZW0nO1xuaW1wb3J0IHsgVUlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdWkuc2VydmljZSc7XG5pbXBvcnQgeyBIZWxwZXIgfSBmcm9tICcuLi91dGlsL2hlbHBlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXMtYWN0aW9uYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2FjdGlvbmJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ2FjdGlvbmJhci5jb21wb25lbnQuc2NzcyddLFxuICAgIGFuaW1hdGlvbnM6IFt0cmlnZ2VyKCdvcGVuT3ZlcmxheScsIFVJQW5pbWF0aW9uLm9wZW5PdmVybGF5KFVJQW5pbWF0aW9uLkFOSU1BVElPTl9USU1FX0ZBU1QpKV0sXG59KVxuLyoqXG4gKiBUaGUgYWN0aW9uIGJhciBwcm92aWRlcyBzZXZlcmFsIGljb25zLCB1c3VhbGx5IGF0IHRoZSB0b3AgcmlnaHQsIHdpdGggYWN0aW9ucyBmb3IgYSBjdXJyZW50IGNvbnRleHRcbiAqL1xuZXhwb3J0IGNsYXNzIEFjdGlvbmJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgLyoqXG4gICAgICogVGhlIGFtb3VudCBvZiBvcHRpb25zIHdoaWNoIGFyZSBub3QgaGlkZGVuIGluc2lkZSBhbiBvdmVyZmxvdyBtZW51XG4gICAgICogKGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBtb2JpbGUgKDEpIG9yIG5vdCAoMikpXG4gICAgICogQWxzbyB1c2UgbnVtYmVyT2ZBbHdheXNWaXNpYmxlT3B0aW9uc01vYmlsZSB0byBjb250cm9sIHRoZSBhbW91bnQgb2YgbW9iaWxlIG9wdGlvbnMgdmlzaWJsZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIG51bWJlck9mQWx3YXlzVmlzaWJsZU9wdGlvbnMgPSAyO1xuICAgIEBJbnB1dCgpIG51bWJlck9mQWx3YXlzVmlzaWJsZU9wdGlvbnNNb2JpbGUgPSAxO1xuICAgIC8qKlxuICAgICAqIFZpc3VhbCBzdHlsZSBvZiB0aGUgYWN0aW9uYmFyXG4gICAgICpcbiAgICAgKiBWYWx1ZXM6XG4gICAgICogIC0gJ2J1dHRvbic6IG1hdGVyaWFsIGJ1dHRvbnMgd2l0aCBpY29ucyBhbmQgdGV4dCBvbiBtZWRpdW0gdG8gbGFyZ2Ugc2NyZWVuc1xuICAgICAqICAtICdpY29uLWJ1dHRvbic6IG1hdGVyaWFsIGJ1dHRvbnMgd2l0aG91dCB0ZXh0XG4gICAgICogIC0gJ3JvdW5kJzogY2lyY3VsYXIgYnV0dG9ucyB3aXRob3V0IHRleHRcbiAgICAgKiBAZGVmYXVsdCAnYnV0dG9uJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFwcGVhcmFuY2U6ICdyb3VuZCcgfCAnYnV0dG9uJyB8ICdpY29uLWJ1dHRvbicgPSAnYnV0dG9uJztcbiAgICAvKipcbiAgICAgKiBkcm9wZG93blBvc2l0aW9uIGlzIGZvciBwb3NpdGlvbiBvZiBkcm9wZG93biAoZGVmYXVsdCA9IGxlZnQpXG4gICAgICogVmFsdWVzICdsZWZ0JyBvciAncmlnaHQnXG4gICAgICovXG4gICAgQElucHV0KCkgZHJvcGRvd25Qb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdsZWZ0JztcblxuICAgIC8qKlxuICAgICAqIGJhY2tncm91bmRUeXBlIGZvciBjb2xvciBtYXRjaGluZywgZWl0aGVyIGJyaWdodCwgZGFyayBvciBwcmltYXJ5XG4gICAgICovXG4gICAgQElucHV0KCkgYmFja2dyb3VuZFR5cGU6ICdicmlnaHQnIHwgJ2RhcmsnIHwgJ3ByaW1hcnknID0gJ2JyaWdodCc7XG4gICAgLyoqXG4gICAgICogU3R5bGUsIGN1cnJlbnRseSBkZWZhdWx0IG9yICdmbGF0JyBpZiBhbGwgYWx3YXlzIHZpc2libGUgaWNvbnMgc2hvdWxkIGdldCBhIGZsYXQgbG9va1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlOiAnZGVmYXVsdCcgfCAnZmxhdCcgPSAnZGVmYXVsdCc7XG4gICAgLyoqXG4gICAgICogSGlnaGxpZ2h0IG9uZSBvciBtb3JlIG9mIHRoZSBhbHdheXMtdmlzaWJsZSBidXR0b25zIGFzIHByaW1hcnkgYWN0aW9uLlxuICAgICAqXG4gICAgICogLSBgZmlyc3RgLCBgbGFzdGA6IFRoZSBmaXJzdCAvIGxhc3Qgb2YgYG9wdGlvbnNBbHdheXNgIGJ5IG9yZGVyLlxuICAgICAqIC0gYG1hbnVhbGA6IEhpZ2hsaWdodCBhbGwgb3B0aW9ucyB0aGF0IHNldCBgaXNQcmltYXJ5ID0gdHJ1ZWAuXG4gICAgICovXG4gICAgQElucHV0KCkgaGlnaGxpZ2h0OiAnZmlyc3QnIHwgJ2xhc3QnIHwgJ21hbnVhbCcgPSAnZmlyc3QnO1xuICAgIC8qKlxuICAgICAqIFNob3VsZCBkaXNhYmxlZCAoXCJncmV5ZWQgb3V0XCIpIG9wdGlvbnMgYmUgc2hvd24gb3IgaGlkZGVuP1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHNob3dEaXNhYmxlZCA9IHRydWU7XG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBvcHRpb25zLCBzZWUgQE9wdGlvbkl0ZW1cbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgb3B0aW9ucyhvcHRpb25zOiBPcHRpb25JdGVtW10pIHtcbiAgICAgICAgdGhpcy5vcHRpb25zSW4gPSBvcHRpb25zO1xuICAgICAgICB0aGlzLnByZXBhcmVPcHRpb25zKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIG9wdGlvbnNJbjogT3B0aW9uSXRlbVtdID0gW107XG4gICAgb3B0aW9uc0Fsd2F5czogT3B0aW9uSXRlbVtdID0gW107XG4gICAgb3B0aW9uc01lbnU6IE9wdGlvbkl0ZW1bXSA9IFtdO1xuICAgIG9wdGlvbnNUb2dnbGU6IE9wdGlvbkl0ZW1bXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB1aVNlcnZpY2U6IFVJU2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgICBwcml2YXRlIHByZXBhcmVPcHRpb25zKG9wdGlvbnM6IE9wdGlvbkl0ZW1bXSkge1xuICAgICAgICBvcHRpb25zID0gdGhpcy51aVNlcnZpY2UuZmlsdGVyVmFsaWRPcHRpb25zKEhlbHBlci5kZWVwQ29weUFycmF5KG9wdGlvbnMpKTtcbiAgICAgICAgaWYgKG9wdGlvbnMgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zQWx3YXlzID0gW107XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNNZW51ID0gW107XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vcHRpb25zVG9nZ2xlID0gdGhpcy51aVNlcnZpY2UuZmlsdGVyVG9nZ2xlT3B0aW9ucyhvcHRpb25zLCB0cnVlKTtcbiAgICAgICAgdGhpcy5vcHRpb25zQWx3YXlzID0gdGhpcy5nZXRBY3Rpb25PcHRpb25zKFxuICAgICAgICAgICAgdGhpcy51aVNlcnZpY2UuZmlsdGVyVG9nZ2xlT3B0aW9ucyhvcHRpb25zLCBmYWxzZSksXG4gICAgICAgICkuc2xpY2UoMCwgdGhpcy5nZXROdW1iZXJPcHRpb25zKCkpO1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9uc0Fsd2F5cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9uc0Fsd2F5cyA9IHRoaXMudWlTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmZpbHRlclRvZ2dsZU9wdGlvbnMob3B0aW9ucywgZmFsc2UpXG4gICAgICAgICAgICAgICAgLnNsaWNlKDAsIHRoaXMuZ2V0TnVtYmVyT3B0aW9ucygpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wdGlvbnNNZW51ID0gdGhpcy5oaWRlQWN0aW9uT3B0aW9ucyhcbiAgICAgICAgICAgIHRoaXMudWlTZXJ2aWNlLmZpbHRlclRvZ2dsZU9wdGlvbnMob3B0aW9ucywgZmFsc2UpLFxuICAgICAgICAgICAgdGhpcy5vcHRpb25zQWx3YXlzLFxuICAgICAgICApO1xuICAgICAgICAvLyBtYXkgY2F1c2VzIHdlaXJkIGxvb2tpbmdcbiAgICAgICAgLyppZih0aGlzLm9wdGlvbnNNZW51Lmxlbmd0aDwyKSB7XG4gICAgICB0aGlzLm9wdGlvbnNBbHdheXMgPSB0aGlzLm9wdGlvbnNBbHdheXMuY29uY2F0KHRoaXMub3B0aW9uc01lbnUpO1xuICAgICAgdGhpcy5vcHRpb25zTWVudSA9IFtdO1xuICAgIH0qL1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXROdW1iZXJPcHRpb25zKCkge1xuICAgICAgICBpZiAod2luZG93LmlubmVyV2lkdGggPCBVSUNvbnN0YW50cy5NT0JJTEVfV0lEVEgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bWJlck9mQWx3YXlzVmlzaWJsZU9wdGlvbnNNb2JpbGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubnVtYmVyT2ZBbHdheXNWaXNpYmxlT3B0aW9ucztcbiAgICB9XG5cbiAgICBjbGljayhvcHRpb246IE9wdGlvbkl0ZW0pIHtcbiAgICAgICAgaWYgKCFvcHRpb24uaXNFbmFibGVkKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9uLmRpc2FibGVkQ2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICBvcHRpb24uZGlzYWJsZWRDYWxsYmFjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIG9wdGlvbi5jYWxsYmFjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWN0aW9uT3B0aW9ucyhvcHRpb25zOiBPcHRpb25JdGVtW10pIHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBPcHRpb25JdGVtW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBvcHRpb24gb2Ygb3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbi5zaG93QXNBY3Rpb24pIHJlc3VsdC5wdXNoKG9wdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZGVBY3Rpb25PcHRpb25zKG9wdGlvbnM6IE9wdGlvbkl0ZW1bXSwgb3B0aW9uc0Fsd2F5czogT3B0aW9uSXRlbVtdKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogT3B0aW9uSXRlbVtdID0gW107XG4gICAgICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zQWx3YXlzLmluZGV4T2Yob3B0aW9uKSA9PT0gLTEpIHJlc3VsdC5wdXNoKG9wdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbnZhbGlkYXRlIC8gcmVmcmVzaGVzIGFsbCBvcHRpb25zIGJhc2VkIG9uIHRoZWlyIGN1cnJlbnQgY2FsbGJhY2tzXG4gICAgICovXG4gICAgcHVibGljIGludmFsaWRhdGUoKSB7XG4gICAgICAgIHRoaXMucHJlcGFyZU9wdGlvbnModGhpcy5vcHRpb25zSW4pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmlsdGVyRGlzYWJsZWQob3B0aW9uczogT3B0aW9uSXRlbVtdKSB7XG4gICAgICAgIGlmIChvcHRpb25zID09IG51bGwpIHJldHVybiBudWxsO1xuICAgICAgICBjb25zdCBmaWx0ZXJlZCA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBvcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9uLmlzRW5hYmxlZCB8fCB0aGlzLnNob3dEaXNhYmxlZCkgZmlsdGVyZWQucHVzaChvcHRpb24pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgICB9XG5cbiAgICBjYW5TaG93RHJvcGRvd24oKSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zTWVudS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zTWVudS5maWx0ZXIoKG8pID0+IG8uaXNFbmFibGVkKS5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIHNob3VsZEhpZ2hsaWdodChvcHRpb25JbmRleDogbnVtYmVyLCBvcHRpb246IE9wdGlvbkl0ZW0pOiBib29sZWFuIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmhpZ2hsaWdodCkge1xuICAgICAgICAgICAgY2FzZSAnZmlyc3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25JbmRleCA9PT0gMDtcbiAgICAgICAgICAgIGNhc2UgJ2xhc3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25JbmRleCA9PT0gdGhpcy5vcHRpb25zQWx3YXlzLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICBjYXNlICdtYW51YWwnOlxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24uaXNQcmltYXJ5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLmludmFsaWRhdGUoKTtcbiAgICB9XG59XG4iLCI8ZXMtZHJvcGRvd25cbiAgI2Ryb3Bkb3duUmVmXG4gIFtvcHRpb25zXT1cIm9wdGlvbnNNZW51XCJcbiAgW3Nob3dEaXNhYmxlZF09XCJzaG93RGlzYWJsZWRcIlxuICBbcG9zaXRpb25dPVwiZHJvcGRvd25Qb3NpdGlvblwiXG4+PC9lcy1kcm9wZG93bj5cbjxkaXZcbiAgY2xhc3M9XCJhY3Rpb25iYXJcIlxuICBbY2xhc3MuYWN0aW9uYmFyLWFsbC1mbGF0XT1cInN0eWxlID09PSAnZmxhdCdcIlxuICBbY2xhc3MuYWN0aW9uYmFyLWJhY2tncm91bmQtZGFya109XCJiYWNrZ3JvdW5kVHlwZSA9PT0gJ2RhcmsnXCJcbiAgW2NsYXNzLmFjdGlvbmJhci1iYWNrZ3JvdW5kLXByaW1hcnldPVwiYmFja2dyb3VuZFR5cGUgPT09ICdwcmltYXJ5J1wiXG4gIFtjbGFzcy5hY3Rpb25iYXItcm91bmRdPVwiYXBwZWFyYW5jZSA9PT0gJ3JvdW5kJ1wiXG4gIFtjbGFzcy5hY3Rpb25iYXItaWNvbi1idXR0b25dPVwiYXBwZWFyYW5jZSA9PT0gJ2ljb24tYnV0dG9uJ1wiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zQWx3YXlzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCJzaG91bGRIaWdobGlnaHQoaSwgb3B0aW9uKVwiXG4gICAgICBtYXQtZmxhdC1idXR0b25cbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICBbZGlzYWJsZWRdPVwiIW9wdGlvbi5pc0VuYWJsZWRcIlxuICAgICAgW2NsYXNzLmRpc3BsYXktbm9uZV09XCIhb3B0aW9uLmlzRW5hYmxlZCAmJiAhc2hvd0Rpc2FibGVkXCJcbiAgICAgIG1hdFRvb2x0aXA9XCJ7eyBvcHRpb24gfCBvcHRpb25Ub29sdGlwIH19XCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwib3B0aW9uLm5hbWUgfCB0cmFuc2xhdGVcIlxuICAgICAgKGNsaWNrKT1cImNsaWNrKG9wdGlvbilcIlxuICAgID5cbiAgICAgIDxpIFtlc0ljb25dPVwib3B0aW9uLmljb25cIj48L2k+XG4gICAgICA8c3BhbiBjbGFzcz1cImFjdGlvbi1hbHdheXMtY2FwdGlvblwiICpuZ0lmPVwib3B0aW9uLnNob3dOYW1lICYmIGFwcGVhcmFuY2UgPT09ICdidXR0b24nXCI+XG4gICAgICAgIHt7IG9wdGlvbi5uYW1lIHwgdHJhbnNsYXRlIH19PC9zcGFuXG4gICAgICA+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCIhc2hvdWxkSGlnaGxpZ2h0KGksIG9wdGlvbilcIlxuICAgICAgbWF0LWJ1dHRvblxuICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgIFtkaXNhYmxlZF09XCIhb3B0aW9uLmlzRW5hYmxlZFwiXG4gICAgICBbY2xhc3MuZGlzcGxheS1ub25lXT1cIiFvcHRpb24uaXNFbmFibGVkICYmICFzaG93RGlzYWJsZWRcIlxuICAgICAgbWF0VG9vbHRpcD1cInt7IG9wdGlvbiB8IG9wdGlvblRvb2x0aXAgfX1cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJvcHRpb24ubmFtZSB8IHRyYW5zbGF0ZVwiXG4gICAgICAoY2xpY2spPVwiY2xpY2sob3B0aW9uKVwiXG4gICAgPlxuICAgICAgPGkgW2VzSWNvbl09XCJvcHRpb24uaWNvblwiPjwvaT5cbiAgICAgIDxzcGFuIGNsYXNzPVwiYWN0aW9uLWFsd2F5cy1jYXB0aW9uXCIgKm5nSWY9XCJvcHRpb24uc2hvd05hbWUgJiYgYXBwZWFyYW5jZSA9PT0gJ2J1dHRvbidcIj5cbiAgICAgICAge3sgb3B0aW9uLm5hbWUgfCB0cmFuc2xhdGUgfX08L3NwYW5cbiAgICAgID5cbiAgICA8L2J1dHRvbj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxidXR0b25cbiAgICBtYXQtYnV0dG9uXG4gICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICBjbGFzcz1cIm1vcmVcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ09QVElPTlMuU0hPV19BTExfT1BUSU9OUycgfCB0cmFuc2xhdGVcIlxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJkcm9wZG93blJlZi5tZW51XCJcbiAgICAqbmdJZj1cImNhblNob3dEcm9wZG93bigpXCJcbiAgICBkYXRhLXRlc3Q9XCJtb3JlLWFjdGlvbnMtYnV0dG9uXCJcbiAgPlxuICAgIDxpIGVzSWNvbj1cIm1vcmVfdmVydFwiIFthcmlhXT1cImZhbHNlXCI+PC9pPlxuICA8L2J1dHRvbj5cbiAgPGRpdlxuICAgICpuZ0lmPVwib3B0aW9uc1RvZ2dsZS5sZW5ndGhcIlxuICAgIGNsYXNzPVwiYWN0aW9uVG9nZ2xlXCJcbiAgICBbY2xhc3MuYWN0aW9uVG9nZ2xlRGl2aWRlcl09XCJvcHRpb25zQWx3YXlzLmxlbmd0aFwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNUb2dnbGVcIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBtYXRUb29sdGlwPVwie3sgb3B0aW9uLm5hbWUgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJvcHRpb24ubmFtZSB8IHRyYW5zbGF0ZVwiXG4gICAgICAoY2xpY2spPVwiY2xpY2sob3B0aW9uKVwiXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIW9wdGlvbi5pc0VuYWJsZWRcIlxuICAgICAgYXR0ci5kYXRhLXRlc3Q9XCJ0b2dnbGUte3sgb3B0aW9uLm5hbWUgfX1cIlxuICAgID5cbiAgICAgIDxpIFtlc0ljb25dPVwib3B0aW9uLmljb25cIiBbYXJpYV09XCJmYWxzZVwiPjwvaT5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvYWN0aW9uYmFyL2FjdGlvbmJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL2FjdGlvbmJhci9hY3Rpb25iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFzQyxNQUFNLGVBQWUsQ0FBQztBQUVyRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQVF2Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFpRDNCOztPQUVHO0lBQ0gsSUFBYSxPQUFPLENBQUMsT0FBcUI7UUFDdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBV0QsWUFBb0IsU0FBb0IsRUFBVSxTQUEyQjtRQUF6RCxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFqRTdFOzs7O1dBSUc7UUFDTSxpQ0FBNEIsR0FBRyxDQUFDLENBQUM7UUFDakMsdUNBQWtDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hEOzs7Ozs7OztXQVFHO1FBQ00sZUFBVSxHQUF1QyxRQUFRLENBQUM7UUFDbkU7OztX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QUFLO2dCQUtPLE9BQU87c0JBQW5CLEtBQUs7Z0JBUUcsZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPcHRpb25hbCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgVUlBbmltYXRpb24gfSBmcm9tICcuLi91dGlsL3VpLWFuaW1hdGlvbic7XG5pbXBvcnQgeyBVSUNvbnN0YW50cyB9IGZyb20gJy4uL3V0aWwvdWktY29uc3RhbnRzJztcbmltcG9ydCB7IE9wdGlvbkl0ZW0gfSBmcm9tICcuLi90eXBlcy9vcHRpb24taXRlbSc7XG5pbXBvcnQgeyBVSVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91aS5zZXJ2aWNlJztcbmltcG9ydCB7IEhlbHBlciB9IGZyb20gJy4uL3V0aWwvaGVscGVyJztcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgT3B0aW9uc0hlbHBlckRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvb3B0aW9ucy1oZWxwZXItZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VzLWFjdGlvbmJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICdhY3Rpb25iYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydhY3Rpb25iYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBhbmltYXRpb25zOiBbdHJpZ2dlcignb3Blbk92ZXJsYXknLCBVSUFuaW1hdGlvbi5vcGVuT3ZlcmxheShVSUFuaW1hdGlvbi5BTklNQVRJT05fVElNRV9GQVNUKSldLFxufSlcbi8qKlxuICogVGhlIGFjdGlvbiBiYXIgcHJvdmlkZXMgc2V2ZXJhbCBpY29ucywgdXN1YWxseSBhdCB0aGUgdG9wIHJpZ2h0LCB3aXRoIGFjdGlvbnMgZm9yIGEgY3VycmVudCBjb250ZXh0XG4gKi9cbmV4cG9ydCBjbGFzcyBBY3Rpb25iYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIC8qKlxuICAgICAqIFRoZSBhbW91bnQgb2Ygb3B0aW9ucyB3aGljaCBhcmUgbm90IGhpZGRlbiBpbnNpZGUgYW4gb3ZlcmZsb3cgbWVudVxuICAgICAqIChkZWZhdWx0OiBkZXBlbmRpbmcgb24gbW9iaWxlICgxKSBvciBub3QgKDIpKVxuICAgICAqIEFsc28gdXNlIG51bWJlck9mQWx3YXlzVmlzaWJsZU9wdGlvbnNNb2JpbGUgdG8gY29udHJvbCB0aGUgYW1vdW50IG9mIG1vYmlsZSBvcHRpb25zIHZpc2libGVcbiAgICAgKi9cbiAgICBASW5wdXQoKSBudW1iZXJPZkFsd2F5c1Zpc2libGVPcHRpb25zID0gMjtcbiAgICBASW5wdXQoKSBudW1iZXJPZkFsd2F5c1Zpc2libGVPcHRpb25zTW9iaWxlID0gMTtcbiAgICAvKipcbiAgICAgKiBWaXN1YWwgc3R5bGUgb2YgdGhlIGFjdGlvbmJhclxuICAgICAqXG4gICAgICogVmFsdWVzOlxuICAgICAqICAtICdidXR0b24nOiBtYXRlcmlhbCBidXR0b25zIHdpdGggaWNvbnMgYW5kIHRleHQgb24gbWVkaXVtIHRvIGxhcmdlIHNjcmVlbnNcbiAgICAgKiAgLSAnaWNvbi1idXR0b24nOiBtYXRlcmlhbCBidXR0b25zIHdpdGhvdXQgdGV4dFxuICAgICAqICAtICdyb3VuZCc6IGNpcmN1bGFyIGJ1dHRvbnMgd2l0aG91dCB0ZXh0XG4gICAgICogQGRlZmF1bHQgJ2J1dHRvbidcbiAgICAgKi9cbiAgICBASW5wdXQoKSBhcHBlYXJhbmNlOiAncm91bmQnIHwgJ2J1dHRvbicgfCAnaWNvbi1idXR0b24nID0gJ2J1dHRvbic7XG4gICAgLyoqXG4gICAgICogZHJvcGRvd25Qb3NpdGlvbiBpcyBmb3IgcG9zaXRpb24gb2YgZHJvcGRvd24gKGRlZmF1bHQgPSBsZWZ0KVxuICAgICAqIFZhbHVlcyAnbGVmdCcgb3IgJ3JpZ2h0J1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGRyb3Bkb3duUG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgPSAnbGVmdCc7XG5cbiAgICAvKipcbiAgICAgKiBiYWNrZ3JvdW5kVHlwZSBmb3IgY29sb3IgbWF0Y2hpbmcsIGVpdGhlciBicmlnaHQsIGRhcmsgb3IgcHJpbWFyeVxuICAgICAqL1xuICAgIEBJbnB1dCgpIGJhY2tncm91bmRUeXBlOiAnYnJpZ2h0JyB8ICdkYXJrJyB8ICdwcmltYXJ5JyA9ICdicmlnaHQnO1xuICAgIC8qKlxuICAgICAqIFN0eWxlLCBjdXJyZW50bHkgZGVmYXVsdCBvciAnZmxhdCcgaWYgYWxsIGFsd2F5cyB2aXNpYmxlIGljb25zIHNob3VsZCBnZXQgYSBmbGF0IGxvb2tcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZTogJ2RlZmF1bHQnIHwgJ2ZsYXQnID0gJ2RlZmF1bHQnO1xuICAgIC8qKlxuICAgICAqIEhpZ2hsaWdodCBvbmUgb3IgbW9yZSBvZiB0aGUgYWx3YXlzLXZpc2libGUgYnV0dG9ucyBhcyBwcmltYXJ5IGFjdGlvbi5cbiAgICAgKlxuICAgICAqIC0gYGZpcnN0YCwgYGxhc3RgOiBUaGUgZmlyc3QgLyBsYXN0IG9mIGBvcHRpb25zQWx3YXlzYCBieSBvcmRlci5cbiAgICAgKiAtIGBtYW51YWxgOiBIaWdobGlnaHQgYWxsIG9wdGlvbnMgdGhhdCBzZXQgYGlzUHJpbWFyeSA9IHRydWVgLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIGhpZ2hsaWdodDogJ2ZpcnN0JyB8ICdsYXN0JyB8ICdtYW51YWwnID0gJ2ZpcnN0JztcbiAgICAvKipcbiAgICAgKiBTaG91bGQgZGlzYWJsZWQgKFwiZ3JleWVkIG91dFwiKSBvcHRpb25zIGJlIHNob3duIG9yIGhpZGRlbj9cbiAgICAgKi9cbiAgICBASW5wdXQoKSBzaG93RGlzYWJsZWQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogdGhlIHBvc2l0aW9uIG9mIHRoZSBtYXQgdG9vbHRpcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0b29sdGlwUG9zaXRpb246IFRvb2x0aXBQb3NpdGlvbiA9ICdiZWxvdyc7XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIG9wdGlvbnMsIHNlZSBAT3B0aW9uSXRlbVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCBvcHRpb25zKG9wdGlvbnM6IE9wdGlvbkl0ZW1bXSkge1xuICAgICAgICB0aGlzLm9wdGlvbnNJbiA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMucHJlcGFyZU9wdGlvbnMob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYnJlYWtwb2ludCB3aWR0aCBhdCB3aGljaCBwb2ludCB0aGUgbW9iaWxlIGRpc3BsYXkgY291bnQgaXMgdXNlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIG1vYmlsZUJyZWFrcG9pbnQgPSBVSUNvbnN0YW50cy5NT0JJTEVfV0lEVEg7XG4gICAgb3B0aW9uc0luOiBPcHRpb25JdGVtW10gPSBbXTtcbiAgICBvcHRpb25zQWx3YXlzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8T3B0aW9uSXRlbVtdPihbXSk7XG4gICAgb3B0aW9uc01lbnUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPcHRpb25JdGVtW10+KFtdKTtcbiAgICBvcHRpb25zVG9nZ2xlOiBPcHRpb25JdGVtW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdWlTZXJ2aWNlOiBVSVNlcnZpY2UsIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gICAgcHJpdmF0ZSBwcmVwYXJlT3B0aW9ucyhvcHRpb25zOiBPcHRpb25JdGVtW10pIHtcbiAgICAgICAgb3B0aW9ucyA9IHRoaXMudWlTZXJ2aWNlLmZpbHRlclZhbGlkT3B0aW9ucyhIZWxwZXIuZGVlcENvcHlBcnJheShvcHRpb25zKSk7XG4gICAgICAgIGlmIChvcHRpb25zID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9uc0Fsd2F5cyQubmV4dChbXSk7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNNZW51JC5uZXh0KFtdKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wdGlvbnNUb2dnbGUgPSB0aGlzLnVpU2VydmljZS5maWx0ZXJUb2dnbGVPcHRpb25zKG9wdGlvbnMsIHRydWUpO1xuICAgICAgICB0aGlzLm9wdGlvbnNBbHdheXMkLm5leHQoXG4gICAgICAgICAgICB0aGlzLmdldEFjdGlvbk9wdGlvbnModGhpcy51aVNlcnZpY2UuZmlsdGVyVG9nZ2xlT3B0aW9ucyhvcHRpb25zLCBmYWxzZSkpLnNsaWNlKFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgdGhpcy5nZXROdW1iZXJPcHRpb25zKCksXG4gICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9uc0Fsd2F5cyQudmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNBbHdheXMkLm5leHQoXG4gICAgICAgICAgICAgICAgdGhpcy51aVNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlclRvZ2dsZU9wdGlvbnMob3B0aW9ucywgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC5zbGljZSgwLCB0aGlzLmdldE51bWJlck9wdGlvbnMoKSksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3B0aW9uc01lbnUkLm5leHQoXG4gICAgICAgICAgICB0aGlzLmhpZGVBY3Rpb25PcHRpb25zKFxuICAgICAgICAgICAgICAgIHRoaXMudWlTZXJ2aWNlLmZpbHRlclRvZ2dsZU9wdGlvbnMob3B0aW9ucywgZmFsc2UpLFxuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uc0Fsd2F5cyQudmFsdWUsXG4gICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnVpU2VydmljZS51cGRhdGVPcHRpb25FbmFibGVkU3RhdGUodGhpcy5vcHRpb25zQWx3YXlzJCk7XG4gICAgICAgIHRoaXMudWlTZXJ2aWNlLnVwZGF0ZU9wdGlvbkVuYWJsZWRTdGF0ZSh0aGlzLm9wdGlvbnNNZW51JCk7XG4gICAgICAgIC8vIG1heSBjYXVzZXMgd2VpcmQgbG9va2luZ1xuICAgICAgICAvKmlmKHRoaXMub3B0aW9uc01lbnUubGVuZ3RoPDIpIHtcbiAgICAgIHRoaXMub3B0aW9uc0Fsd2F5cyA9IHRoaXMub3B0aW9uc0Fsd2F5cy5jb25jYXQodGhpcy5vcHRpb25zTWVudSk7XG4gICAgICB0aGlzLm9wdGlvbnNNZW51ID0gW107XG4gICAgfSovXG4gICAgfVxuXG4gICAgcHVibGljIGdldE51bWJlck9wdGlvbnMoKSB7XG4gICAgICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8IHRoaXMubW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtYmVyT2ZBbHdheXNWaXNpYmxlT3B0aW9uc01vYmlsZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5udW1iZXJPZkFsd2F5c1Zpc2libGVPcHRpb25zO1xuICAgIH1cblxuICAgIGNsaWNrKG9wdGlvbjogT3B0aW9uSXRlbSkge1xuICAgICAgICBpZiAoIW9wdGlvbi5pc0VuYWJsZWQpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb24uZGlzYWJsZWRDYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZENhbGxiYWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgb3B0aW9uLmNhbGxiYWNrKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBY3Rpb25PcHRpb25zKG9wdGlvbnM6IE9wdGlvbkl0ZW1bXSkge1xuICAgICAgICBjb25zdCByZXN1bHQ6IE9wdGlvbkl0ZW1bXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBvcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9uLnNob3dBc0FjdGlvbikgcmVzdWx0LnB1c2gob3B0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHByaXZhdGUgaGlkZUFjdGlvbk9wdGlvbnMob3B0aW9uczogT3B0aW9uSXRlbVtdLCBvcHRpb25zQWx3YXlzOiBPcHRpb25JdGVtW10pIHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBPcHRpb25JdGVtW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBvcHRpb24gb2Ygb3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnNBbHdheXMuaW5kZXhPZihvcHRpb24pID09PSAtMSkgcmVzdWx0LnB1c2gob3B0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEludmFsaWRhdGUgLyByZWZyZXNoZXMgYWxsIG9wdGlvbnMgYmFzZWQgb24gdGhlaXIgY3VycmVudCBjYWxsYmFja3NcbiAgICAgKi9cbiAgICBwdWJsaWMgaW52YWxpZGF0ZSgpIHtcbiAgICAgICAgdGhpcy5wcmVwYXJlT3B0aW9ucyh0aGlzLm9wdGlvbnNJbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWx0ZXJEaXNhYmxlZChvcHRpb25zOiBPcHRpb25JdGVtW10pIHtcbiAgICAgICAgaWYgKG9wdGlvbnMgPT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkID0gW107XG4gICAgICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb24uaXNFbmFibGVkIHx8IHRoaXMuc2hvd0Rpc2FibGVkKSBmaWx0ZXJlZC5wdXNoKG9wdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkO1xuICAgIH1cblxuICAgIGNhblNob3dEcm9wZG93bigpIHtcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnNNZW51JC52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zTWVudSQudmFsdWUuZmlsdGVyKChvKSA9PiBvLmlzRW5hYmxlZCkubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBzaG91bGRIaWdobGlnaHQob3B0aW9uSW5kZXg6IG51bWJlciwgb3B0aW9uOiBPcHRpb25JdGVtKTogYm9vbGVhbiB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5oaWdobGlnaHQpIHtcbiAgICAgICAgICAgIGNhc2UgJ2ZpcnN0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uSW5kZXggPT09IDA7XG4gICAgICAgICAgICBjYXNlICdsYXN0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uSW5kZXggPT09IHRoaXMub3B0aW9uc0Fsd2F5cyQudmFsdWUubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGNhc2UgJ21hbnVhbCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi5pc1ByaW1hcnk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICAgIH1cbn1cbiIsIjxlcy1kcm9wZG93blxuICAjZHJvcGRvd25SZWZcbiAgW29wdGlvbnNdPVwib3B0aW9uc01lbnUkIHwgYXN5bmNcIlxuICBbc2hvd0Rpc2FibGVkXT1cInNob3dEaXNhYmxlZFwiXG4gIFtwb3NpdGlvbl09XCJkcm9wZG93blBvc2l0aW9uXCJcbj48L2VzLWRyb3Bkb3duPlxuPGRpdlxuICBjbGFzcz1cImFjdGlvbmJhclwiXG4gIFtjbGFzcy5hY3Rpb25iYXItYWxsLWZsYXRdPVwic3R5bGUgPT09ICdmbGF0J1wiXG4gIFtjbGFzcy5hY3Rpb25iYXItYmFja2dyb3VuZC1kYXJrXT1cImJhY2tncm91bmRUeXBlID09PSAnZGFyaydcIlxuICBbY2xhc3MuYWN0aW9uYmFyLWJhY2tncm91bmQtcHJpbWFyeV09XCJiYWNrZ3JvdW5kVHlwZSA9PT0gJ3ByaW1hcnknXCJcbiAgW2NsYXNzLmFjdGlvbmJhci1yb3VuZF09XCJhcHBlYXJhbmNlID09PSAncm91bmQnXCJcbiAgW2NsYXNzLmFjdGlvbmJhci1pY29uLWJ1dHRvbl09XCJhcHBlYXJhbmNlID09PSAnaWNvbi1idXR0b24nXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNBbHdheXMkIHwgYXN5bmM7IGxldCBpID0gaW5kZXhcIj5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj1cInNob3VsZEhpZ2hsaWdodChpLCBvcHRpb24pXCJcbiAgICAgIG1hdC1mbGF0LWJ1dHRvblxuICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgIFtkaXNhYmxlZF09XCIhb3B0aW9uLmlzRW5hYmxlZFwiXG4gICAgICBbY2xhc3MuZGlzcGxheS1ub25lXT1cIiFvcHRpb24uaXNFbmFibGVkICYmICFzaG93RGlzYWJsZWRcIlxuICAgICAgbWF0VG9vbHRpcD1cInt7IG9wdGlvbiB8IG9wdGlvblRvb2x0aXAgfCBhc3luYyB9fVwiXG4gICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cInRvb2x0aXBQb3NpdGlvblwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm9wdGlvbi5hcmlhTGFiZWwgfHwgb3B0aW9uLm5hbWUgfCB0cmFuc2xhdGVcIlxuICAgICAgKGNsaWNrKT1cImNsaWNrKG9wdGlvbilcIlxuICAgID5cbiAgICAgIDxpIFtlc0ljb25dPVwib3B0aW9uLmljb25cIj48L2k+XG4gICAgICA8c3BhbiBjbGFzcz1cImFjdGlvbi1hbHdheXMtY2FwdGlvblwiICpuZ0lmPVwib3B0aW9uLnNob3dOYW1lICYmIGFwcGVhcmFuY2UgPT09ICdidXR0b24nXCI+XG4gICAgICAgIHt7IG9wdGlvbi5uYW1lIHwgdHJhbnNsYXRlIH19PC9zcGFuXG4gICAgICA+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCIhc2hvdWxkSGlnaGxpZ2h0KGksIG9wdGlvbilcIlxuICAgICAgbWF0LWJ1dHRvblxuICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgIFtkaXNhYmxlZF09XCIhb3B0aW9uLmlzRW5hYmxlZFwiXG4gICAgICBbY2xhc3MuZGlzcGxheS1ub25lXT1cIiFvcHRpb24uaXNFbmFibGVkICYmICFzaG93RGlzYWJsZWRcIlxuICAgICAgbWF0VG9vbHRpcD1cInt7IG9wdGlvbiB8IG9wdGlvblRvb2x0aXAgfCBhc3luYyB9fVwiXG4gICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cInRvb2x0aXBQb3NpdGlvblwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm9wdGlvbi5hcmlhTGFiZWwgfHwgb3B0aW9uLm5hbWUgfCB0cmFuc2xhdGVcIlxuICAgICAgKGNsaWNrKT1cImNsaWNrKG9wdGlvbilcIlxuICAgID5cbiAgICAgIDxpIFtlc0ljb25dPVwib3B0aW9uLmljb25cIj48L2k+XG4gICAgICA8c3BhbiBjbGFzcz1cImFjdGlvbi1hbHdheXMtY2FwdGlvblwiICpuZ0lmPVwib3B0aW9uLnNob3dOYW1lICYmIGFwcGVhcmFuY2UgPT09ICdidXR0b24nXCI+XG4gICAgICAgIHt7IG9wdGlvbi5uYW1lIHwgdHJhbnNsYXRlIH19PC9zcGFuXG4gICAgICA+XG4gICAgPC9idXR0b24+XG4gIDwvbmctY29udGFpbmVyPlxuICA8YnV0dG9uXG4gICAgbWF0LWJ1dHRvblxuICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgY2xhc3M9XCJtb3JlXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidPUFRJT05TLlNIT1dfQUxMX09QVElPTlMnIHwgdHJhbnNsYXRlXCJcbiAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiZHJvcGRvd25SZWYubWVudVwiXG4gICAgKm5nSWY9XCJjYW5TaG93RHJvcGRvd24oKVwiXG4gICAgZGF0YS10ZXN0PVwibW9yZS1hY3Rpb25zLWJ1dHRvblwiXG4gID5cbiAgICA8aSBlc0ljb249XCJtb3JlX3ZlcnRcIiBbYXJpYV09XCJmYWxzZVwiPjwvaT5cbiAgPC9idXR0b24+XG4gIDxkaXZcbiAgICAqbmdJZj1cIm9wdGlvbnNUb2dnbGUubGVuZ3RoXCJcbiAgICBjbGFzcz1cImFjdGlvblRvZ2dsZVwiXG4gICAgW2NsYXNzLmFjdGlvblRvZ2dsZURpdmlkZXJdPVwiKG9wdGlvbnNBbHdheXMkIHwgYXN5bmMpLmxlbmd0aFwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNUb2dnbGVcIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBtYXRUb29sdGlwPVwie3sgb3B0aW9uLm5hbWUgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJvcHRpb24uYXJpYUxhYmVsIHx8IG9wdGlvbi5uYW1lIHwgdHJhbnNsYXRlXCJcbiAgICAgIChjbGljayk9XCJjbGljayhvcHRpb24pXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhb3B0aW9uLmlzRW5hYmxlZFwiXG4gICAgICBhdHRyLmRhdGEtdGVzdD1cInRvZ2dsZS17eyBvcHRpb24ubmFtZSB9fVwiXG4gICAgPlxuICAgICAgPGkgW2VzSWNvbl09XCJvcHRpb24uaWNvblwiIFthcmlhXT1cImZhbHNlXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,76 +1,83 @@
1
+ import { CommonModule } from '@angular/common';
1
2
  import { NgModule } from '@angular/core';
2
- import { NodeIconPipe } from '../pipes/node-icon.pipe';
3
- import { VCardNamePipe } from '../pipes/vcard-name.pipe';
4
- import { NodeImagePipe } from '../pipes/node-image.pipe';
3
+ import { MatButtonModule } from '@angular/material/button';
4
+ import { MatRippleModule } from '@angular/material/core';
5
+ import { MatMenuModule } from '@angular/material/menu';
6
+ import { MatTooltipModule } from '@angular/material/tooltip';
7
+ import { RouterModule } from '@angular/router';
8
+ import { TranslateModule } from '@ngx-translate/core';
9
+ import { ActionbarComponent } from '../actionbar/actionbar.component';
10
+ import { BorderBoxObserverDirective } from '../directives/border-box-observer.directive';
11
+ import { CheckTextOverflowDirective } from '../directives/check-text-overflow.directive';
12
+ import { FocusStateDirective } from '../directives/focus-state.directive';
5
13
  import { IconDirective } from '../directives/icon.directive';
14
+ import { InfiniteScrollDirective } from '../directives/infinite-scroll.directive';
15
+ import { DropdownComponent } from '../dropdown/dropdown.component';
16
+ import { NodeUrlComponent } from '../node-url/node-url.component';
6
17
  import { FormatSizePipe } from '../pipes/file-size.pipe';
7
- import { CommonModule } from '@angular/common';
8
- import { TranslateModule } from '@ngx-translate/core';
18
+ import { FormatDatePipe } from '../pipes/format-date.pipe';
19
+ import { NodeIconPipe } from '../pipes/node-icon.pipe';
9
20
  import { NodeImageSizePipe } from '../pipes/node-image-size.pipe';
21
+ import { NodeImagePipe } from '../pipes/node-image.pipe';
10
22
  import { NodePersonNamePipe } from '../pipes/node-person-name.pipe';
11
- import { FormatDatePipe } from '../pipes/format-date.pipe';
12
- import { SortDropdownComponent } from '../sort-dropdown/sort-dropdown.component';
13
- import { CheckTextOverflowDirective } from '../directives/check-text-overflow.directive';
14
- import { MatMenuModule } from '@angular/material/menu';
15
23
  import { NodeTitlePipe } from '../pipes/node-title.pipe';
16
- import { SpinnerComponent } from '../spinner/spinner.component';
17
- import { NodeUrlComponent } from '../node-url/node-url.component';
18
- import { DropdownComponent } from '../dropdown/dropdown.component';
19
- import { RouterModule } from '@angular/router';
20
- import { MatRippleModule } from '@angular/material/core';
21
- import { MatTooltipModule } from '@angular/material/tooltip';
22
24
  import { OptionTooltipPipe } from '../pipes/option-tooltip.pipe';
23
25
  import { ReplaceCharsPipe } from '../pipes/replace-chars.pipe';
24
- import { ActionbarComponent } from '../actionbar/actionbar.component';
25
- import { BorderBoxObserverDirective } from '../directives/border-box-observer.directive';
26
- import { MatButtonModule } from '@angular/material/button';
27
- import { FocusStateDirective } from '../directives/focus-state.directive';
26
+ import { VCardNamePipe } from '../pipes/vcard-name.pipe';
27
+ import { SortDropdownComponent } from '../sort-dropdown/sort-dropdown.component';
28
+ import { SpinnerComponent } from '../spinner/spinner.component';
29
+ import { PropertySlugPipe } from '../pipes/property-slug.pipe';
28
30
  import * as i0 from "@angular/core";
29
31
  export class EduSharingUiCommonModule {
30
32
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: EduSharingUiCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
31
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: EduSharingUiCommonModule, declarations: [IconDirective,
33
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: EduSharingUiCommonModule, declarations: [ActionbarComponent,
34
+ BorderBoxObserverDirective,
32
35
  CheckTextOverflowDirective,
33
- NodeIconPipe,
34
- NodeImagePipe,
35
- VCardNamePipe,
36
+ DropdownComponent,
36
37
  FocusStateDirective,
38
+ FormatDatePipe,
37
39
  FormatSizePipe,
40
+ IconDirective,
41
+ InfiniteScrollDirective,
42
+ PropertySlugPipe,
43
+ NodeIconPipe,
44
+ NodeImagePipe,
38
45
  NodeImageSizePipe,
39
46
  NodePersonNamePipe,
40
47
  NodeTitlePipe,
41
- FormatDatePipe,
42
- ReplaceCharsPipe,
43
- SortDropdownComponent,
44
- SpinnerComponent,
45
48
  NodeUrlComponent,
46
- DropdownComponent,
47
49
  OptionTooltipPipe,
48
- ActionbarComponent,
49
- BorderBoxObserverDirective], imports: [CommonModule,
50
+ ReplaceCharsPipe,
51
+ SortDropdownComponent,
52
+ VCardNamePipe], imports: [CommonModule,
50
53
  MatMenuModule,
54
+ SpinnerComponent,
51
55
  MatButtonModule,
52
56
  MatTooltipModule,
53
57
  MatRippleModule,
54
58
  TranslateModule,
55
- RouterModule], exports: [IconDirective,
59
+ RouterModule], exports: [ActionbarComponent,
60
+ BorderBoxObserverDirective,
56
61
  CheckTextOverflowDirective,
57
- NodeIconPipe,
58
- NodeImagePipe,
59
- VCardNamePipe,
60
- SortDropdownComponent,
62
+ DropdownComponent,
61
63
  FocusStateDirective,
64
+ FormatDatePipe,
62
65
  FormatSizePipe,
66
+ IconDirective,
67
+ InfiniteScrollDirective,
68
+ PropertySlugPipe,
69
+ NodeIconPipe,
70
+ NodeImagePipe,
63
71
  NodeImageSizePipe,
64
72
  NodePersonNamePipe,
65
73
  NodeTitlePipe,
66
- FormatDatePipe,
67
- SpinnerComponent,
68
74
  NodeUrlComponent,
69
- DropdownComponent,
70
- ActionbarComponent,
71
- BorderBoxObserverDirective] }); }
75
+ SortDropdownComponent,
76
+ SpinnerComponent,
77
+ VCardNamePipe] }); }
72
78
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: EduSharingUiCommonModule, imports: [CommonModule,
73
79
  MatMenuModule,
80
+ SpinnerComponent,
74
81
  MatButtonModule,
75
82
  MatTooltipModule,
76
83
  MatRippleModule,
@@ -81,29 +88,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
81
88
  type: NgModule,
82
89
  args: [{
83
90
  declarations: [
84
- IconDirective,
91
+ ActionbarComponent,
92
+ BorderBoxObserverDirective,
85
93
  CheckTextOverflowDirective,
86
- NodeIconPipe,
87
- NodeImagePipe,
88
- VCardNamePipe,
94
+ DropdownComponent,
89
95
  FocusStateDirective,
96
+ FormatDatePipe,
90
97
  FormatSizePipe,
98
+ IconDirective,
99
+ InfiniteScrollDirective,
100
+ PropertySlugPipe,
101
+ NodeIconPipe,
102
+ NodeImagePipe,
91
103
  NodeImageSizePipe,
92
104
  NodePersonNamePipe,
93
105
  NodeTitlePipe,
94
- FormatDatePipe,
95
- ReplaceCharsPipe,
96
- SortDropdownComponent,
97
- SpinnerComponent,
98
106
  NodeUrlComponent,
99
- DropdownComponent,
100
107
  OptionTooltipPipe,
101
- ActionbarComponent,
102
- BorderBoxObserverDirective,
108
+ ReplaceCharsPipe,
109
+ SortDropdownComponent,
110
+ VCardNamePipe,
103
111
  ],
104
112
  imports: [
105
113
  CommonModule,
106
114
  MatMenuModule,
115
+ SpinnerComponent,
107
116
  MatButtonModule,
108
117
  MatTooltipModule,
109
118
  MatRippleModule,
@@ -111,24 +120,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
111
120
  RouterModule,
112
121
  ],
113
122
  exports: [
114
- IconDirective,
123
+ ActionbarComponent,
124
+ BorderBoxObserverDirective,
115
125
  CheckTextOverflowDirective,
116
- NodeIconPipe,
117
- NodeImagePipe,
118
- VCardNamePipe,
119
- SortDropdownComponent,
126
+ DropdownComponent,
120
127
  FocusStateDirective,
128
+ FormatDatePipe,
121
129
  FormatSizePipe,
130
+ IconDirective,
131
+ InfiniteScrollDirective,
132
+ PropertySlugPipe,
133
+ NodeIconPipe,
134
+ NodeImagePipe,
122
135
  NodeImageSizePipe,
123
136
  NodePersonNamePipe,
124
137
  NodeTitlePipe,
125
- FormatDatePipe,
126
- SpinnerComponent,
127
138
  NodeUrlComponent,
128
- DropdownComponent,
129
- ActionbarComponent,
130
- BorderBoxObserverDirective,
139
+ SortDropdownComponent,
140
+ SpinnerComponent,
141
+ VCardNamePipe,
131
142
  ],
132
143
  }]
133
144
  }] });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWR1LXNoYXJpbmctdWktY29tbW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvY29tbW9uL2VkdS1zaGFyaW5nLXVpLWNvbW1vbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxF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b2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vZGVJY29uUGlwZSB9IGZyb20gJy4uL3BpcGVzL25vZGUtaWNvbi5waXBlJztcbmltcG9ydCB7IFZDYXJkTmFtZVBpcGUgfSBmcm9tICcuLi9waXBlcy92Y2FyZC1uYW1lLnBpcGUnO1xuaW1wb3J0IHsgTm9kZUltYWdlUGlwZSB9IGZyb20gJy4uL3BpcGVzL25vZGUtaW1hZ2UucGlwZSc7XG5pbXBvcnQgeyBJY29uRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9pY29uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGb3JtYXRTaXplUGlwZSB9IGZyb20gJy4uL3BpcGVzL2ZpbGUtc2l6ZS5waXBlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE5vZGVJbWFnZVNpemVQaXBlIH0gZnJvbSAnLi4vcGlwZXMvbm9kZS1pbWFnZS1zaXplLnBpcGUnO1xuaW1wb3J0IHsgTm9kZVBlcnNvbk5hbWVQaXBlIH0gZnJvbSAnLi4vcGlwZXMvbm9kZS1wZXJzb24tbmFtZS5waXBlJztcbmltcG9ydCB7IEZvcm1hdERhdGVQaXBlIH0gZnJvbSAnLi4vcGlwZXMvZm9ybWF0LWRhdGUucGlwZSc7XG5pbXBvcnQgeyBTb3J0RHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9zb3J0LWRyb3Bkb3duL3NvcnQtZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrVGV4dE92ZXJmbG93RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9jaGVjay10ZXh0LW92ZXJmbG93LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBOb2RlVGl0bGVQaXBlIH0gZnJvbSAnLi4vcGlwZXMvbm9kZS10aXRsZS5waXBlJztcbmltcG9ydCB7IFNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuLi9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVVcmxDb21wb25lbnQgfSBmcm9tICcuLi9ub2RlLXVybC9ub2RlLXVybC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1hdFJpcHBsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgT3B0aW9uVG9vbHRpcFBpcGUgfSBmcm9tICcuLi9waXBlcy9vcHRpb24tdG9vbHRpcC5waXBlJztcbmltcG9ydCB7IFJlcGxhY2VDaGFyc1BpcGUgfSBmcm9tICcuLi9waXBlcy9yZXBsYWNlLWNoYXJzLnBpcGUnO1xuaW1wb3J0IHsgQWN0aW9uYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9uYmFyL2FjdGlvbmJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm9yZGVyQm94T2JzZXJ2ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2JvcmRlci1ib3gtb2JzZXJ2ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBGb2N1c1N0YXRlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9mb2N1cy1zdGF0ZS5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBJY29uRGlyZWN0aXZlLFxuICAgICAgICBDaGVja1RleHRPdmVyZmxvd0RpcmVjdGl2ZSxcbiAgICAgICAgTm9kZUljb25QaXBlLFxuICAgICAgICBOb2RlSW1hZ2VQaXBlLFxuICAgICAgICBWQ2FyZE5hbWVQaXBlLFxuICAgICAgICBGb2N1c1N0YXRlRGlyZWN0aXZlLFxuICAgICAgICBGb3JtYXRTaXplUGlwZSxcbiAgICAgICAgTm9kZUltYWdlU2l6ZVBpcGUsXG4gICAgICAgIE5vZGVQZXJzb25OYW1lUGlwZSxcbiAgICAgICAgTm9kZVRpdGxlUGlwZSxcbiAgICAgICAgRm9ybWF0RGF0ZVBpcGUsXG4gICAgICAgIFJlcGxhY2VDaGFyc1BpcGUsXG4gICAgICAgIFNvcnREcm9wZG93bkNvbXBvbmVudCxcbiAgICAgICAgU3Bpbm5lckNvbXBvbmVudCxcbiAgICAgICAgTm9kZVVybENvbXBvbmVudCxcbiAgICAgICAgRHJvcGRvd25Db21wb25lbnQsXG4gICAgICAgIE9wdGlvblRvb2x0aXBQaXBlLFxuICAgICAgICBBY3Rpb25iYXJDb21wb25lbnQsXG4gICAgICAgIEJvcmRlckJveE9ic2VydmVyRGlyZWN0aXZlLFxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICAgICAgTWF0UmlwcGxlTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIFJvdXRlck1vZHVsZSxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgSWNvbkRpcmVjdGl2ZSxcbiAgICAgICAgQ2hlY2tUZXh0T3ZlcmZsb3dEaXJlY3RpdmUsXG4gICAgICAgIE5vZGVJY29uUGlwZSxcbiAgICAgICAgTm9kZUltYWdlUGlwZSxcbiAgICAgICAgVkNhcmROYW1lUGlwZSxcbiAgICAgICAgU29ydERyb3Bkb3duQ29tcG9uZW50LFxuICAgICAgICBGb2N1c1N0YXRlRGlyZWN0aXZlLFxuICAgICAgICBGb3JtYXRTaXplUGlwZSxcbiAgICAgICAgTm9kZUltYWdlU2l6ZVBpcGUsXG4gICAgICAgIE5vZGVQZXJzb25OYW1lUGlwZSxcbiAgICAgICAgTm9kZVRpdGxlUGlwZSxcbiAgICAgICAgRm9ybWF0RGF0ZVBpcGUsXG4gICAgICAgIFNwaW5uZXJDb21wb25lbnQsXG4gICAgICAgIE5vZGVVcmxDb21wb25lbnQsXG4gICAgICAgIERyb3Bkb3duQ29tcG9uZW50LFxuICAgICAgICBBY3Rpb25iYXJDb21wb25lbnQsXG4gICAgICAgIEJvcmRlckJveE9ic2VydmVyRGlyZWN0aXZlLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVkdVNoYXJpbmdVaUNvbW1vbk1vZHVsZSB7fVxuIl19
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWR1LXNoYXJpbmctdWktY29tbW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvY29tbW9uL2VkdS1zaGFyaW5nLXVpLWNvbW1vbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN6RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN6RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUs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QUFjO3dCQUNkLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYix1QkFBdUI7d0JBQ3ZCLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIscUJBQXFCO3dCQUNyQixnQkFBZ0I7d0JBQ2hCLGFBQWE7cUJBQ2hCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0UmlwcGxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25iYXJDb21wb25lbnQgfSBmcm9tICcuLi9hY3Rpb25iYXIvYWN0aW9uYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCb3JkZXJCb3hPYnNlcnZlckRpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvYm9yZGVyLWJveC1vYnNlcnZlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ2hlY2tUZXh0T3ZlcmZsb3dEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2NoZWNrLXRleHQtb3ZlcmZsb3cuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZvY3VzU3RhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2ZvY3VzLXN0YXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJY29uRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9pY29uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvaW5maW5pdGUtc2Nyb2xsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb2RlVXJsQ29tcG9uZW50IH0gZnJvbSAnLi4vbm9kZS11cmwvbm9kZS11cmwuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1hdFNpemVQaXBlIH0gZnJvbSAnLi4vcGlwZXMvZmlsZS1zaXplLnBpcGUnO1xuaW1wb3J0IHsgRm9ybWF0RGF0ZVBpcGUgfSBmcm9tICcuLi9waXBlcy9mb3JtYXQtZGF0ZS5waXBlJztcbmltcG9ydCB7IE5vZGVJY29uUGlwZSB9IGZyb20gJy4uL3BpcGVzL25vZGUtaWNvbi5waXBlJztcbmltcG9ydCB7IE5vZGVJbWFnZVNpemVQaXBlIH0gZnJvbSAnLi4vcGlwZXMvbm9kZS1pbWFnZS1zaXplLnBpcGUnO1xuaW1wb3J0IHsgTm9kZUltYWdlUGlwZSB9IGZyb20gJy4uL3BpcGVzL25vZGUtaW1hZ2UucGlwZSc7XG5pbXBvcnQgeyBOb2RlUGVyc29uTmFtZVBpcGUgfSBmcm9tICcuLi9waXBlcy9ub2RlLXBlcnNvbi1uYW1lLnBpcGUnO1xuaW1wb3J0IHsgTm9kZVRpdGxlUGlwZSB9IGZyb20gJy4uL3BpcGVzL25vZGUtdGl0bGUucGlwZSc7XG5pbXBvcnQgeyBPcHRpb25Ub29sdGlwUGlwZSB9IGZyb20gJy4uL3BpcGVzL29wdGlvbi10b29sdGlwLnBpcGUnO1xuaW1wb3J0IHsgUmVwbGFjZUNoYXJzUGlwZSB9IGZyb20gJy4uL3BpcGVzL3JlcGxhY2UtY2hhcnMucGlwZSc7XG5pbXBvcnQgeyBWQ2FyZE5hbWVQaXBlIH0gZnJvbSAnLi4vcGlwZXMvdmNhcmQtbmFtZS5waXBlJztcbmltcG9ydCB7IFNvcnREcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uL3NvcnQtZHJvcGRvd24vc29ydC1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4uL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvcGVydHlTbHVnUGlwZSB9IGZyb20gJy4uL3BpcGVzL3Byb3BlcnR5LXNsdWcucGlwZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIEFjdGlvbmJhckNvbXBvbmVudCxcbiAgICAgICAgQm9yZGVyQm94T2JzZXJ2ZXJEaXJlY3RpdmUsXG4gICAgICAgIENoZWNrVGV4dE92ZXJmbG93RGlyZWN0aXZlLFxuICAgICAgICBEcm9wZG93bkNvbXBvbmVudCxcbiAgICAgICAgRm9jdXNTdGF0ZURpcmVjdGl2ZSxcbiAgICAgICAgRm9ybWF0RGF0ZVBpcGUsXG4gICAgICAgIEZvcm1hdFNpemVQaXBlLFxuICAgICAgICBJY29uRGlyZWN0aXZlLFxuICAgICAgICBJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSxcbiAgICAgICAgUHJvcGVydHlTbHVnUGlwZSxcbiAgICAgICAgTm9kZUljb25QaXBlLFxuICAgICAgICBOb2RlSW1hZ2VQaXBlLFxuICAgICAgICBOb2RlSW1hZ2VTaXplUGlwZSxcbiAgICAgICAgTm9kZVBlcnNvbk5hbWVQaXBlLFxuICAgICAgICBOb2RlVGl0bGVQaXBlLFxuICAgICAgICBOb2RlVXJsQ29tcG9uZW50LFxuICAgICAgICBPcHRpb25Ub29sdGlwUGlwZSxcbiAgICAgICAgUmVwbGFjZUNoYXJzUGlwZSxcbiAgICAgICAgU29ydERyb3Bkb3duQ29tcG9uZW50LFxuICAgICAgICBWQ2FyZE5hbWVQaXBlLFxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgICAgIFNwaW5uZXJDb21wb25lbnQsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICAgICAgTWF0UmlwcGxlTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIFJvdXRlck1vZHVsZSxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgQWN0aW9uYmFyQ29tcG9uZW50LFxuICAgICAgICBCb3JkZXJCb3hPYnNlcnZlckRpcmVjdGl2ZSxcbiAgICAgICAgQ2hlY2tUZXh0T3ZlcmZsb3dEaXJlY3RpdmUsXG4gICAgICAgIERyb3Bkb3duQ29tcG9uZW50LFxuICAgICAgICBGb2N1c1N0YXRlRGlyZWN0aXZlLFxuICAgICAgICBGb3JtYXREYXRlUGlwZSxcbiAgICAgICAgRm9ybWF0U2l6ZVBpcGUsXG4gICAgICAgIEljb25EaXJlY3RpdmUsXG4gICAgICAgIEluZmluaXRlU2Nyb2xsRGlyZWN0aXZlLFxuICAgICAgICBQcm9wZXJ0eVNsdWdQaXBlLFxuICAgICAgICBOb2RlSWNvblBpcGUsXG4gICAgICAgIE5vZGVJbWFnZVBpcGUsXG4gICAgICAgIE5vZGVJbWFnZVNpemVQaXBlLFxuICAgICAgICBOb2RlUGVyc29uTmFtZVBpcGUsXG4gICAgICAgIE5vZGVUaXRsZVBpcGUsXG4gICAgICAgIE5vZGVVcmxDb21wb25lbnQsXG4gICAgICAgIFNvcnREcm9wZG93bkNvbXBvbmVudCxcbiAgICAgICAgU3Bpbm5lckNvbXBvbmVudCxcbiAgICAgICAgVkNhcmROYW1lUGlwZSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFZHVTaGFyaW5nVWlDb21tb25Nb2R1bGUge31cbiJdfQ==
@@ -15,9 +15,15 @@ export class CheckTextOverflowDirective {
15
15
  this.textElement = this.getTextElement();
16
16
  }
17
17
  hasTextOverflow_() {
18
+ if (!this.textElement && this.selector) {
19
+ // refetch element in case it has changed
20
+ this.textElement = this.getTextElement();
21
+ }
18
22
  const element = this.textElement;
19
23
  if (element) {
20
- return element.offsetWidth < element.scrollWidth;
24
+ return (element.offsetWidth < element.scrollWidth ||
25
+ // use buffer to prevent overflow caused by small margins
26
+ element.offsetHeight + 5 < element.scrollHeight);
21
27
  }
22
28
  else {
23
29
  return false;
@@ -62,4 +68,4 @@ function delay(f) {
62
68
  return previousValue;
63
69
  };
64
70
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stdGV4dC1vdmVyZmxvdy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL2RpcmVjdGl2ZXMvY2hlY2stdGV4dC1vdmVyZmxvdy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBRXJFOzs7OztHQUtHO0FBS0gsTUFBTSxPQUFPLDBCQUEwQjtJQU9uQyxZQUE2QixVQUFtQztRQUFuQyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUZoRSxvQkFBZSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUVvQixDQUFDO0lBRXBFLFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDakMsSUFBSSxPQUFPLEVBQUU7WUFDVCxPQUFPLE9BQU8sQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztTQUNwRDthQUFNO1lBQ0gsT0FBTyxLQUFLLENBQUM7U0FDaEI7SUFDTCxDQUFDO0lBRU8sY0FBYztRQUNsQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDckU7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7U0FDeEM7SUFDTCxDQUFDOzhHQTVCUSwwQkFBMEI7a0dBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFKdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxRQUFRLEVBQUUscUJBQXFCO2lCQUNsQztpR0FFaUMsUUFBUTtzQkFBckMsS0FBSzt1QkFBQyxxQkFBcUI7O0FBOEJoQyxxRkFBcUY7QUFDckYsU0FBUyxLQUFLLENBQUksQ0FBVTtJQUN4QixJQUFJLGFBQWEsR0FBUSxJQUFJLENBQUM7SUFDOUIsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLE9BQU87UUFDSCxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ1gsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQixJQUFJLFFBQVEsS0FBSyxhQUFhLEVBQUU7Z0JBQzVCLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBQ2hCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO29CQUN4QixhQUFhLEdBQUcsUUFBUSxDQUFDO29CQUN6QixRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixDQUFDLENBQUMsQ0FBQzthQUNOO1NBQ0o7UUFDRCxPQUFPLGFBQWEsQ0FBQztJQUN6QixDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGV4dCBvZiB0aGUgYW5ub3RhdGVkIGVsZW1lbnQgb3IgYSBkZXNjZW5kZW50IChnaXZlIGEgc2VsZWN0b3IpIHdhcyBjdXQgb2YsIGUuZy4sXG4gKiB3aXRoIGFuIGVsbGlwc2lzLlxuICpcbiAqIENhbGwgYGhhc1RleHRPdmVyZmxvdygpYCBmb3IgdGhlIHJlc3VsdC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZXNDaGVja1RleHRPdmVyZmxvd10nLFxuICAgIGV4cG9ydEFzOiAnZXNDaGVja1RleHRPdmVyZmxvdycsXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrVGV4dE92ZXJmbG93RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoJ2VzQ2hlY2tUZXh0T3ZlcmZsb3cnKSBzZWxlY3Rvcj86IHN0cmluZztcblxuICAgIHByaXZhdGUgdGV4dEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgaGFzVGV4dE92ZXJmbG93ID0gZGVsYXkodGhpcy5oYXNUZXh0T3ZlcmZsb3dfKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50ZXh0RWxlbWVudCA9IHRoaXMuZ2V0VGV4dEVsZW1lbnQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc1RleHRPdmVyZmxvd18oKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnRleHRFbGVtZW50O1xuICAgICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQub2Zmc2V0V2lkdGggPCBlbGVtZW50LnNjcm9sbFdpZHRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUZXh0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLnNlbGVjdG9yKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqIERlbGF5IHRoZSByZXN1bHQgb2YgYSBmdW5jdGlvbiBvbmUgdGljayB0byBhdm9pZCBjaGFuZ2VkLWFmdGVyLWNoZWNrZWQgZXJyb3JzLiAqL1xuZnVuY3Rpb24gZGVsYXk8VD4oZjogKCkgPT4gVCk6ICgpID0+IFQge1xuICAgIGxldCBwcmV2aW91c1ZhbHVlOiBhbnkgPSBudWxsO1xuICAgIGxldCB1cGRhdGluZyA9IGZhbHNlO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghdXBkYXRpbmcpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gZi5hcHBseSh0aGlzKTtcbiAgICAgICAgICAgIGlmIChuZXdWYWx1ZSAhPT0gcHJldmlvdXNWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHVwZGF0aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNWYWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcmV2aW91c1ZhbHVlO1xuICAgIH07XG59XG4iXX0=
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stdGV4dC1vdmVyZmxvdy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL2RpcmVjdGl2ZXMvY2hlY2stdGV4dC1vdmVyZmxvdy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBRXJFOzs7OztHQUtHO0FBS0gsTUFBTSxPQUFPLDBCQUEwQjtJQU9uQyxZQUE2QixVQUFtQztRQUFuQyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUZoRSxvQkFBZSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUVvQixDQUFDO0lBRXBFLFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDcEMseUNBQXlDO1lBQ3pDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQzVDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNqQyxJQUFJLE9BQU8sRUFBRTtZQUNULE9BQU8sQ0FDSCxPQUFPLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXO2dCQUN6Qyx5REFBeUQ7Z0JBQ3pELE9BQU8sQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQ2xELENBQUM7U0FDTDthQUFNO1lBQ0gsT0FBTyxLQUFLLENBQUM7U0FDaEI7SUFDTCxDQUFDO0lBRU8sY0FBYztRQUNsQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDckU7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7U0FDeEM7SUFDTCxDQUFDOzhHQXBDUSwwQkFBMEI7a0dBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFKdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxRQUFRLEVBQUUscUJBQXFCO2lCQUNsQztpR0FFaUMsUUFBUTtzQkFBckMsS0FBSzt1QkFBQyxxQkFBcUI7O0FBc0NoQyxxRkFBcUY7QUFDckYsU0FBUyxLQUFLLENBQUksQ0FBVTtJQUN4QixJQUFJLGFBQWEsR0FBUSxJQUFJLENBQUM7SUFDOUIsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLE9BQU87UUFDSCxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ1gsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQixJQUFJLFFBQVEsS0FBSyxhQUFhLEVBQUU7Z0JBQzVCLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBQ2hCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO29CQUN4QixhQUFhLEdBQUcsUUFBUSxDQUFDO29CQUN6QixRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixDQUFDLENBQUMsQ0FBQzthQUNOO1NBQ0o7UUFDRCxPQUFPLGFBQWEsQ0FBQztJQUN6QixDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGV4dCBvZiB0aGUgYW5ub3RhdGVkIGVsZW1lbnQgb3IgYSBkZXNjZW5kZW50IChnaXZlIGEgc2VsZWN0b3IpIHdhcyBjdXQgb2YsIGUuZy4sXG4gKiB3aXRoIGFuIGVsbGlwc2lzLlxuICpcbiAqIENhbGwgYGhhc1RleHRPdmVyZmxvdygpYCBmb3IgdGhlIHJlc3VsdC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZXNDaGVja1RleHRPdmVyZmxvd10nLFxuICAgIGV4cG9ydEFzOiAnZXNDaGVja1RleHRPdmVyZmxvdycsXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrVGV4dE92ZXJmbG93RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoJ2VzQ2hlY2tUZXh0T3ZlcmZsb3cnKSBzZWxlY3Rvcj86IHN0cmluZztcblxuICAgIHByaXZhdGUgdGV4dEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgaGFzVGV4dE92ZXJmbG93ID0gZGVsYXkodGhpcy5oYXNUZXh0T3ZlcmZsb3dfKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50ZXh0RWxlbWVudCA9IHRoaXMuZ2V0VGV4dEVsZW1lbnQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc1RleHRPdmVyZmxvd18oKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy50ZXh0RWxlbWVudCAmJiB0aGlzLnNlbGVjdG9yKSB7XG4gICAgICAgICAgICAvLyByZWZldGNoIGVsZW1lbnQgaW4gY2FzZSBpdCBoYXMgY2hhbmdlZFxuICAgICAgICAgICAgdGhpcy50ZXh0RWxlbWVudCA9IHRoaXMuZ2V0VGV4dEVsZW1lbnQoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy50ZXh0RWxlbWVudDtcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgZWxlbWVudC5vZmZzZXRXaWR0aCA8IGVsZW1lbnQuc2Nyb2xsV2lkdGggfHxcbiAgICAgICAgICAgICAgICAvLyB1c2UgYnVmZmVyIHRvIHByZXZlbnQgb3ZlcmZsb3cgY2F1c2VkIGJ5IHNtYWxsIG1hcmdpbnNcbiAgICAgICAgICAgICAgICBlbGVtZW50Lm9mZnNldEhlaWdodCArIDUgPCBlbGVtZW50LnNjcm9sbEhlaWdodFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VGV4dEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3Rvcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5zZWxlY3Rvcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKiBEZWxheSB0aGUgcmVzdWx0IG9mIGEgZnVuY3Rpb24gb25lIHRpY2sgdG8gYXZvaWQgY2hhbmdlZC1hZnRlci1jaGVja2VkIGVycm9ycy4gKi9cbmZ1bmN0aW9uIGRlbGF5PFQ+KGY6ICgpID0+IFQpOiAoKSA9PiBUIHtcbiAgICBsZXQgcHJldmlvdXNWYWx1ZTogYW55ID0gbnVsbDtcbiAgICBsZXQgdXBkYXRpbmcgPSBmYWxzZTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoIXVwZGF0aW5nKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGYuYXBwbHkodGhpcyk7XG4gICAgICAgICAgICBpZiAobmV3VmFsdWUgIT09IHByZXZpb3VzVmFsdWUpIHtcbiAgICAgICAgICAgICAgICB1cGRhdGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHJldmlvdXNWYWx1ZTtcbiAgICB9O1xufVxuIl19