@ohioepa/oepa-ui-lib 2.0.23 → 2.0.25

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.
@@ -9,6 +9,7 @@ import * as i3 from "ngx-bootstrap/dropdown";
9
9
  export class ActionBtnComponent {
10
10
  sanitizer;
11
11
  busy = false;
12
+ effectiveDropup = false;
12
13
  actionMenuItems;
13
14
  /** Emits true when dropdown opens, false when closes */
14
15
  dropdownOpenChange = new EventEmitter();
@@ -24,6 +25,8 @@ export class ActionBtnComponent {
24
25
  normalSize = false;
25
26
  /** dropup? */
26
27
  dropup = false;
28
+ /** automatically open upward when there is not enough space below */
29
+ autoDropup = true;
27
30
  /** Event emitted when an action is selected */
28
31
  actionClicked = new EventEmitter();
29
32
  constructor(sanitizer) {
@@ -71,9 +74,31 @@ export class ActionBtnComponent {
71
74
  return;
72
75
  }
73
76
  // Open first, then move focus into the menu.
77
+ this.updateDropDirection();
74
78
  toggleBtn.click();
75
79
  setTimeout(() => this.focusFirstOrLastItem(event.key));
76
80
  }
81
+ updateDropDirection() {
82
+ if (this.dropup) {
83
+ this.effectiveDropup = true;
84
+ return;
85
+ }
86
+ if (!this.autoDropup) {
87
+ this.effectiveDropup = false;
88
+ return;
89
+ }
90
+ const toggleButton = document.getElementById(this.getID());
91
+ if (!toggleButton) {
92
+ this.effectiveDropup = false;
93
+ return;
94
+ }
95
+ const buttonRect = toggleButton.getBoundingClientRect();
96
+ const actionCount = this.actions && this.actions.length ? this.actions.length : 1;
97
+ const estimatedMenuHeight = Math.min(actionCount, 10) * 36 + 16;
98
+ const spaceAbove = buttonRect.top;
99
+ const spaceBelow = window.innerHeight - buttonRect.bottom;
100
+ this.effectiveDropup = spaceBelow < estimatedMenuHeight && spaceAbove > spaceBelow;
101
+ }
77
102
  onMenuKeydown(event) {
78
103
  const handledKeys = ['ArrowDown', 'ArrowUp', 'Home', 'End', 'Escape'];
79
104
  if (!handledKeys.includes(event.key)) {
@@ -136,11 +161,11 @@ export class ActionBtnComponent {
136
161
  }
137
162
  }
138
163
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionBtnComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
139
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActionBtnComponent, selector: "oepa-action-btn", inputs: { label: "label", btnId: "btnId", data: "data", actions: "actions", normalSize: "normalSize", dropup: "dropup" }, outputs: { dropdownOpenChange: "dropdownOpenChange", actionClicked: "actionClicked" }, viewQueries: [{ propertyName: "actionMenuItems", predicate: ["actionMenuItem"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"actions && actions.length > 0\" class=\"btn-group\" dropdown [dropup]=\"dropup\" role=\"group\" aria-label=\"Action Button Group\" (onShown)=\"dropdownOpened()\" (onHidden)=\"dropdownClosed()\">\n <button dropdownToggle type=\"button\" class=\"btn btn-primary dropdown-toggle\" [ngClass]=\"{ 'btn-sm' : !normalSize }\"\n (keydown)=\"onToggleKeydown($event)\"\n [id]=\"btnId+'_ActionBtn'\" aria-label=\"Action Button\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <span *ngIf=\"busy\" class=\"spinner-border text-primary\" role=\"status\" aria-label=\"Loading\"></span>\n {{label}} \n <span class=\"caret\" aria-hidden=\"true\"></span>\n </button>\n\n <ul *dropdownMenu class=\"oepa-action-menu dropdown-menu-right\" role=\"menu\" aria-label=\"Action Menu\" (keydown)=\"onMenuKeydown($event)\">\n <li *ngFor=\"let action of actions; let i = index;\" role=\"menuitem\">\n <a *ngIf=\"!busy\" #actionMenuItem class=\"dropdown-item\" (click)=\"onActionClicked(action)\"\n (keydown.enter)=\"onActionClicked(action); $event.preventDefault(); $event.stopPropagation()\"\n (keydown.space)=\"onActionClicked(action); $event.preventDefault(); $event.stopPropagation()\"\n [id]=\"btnId+'_ActionLink_'+i\" [attr.aria-label]=\"action.title\" tabindex=\"0\">\n <i ngClass=\"{{action.className || ''}}\" aria-hidden=\"true\"></i> {{action.title}}\n </a>\n </li>\n </ul>\n</div> \n<!-- display disabled button if no actions are available -->\n<div *ngIf=\"!actions || actions.length === 0\">\n <button type=\"button\" class=\"btn btn-primary\" [ngClass]=\"{ 'btn-sm' : !normalSize }\" [id]=\"btnId+'_ActionBtn'\" disabled aria-label=\"No actions available\">\n N/A \n </button>\n</div>", styles: [".oepa-action-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.oepa-action-menu.show{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i3.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i3.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }] });
164
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActionBtnComponent, selector: "oepa-action-btn", inputs: { label: "label", btnId: "btnId", data: "data", actions: "actions", normalSize: "normalSize", dropup: "dropup", autoDropup: "autoDropup" }, outputs: { dropdownOpenChange: "dropdownOpenChange", actionClicked: "actionClicked" }, viewQueries: [{ propertyName: "actionMenuItems", predicate: ["actionMenuItem"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"actions && actions.length > 0\" class=\"btn-group\" dropdown [container]=\"'body'\" [placement]=\"effectiveDropup ? 'top right' : 'bottom right'\" [dropup]=\"effectiveDropup\" role=\"group\" aria-label=\"Action Button Group\" (onShown)=\"dropdownOpened()\" (onHidden)=\"dropdownClosed()\">\n <button dropdownToggle type=\"button\" class=\"btn btn-primary dropdown-toggle\" [ngClass]=\"{ 'btn-sm' : !normalSize }\"\n (click)=\"updateDropDirection()\"\n (keydown)=\"onToggleKeydown($event)\"\n [id]=\"btnId+'_ActionBtn'\" aria-label=\"Action Button\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <span *ngIf=\"busy\" class=\"spinner-border text-primary\" role=\"status\" aria-label=\"Loading\"></span>\n {{label}} \n <span class=\"caret\" aria-hidden=\"true\"></span>\n </button>\n\n <ul *dropdownMenu class=\"oepa-action-menu dropdown-menu dropdown-menu-end\" role=\"menu\" aria-label=\"Action Menu\" (keydown)=\"onMenuKeydown($event)\">\n <li *ngFor=\"let action of actions; let i = index;\" role=\"menuitem\">\n <a *ngIf=\"!busy\" #actionMenuItem class=\"dropdown-item\" (click)=\"onActionClicked(action)\"\n (keydown.enter)=\"onActionClicked(action); $event.preventDefault(); $event.stopPropagation()\"\n (keydown.space)=\"onActionClicked(action); $event.preventDefault(); $event.stopPropagation()\"\n [id]=\"btnId+'_ActionLink_'+i\" [attr.aria-label]=\"action.title\" tabindex=\"0\">\n <i ngClass=\"{{action.className || ''}}\" aria-hidden=\"true\"></i> {{action.title}}\n </a>\n </li>\n </ul>\n</div> \n<!-- display disabled button if no actions are available -->\n<div *ngIf=\"!actions || actions.length === 0\">\n <button type=\"button\" class=\"btn btn-primary\" [ngClass]=\"{ 'btn-sm' : !normalSize }\" [id]=\"btnId+'_ActionBtn'\" disabled aria-label=\"No actions available\">\n N/A \n </button>\n</div>", styles: [".oepa-action-menu{z-index:1000}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i3.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i3.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }] });
140
165
  }
141
166
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionBtnComponent, decorators: [{
142
167
  type: Component,
143
- args: [{ selector: 'oepa-action-btn', template: "<div *ngIf=\"actions && actions.length > 0\" class=\"btn-group\" dropdown [dropup]=\"dropup\" role=\"group\" aria-label=\"Action Button Group\" (onShown)=\"dropdownOpened()\" (onHidden)=\"dropdownClosed()\">\n <button dropdownToggle type=\"button\" class=\"btn btn-primary dropdown-toggle\" [ngClass]=\"{ 'btn-sm' : !normalSize }\"\n (keydown)=\"onToggleKeydown($event)\"\n [id]=\"btnId+'_ActionBtn'\" aria-label=\"Action Button\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <span *ngIf=\"busy\" class=\"spinner-border text-primary\" role=\"status\" aria-label=\"Loading\"></span>\n {{label}} \n <span class=\"caret\" aria-hidden=\"true\"></span>\n </button>\n\n <ul *dropdownMenu class=\"oepa-action-menu dropdown-menu-right\" role=\"menu\" aria-label=\"Action Menu\" (keydown)=\"onMenuKeydown($event)\">\n <li *ngFor=\"let action of actions; let i = index;\" role=\"menuitem\">\n <a *ngIf=\"!busy\" #actionMenuItem class=\"dropdown-item\" (click)=\"onActionClicked(action)\"\n (keydown.enter)=\"onActionClicked(action); $event.preventDefault(); $event.stopPropagation()\"\n (keydown.space)=\"onActionClicked(action); $event.preventDefault(); $event.stopPropagation()\"\n [id]=\"btnId+'_ActionLink_'+i\" [attr.aria-label]=\"action.title\" tabindex=\"0\">\n <i ngClass=\"{{action.className || ''}}\" aria-hidden=\"true\"></i> {{action.title}}\n </a>\n </li>\n </ul>\n</div> \n<!-- display disabled button if no actions are available -->\n<div *ngIf=\"!actions || actions.length === 0\">\n <button type=\"button\" class=\"btn btn-primary\" [ngClass]=\"{ 'btn-sm' : !normalSize }\" [id]=\"btnId+'_ActionBtn'\" disabled aria-label=\"No actions available\">\n N/A \n </button>\n</div>", styles: [".oepa-action-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.oepa-action-menu.show{display:block}\n"] }]
168
+ args: [{ selector: 'oepa-action-btn', template: "<div *ngIf=\"actions && actions.length > 0\" class=\"btn-group\" dropdown [container]=\"'body'\" [placement]=\"effectiveDropup ? 'top right' : 'bottom right'\" [dropup]=\"effectiveDropup\" role=\"group\" aria-label=\"Action Button Group\" (onShown)=\"dropdownOpened()\" (onHidden)=\"dropdownClosed()\">\n <button dropdownToggle type=\"button\" class=\"btn btn-primary dropdown-toggle\" [ngClass]=\"{ 'btn-sm' : !normalSize }\"\n (click)=\"updateDropDirection()\"\n (keydown)=\"onToggleKeydown($event)\"\n [id]=\"btnId+'_ActionBtn'\" aria-label=\"Action Button\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <span *ngIf=\"busy\" class=\"spinner-border text-primary\" role=\"status\" aria-label=\"Loading\"></span>\n {{label}} \n <span class=\"caret\" aria-hidden=\"true\"></span>\n </button>\n\n <ul *dropdownMenu class=\"oepa-action-menu dropdown-menu dropdown-menu-end\" role=\"menu\" aria-label=\"Action Menu\" (keydown)=\"onMenuKeydown($event)\">\n <li *ngFor=\"let action of actions; let i = index;\" role=\"menuitem\">\n <a *ngIf=\"!busy\" #actionMenuItem class=\"dropdown-item\" (click)=\"onActionClicked(action)\"\n (keydown.enter)=\"onActionClicked(action); $event.preventDefault(); $event.stopPropagation()\"\n (keydown.space)=\"onActionClicked(action); $event.preventDefault(); $event.stopPropagation()\"\n [id]=\"btnId+'_ActionLink_'+i\" [attr.aria-label]=\"action.title\" tabindex=\"0\">\n <i ngClass=\"{{action.className || ''}}\" aria-hidden=\"true\"></i> {{action.title}}\n </a>\n </li>\n </ul>\n</div> \n<!-- display disabled button if no actions are available -->\n<div *ngIf=\"!actions || actions.length === 0\">\n <button type=\"button\" class=\"btn btn-primary\" [ngClass]=\"{ 'btn-sm' : !normalSize }\" [id]=\"btnId+'_ActionBtn'\" disabled aria-label=\"No actions available\">\n N/A \n </button>\n</div>", styles: [".oepa-action-menu{z-index:1000}\n"] }]
144
169
  }], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { actionMenuItems: [{
145
170
  type: ViewChildren,
146
171
  args: ['actionMenuItem']
@@ -158,7 +183,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
158
183
  type: Input
159
184
  }], dropup: [{
160
185
  type: Input
186
+ }], autoDropup: [{
187
+ type: Input
161
188
  }], actionClicked: [{
162
189
  type: Output
163
190
  }] } });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJ0bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FjdGlvbi1idG4vYWN0aW9uLWJ0bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FjdGlvbi1idG4vYWN0aW9uLWJ0bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFNNUc7O0dBRUc7QUFNSCxNQUFNLE9BQU8sa0JBQWtCO0lBd0JUO0lBdkJwQixJQUFJLEdBQUcsS0FBSyxDQUFDO0lBRW1CLGVBQWUsQ0FBNEM7SUFFM0Ysd0RBQXdEO0lBQzlDLGtCQUFrQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFM0QsbUJBQW1CO0lBQ1YsS0FBSyxHQUFHLFNBQVMsQ0FBQztJQUMzQixnQ0FBZ0M7SUFDdkIsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNwQixtQ0FBbUM7SUFDMUIsSUFBSSxDQUFNO0lBQ25CLHNDQUFzQztJQUM3QixPQUFPLEdBQXNCLEVBQUUsQ0FBQztJQUN6QyxvREFBb0Q7SUFDM0MsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUM1QixjQUFjO0lBQ0wsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUV4QiwrQ0FBK0M7SUFDckMsYUFBYSxHQUFrQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRTVFLFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7SUFBSSxDQUFDO0lBRXpDLFFBQVEsQ0FBQyxJQUFZO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRU0sZUFBZSxDQUFDLE1BQWtCO1FBQ3JDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDdEIsTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJLEVBQUUsSUFBSTtZQUNWLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRU0sS0FBSztRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQW9CO1FBQ2xDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxXQUFXLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN6RCxPQUFPO1FBQ1QsQ0FBQztRQUVELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLGFBQXlDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxLQUFLLE1BQU0sQ0FBQztRQUN0RSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyQyxPQUFPO1FBQ1QsQ0FBQztRQUVELDZDQUE2QztRQUM3QyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQW9CO1FBQ2hDLE1BQU0sV0FBVyxHQUFHLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE9BQU87UUFDVCxDQUFDO1FBRUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFtQyxDQUFDO1FBQ25FLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLENBQUM7UUFDbkUsSUFBSSxZQUFZLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckIsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUNuQixDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQzlCLE1BQU0sU0FBUyxHQUFHLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDcEQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sU0FBUyxHQUFHLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNuRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDekIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDekIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3hCLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hDLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQTZCLENBQUM7UUFDdkYsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckIsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzFCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGVBQWU7YUFDeEIsT0FBTyxFQUFFO2FBQ1QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQzthQUMvQixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxHQUFxQztRQUNoRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2xDLENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO3dHQTFKVSxrQkFBa0I7NEZBQWxCLGtCQUFrQiw4V0NkL0Isd3ZEQXlCTTs7NEZEWE8sa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGlCQUFpQjtpRkFPSyxlQUFlO3NCQUE5QyxZQUFZO3VCQUFDLGdCQUFnQjtnQkFHcEIsa0JBQWtCO3NCQUEzQixNQUFNO2dCQUdFLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFHSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmltcG9ydCB7IE9lcGFBY3Rpb24gfSBmcm9tICcuL29lcGEtYWN0aW9uJztcbmltcG9ydCB7IE9lcGFBY3Rpb25FdmVudCB9IGZyb20gJy4vb2VwYS1hY3Rpb24tZXZlbnQnO1xuXG4vKipcbiAqIEEgZHJvcGRvd24gYnV0dG9uIHdpdGggYSBsaXN0IG9mIGFjdGlvbnMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtYWN0aW9uLWJ0bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb24tYnRuLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWN0aW9uLWJ0bi5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uQnRuQ29tcG9uZW50IHtcbiAgYnVzeSA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ2FjdGlvbk1lbnVJdGVtJykgYWN0aW9uTWVudUl0ZW1zITogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEFuY2hvckVsZW1lbnQ+PjtcblxuICAvKiogRW1pdHMgdHJ1ZSB3aGVuIGRyb3Bkb3duIG9wZW5zLCBmYWxzZSB3aGVuIGNsb3NlcyAqL1xuICBAT3V0cHV0KCkgZHJvcGRvd25PcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKiBCdXR0b24gbGFiZWwgKi9cbiAgQElucHV0KCkgbGFiZWwgPSAnQWN0aW9ucyc7XG4gIC8qKiBVbmlxdWUgaWQgZm9yIHRoaXMgYnV0dG9uICovXG4gIEBJbnB1dCgpIGJ0bklkID0gJyc7XG4gIC8qKiBEYXRhIHRvIGJlIHBhc3NlZCB0byBlbWl0dGVyICovXG4gIEBJbnB1dCgpIGRhdGE6IGFueTtcbiAgLyoqIExpc3Qgb2YgYWN0aW9ucyBmb3IgdGhpcyBidXR0b24gKi9cbiAgQElucHV0KCkgYWN0aW9uczogQXJyYXk8T2VwYUFjdGlvbj4gPSBbXTtcbiAgLyoqIE1ha2UgYnV0dG9uIFwibm9ybWFsXCIgc2l6ZSAoZGVmYXVsdCBpcyBidG4tc20pICovXG4gIEBJbnB1dCgpIG5vcm1hbFNpemUgPSBmYWxzZTtcbiAgLyoqIGRyb3B1cD8gKi9cbiAgQElucHV0KCkgZHJvcHVwID0gZmFsc2U7XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhbiBhY3Rpb24gaXMgc2VsZWN0ZWQgKi9cbiAgQE91dHB1dCgpIGFjdGlvbkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxPZXBhQWN0aW9uRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHsgfVxuXG4gIHB1YmxpYyBzYW5pdGl6ZShodG1sOiBzdHJpbmcpOiBTYWZlSHRtbCB7XG4gICAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoaHRtbCk7XG4gIH1cblxuICBwdWJsaWMgb25BY3Rpb25DbGlja2VkKGFjdGlvbjogT2VwYUFjdGlvbik6IHZvaWQge1xuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZGF0YTtcbiAgICAgIHRoaXMuYWN0aW9uQ2xpY2tlZC5lbWl0KHsgXG4gICAgICAgIGFjdGlvbjogYWN0aW9uLCBcbiAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgYnV0dG9uT2JqOiB0aGlzXG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRCdXN5KCkge1xuICAgIHRoaXMuYnVzeSA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJCdXN5KCkge1xuICAgIHRoaXMuYnVzeSA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldElEKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYnRuSWQgKyAnX0FjdGlvbkJ0bic7XG4gIH1cblxuICBkcm9wZG93bk9wZW5lZCgpIHtcbiAgICB0aGlzLmRyb3Bkb3duT3BlbkNoYW5nZS5lbWl0KHRydWUpO1xuICB9XG5cbiAgZHJvcGRvd25DbG9zZWQoKSB7XG4gICAgdGhpcy5kcm9wZG93bk9wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XG4gIH1cblxuICBvblRvZ2dsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ICE9PSAnQXJyb3dEb3duJyAmJiBldmVudC5rZXkgIT09ICdBcnJvd1VwJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBjb25zdCB0b2dnbGVCdG4gPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxCdXR0b25FbGVtZW50IHwgbnVsbDtcbiAgICBpZiAoIXRvZ2dsZUJ0bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlzRXhwYW5kZWQgPSB0b2dnbGVCdG4uZ2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJykgPT09ICd0cnVlJztcbiAgICBpZiAoaXNFeHBhbmRlZCkge1xuICAgICAgdGhpcy5mb2N1c0ZpcnN0T3JMYXN0SXRlbShldmVudC5rZXkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIE9wZW4gZmlyc3QsIHRoZW4gbW92ZSBmb2N1cyBpbnRvIHRoZSBtZW51LlxuICAgIHRvZ2dsZUJ0bi5jbGljaygpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5mb2N1c0ZpcnN0T3JMYXN0SXRlbShldmVudC5rZXkpKTtcbiAgfVxuXG4gIG9uTWVudUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBoYW5kbGVkS2V5cyA9IFsnQXJyb3dEb3duJywgJ0Fycm93VXAnLCAnSG9tZScsICdFbmQnLCAnRXNjYXBlJ107XG4gICAgaWYgKCFoYW5kbGVkS2V5cy5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRNZW51SXRlbXMoKTtcbiAgICBpZiAoIWl0ZW1zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICBsZXQgY3VycmVudEluZGV4ID0gaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbSA9PT0gYWN0aXZlRWxlbWVudCk7XG4gICAgaWYgKGN1cnJlbnRJbmRleCA8IDApIHtcbiAgICAgIGN1cnJlbnRJbmRleCA9IDA7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIGNvbnN0IG5leHRJbmRleCA9IChjdXJyZW50SW5kZXggKyAxKSAlIGl0ZW1zLmxlbmd0aDtcbiAgICAgIGl0ZW1zW25leHRJbmRleF0uZm9jdXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgIGNvbnN0IHByZXZJbmRleCA9IChjdXJyZW50SW5kZXggLSAxICsgaXRlbXMubGVuZ3RoKSAlIGl0ZW1zLmxlbmd0aDtcbiAgICAgIGl0ZW1zW3ByZXZJbmRleF0uZm9jdXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnSG9tZScpIHtcbiAgICAgIGl0ZW1zWzBdLmZvY3VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VuZCcpIHtcbiAgICAgIGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdLmZvY3VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdG9nZ2xlQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5nZXRJRCgpKSBhcyBIVE1MQnV0dG9uRWxlbWVudCB8IG51bGw7XG4gICAgaWYgKHRvZ2dsZUJ1dHRvbikge1xuICAgICAgdG9nZ2xlQnV0dG9uLmNsaWNrKCk7XG4gICAgICB0b2dnbGVCdXR0b24uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldE1lbnVJdGVtcygpOiBIVE1MQW5jaG9yRWxlbWVudFtdIHtcbiAgICBpZiAoIXRoaXMuYWN0aW9uTWVudUl0ZW1zKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYWN0aW9uTWVudUl0ZW1zXG4gICAgICAudG9BcnJheSgpXG4gICAgICAubWFwKGl0ZW0gPT4gaXRlbS5uYXRpdmVFbGVtZW50KVxuICAgICAgLmZpbHRlcihpdGVtID0+ICEhaXRlbSAmJiAhaXRlbS5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0ZpcnN0T3JMYXN0SXRlbShrZXk6ICdBcnJvd0Rvd24nIHwgJ0Fycm93VXAnIHwgc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldE1lbnVJdGVtcygpO1xuICAgIGlmICghaXRlbXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICBpdGVtc1tpdGVtcy5sZW5ndGggLSAxXS5mb2N1cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpdGVtc1swXS5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2ICpuZ0lmPVwiYWN0aW9ucyAmJiBhY3Rpb25zLmxlbmd0aCA+IDBcIiBjbGFzcz1cImJ0bi1ncm91cFwiIGRyb3Bkb3duIFtkcm9wdXBdPVwiZHJvcHVwXCIgcm9sZT1cImdyb3VwXCIgYXJpYS1sYWJlbD1cIkFjdGlvbiBCdXR0b24gR3JvdXBcIiAob25TaG93bik9XCJkcm9wZG93bk9wZW5lZCgpXCIgKG9uSGlkZGVuKT1cImRyb3Bkb3duQ2xvc2VkKClcIj5cbiAgPGJ1dHRvbiBkcm9wZG93blRvZ2dsZSB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgZHJvcGRvd24tdG9nZ2xlXCIgW25nQ2xhc3NdPVwieyAnYnRuLXNtJyA6ICFub3JtYWxTaXplIH1cIlxuICAgIChrZXlkb3duKT1cIm9uVG9nZ2xlS2V5ZG93bigkZXZlbnQpXCJcbiAgICBbaWRdPVwiYnRuSWQrJ19BY3Rpb25CdG4nXCIgYXJpYS1sYWJlbD1cIkFjdGlvbiBCdXR0b25cIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiPlxuICAgIDxzcGFuICpuZ0lmPVwiYnVzeVwiIGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgdGV4dC1wcmltYXJ5XCIgcm9sZT1cInN0YXR1c1wiIGFyaWEtbGFiZWw9XCJMb2FkaW5nXCI+PC9zcGFuPlxuICAgIHt7bGFiZWx9fSBcbiAgICA8c3BhbiBjbGFzcz1cImNhcmV0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICA8L2J1dHRvbj5cblxuICA8dWwgKmRyb3Bkb3duTWVudSBjbGFzcz1cIm9lcGEtYWN0aW9uLW1lbnUgZHJvcGRvd24tbWVudS1yaWdodFwiIHJvbGU9XCJtZW51XCIgYXJpYS1sYWJlbD1cIkFjdGlvbiBNZW51XCIgKGtleWRvd24pPVwib25NZW51S2V5ZG93bigkZXZlbnQpXCI+XG4gICAgICA8bGkgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBhY3Rpb25zOyBsZXQgaSA9IGluZGV4O1wiIHJvbGU9XCJtZW51aXRlbVwiPlxuICAgICAgICAgIDxhICpuZ0lmPVwiIWJ1c3lcIiAjYWN0aW9uTWVudUl0ZW0gY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKGNsaWNrKT1cIm9uQWN0aW9uQ2xpY2tlZChhY3Rpb24pXCJcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uQWN0aW9uQ2xpY2tlZChhY3Rpb24pOyAkZXZlbnQucHJldmVudERlZmF1bHQoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9uQWN0aW9uQ2xpY2tlZChhY3Rpb24pOyAkZXZlbnQucHJldmVudERlZmF1bHQoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgIFtpZF09XCJidG5JZCsnX0FjdGlvbkxpbmtfJytpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhY3Rpb24udGl0bGVcIiB0YWJpbmRleD1cIjBcIj5cbiAgICAgICAgICAgIDxpIG5nQ2xhc3M9XCJ7e2FjdGlvbi5jbGFzc05hbWUgfHwgJyd9fVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3thY3Rpb24udGl0bGV9fVxuICAgICAgICAgIDwvYT5cbiAgICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj4gXG48IS0tIGRpc3BsYXkgZGlzYWJsZWQgYnV0dG9uIGlmIG5vIGFjdGlvbnMgYXJlIGF2YWlsYWJsZSAtLT5cbjxkaXYgKm5nSWY9XCIhYWN0aW9ucyB8fCBhY3Rpb25zLmxlbmd0aCA9PT0gMFwiPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIFtuZ0NsYXNzXT1cInsgJ2J0bi1zbScgOiAhbm9ybWFsU2l6ZSB9XCIgW2lkXT1cImJ0bklkKydfQWN0aW9uQnRuJ1wiIGRpc2FibGVkIGFyaWEtbGFiZWw9XCJObyBhY3Rpb25zIGF2YWlsYWJsZVwiPlxuICAgIE4vQSBcbiAgPC9idXR0b24+XG48L2Rpdj4iXX0=
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJ0bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FjdGlvbi1idG4vYWN0aW9uLWJ0bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FjdGlvbi1idG4vYWN0aW9uLWJ0bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFNNUc7O0dBRUc7QUFNSCxNQUFNLE9BQU8sa0JBQWtCO0lBMkJUO0lBMUJwQixJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ2IsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUVRLGVBQWUsQ0FBNEM7SUFFM0Ysd0RBQXdEO0lBQzlDLGtCQUFrQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFM0QsbUJBQW1CO0lBQ1YsS0FBSyxHQUFHLFNBQVMsQ0FBQztJQUMzQixnQ0FBZ0M7SUFDdkIsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNwQixtQ0FBbUM7SUFDMUIsSUFBSSxDQUFNO0lBQ25CLHNDQUFzQztJQUM3QixPQUFPLEdBQXNCLEVBQUUsQ0FBQztJQUN6QyxvREFBb0Q7SUFDM0MsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUM1QixjQUFjO0lBQ0wsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN4QixxRUFBcUU7SUFDNUQsVUFBVSxHQUFHLElBQUksQ0FBQztJQUUzQiwrQ0FBK0M7SUFDckMsYUFBYSxHQUFrQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRTVFLFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7SUFBSSxDQUFDO0lBRXpDLFFBQVEsQ0FBQyxJQUFZO1FBQ3hCLE9BQU8s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QyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxHQUFxQztRQUNoRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2xDLENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO3dHQXZMVSxrQkFBa0I7NEZBQWxCLGtCQUFrQix3WUNkL0IsMDREQTBCTTs7NEZEWk8sa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGlCQUFpQjtpRkFRSyxlQUFlO3NCQUE5QyxZQUFZO3VCQUFDLGdCQUFnQjtnQkFHcEIsa0JBQWtCO3NCQUEzQixNQUFNO2dCQUdFLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuaW1wb3J0IHsgT2VwYUFjdGlvbiB9IGZyb20gJy4vb2VwYS1hY3Rpb24nO1xuaW1wb3J0IHsgT2VwYUFjdGlvbkV2ZW50IH0gZnJvbSAnLi9vZXBhLWFjdGlvbi1ldmVudCc7XG5cbi8qKlxuICogQSBkcm9wZG93biBidXR0b24gd2l0aCBhIGxpc3Qgb2YgYWN0aW9ucy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2VwYS1hY3Rpb24tYnRuJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1idG4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hY3Rpb24tYnRuLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBY3Rpb25CdG5Db21wb25lbnQge1xuICBidXN5ID0gZmFsc2U7XG4gIGVmZmVjdGl2ZURyb3B1cCA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ2FjdGlvbk1lbnVJdGVtJykgYWN0aW9uTWVudUl0ZW1zITogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEFuY2hvckVsZW1lbnQ+PjtcblxuICAvKiogRW1pdHMgdHJ1ZSB3aGVuIGRyb3Bkb3duIG9wZW5zLCBmYWxzZSB3aGVuIGNsb3NlcyAqL1xuICBAT3V0cHV0KCkgZHJvcGRvd25PcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKiBCdXR0b24gbGFiZWwgKi9cbiAgQElucHV0KCkgbGFiZWwgPSAnQWN0aW9ucyc7XG4gIC8qKiBVbmlxdWUgaWQgZm9yIHRoaXMgYnV0dG9uICovXG4gIEBJbnB1dCgpIGJ0bklkID0gJyc7XG4gIC8qKiBEYXRhIHRvIGJlIHBhc3NlZCB0byBlbWl0dGVyICovXG4gIEBJbnB1dCgpIGRhdGE6IGFueTtcbiAgLyoqIExpc3Qgb2YgYWN0aW9ucyBmb3IgdGhpcyBidXR0b24gKi9cbiAgQElucHV0KCkgYWN0aW9uczogQXJyYXk8T2VwYUFjdGlvbj4gPSBbXTtcbiAgLyoqIE1ha2UgYnV0dG9uIFwibm9ybWFsXCIgc2l6ZSAoZGVmYXVsdCBpcyBidG4tc20pICovXG4gIEBJbnB1dCgpIG5vcm1hbFNpemUgPSBmYWxzZTtcbiAgLyoqIGRyb3B1cD8gKi9cbiAgQElucHV0KCkgZHJvcHVwID0gZmFsc2U7XG4gIC8qKiBhdXRvbWF0aWNhbGx5IG9wZW4gdXB3YXJkIHdoZW4gdGhlcmUgaXMgbm90IGVub3VnaCBzcGFjZSBiZWxvdyAqL1xuICBASW5wdXQoKSBhdXRvRHJvcHVwID0gdHJ1ZTtcblxuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGFuIGFjdGlvbiBpcyBzZWxlY3RlZCAqL1xuICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2tlZDogRXZlbnRFbWl0dGVyPE9lcGFBY3Rpb25FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikgeyB9XG5cbiAgcHVibGljIHNhbml0aXplKGh0bWw6IHN0cmluZyk6IFNhZmVIdG1sIHtcbiAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChodG1sKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkFjdGlvbkNsaWNrZWQoYWN0aW9uOiBPZXBhQWN0aW9uKTogdm9pZCB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhO1xuICAgICAgdGhpcy5hY3Rpb25DbGlja2VkLmVtaXQoeyBcbiAgICAgICAgYWN0aW9uOiBhY3Rpb24sIFxuICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICBidXR0b25PYmo6IHRoaXNcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldEJ1c3koKSB7XG4gICAgdGhpcy5idXN5ID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckJ1c3koKSB7XG4gICAgdGhpcy5idXN5ID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0SUQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5idG5JZCArICdfQWN0aW9uQnRuJztcbiAgfVxuXG4gIGRyb3Bkb3duT3BlbmVkKCkge1xuICAgIHRoaXMuZHJvcGRvd25PcGVuQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBkcm9wZG93bkNsb3NlZCgpIHtcbiAgICB0aGlzLmRyb3Bkb3duT3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIG9uVG9nZ2xlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5rZXkgIT09ICdBcnJvd0Rvd24nICYmIGV2ZW50LmtleSAhPT0gJ0Fycm93VXAnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGNvbnN0IHRvZ2dsZUJ0biA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsO1xuICAgIGlmICghdG9nZ2xlQnRuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaXNFeHBhbmRlZCA9IHRvZ2dsZUJ0bi5nZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnKSA9PT0gJ3RydWUnO1xuICAgIGlmIChpc0V4cGFuZGVkKSB7XG4gICAgICB0aGlzLmZvY3VzRmlyc3RPckxhc3RJdGVtKGV2ZW50LmtleSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gT3BlbiBmaXJzdCwgdGhlbiBtb3ZlIGZvY3VzIGludG8gdGhlIG1lbnUuXG4gICAgdGhpcy51cGRhdGVEcm9wRGlyZWN0aW9uKCk7XG4gICAgdG9nZ2xlQnRuLmNsaWNrKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZvY3VzRmlyc3RPckxhc3RJdGVtKGV2ZW50LmtleSkpO1xuICB9XG5cbiAgdXBkYXRlRHJvcERpcmVjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcm9wdXApIHtcbiAgICAgIHRoaXMuZWZmZWN0aXZlRHJvcHVwID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmF1dG9Ecm9wdXApIHtcbiAgICAgIHRoaXMuZWZmZWN0aXZlRHJvcHVwID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdG9nZ2xlQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5nZXRJRCgpKTtcbiAgICBpZiAoIXRvZ2dsZUJ1dHRvbikge1xuICAgICAgdGhpcy5lZmZlY3RpdmVEcm9wdXAgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBidXR0b25SZWN0ID0gdG9nZ2xlQnV0dG9uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGFjdGlvbkNvdW50ID0gdGhpcy5hY3Rpb25zICYmIHRoaXMuYWN0aW9ucy5sZW5ndGggPyB0aGlzLmFjdGlvbnMubGVuZ3RoIDogMTtcbiAgICBjb25zdCBlc3RpbWF0ZWRNZW51SGVpZ2h0ID0gTWF0aC5taW4oYWN0aW9uQ291bnQsIDEwKSAqIDM2ICsgMTY7XG4gICAgY29uc3Qgc3BhY2VBYm92ZSA9IGJ1dHRvblJlY3QudG9wO1xuICAgIGNvbnN0IHNwYWNlQmVsb3cgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBidXR0b25SZWN0LmJvdHRvbTtcblxuICAgIHRoaXMuZWZmZWN0aXZlRHJvcHVwID0gc3BhY2VCZWxvdyA8IGVzdGltYXRlZE1lbnVIZWlnaHQgJiYgc3BhY2VBYm92ZSA+IHNwYWNlQmVsb3c7XG4gIH1cblxuICBvbk1lbnVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaGFuZGxlZEtleXMgPSBbJ0Fycm93RG93bicsICdBcnJvd1VwJywgJ0hvbWUnLCAnRW5kJywgJ0VzY2FwZSddO1xuICAgIGlmICghaGFuZGxlZEtleXMuaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0TWVudUl0ZW1zKCk7XG4gICAgaWYgKCFpdGVtcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgbGV0IGN1cnJlbnRJbmRleCA9IGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0gPT09IGFjdGl2ZUVsZW1lbnQpO1xuICAgIGlmIChjdXJyZW50SW5kZXggPCAwKSB7XG4gICAgICBjdXJyZW50SW5kZXggPSAwO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICBjb25zdCBuZXh0SW5kZXggPSAoY3VycmVudEluZGV4ICsgMSkgJSBpdGVtcy5sZW5ndGg7XG4gICAgICBpdGVtc1tuZXh0SW5kZXhdLmZvY3VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICBjb25zdCBwcmV2SW5kZXggPSAoY3VycmVudEluZGV4IC0gMSArIGl0ZW1zLmxlbmd0aCkgJSBpdGVtcy5sZW5ndGg7XG4gICAgICBpdGVtc1twcmV2SW5kZXhdLmZvY3VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0hvbWUnKSB7XG4gICAgICBpdGVtc1swXS5mb2N1cygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXkgPT09ICdFbmQnKSB7XG4gICAgICBpdGVtc1tpdGVtcy5sZW5ndGggLSAxXS5mb2N1cygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRvZ2dsZUJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZ2V0SUQoKSkgYXMgSFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsO1xuICAgIGlmICh0b2dnbGVCdXR0b24pIHtcbiAgICAgIHRvZ2dsZUJ1dHRvbi5jbGljaygpO1xuICAgICAgdG9nZ2xlQnV0dG9uLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRNZW51SXRlbXMoKTogSFRNTEFuY2hvckVsZW1lbnRbXSB7XG4gICAgaWYgKCF0aGlzLmFjdGlvbk1lbnVJdGVtcykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFjdGlvbk1lbnVJdGVtc1xuICAgICAgLnRvQXJyYXkoKVxuICAgICAgLm1hcChpdGVtID0+IGl0ZW0ubmF0aXZlRWxlbWVudClcbiAgICAgIC5maWx0ZXIoaXRlbSA9PiAhIWl0ZW0gJiYgIWl0ZW0uaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNGaXJzdE9yTGFzdEl0ZW0oa2V5OiAnQXJyb3dEb3duJyB8ICdBcnJvd1VwJyB8IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRNZW51SXRlbXMoKTtcbiAgICBpZiAoIWl0ZW1zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChrZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgaXRlbXNbaXRlbXMubGVuZ3RoIC0gMV0uZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaXRlbXNbMF0uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiAqbmdJZj1cImFjdGlvbnMgJiYgYWN0aW9ucy5sZW5ndGggPiAwXCIgY2xhc3M9XCJidG4tZ3JvdXBcIiBkcm9wZG93biBbY29udGFpbmVyXT1cIidib2R5J1wiIFtwbGFjZW1lbnRdPVwiZWZmZWN0aXZlRHJvcHVwID8gJ3RvcCByaWdodCcgOiAnYm90dG9tIHJpZ2h0J1wiIFtkcm9wdXBdPVwiZWZmZWN0aXZlRHJvcHVwXCIgcm9sZT1cImdyb3VwXCIgYXJpYS1sYWJlbD1cIkFjdGlvbiBCdXR0b24gR3JvdXBcIiAob25TaG93bik9XCJkcm9wZG93bk9wZW5lZCgpXCIgKG9uSGlkZGVuKT1cImRyb3Bkb3duQ2xvc2VkKClcIj5cbiAgPGJ1dHRvbiBkcm9wZG93blRvZ2dsZSB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgZHJvcGRvd24tdG9nZ2xlXCIgW25nQ2xhc3NdPVwieyAnYnRuLXNtJyA6ICFub3JtYWxTaXplIH1cIlxuICAgIChjbGljayk9XCJ1cGRhdGVEcm9wRGlyZWN0aW9uKClcIlxuICAgIChrZXlkb3duKT1cIm9uVG9nZ2xlS2V5ZG93bigkZXZlbnQpXCJcbiAgICBbaWRdPVwiYnRuSWQrJ19BY3Rpb25CdG4nXCIgYXJpYS1sYWJlbD1cIkFjdGlvbiBCdXR0b25cIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiPlxuICAgIDxzcGFuICpuZ0lmPVwiYnVzeVwiIGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgdGV4dC1wcmltYXJ5XCIgcm9sZT1cInN0YXR1c1wiIGFyaWEtbGFiZWw9XCJMb2FkaW5nXCI+PC9zcGFuPlxuICAgIHt7bGFiZWx9fSBcbiAgICA8c3BhbiBjbGFzcz1cImNhcmV0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICA8L2J1dHRvbj5cblxuICA8dWwgKmRyb3Bkb3duTWVudSBjbGFzcz1cIm9lcGEtYWN0aW9uLW1lbnUgZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51LWVuZFwiIHJvbGU9XCJtZW51XCIgYXJpYS1sYWJlbD1cIkFjdGlvbiBNZW51XCIgKGtleWRvd24pPVwib25NZW51S2V5ZG93bigkZXZlbnQpXCI+XG4gICAgICA8bGkgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBhY3Rpb25zOyBsZXQgaSA9IGluZGV4O1wiIHJvbGU9XCJtZW51aXRlbVwiPlxuICAgICAgICAgIDxhICpuZ0lmPVwiIWJ1c3lcIiAjYWN0aW9uTWVudUl0ZW0gY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKGNsaWNrKT1cIm9uQWN0aW9uQ2xpY2tlZChhY3Rpb24pXCJcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uQWN0aW9uQ2xpY2tlZChhY3Rpb24pOyAkZXZlbnQucHJldmVudERlZmF1bHQoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9uQWN0aW9uQ2xpY2tlZChhY3Rpb24pOyAkZXZlbnQucHJldmVudERlZmF1bHQoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgIFtpZF09XCJidG5JZCsnX0FjdGlvbkxpbmtfJytpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhY3Rpb24udGl0bGVcIiB0YWJpbmRleD1cIjBcIj5cbiAgICAgICAgICAgIDxpIG5nQ2xhc3M9XCJ7e2FjdGlvbi5jbGFzc05hbWUgfHwgJyd9fVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3thY3Rpb24udGl0bGV9fVxuICAgICAgICAgIDwvYT5cbiAgICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj4gXG48IS0tIGRpc3BsYXkgZGlzYWJsZWQgYnV0dG9uIGlmIG5vIGFjdGlvbnMgYXJlIGF2YWlsYWJsZSAtLT5cbjxkaXYgKm5nSWY9XCIhYWN0aW9ucyB8fCBhY3Rpb25zLmxlbmd0aCA9PT0gMFwiPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIFtuZ0NsYXNzXT1cInsgJ2J0bi1zbScgOiAhbm9ybWFsU2l6ZSB9XCIgW2lkXT1cImJ0bklkKydfQWN0aW9uQnRuJ1wiIGRpc2FibGVkIGFyaWEtbGFiZWw9XCJObyBhY3Rpb25zIGF2YWlsYWJsZVwiPlxuICAgIE4vQSBcbiAgPC9idXR0b24+XG48L2Rpdj4iXX0=
@@ -12,7 +12,7 @@ export class ActionBtnModalComponent {
12
12
  ngOnInit() {
13
13
  }
14
14
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionBtnModalComponent, deps: [{ token: i1.BsModalRef }], target: i0.ɵɵFactoryTarget.Component });
15
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActionBtnModalComponent, selector: "oepa-action-btn-modal", ngImport: i0, template: "<div class=\"modal-header\" role=\"banner\">\n <h1 class=\"modal-title pull-left\" id=\"actionBtnModalTitle\">Action Button Test</h1>\n <button type=\"button\" class=\"btn-close float-end\" aria-label=\"Close\" (click)=\"bsModalRef.hide()\"></button>\n</div>\n<div class=\"modal-body\" role=\"dialog\" aria-labelledby=\"actionBtnModalTitle\">\n <div class=\"row\">\n <div class=\"col-sm-12 text-center\">\n <oepa-action-btn [actions]=\"actions\"></oepa-action-btn>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-12 text-center\">\n <div class=\"btn-group\" dropdown placement=\"bottom right\" role=\"group\" aria-label=\"Button Dropdown Group\">\n <button id=\"button-basic\" dropdownToggle type=\"button\" class=\"btn btn-primary dropdown-toggle\"\n aria-controls=\"dropdown-basic\" aria-label=\"Button dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n Button dropdown <span class=\"caret\" aria-hidden=\"true\"></span>\n </button>\n <ul id=\"dropdown-basic\" *dropdownMenu class=\"dropdown-menu\" role=\"menu\" aria-label=\"Dropdown Menu\" aria-labelledby=\"button-basic\">\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\" tabindex=\"0\">Action</a></li>\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\" tabindex=\"0\">Another action</a></li>\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\" tabindex=\"0\">Something else here</a></li>\n <li class=\"divider dropdown-divider\" aria-hidden=\"true\"></li>\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\" tabindex=\"0\">Separated link</a></li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-footer\" role=\"contentinfo\">\n <button type=\"button\" class=\"btn btn-primary mr-1\" (click)=\"bsModalRef.hide()\" aria-label=\"Close\">Close</button>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i2.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i2.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "component", type: i3.ActionBtnComponent, selector: "oepa-action-btn", inputs: ["label", "btnId", "data", "actions", "normalSize", "dropup"], outputs: ["dropdownOpenChange", "actionClicked"] }] });
15
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActionBtnModalComponent, selector: "oepa-action-btn-modal", ngImport: i0, template: "<div class=\"modal-header\" role=\"banner\">\n <h1 class=\"modal-title pull-left\" id=\"actionBtnModalTitle\">Action Button Test</h1>\n <button type=\"button\" class=\"btn-close float-end\" aria-label=\"Close\" (click)=\"bsModalRef.hide()\"></button>\n</div>\n<div class=\"modal-body\" role=\"dialog\" aria-labelledby=\"actionBtnModalTitle\">\n <div class=\"row\">\n <div class=\"col-sm-12 text-center\">\n <oepa-action-btn [actions]=\"actions\"></oepa-action-btn>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-12 text-center\">\n <div class=\"btn-group\" dropdown placement=\"bottom right\" role=\"group\" aria-label=\"Button Dropdown Group\">\n <button id=\"button-basic\" dropdownToggle type=\"button\" class=\"btn btn-primary dropdown-toggle\"\n aria-controls=\"dropdown-basic\" aria-label=\"Button dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n Button dropdown <span class=\"caret\" aria-hidden=\"true\"></span>\n </button>\n <ul id=\"dropdown-basic\" *dropdownMenu class=\"dropdown-menu\" role=\"menu\" aria-label=\"Dropdown Menu\" aria-labelledby=\"button-basic\">\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\" tabindex=\"0\">Action</a></li>\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\" tabindex=\"0\">Another action</a></li>\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\" tabindex=\"0\">Something else here</a></li>\n <li class=\"divider dropdown-divider\" aria-hidden=\"true\"></li>\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\" tabindex=\"0\">Separated link</a></li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-footer\" role=\"contentinfo\">\n <button type=\"button\" class=\"btn btn-primary mr-1\" (click)=\"bsModalRef.hide()\" aria-label=\"Close\">Close</button>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i2.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i2.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "component", type: i3.ActionBtnComponent, selector: "oepa-action-btn", inputs: ["label", "btnId", "data", "actions", "normalSize", "dropup", "autoDropup"], outputs: ["dropdownOpenChange", "actionClicked"] }] });
16
16
  }
17
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionBtnModalComponent, decorators: [{
18
18
  type: Component,
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2VwYS10YWJsZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3RhYmxlL29lcGEtdGFibGUtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVyZmFjZSBkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIG9mIFRhYmxlQ29tcG9uZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9lcGFUYWJsZUNvbmZpZyB7XG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBmb3IgZGl2IHN1cnJvdW5kaW5nIHRhYmxlLiBBZGQgdGFibGUtcmVzcG9uc2l2ZSBoZXJlIGlmIGRlc2lyZWQuXG4gICAgICovXG4gICAgZGl2Q2xhc3NOYW1lPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFNwZWNpZnkgdGFibGUgY3NzIGNsYXNzZXMgYXMgYSBzdHJpbmcuXG4gICAgICovXG4gICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFNwZWNpZnkgdGFibGUgY3NzIGNsYXNzZXMgYXMgYW4gYXJyYXkuXG4gICAgICovXG4gICAgY2xhc3NOYW1lcz86IEFycmF5PHN0cmluZz47XG4gICAgLyoqXG4gICAgICogSW5kaWNhdGUgd2hldGhlciB0YWJsZSBzaG91ZCBzY3JvbGwgdmVyaXRjYWxseVxuICAgICAqL1xuICAgIHZlcnRpY2FsU2Nyb2xsPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBleHBlc3Npb24gaW5kaWNhdGluZyBzY3JvbGwgaGVpZ2h0IChlLmcuIGNhbGMoNjB2aCkpXG4gICAgICovXG4gICAgc2Nyb2xsSGVpZ2h0Pzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEluZGljYXRlIHdoZXRoZXIgdGFibGUgc2hvdWxkIGJlIGhpZGRlbiAoYnV0dG9ucyB3aWxsIHN0aWxsIGJlIHNob3duIHVubGVzcyBoaWRkZW4gYXMgd2VsbClcbiAgICAgKi9cbiAgICBoaWRlVGFibGU/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEluZGljYXRlIHdoZXRoZXIgZm9vdGVyIHNob3VsZCBiZSBoaWRkZW4uXG4gICAgICovXG4gICAgaGlkZUZvb3Rlcj86IGJvb2xlYW47XG4gICAgXG4gICAgLyoqIEluZGljYXRlIHdoZXRoZXIgZ2xvYmFsIGZpbHRlciBib3ggc2hvdWxkIGJlIGhpZGRlbiAqL1xuICAgIGhpZGVHbG9iYWxGaWx0ZXI/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogSW5kaWNhdGUgd2hldGhlciBFeHBvcnQgdG8gRXhjZWwgYnV0dG9uIHNob3VsZCBiZSBzaG93bi5cbiAgICAgKi9cbiAgICBleHBvcnRUb0V4Y2VsPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZSB3aGV0aGVyIEV4cG9ydCB0byBIVE1MIGJ1dHRvbiBzaG91bGQgYmUgc2hvd24uXG4gICAgICovXG4gICAgZXhwb3J0VG9IVE1MPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZSB3aGV0aGVyIFBhZ2luYXRpb24gc2hvdWxkIGJlIGRpc2FibGVkIChoaWRkZW4pLlxuICAgICAqL1xuICAgIGRpc2FibGVQYWdpbmF0aW9uPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZSBob3cgbWFueSB0YWJsZSByb3dzIHRvIGRpc3BsYXkgcGVyIHBhZ2UgKGRlZmF1bHQgaXMgMTApXG4gICAgICovXG4gICAgcm93c1BlclBhZ2U/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZSB3aGV0aGVyIHRhYmxlcyBzaG91bGQgYmUgZXhwb3J0ZWQgd2l0aCBzdWJ0YWJsZXMgZW1iZWRlZC5cbiAgICAgKiBJZiB0cnVlLCBzdWIgdGFibGVzIHdpbGwgbm90IGJlIHNob3duIGJlc2lkZSB0aGUgcGFyZW50IHRhYmxlIGluXG4gICAgICogYW4gZXhwb3J0IGJ1dCB3aWxsIGJlIGVtYmVkZWQgd2l0aGluIHRoZSBwYXJlbnQgdGFibGUuXG4gICAgICovXG4gICAgZXhwb3J0RW1iZWRTdWJUYWJsZT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZSB3aGV0aGVyIHRhYmxlcyBzaG91bGQgYmUgZXhwb3J0ZWQgd2l0aCBoaWRkZW4gY29sdW1ucyBzaG93bi5cbiAgICAgKiBJZiB0cnVlLCBjb2x1bW5zIHRoYXQgYXJlIGhpZGRlbiBpbiB0aGUgZGlzcGxheSB3aWxsIGJlIHNob3duIGluIHRoZVxuICAgICAqIEhUTUwgYW5kIEV4Y2VsIGV4cG9ydCBmaWxlcy5cbiAgICAgKi9cbiAgICBleHBvcnRTaG93SGlkZGVuQ29sdW1ucz86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIGRhdGEgaXMgZXhwb3J0ZWQgdG8gSFRNTCBvciBFeGNlbCwgb25seSBleHBvcnQgdGhlIHJvd3MgdGhhdCBhcmUgdmlzaWJsZSBvbiB0aGVcbiAgICAgKiBzY3JlZW4gYnkgZGVmYXVsdCBpZiB0aGlzIHZhcmlhYmxlIGlzIHRydWUuXG4gICAgICovXG4gICAgZXhwb3J0VmlzaWJsZU9ubHk/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogV2hlbiBkYXRhIGlzIGV4cG9ydGVkIHRvIEhUTUwgb3IgRXhjZWwsIGV4cG9ydCBhbGwgcm93cywgbm90IGp1c3Qgcm93cyB0aGF0IGFyZSBzZWxlY3RlZFxuICAgICAqIGlmIHRoaXMgdmFyaWFibGUgaXMgdHJ1ZS5cbiAgICAgKiBXaGVuIGZhbHNlICh0aGUgZGVmYXVsdCksIG9ubHkgc2VsZWN0ZWQgcm93cyBhcmUgZXhwb3J0ZWQgd2hlbiByb3dzIGFyZSBzZWxlY3RhYmxlLlxuICAgICAqL1xuICAgIGV4cG9ydFVuc2VsZWN0ZWRSb3dzPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIERpc3BsYXkgdGhlIHRvdGFsIHJvdyBjb3VudCBpbiB0aGUgZm9vdGVyIG9mIHRoZSB0YWJsZVxuICAgICAqL1xuICAgIHNob3dSb3dDb3VudEluRm9vdGVyPzogYm9vbGVhbjtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2VwYS10YWJsZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3RhYmxlL29lcGEtdGFibGUtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVyZmFjZSBkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIG9mIFRhYmxlQ29tcG9uZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9lcGFUYWJsZUNvbmZpZyB7XG4gICAgLyoqXG4gICAgICogQWRkaXRpb25hbCBjbGFzcyBuYW1lKHMpIGZvciB0aGUgZGl2IHN1cnJvdW5kaW5nIHRhYmxlLlxuICAgICAqIEhvcml6b250YWwgc2Nyb2xsaW5nIHN1cHBvcnQgaXMgYXBwbGllZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBjb21wb25lbnQuXG4gICAgICovXG4gICAgZGl2Q2xhc3NOYW1lPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFNwZWNpZnkgdGFibGUgY3NzIGNsYXNzZXMgYXMgYSBzdHJpbmcuXG4gICAgICovXG4gICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFNwZWNpZnkgdGFibGUgY3NzIGNsYXNzZXMgYXMgYW4gYXJyYXkuXG4gICAgICovXG4gICAgY2xhc3NOYW1lcz86IEFycmF5PHN0cmluZz47XG4gICAgLyoqXG4gICAgICogSW5kaWNhdGUgd2hldGhlciB0YWJsZSBzaG91ZCBzY3JvbGwgdmVyaXRjYWxseVxuICAgICAqL1xuICAgIHZlcnRpY2FsU2Nyb2xsPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBleHBlc3Npb24gaW5kaWNhdGluZyBzY3JvbGwgaGVpZ2h0IChlLmcuIGNhbGMoNjB2aCkpXG4gICAgICovXG4gICAgc2Nyb2xsSGVpZ2h0Pzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEluZGljYXRlIHdoZXRoZXIgdGFibGUgc2hvdWxkIGJlIGhpZGRlbiAoYnV0dG9ucyB3aWxsIHN0aWxsIGJlIHNob3duIHVubGVzcyBoaWRkZW4gYXMgd2VsbClcbiAgICAgKi9cbiAgICBoaWRlVGFibGU/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEluZGljYXRlIHdoZXRoZXIgZm9vdGVyIHNob3VsZCBiZSBoaWRkZW4uXG4gICAgICovXG4gICAgaGlkZUZvb3Rlcj86IGJvb2xlYW47XG4gICAgXG4gICAgLyoqIEluZGljYXRlIHdoZXRoZXIgZ2xvYmFsIGZpbHRlciBib3ggc2hvdWxkIGJlIGhpZGRlbiAqL1xuICAgIGhpZGVHbG9iYWxGaWx0ZXI/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogSW5kaWNhdGUgd2hldGhlciBFeHBvcnQgdG8gRXhjZWwgYnV0dG9uIHNob3VsZCBiZSBzaG93bi5cbiAgICAgKi9cbiAgICBleHBvcnRUb0V4Y2VsPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZSB3aGV0aGVyIEV4cG9ydCB0byBIVE1MIGJ1dHRvbiBzaG91bGQgYmUgc2hvd24uXG4gICAgICovXG4gICAgZXhwb3J0VG9IVE1MPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZSB3aGV0aGVyIFBhZ2luYXRpb24gc2hvdWxkIGJlIGRpc2FibGVkIChoaWRkZW4pLlxuICAgICAqL1xuICAgIGRpc2FibGVQYWdpbmF0aW9uPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZSBob3cgbWFueSB0YWJsZSByb3dzIHRvIGRpc3BsYXkgcGVyIHBhZ2UgKGRlZmF1bHQgaXMgMTApXG4gICAgICovXG4gICAgcm93c1BlclBhZ2U/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZSB3aGV0aGVyIHRhYmxlcyBzaG91bGQgYmUgZXhwb3J0ZWQgd2l0aCBzdWJ0YWJsZXMgZW1iZWRlZC5cbiAgICAgKiBJZiB0cnVlLCBzdWIgdGFibGVzIHdpbGwgbm90IGJlIHNob3duIGJlc2lkZSB0aGUgcGFyZW50IHRhYmxlIGluXG4gICAgICogYW4gZXhwb3J0IGJ1dCB3aWxsIGJlIGVtYmVkZWQgd2l0aGluIHRoZSBwYXJlbnQgdGFibGUuXG4gICAgICovXG4gICAgZXhwb3J0RW1iZWRTdWJUYWJsZT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZSB3aGV0aGVyIHRhYmxlcyBzaG91bGQgYmUgZXhwb3J0ZWQgd2l0aCBoaWRkZW4gY29sdW1ucyBzaG93bi5cbiAgICAgKiBJZiB0cnVlLCBjb2x1bW5zIHRoYXQgYXJlIGhpZGRlbiBpbiB0aGUgZGlzcGxheSB3aWxsIGJlIHNob3duIGluIHRoZVxuICAgICAqIEhUTUwgYW5kIEV4Y2VsIGV4cG9ydCBmaWxlcy5cbiAgICAgKi9cbiAgICBleHBvcnRTaG93SGlkZGVuQ29sdW1ucz86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIGRhdGEgaXMgZXhwb3J0ZWQgdG8gSFRNTCBvciBFeGNlbCwgb25seSBleHBvcnQgdGhlIHJvd3MgdGhhdCBhcmUgdmlzaWJsZSBvbiB0aGVcbiAgICAgKiBzY3JlZW4gYnkgZGVmYXVsdCBpZiB0aGlzIHZhcmlhYmxlIGlzIHRydWUuXG4gICAgICovXG4gICAgZXhwb3J0VmlzaWJsZU9ubHk/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogV2hlbiBkYXRhIGlzIGV4cG9ydGVkIHRvIEhUTUwgb3IgRXhjZWwsIGV4cG9ydCBhbGwgcm93cywgbm90IGp1c3Qgcm93cyB0aGF0IGFyZSBzZWxlY3RlZFxuICAgICAqIGlmIHRoaXMgdmFyaWFibGUgaXMgdHJ1ZS5cbiAgICAgKiBXaGVuIGZhbHNlICh0aGUgZGVmYXVsdCksIG9ubHkgc2VsZWN0ZWQgcm93cyBhcmUgZXhwb3J0ZWQgd2hlbiByb3dzIGFyZSBzZWxlY3RhYmxlLlxuICAgICAqL1xuICAgIGV4cG9ydFVuc2VsZWN0ZWRSb3dzPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIERpc3BsYXkgdGhlIHRvdGFsIHJvdyBjb3VudCBpbiB0aGUgZm9vdGVyIG9mIHRoZSB0YWJsZVxuICAgICAqL1xuICAgIHNob3dSb3dDb3VudEluRm9vdGVyPzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -33,7 +33,7 @@ export class TableDataCellComponent {
33
33
  this.onActionClick.emit(event);
34
34
  }
35
35
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableDataCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
36
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TableDataCellComponent, selector: "oepa-table-data-cell", inputs: { col: "col", row: "row", i: "i", r: "r", tableId: "tableId" }, outputs: { onCellClick: "onCellClick", onToggleRowSelection: "onToggleRowSelection", onSingleRowSelection: "onSingleRowSelection", onActionClick: "onActionClick" }, ngImport: i0, template: "<!-- Data Cell -->\n <div *ngIf=\"!col.actionColumn && !col.selectColumn && !col.singleSelectColumn && !col.inputColumn\">\n <!-- Template for popover 1 -->\n <ng-template #popoverTemplate>\n <div *ngIf=\"row.popover\">\n <cml-template [templateInfo]=\"row.popover.content\"></cml-template>\n </div>\n </ng-template>\n <!-- Popover 1 icon (if specified) -->\n <span *ngIf=\"row.popover && i === (row.popoverColumnIndex || 0) && row.popover\" tabindex=\"0\"\n [popoverTitle]=\"row.popover.title\" [popover]=\"popoverTemplate\"\n [containerClass]=\"row.popover.containerClass\" placement=\"right\"\n [triggers]=\"row.popover.trigger || 'mouseenter:mouseleave'\">\n <i [ngClass]=\"row.popover.className\" [id]=\"tableId+'_PopoverLink_'+r\"></i>\n </span>\n \n <!-- Template for popover 2 -->\n <ng-template #popover2Template>\n <div *ngIf=\"row.popover2\">\n <cml-template [templateInfo]=\"row.popover2.content\"></cml-template>\n </div>\n </ng-template>\n <!-- Popover 2 icon (if specified) -->\n <span *ngIf=\"i === (row.popover2ColumnIndex || 0) && row.popover2\" tabindex=\"0\"\n [popoverTitle]=\"row.popover2.title\" [popover]=\"popover2Template\"\n [containerClass]=\"row.popover2.containerClass\" placement=\"right\"\n [triggers]=\"row.popover2.trigger || 'mouseenter:mouseleave'\">\n <i [ngClass]=\"row.popover2.className\" [id]=\"tableId+'_Popover2Link_'+r\"></i>\n </span>\n \n <!-- Template for popover 3 -->\n <ng-template #popover3Template>\n <div *ngIf=\"row.popover3\">\n <cml-template [templateInfo]=\"row.popover3.content\"></cml-template>\n </div>\n </ng-template>\n <!-- Popover 3 icon (if specified) -->\n <span *ngIf=\"i === (row.popover3ColumnIndex || 0) && row.popover3\" tabindex=\"0\"\n [popoverTitle]=\"row.popover3.title\" [popover]=\"popover3Template\"\n [containerClass]=\"row.popover3.containerClass\" placement=\"right\"\n [triggers]=\"row.popover3.trigger || 'mouseenter:mouseleave'\">\n <i [ngClass]=\"row.popover3.className\" [id]=\"tableId+'_Popover3Link_'+r\"></i>\n </span>\n \n \n <!-- <div *ngIf=\"row|cellInnerHTML:col\" [innerHTML]=\"row|cellInnerHTML:col\"></div>\n <span *ngIf=\"!(row|cellInnerHTML:col)\">{{row|cellValue:col}}</span> -->\n \n <!-- If col is hyperlink, display data as a hyperlink -->\n <a *ngIf=\"col.hyperlink && !(row|cellNotSelectable:col)\" href=\"javascript:void(0);\"\n (click)=\"cellClick(row, col.id)\" [id]=\"tableId+'_CellClick_'+r+'_'+i\"\n [attr.aria-label]=\"col.title || 'Link'\">\n <span *ngIf=\"!(row|cellInnerHTML:col)\">\n <i [ngClass]=\"row|cellIconClassname:col\"></i>\n <span *ngIf=\"row|cellImgSrc:col\"><img [src]=\"row|cellImgSrc:col\" alt=\"\" /></span>\n {{row|cellValue:col}}\n </span>\n <div *ngIf=\"row|cellInnerHTML:col\" [innerHTML]=\"row|cellInnerHTML:col\"></div>\n </a>\n <!-- If col is NOT hyperlink, just display data -->\n <span *ngIf=\"!col.hyperlink || (row|cellNotSelectable:col)\">\n <span *ngIf=\"!(row|cellInnerHTML:col)\">\n <i ngClass=\"{{row|cellIconClassname:col || ''}}\"></i>\n <span *ngIf=\"row|cellImgSrc:col\"><img [src]=\"row|cellImgSrc:col\" alt=\"\" /></span>\n {{row|cellValue:col}}\n </span>\n <div *ngIf=\"row|cellInnerHTML:col\" [innerHTML]=\"row|cellInnerHTML:col\"></div>\n </span>\n </div>\n <!-- Input Cell -->\n <div *ngIf=\"col.inputColumn\">\n <cml-template [templateInfo]=\"row|cellInputComponent:col\"></cml-template>\n </div>\n <!-- Select Cell -->\n <div *ngIf=\"col.selectColumn\" class=\"text-center\">\n <input [id]=\"tableId+'_'+r\" type=\"checkbox\" [disabled]=\"!row.selectable\" [checked]=\"row.selected\"\n (change)=\"toggleRowSelection(row)\" [attr.aria-label]=\"'Select row ' + (r+1)\">\n </div>\n <!-- Single Select Cell -->\n <div *ngIf=\"col.singleSelectColumn\" class=\"text-center\">\n <input [id]=\"tableId+'_singleSelect_'+r\" type=\"radio\" [disabled]=\"!row.selectable\"\n [checked]=\"row.selected\" (change)=\"singleRowSelection(row)\" [attr.aria-label]=\"'Select row ' + (r+1)\">\n </div>\n <!-- Action Button Cell -->\n <div *ngIf=\"col.actionColumn && row.actions\">\n <oepa-action-btn [actions]=\"row.actions\" [data]=\"row.dataSource\" (actionClicked)=\"actionClick($event)\"\n [btnId]=\"tableId+'_'+r\"></oepa-action-btn>\n </div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: i3.OepaTemplateComponent, selector: "cml-template", inputs: ["templateInfo"] }, { kind: "component", type: i4.ActionBtnComponent, selector: "oepa-action-btn", inputs: ["label", "btnId", "data", "actions", "normalSize", "dropup"], outputs: ["dropdownOpenChange", "actionClicked"] }, { kind: "pipe", type: i5.OepaTableCellInnerHtmlPipe, name: "cellInnerHTML" }, { kind: "pipe", type: i6.OepaTableCellValuePipe, name: "cellValue" }, { kind: "pipe", type: i7.OepaTableCellIconClassnamePipe, name: "cellIconClassname" }, { kind: "pipe", type: i8.OepaTableCellImgSrcPipe, name: "cellImgSrc" }, { kind: "pipe", type: i9.OepaTableCellNotSelectablePipe, name: "cellNotSelectable" }, { kind: "pipe", type: i10.OepaTableCellInputComponentPipe, name: "cellInputComponent" }] });
36
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TableDataCellComponent, selector: "oepa-table-data-cell", inputs: { col: "col", row: "row", i: "i", r: "r", tableId: "tableId" }, outputs: { onCellClick: "onCellClick", onToggleRowSelection: "onToggleRowSelection", onSingleRowSelection: "onSingleRowSelection", onActionClick: "onActionClick" }, ngImport: i0, template: "<!-- Data Cell -->\n <div *ngIf=\"!col.actionColumn && !col.selectColumn && !col.singleSelectColumn && !col.inputColumn\">\n <!-- Template for popover 1 -->\n <ng-template #popoverTemplate>\n <div *ngIf=\"row.popover\">\n <cml-template [templateInfo]=\"row.popover.content\"></cml-template>\n </div>\n </ng-template>\n <!-- Popover 1 icon (if specified) -->\n <span *ngIf=\"row.popover && i === (row.popoverColumnIndex || 0) && row.popover\" tabindex=\"0\"\n [popoverTitle]=\"row.popover.title\" [popover]=\"popoverTemplate\"\n [containerClass]=\"row.popover.containerClass\" placement=\"right\"\n [triggers]=\"row.popover.trigger || 'mouseenter:mouseleave'\">\n <i [ngClass]=\"row.popover.className\" [id]=\"tableId+'_PopoverLink_'+r\"></i>\n </span>\n \n <!-- Template for popover 2 -->\n <ng-template #popover2Template>\n <div *ngIf=\"row.popover2\">\n <cml-template [templateInfo]=\"row.popover2.content\"></cml-template>\n </div>\n </ng-template>\n <!-- Popover 2 icon (if specified) -->\n <span *ngIf=\"i === (row.popover2ColumnIndex || 0) && row.popover2\" tabindex=\"0\"\n [popoverTitle]=\"row.popover2.title\" [popover]=\"popover2Template\"\n [containerClass]=\"row.popover2.containerClass\" placement=\"right\"\n [triggers]=\"row.popover2.trigger || 'mouseenter:mouseleave'\">\n <i [ngClass]=\"row.popover2.className\" [id]=\"tableId+'_Popover2Link_'+r\"></i>\n </span>\n \n <!-- Template for popover 3 -->\n <ng-template #popover3Template>\n <div *ngIf=\"row.popover3\">\n <cml-template [templateInfo]=\"row.popover3.content\"></cml-template>\n </div>\n </ng-template>\n <!-- Popover 3 icon (if specified) -->\n <span *ngIf=\"i === (row.popover3ColumnIndex || 0) && row.popover3\" tabindex=\"0\"\n [popoverTitle]=\"row.popover3.title\" [popover]=\"popover3Template\"\n [containerClass]=\"row.popover3.containerClass\" placement=\"right\"\n [triggers]=\"row.popover3.trigger || 'mouseenter:mouseleave'\">\n <i [ngClass]=\"row.popover3.className\" [id]=\"tableId+'_Popover3Link_'+r\"></i>\n </span>\n \n \n <!-- <div *ngIf=\"row|cellInnerHTML:col\" [innerHTML]=\"row|cellInnerHTML:col\"></div>\n <span *ngIf=\"!(row|cellInnerHTML:col)\">{{row|cellValue:col}}</span> -->\n \n <!-- If col is hyperlink, display data as a hyperlink -->\n <a *ngIf=\"col.hyperlink && !(row|cellNotSelectable:col)\" href=\"javascript:void(0);\"\n (click)=\"cellClick(row, col.id)\" [id]=\"tableId+'_CellClick_'+r+'_'+i\"\n [attr.aria-label]=\"col.title || 'Link'\">\n <span *ngIf=\"!(row|cellInnerHTML:col)\">\n <i [ngClass]=\"row|cellIconClassname:col\"></i>\n <span *ngIf=\"row|cellImgSrc:col\"><img [src]=\"row|cellImgSrc:col\" alt=\"\" /></span>\n {{row|cellValue:col}}\n </span>\n <div *ngIf=\"row|cellInnerHTML:col\" [innerHTML]=\"row|cellInnerHTML:col\"></div>\n </a>\n <!-- If col is NOT hyperlink, just display data -->\n <span *ngIf=\"!col.hyperlink || (row|cellNotSelectable:col)\">\n <span *ngIf=\"!(row|cellInnerHTML:col)\">\n <i ngClass=\"{{row|cellIconClassname:col || ''}}\"></i>\n <span *ngIf=\"row|cellImgSrc:col\"><img [src]=\"row|cellImgSrc:col\" alt=\"\" /></span>\n {{row|cellValue:col}}\n </span>\n <div *ngIf=\"row|cellInnerHTML:col\" [innerHTML]=\"row|cellInnerHTML:col\"></div>\n </span>\n </div>\n <!-- Input Cell -->\n <div *ngIf=\"col.inputColumn\">\n <cml-template [templateInfo]=\"row|cellInputComponent:col\"></cml-template>\n </div>\n <!-- Select Cell -->\n <div *ngIf=\"col.selectColumn\" class=\"text-center\">\n <input [id]=\"tableId+'_'+r\" type=\"checkbox\" [disabled]=\"!row.selectable\" [checked]=\"row.selected\"\n (change)=\"toggleRowSelection(row)\" [attr.aria-label]=\"'Select row ' + (r+1)\">\n </div>\n <!-- Single Select Cell -->\n <div *ngIf=\"col.singleSelectColumn\" class=\"text-center\">\n <input [id]=\"tableId+'_singleSelect_'+r\" type=\"radio\" [disabled]=\"!row.selectable\"\n [checked]=\"row.selected\" (change)=\"singleRowSelection(row)\" [attr.aria-label]=\"'Select row ' + (r+1)\">\n </div>\n <!-- Action Button Cell -->\n <div *ngIf=\"col.actionColumn && row.actions\">\n <oepa-action-btn [actions]=\"row.actions\" [data]=\"row.dataSource\" (actionClicked)=\"actionClick($event)\"\n [btnId]=\"tableId+'_'+r\"></oepa-action-btn>\n </div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: i3.OepaTemplateComponent, selector: "cml-template", inputs: ["templateInfo"] }, { kind: "component", type: i4.ActionBtnComponent, selector: "oepa-action-btn", inputs: ["label", "btnId", "data", "actions", "normalSize", "dropup", "autoDropup"], outputs: ["dropdownOpenChange", "actionClicked"] }, { kind: "pipe", type: i5.OepaTableCellInnerHtmlPipe, name: "cellInnerHTML" }, { kind: "pipe", type: i6.OepaTableCellValuePipe, name: "cellValue" }, { kind: "pipe", type: i7.OepaTableCellIconClassnamePipe, name: "cellIconClassname" }, { kind: "pipe", type: i8.OepaTableCellImgSrcPipe, name: "cellImgSrc" }, { kind: "pipe", type: i9.OepaTableCellNotSelectablePipe, name: "cellNotSelectable" }, { kind: "pipe", type: i10.OepaTableCellInputComponentPipe, name: "cellInputComponent" }] });
37
37
  }
38
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableDataCellComponent, decorators: [{
39
39
  type: Component,