@cqa-lib/cqa-ui 1.1.273 → 1.1.274

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.
@@ -15,6 +15,8 @@ export class TableActionToolbarComponent {
15
15
  this.actionClick = new EventEmitter();
16
16
  this.selectAllChange = new EventEmitter();
17
17
  this.dismiss = new EventEmitter();
18
+ /** Cooldown ms to prevent double-click from firing the same action twice */
19
+ this.lastActionEmit = null;
18
20
  }
19
21
  get hasSelection() {
20
22
  return (this.selectedItems?.length || 0) > 0;
@@ -38,6 +40,13 @@ export class TableActionToolbarComponent {
38
40
  if (this.isDisabled(action)) {
39
41
  return;
40
42
  }
43
+ const now = Date.now();
44
+ if (this.lastActionEmit &&
45
+ this.lastActionEmit.id === action.id &&
46
+ now - this.lastActionEmit.time < TableActionToolbarComponent.ACTION_COOLDOWN_MS) {
47
+ return;
48
+ }
49
+ this.lastActionEmit = { id: action.id, time: now };
41
50
  const context = { id: action.id, selected: this.selectedItems || [] };
42
51
  if (action.onClick) {
43
52
  action.onClick(context);
@@ -54,6 +63,7 @@ export class TableActionToolbarComponent {
54
63
  this.dismiss.emit();
55
64
  }
56
65
  }
66
+ TableActionToolbarComponent.ACTION_COOLDOWN_MS = 500;
57
67
  TableActionToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TableActionToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
58
68
  TableActionToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TableActionToolbarComponent, selector: "cqa-table-action-toolbar", inputs: { selectedItems: "selectedItems", actions: "actions", showSelectAll: "showSelectAll", allSelected: "allSelected", showDismiss: "showDismiss" }, outputs: { actionClick: "actionClick", selectAllChange: "selectAllChange", dismiss: "dismiss" }, host: { classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"cqa-ui-root\">\n <div\n class=\"action-toolbar cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-flex-wrap cqa-py-[15.5px] sm:cqa-px-[34px] cqa-px-[20px] cqa-bg-primary cqa-text-white cqa-rounded-[7px] cqa-shadow-md\"\n *ngIf=\"hasSelection\">\n <div class=\"action-toolbar-left cqa-flex cqa-items-center cqa-gap-2 cqa-text-[14px] cqa-leading-[21px] cqa-font-medium\">\n <ng-container *ngIf=\"showSelectAll\">\n <label class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-cursor-pointer cqa-select-none\">\n <input type=\"checkbox\" [checked]=\"allSelected\" (change)=\"onSelectAllChange($any($event.target).checked)\"\n class=\"cqa-w-4 cqa-h-4 cqa-rounded cqa-border cqa-border-white cqa-bg-transparent cqa-accent-primary\" />\n <span>Select all</span>\n </label>\n <span class=\"cqa-border-l cqa-border-white/50 cqa-pl-2 cqa-border-solid cqa-self-stretch cqa-flex cqa-items-center\">{{ selectionLabel }}</span>\n </ng-container>\n <span *ngIf=\"!showSelectAll\">{{ selectionLabel }}</span>\n </div>\n <div class=\"action-toolbar-right cqa-flex cqa-items-center cqa-gap-[7px]\">\n <ng-container *ngFor=\"let action of visibleActions()\">\n <div [attr.aria-disabled]=\"isDisabled(action)\" [class.cqa-opacity-50]=\"isDisabled(action)\" [class.cqa-cursor-not-allowed]=\"isDisabled(action)\" (click)=\"!isDisabled(action) && onAction(action)\"\n class=\"cqa-flex cqa-items-center cqa-gap-[8.75px] cqa-py-[5px] cqa-px-[8.75px] cqa-cursor-pointer cqa-text-[12.3px] cqa-leading-[17.5px] cqa-font-medium hover:cqa-bg-white/10 cqa-rounded\">\n <mat-icon class=\"!cqa-w-[16px] !cqa-h-[16px] !cqa-text-[16px]\">{{ action.icon }}</mat-icon>\n <span class=\"md:cqa-flex cqa-hidden\">{{ action.label }}</span>\n </div>\n </ng-container>\n <button *ngIf=\"showDismiss\" type=\"button\" (click)=\"onDismiss()\" class=\"cqa-p-1 cqa-rounded hover:cqa-bg-white/10 cqa-flex cqa-items-center cqa-justify-center\"\n title=\"Dismiss\" aria-label=\"Dismiss\">\n <mat-icon class=\"!cqa-w-[20px] !cqa-h-[20px] !cqa-text-[20px]\">close</mat-icon>\n </button>\n </div>\n </div>\n</div>", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
59
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TableActionToolbarComponent, decorators: [{
@@ -76,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
76
86
  }], dismiss: [{
77
87
  type: Output
78
88
  }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi90YWJsZS1hY3Rpb24tdG9vbGJhci90YWJsZS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3RhYmxlLWFjdGlvbi10b29sYmFyL3RhYmxlLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFvQmhHLE1BQU0sT0FBTywyQkFBMkI7SUFQeEM7UUFRVyxrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUMxQixZQUFPLEdBQWtCLEVBQUUsQ0FBQztRQUVyQyx3R0FBd0c7UUFDL0Ysa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDeEMsbUVBQW1FO1FBQzFELGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQ3RDLHNFQUFzRTtRQUM3RCxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUU1QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFtQyxDQUFDO1FBQ2xFLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUM5QyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQTZDOUM7SUEzQ0MsSUFBSSxZQUFZO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDMUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7SUFDbEQsQ0FBQztJQUVELGNBQWM7UUFDWixNQUFNLEdBQUcsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ25ELE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQW1CO1FBQzVCLE1BQU0sR0FBRyxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRSxFQUFFLENBQUM7UUFDbkQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzFELENBQUM7SUFFRCxRQUFRLENBQUMsTUFBbUI7UUFDMUIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzNCLE9BQU87U0FDUjtRQUNELE1BQU0sT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRSxFQUFFLENBQUM7UUFDdEUsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ2xCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDekI7YUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN4QjtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxPQUFnQjtRQUNoQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7d0hBekRVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLGtXQ3BCeEMsK3JFQTZCTTsyRkRUTywyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0UsMEJBQTBCLG1CQUduQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTs4QkFHckIsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUFjdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbiAgdG9vbHRpcD86IHN0cmluZztcbiAgc2hvdz86IChjb250ZXh0OiB7IHNlbGVjdGVkOiBhbnlbXSB9KSA9PiBib29sZWFuO1xuICBkaXNhYmxlZD86IChjb250ZXh0OiB7IHNlbGVjdGVkOiBhbnlbXSB9KSA9PiBib29sZWFuO1xuICBvbkNsaWNrPzogKGNvbnRleHQ6IHsgaWQ6IHN0cmluZzsgc2VsZWN0ZWQ6IGFueVtdIH0pID0+IHZvaWQ7XG4gIGFjdGlvbj86IChjb250ZXh0OiB7IGlkOiBzdHJpbmc7IHNlbGVjdGVkOiBhbnlbXSB9KSA9PiB2b2lkOyAvLyBTdXBwb3J0ICdhY3Rpb24nIGFzIGFuIGFsaWFzIGZvciBvbkNsaWNrXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS10YWJsZS1hY3Rpb24tdG9vbGJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnIH1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVBY3Rpb25Ub29sYmFyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVtczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgYWN0aW9uczogVGFibGVBY3Rpb25bXSA9IFtdO1xuXG4gIC8qKiBXaGVuIHRydWUsIHNob3cgYSBcIlNlbGVjdCBhbGxcIiBjaGVja2JveCBuZXh0IHRvIHRoZSBzZWxlY3Rpb24gY291bnQgKGUuZy4gZm9yIHRlc3QgY2FzZSBkZXRhaWxzKS4gKi9cbiAgQElucHV0KCkgc2hvd1NlbGVjdEFsbDogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiogQm91bmQgdG8gdGhlIFNlbGVjdCBhbGwgY2hlY2tib3ggd2hlbiBzaG93U2VsZWN0QWxsIGlzIHRydWUuICovXG4gIEBJbnB1dCgpIGFsbFNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiBXaGVuIHRydWUsIHNob3cgYSBkaXNtaXNzIChYKSBidXR0b24gYXQgdGhlIGVuZCBvZiB0aGUgdG9vbGJhci4gKi9cbiAgQElucHV0KCkgc2hvd0Rpc21pc3M6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaWQ6IHN0cmluZzsgc2VsZWN0ZWQ6IGFueVtdIH0+KCk7XG4gIEBPdXRwdXQoKSBzZWxlY3RBbGxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBkaXNtaXNzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGdldCBoYXNTZWxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLnNlbGVjdGVkSXRlbXM/Lmxlbmd0aCB8fCAwKSA+IDA7XG4gIH1cblxuICBnZXQgaXNTaW5nbGVTZWxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoID09PSAxO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGlvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbiA9IHRoaXMuc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoIHx8IDA7XG4gICAgcmV0dXJuIG4gPT09IDEgPyAnMSBzZWxlY3RlZCcgOiBgJHtufSBzZWxlY3RlZGA7XG4gIH1cblxuICB2aXNpYmxlQWN0aW9ucygpOiBUYWJsZUFjdGlvbltdIHtcbiAgICBjb25zdCBjdHggPSB7IHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkSXRlbXMgfHwgW10gfTtcbiAgICByZXR1cm4gKHRoaXMuYWN0aW9ucyB8fCBbXSkuZmlsdGVyKGEgPT4gKGEuc2hvdyA/IGEuc2hvdyhjdHgpIDogdHJ1ZSkpO1xuICB9XG5cbiAgaXNEaXNhYmxlZChhY3Rpb246IFRhYmxlQWN0aW9uKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY3R4ID0geyBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZEl0ZW1zIHx8IFtdIH07XG4gICAgcmV0dXJuIGFjdGlvbi5kaXNhYmxlZCA/ICEhYWN0aW9uLmRpc2FibGVkKGN0eCkgOiBmYWxzZTtcbiAgfVxuXG4gIG9uQWN0aW9uKGFjdGlvbjogVGFibGVBY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKGFjdGlvbikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY29udGV4dCA9IHsgaWQ6IGFjdGlvbi5pZCwgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRJdGVtcyB8fCBbXSB9O1xuICAgIGlmIChhY3Rpb24ub25DbGljaykge1xuICAgICAgYWN0aW9uLm9uQ2xpY2soY29udGV4dCk7XG4gICAgfSBlbHNlIGlmIChhY3Rpb24uYWN0aW9uKSB7XG4gICAgICBhY3Rpb24uYWN0aW9uKGNvbnRleHQpO1xuICAgIH1cbiAgICB0aGlzLmFjdGlvbkNsaWNrLmVtaXQoY29udGV4dCk7XG4gIH1cblxuICBvblNlbGVjdEFsbENoYW5nZShjaGVja2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RBbGxDaGFuZ2UuZW1pdChjaGVja2VkKTtcbiAgfVxuXG4gIG9uRGlzbWlzcygpOiB2b2lkIHtcbiAgICB0aGlzLmRpc21pc3MuZW1pdCgpO1xuICB9XG59XG5cblxuIiwiPGRpdiBjbGFzcz1cImNxYS11aS1yb290XCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImFjdGlvbi10b29sYmFyIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTIgY3FhLWZsZXgtd3JhcCBjcWEtcHktWzE1LjVweF0gc206Y3FhLXB4LVszNHB4XSBjcWEtcHgtWzIwcHhdIGNxYS1iZy1wcmltYXJ5IGNxYS10ZXh0LXdoaXRlIGNxYS1yb3VuZGVkLVs3cHhdIGNxYS1zaGFkb3ctbWRcIlxuICAgICpuZ0lmPVwiaGFzU2VsZWN0aW9uXCI+XG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbi10b29sYmFyLWxlZnQgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsyMXB4XSBjcWEtZm9udC1tZWRpdW1cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93U2VsZWN0QWxsXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS1jdXJzb3ItcG9pbnRlciBjcWEtc2VsZWN0LW5vbmVcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwiYWxsU2VsZWN0ZWRcIiAoY2hhbmdlKT1cIm9uU2VsZWN0QWxsQ2hhbmdlKCRhbnkoJGV2ZW50LnRhcmdldCkuY2hlY2tlZClcIlxuICAgICAgICAgICAgY2xhc3M9XCJjcWEtdy00IGNxYS1oLTQgY3FhLXJvdW5kZWQgY3FhLWJvcmRlciBjcWEtYm9yZGVyLXdoaXRlIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtYWNjZW50LXByaW1hcnlcIiAvPlxuICAgICAgICAgIDxzcGFuPlNlbGVjdCBhbGw8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWJvcmRlci1sIGNxYS1ib3JkZXItd2hpdGUvNTAgY3FhLXBsLTIgY3FhLWJvcmRlci1zb2xpZCBjcWEtc2VsZi1zdHJldGNoIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXJcIj57eyBzZWxlY3Rpb25MYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHNwYW4gKm5nSWY9XCIhc2hvd1NlbGVjdEFsbFwiPnt7IHNlbGVjdGlvbkxhYmVsIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tdG9vbGJhci1yaWdodCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtWzdweF1cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiB2aXNpYmxlQWN0aW9ucygpXCI+XG4gICAgICAgIDxkaXYgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJpc0Rpc2FibGVkKGFjdGlvbilcIiBbY2xhc3MuY3FhLW9wYWNpdHktNTBdPVwiaXNEaXNhYmxlZChhY3Rpb24pXCIgW2NsYXNzLmNxYS1jdXJzb3Itbm90LWFsbG93ZWRdPVwiaXNEaXNhYmxlZChhY3Rpb24pXCIgKGNsaWNrKT1cIiFpc0Rpc2FibGVkKGFjdGlvbikgJiYgb25BY3Rpb24oYWN0aW9uKVwiXG4gICAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtWzguNzVweF0gY3FhLXB5LVs1cHhdIGNxYS1weC1bOC43NXB4XSBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXRleHQtWzEyLjNweF0gY3FhLWxlYWRpbmctWzE3LjVweF0gY3FhLWZvbnQtbWVkaXVtIGhvdmVyOmNxYS1iZy13aGl0ZS8xMCBjcWEtcm91bmRlZFwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiFjcWEtdy1bMTZweF0gIWNxYS1oLVsxNnB4XSAhY3FhLXRleHQtWzE2cHhdXCI+e3sgYWN0aW9uLmljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWQ6Y3FhLWZsZXggY3FhLWhpZGRlblwiPnt7IGFjdGlvbi5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxidXR0b24gKm5nSWY9XCJzaG93RGlzbWlzc1wiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25EaXNtaXNzKClcIiBjbGFzcz1cImNxYS1wLTEgY3FhLXJvdW5kZWQgaG92ZXI6Y3FhLWJnLXdoaXRlLzEwIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyXCJcbiAgICAgICAgdGl0bGU9XCJEaXNtaXNzXCIgYXJpYS1sYWJlbD1cIkRpc21pc3NcIj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiIWNxYS13LVsyMHB4XSAhY3FhLWgtWzIwcHhdICFjcWEtdGV4dC1bMjBweF1cIj5jbG9zZTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi90YWJsZS1hY3Rpb24tdG9vbGJhci90YWJsZS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3RhYmxlLWFjdGlvbi10b29sYmFyL3RhYmxlLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFvQmhHLE1BQU0sT0FBTywyQkFBMkI7SUFQeEM7UUFRVyxrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUMxQixZQUFPLEdBQWtCLEVBQUUsQ0FBQztRQUVyQyx3R0FBd0c7UUFDL0Ysa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDeEMsbUVBQW1FO1FBQzFELGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQ3RDLHNFQUFzRTtRQUM3RCxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUU1QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFtQyxDQUFDO1FBQ2xFLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUM5QyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUU3Qyw0RUFBNEU7UUFDcEUsbUJBQWMsR0FBd0MsSUFBSSxDQUFDO0tBdURwRTtJQXBEQyxJQUFJLFlBQVk7UUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFB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QXhCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQWN0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICB0b29sdGlwPzogc3RyaW5nO1xuICBzaG93PzogKGNvbnRleHQ6IHsgc2VsZWN0ZWQ6IGFueVtdIH0pID0+IGJvb2xlYW47XG4gIGRpc2FibGVkPzogKGNvbnRleHQ6IHsgc2VsZWN0ZWQ6IGFueVtdIH0pID0+IGJvb2xlYW47XG4gIG9uQ2xpY2s/OiAoY29udGV4dDogeyBpZDogc3RyaW5nOyBzZWxlY3RlZDogYW55W10gfSkgPT4gdm9pZDtcbiAgYWN0aW9uPzogKGNvbnRleHQ6IHsgaWQ6IHN0cmluZzsgc2VsZWN0ZWQ6IGFueVtdIH0pID0+IHZvaWQ7IC8vIFN1cHBvcnQgJ2FjdGlvbicgYXMgYW4gYWxpYXMgZm9yIG9uQ2xpY2tcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLXRhYmxlLWFjdGlvbi10b29sYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHsgY2xhc3M6ICdjcWEtdWktcm9vdCcgfVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUFjdGlvblRvb2xiYXJDb21wb25lbnQge1xuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1zOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBhY3Rpb25zOiBUYWJsZUFjdGlvbltdID0gW107XG5cbiAgLyoqIFdoZW4gdHJ1ZSwgc2hvdyBhIFwiU2VsZWN0IGFsbFwiIGNoZWNrYm94IG5leHQgdG8gdGhlIHNlbGVjdGlvbiBjb3VudCAoZS5nLiBmb3IgdGVzdCBjYXNlIGRldGFpbHMpLiAqL1xuICBASW5wdXQoKSBzaG93U2VsZWN0QWxsOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiBCb3VuZCB0byB0aGUgU2VsZWN0IGFsbCBjaGVja2JveCB3aGVuIHNob3dTZWxlY3RBbGwgaXMgdHJ1ZS4gKi9cbiAgQElucHV0KCkgYWxsU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIFdoZW4gdHJ1ZSwgc2hvdyBhIGRpc21pc3MgKFgpIGJ1dHRvbiBhdCB0aGUgZW5kIG9mIHRoZSB0b29sYmFyLiAqL1xuICBASW5wdXQoKSBzaG93RGlzbWlzczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBhY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8eyBpZDogc3RyaW5nOyBzZWxlY3RlZDogYW55W10gfT4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdEFsbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGRpc21pc3MgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqIENvb2xkb3duIG1zIHRvIHByZXZlbnQgZG91YmxlLWNsaWNrIGZyb20gZmlyaW5nIHRoZSBzYW1lIGFjdGlvbiB0d2ljZSAqL1xuICBwcml2YXRlIGxhc3RBY3Rpb25FbWl0OiB7IGlkOiBzdHJpbmc7IHRpbWU6IG51bWJlciB9IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEFDVElPTl9DT09MRE9XTl9NUyA9IDUwMDtcblxuICBnZXQgaGFzU2VsZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5zZWxlY3RlZEl0ZW1zPy5sZW5ndGggfHwgMCkgPiAwO1xuICB9XG5cbiAgZ2V0IGlzU2luZ2xlU2VsZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXM/Lmxlbmd0aCA9PT0gMTtcbiAgfVxuXG4gIGdldCBzZWxlY3Rpb25MYWJlbCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IG4gPSB0aGlzLnNlbGVjdGVkSXRlbXM/Lmxlbmd0aCB8fCAwO1xuICAgIHJldHVybiBuID09PSAxID8gJzEgc2VsZWN0ZWQnIDogYCR7bn0gc2VsZWN0ZWRgO1xuICB9XG5cbiAgdmlzaWJsZUFjdGlvbnMoKTogVGFibGVBY3Rpb25bXSB7XG4gICAgY29uc3QgY3R4ID0geyBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZEl0ZW1zIHx8IFtdIH07XG4gICAgcmV0dXJuICh0aGlzLmFjdGlvbnMgfHwgW10pLmZpbHRlcihhID0+IChhLnNob3cgPyBhLnNob3coY3R4KSA6IHRydWUpKTtcbiAgfVxuXG4gIGlzRGlzYWJsZWQoYWN0aW9uOiBUYWJsZUFjdGlvbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGN0eCA9IHsgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRJdGVtcyB8fCBbXSB9O1xuICAgIHJldHVybiBhY3Rpb24uZGlzYWJsZWQgPyAhIWFjdGlvbi5kaXNhYmxlZChjdHgpIDogZmFsc2U7XG4gIH1cblxuICBvbkFjdGlvbihhY3Rpb246IFRhYmxlQWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZChhY3Rpb24pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgaWYgKFxuICAgICAgdGhpcy5sYXN0QWN0aW9uRW1pdCAmJlxuICAgICAgdGhpcy5sYXN0QWN0aW9uRW1pdC5pZCA9PT0gYWN0aW9uLmlkICYmXG4gICAgICBub3cgLSB0aGlzLmxhc3RBY3Rpb25FbWl0LnRpbWUgPCBUYWJsZUFjdGlvblRvb2xiYXJDb21wb25lbnQuQUNUSU9OX0NPT0xET1dOX01TXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubGFzdEFjdGlvbkVtaXQgPSB7IGlkOiBhY3Rpb24uaWQsIHRpbWU6IG5vdyB9O1xuICAgIGNvbnN0IGNvbnRleHQgPSB7IGlkOiBhY3Rpb24uaWQsIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkSXRlbXMgfHwgW10gfTtcbiAgICBpZiAoYWN0aW9uLm9uQ2xpY2spIHtcbiAgICAgIGFjdGlvbi5vbkNsaWNrKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAoYWN0aW9uLmFjdGlvbikge1xuICAgICAgYWN0aW9uLmFjdGlvbihjb250ZXh0KTtcbiAgICB9XG4gICAgdGhpcy5hY3Rpb25DbGljay5lbWl0KGNvbnRleHQpO1xuICB9XG5cbiAgb25TZWxlY3RBbGxDaGFuZ2UoY2hlY2tlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0QWxsQ2hhbmdlLmVtaXQoY2hlY2tlZCk7XG4gIH1cblxuICBvbkRpc21pc3MoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNtaXNzLmVtaXQoKTtcbiAgfVxufVxuXG5cbiIsIjxkaXYgY2xhc3M9XCJjcWEtdWktcm9vdFwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJhY3Rpb24tdG9vbGJhciBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yIGNxYS1mbGV4LXdyYXAgY3FhLXB5LVsxNS41cHhdIHNtOmNxYS1weC1bMzRweF0gY3FhLXB4LVsyMHB4XSBjcWEtYmctcHJpbWFyeSBjcWEtdGV4dC13aGl0ZSBjcWEtcm91bmRlZC1bN3B4XSBjcWEtc2hhZG93LW1kXCJcbiAgICAqbmdJZj1cImhhc1NlbGVjdGlvblwiPlxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tdG9vbGJhci1sZWZ0IGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS10ZXh0LVsxNHB4XSBjcWEtbGVhZGluZy1bMjFweF0gY3FhLWZvbnQtbWVkaXVtXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1NlbGVjdEFsbFwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXNlbGVjdC1ub25lXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImFsbFNlbGVjdGVkXCIgKGNoYW5nZSk9XCJvblNlbGVjdEFsbENoYW5nZSgkYW55KCRldmVudC50YXJnZXQpLmNoZWNrZWQpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3FhLXctNCBjcWEtaC00IGNxYS1yb3VuZGVkIGNxYS1ib3JkZXIgY3FhLWJvcmRlci13aGl0ZSBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWFjY2VudC1wcmltYXJ5XCIgLz5cbiAgICAgICAgICA8c3Bhbj5TZWxlY3QgYWxsPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS1ib3JkZXItbCBjcWEtYm9yZGVyLXdoaXRlLzUwIGNxYS1wbC0yIGNxYS1ib3JkZXItc29saWQgY3FhLXNlbGYtc3RyZXRjaCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyXCI+e3sgc2VsZWN0aW9uTGFiZWwgfX08L3NwYW4+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiIXNob3dTZWxlY3RBbGxcIj57eyBzZWxlY3Rpb25MYWJlbCB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLXRvb2xiYXItcmlnaHQgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLVs3cHhdXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgdmlzaWJsZUFjdGlvbnMoKVwiPlxuICAgICAgICA8ZGl2IFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiaXNEaXNhYmxlZChhY3Rpb24pXCIgW2NsYXNzLmNxYS1vcGFjaXR5LTUwXT1cImlzRGlzYWJsZWQoYWN0aW9uKVwiIFtjbGFzcy5jcWEtY3Vyc29yLW5vdC1hbGxvd2VkXT1cImlzRGlzYWJsZWQoYWN0aW9uKVwiIChjbGljayk9XCIhaXNEaXNhYmxlZChhY3Rpb24pICYmIG9uQWN0aW9uKGFjdGlvbilcIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLVs4Ljc1cHhdIGNxYS1weS1bNXB4XSBjcWEtcHgtWzguNzVweF0gY3FhLWN1cnNvci1wb2ludGVyIGNxYS10ZXh0LVsxMi4zcHhdIGNxYS1sZWFkaW5nLVsxNy41cHhdIGNxYS1mb250LW1lZGl1bSBob3ZlcjpjcWEtYmctd2hpdGUvMTAgY3FhLXJvdW5kZWRcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCIhY3FhLXctWzE2cHhdICFjcWEtaC1bMTZweF0gIWNxYS10ZXh0LVsxNnB4XVwiPnt7IGFjdGlvbi5pY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1kOmNxYS1mbGV4IGNxYS1oaWRkZW5cIj57eyBhY3Rpb24ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8YnV0dG9uICpuZ0lmPVwic2hvd0Rpc21pc3NcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uRGlzbWlzcygpXCIgY2xhc3M9XCJjcWEtcC0xIGNxYS1yb3VuZGVkIGhvdmVyOmNxYS1iZy13aGl0ZS8xMCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiXG4gICAgICAgIHRpdGxlPVwiRGlzbWlzc1wiIGFyaWEtbGFiZWw9XCJEaXNtaXNzXCI+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiFjcWEtdy1bMjBweF0gIWNxYS1oLVsyMHB4XSAhY3FhLXRleHQtWzIwcHhdXCI+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19