cps-ui-kit 17.33.0 → 17.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -188,7 +188,7 @@ export class CpsButtonToggleComponent {
188
188
  // eslint-disable-next-line @typescript-eslint/no-empty-function
189
189
  setDisabledState(disabled) { }
190
190
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CpsButtonToggleComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: DOCUMENT }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
191
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: CpsButtonToggleComponent, isStandalone: true, selector: "cps-button-toggle", inputs: { label: "label", options: "options", multiple: "multiple", disabled: "disabled", mandatory: "mandatory", equalWidths: "equalWidths", optionTooltipPosition: "optionTooltipPosition", infoTooltip: "infoTooltip", infoTooltipClass: "infoTooltipClass", infoTooltipMaxWidth: "infoTooltipMaxWidth", infoTooltipPersistent: "infoTooltipPersistent", infoTooltipPosition: "infoTooltipPosition", _value: ["value", "_value"] }, outputs: { valueChanged: "valueChanged" }, providers: [CheckOptionSelectedPipe], ngImport: i0, template: "<div class=\"cps-btn-toggle\">\n <div class=\"cps-btn-toggle-label\" *ngIf=\"label\">\n <span>{{ label }}</span>\n <cps-info-circle\n *ngIf=\"infoTooltip\"\n class=\"cps-btn-toggle-label-info-circle\"\n size=\"xsmall\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipContentClass]=\"infoTooltipClass\"\n [tooltipMaxWidth]=\"infoTooltipMaxWidth\"\n [tooltipPersistent]=\"infoTooltipPersistent\"\n [tooltipText]=\"infoTooltip\">\n </cps-info-circle>\n </div>\n <div class=\"cps-btn-toggle-content\">\n <ng-container *ngFor=\"let option of options\">\n <ng-container\n *ngTemplateOutlet=\"\n optionContainerTemplate;\n context: {\n option: option,\n tooltip: option.tooltip\n }\n \"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #optionContainerTemplate let-option=\"option\" let-tooltip=\"tooltip\">\n <label\n class=\"cps-btn-toggle-content-option\"\n *ngIf=\"tooltip\"\n [cpsTooltip]=\"option.tooltip\"\n tooltipCloseDelay=\"0\"\n [tooltipPosition]=\"optionTooltipPosition\">\n <ng-container\n *ngTemplateOutlet=\"\n optionRadioTemplate;\n context: {\n option: option\n }\n \"></ng-container>\n </label>\n <label class=\"cps-btn-toggle-content-option\" *ngIf=\"!tooltip\">\n <ng-container\n *ngTemplateOutlet=\"\n optionRadioTemplate;\n context: {\n option: option\n }\n \"></ng-container>\n </label>\n</ng-template>\n\n<ng-template #optionRadioTemplate let-option=\"option\">\n <input\n class=\"cps-btn-toggle-content-option-input\"\n [type]=\"!multiple && mandatory ? 'radio' : 'checkbox'\"\n [disabled]=\"option.disabled || disabled\"\n [value]=\"option.value\"\n [checked]=\"\n option.value | checkOptionSelected : value : multiple : true : ''\n \"\n (change)=\"updateValueEvent($event, option.value)\" />\n <span\n class=\"cps-btn-toggle-content-option-content\"\n [ngStyle]=\"{\n 'min-width': largestButtonWidth ? largestButtonWidth + 'px' : 'none'\n }\">\n <cps-icon\n *ngIf=\"option.icon\"\n [ngClass]=\"{ 'me-2': !!option.label }\"\n [icon]=\"option.icon\">\n </cps-icon>\n <span *ngIf=\"option.label\">{{ option.label }}</span>\n </span>\n</ng-template>\n", styles: [":host .cps-btn-toggle-label{color:var(--cps-color-text-dark);margin-bottom:.5rem;align-items:center;display:inline-flex;font-weight:700;font-size:16px;font-family:Source Sans Pro,sans-serif;cursor:default}:host .cps-btn-toggle-label .cps-btn-toggle-label-info-circle{margin-left:8px}:host .cps-btn-toggle-label .cps-btn-toggle-label-info-circle ::ng-deep cps-icon i{width:14px;height:14px}:host .cps-btn-toggle-content{display:flex}:host .cps-btn-toggle-content-option-input{clip:rect(0 0 0 0);clip-path:inset(100%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}:host .cps-btn-toggle-content-option-input:checked+.cps-btn-toggle-content-option-content{background-color:var(--cps-color-calm);z-index:1;color:#fff}:host .cps-btn-toggle-content-option-input:checked+.cps-btn-toggle-content-option-content:hover{background-image:linear-gradient(#ffffff1a 0 0)}:host .cps-btn-toggle-content-option-input:disabled+.cps-btn-toggle-content-option-content{pointer-events:none;background-color:#f7f7f7;color:var(--cps-color-text-light)}:host .cps-btn-toggle-content-option-input:disabled:checked+.cps-btn-toggle-content-option-content{background-color:var(--cps-color-line-mid);color:var(--cps-color-text-mild)}:host .cps-btn-toggle-content-option-content{height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;background-color:#fff;padding:.375em .75em;position:relative;border:.0625em solid var(--cps-color-text-lightest);border-right:0;font-weight:400;font-size:16px;font-family:Source Sans Pro,sans-serif;letter-spacing:.05em;color:var(--cps-color-text-dark);text-align:center;transition:background-color .2s ease;-webkit-user-select:none;-ms-user-select:none;user-select:none}:host .cps-btn-toggle-content-option-content:hover{background:var(--cps-color-highlight-hover)}:host .cps-btn-toggle-content-option-content:active{background:var(--cps-color-highlight-active)}:host .cps-btn-toggle-content-option:first-child .cps-btn-toggle-content-option-content{border-radius:4px 0 0 4px}:host .cps-btn-toggle-content-option:last-child .cps-btn-toggle-content-option-content{border-radius:0 4px 4px 0;border-right:.0625em solid var(--cps-color-text-lightest)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: CheckOptionSelectedPipe, name: "checkOptionSelected" }, { kind: "component", type: CpsInfoCircleComponent, selector: "cps-info-circle", inputs: ["size", "tooltipText", "tooltipPosition", "tooltipContentClass", "tooltipMaxWidth", "tooltipPersistent"] }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "directive", type: CpsTooltipDirective, selector: "[cpsTooltip]", inputs: ["cpsTooltip", "tooltipOpenDelay", "tooltipCloseDelay", "tooltipOpenOn", "tooltipPosition", "tooltipPersistent", "tooltipDisabled", "tooltipMaxWidth", "tooltipContentClass"] }] }); }
191
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: CpsButtonToggleComponent, isStandalone: true, selector: "cps-button-toggle", inputs: { label: "label", options: "options", multiple: "multiple", disabled: "disabled", mandatory: "mandatory", equalWidths: "equalWidths", optionTooltipPosition: "optionTooltipPosition", infoTooltip: "infoTooltip", infoTooltipClass: "infoTooltipClass", infoTooltipMaxWidth: "infoTooltipMaxWidth", infoTooltipPersistent: "infoTooltipPersistent", infoTooltipPosition: "infoTooltipPosition", _value: ["value", "_value"] }, outputs: { valueChanged: "valueChanged" }, providers: [CheckOptionSelectedPipe], ngImport: i0, template: "<div class=\"cps-btn-toggle\">\n <div class=\"cps-btn-toggle-label\" *ngIf=\"label\">\n <span>{{ label }}</span>\n <cps-info-circle\n *ngIf=\"infoTooltip\"\n class=\"cps-btn-toggle-label-info-circle\"\n size=\"xsmall\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipContentClass]=\"infoTooltipClass\"\n [tooltipMaxWidth]=\"infoTooltipMaxWidth\"\n [tooltipPersistent]=\"infoTooltipPersistent\"\n [tooltipText]=\"infoTooltip\">\n </cps-info-circle>\n </div>\n <div class=\"cps-btn-toggle-content\">\n <ng-container *ngFor=\"let option of options\">\n <ng-container\n *ngTemplateOutlet=\"\n optionContainerTemplate;\n context: {\n option: option,\n tooltip: option.tooltip\n }\n \"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #optionContainerTemplate let-option=\"option\" let-tooltip=\"tooltip\">\n <label\n class=\"cps-btn-toggle-content-option\"\n *ngIf=\"tooltip\"\n [cpsTooltip]=\"option.tooltip\"\n tooltipCloseDelay=\"0\"\n [tooltipPosition]=\"optionTooltipPosition\">\n <ng-container\n *ngTemplateOutlet=\"\n optionRadioTemplate;\n context: {\n option: option\n }\n \"></ng-container>\n </label>\n <label class=\"cps-btn-toggle-content-option\" *ngIf=\"!tooltip\">\n <ng-container\n *ngTemplateOutlet=\"\n optionRadioTemplate;\n context: {\n option: option\n }\n \"></ng-container>\n </label>\n</ng-template>\n\n<ng-template #optionRadioTemplate let-option=\"option\">\n <input\n class=\"cps-btn-toggle-content-option-input\"\n [type]=\"!multiple && mandatory ? 'radio' : 'checkbox'\"\n [disabled]=\"option.disabled || disabled\"\n [value]=\"option.value\"\n [checked]=\"\n option.value | checkOptionSelected : value : multiple : true : ''\n \"\n (change)=\"updateValueEvent($event, option.value)\" />\n <span\n class=\"cps-btn-toggle-content-option-content\"\n [ngStyle]=\"{\n 'min-width': largestButtonWidth ? largestButtonWidth + 'px' : 'none'\n }\">\n <cps-icon\n *ngIf=\"option.icon\"\n [ngClass]=\"{ 'me-2': !!option.label }\"\n [icon]=\"option.icon\">\n </cps-icon>\n <span *ngIf=\"option.label\">{{ option.label }}</span>\n </span>\n</ng-template>\n", styles: [":host .cps-btn-toggle-label{color:var(--cps-color-text-dark);margin-bottom:.5rem;align-items:center;display:inline-flex;font-weight:700;font-size:16px;font-family:Source Sans Pro,sans-serif;cursor:default}:host .cps-btn-toggle-label .cps-btn-toggle-label-info-circle{margin-left:8px}:host .cps-btn-toggle-label .cps-btn-toggle-label-info-circle ::ng-deep cps-icon i{width:14px;height:14px}:host .cps-btn-toggle-content{display:flex}:host .cps-btn-toggle-content-option-input{clip:rect(0 0 0 0);clip-path:inset(100%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}:host .cps-btn-toggle-content-option-input:checked+.cps-btn-toggle-content-option-content{background-color:var(--cps-color-calm);z-index:1;color:#fff}:host .cps-btn-toggle-content-option-input:checked+.cps-btn-toggle-content-option-content:hover{background-image:linear-gradient(#ffffff1a 0 0)}:host .cps-btn-toggle-content-option-input:disabled+.cps-btn-toggle-content-option-content{pointer-events:none;background-color:#f7f7f7;color:var(--cps-color-text-light)}:host .cps-btn-toggle-content-option-input:disabled:checked+.cps-btn-toggle-content-option-content{background-color:var(--cps-color-line-mid);color:var(--cps-color-text-mild)}:host .cps-btn-toggle-content-option-content{height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;background-color:#fff;padding:.375em .75em;position:relative;border:.0625em solid var(--cps-color-text-lightest);border-right:0;font-weight:400;font-size:16px;font-family:Source Sans Pro,sans-serif;letter-spacing:.05em;color:var(--cps-color-text-dark);text-align:center;transition:background-color .2s ease;-webkit-user-select:none;-ms-user-select:none;user-select:none}:host .cps-btn-toggle-content-option-content:hover{background:var(--cps-color-highlight-hover)}:host .cps-btn-toggle-content-option-content:active{background:var(--cps-color-highlight-active)}:host .cps-btn-toggle-content-option:first-child .cps-btn-toggle-content-option-content{border-radius:4px 0 0 4px}:host .cps-btn-toggle-content-option:last-child .cps-btn-toggle-content-option-content{border-radius:0 4px 4px 0;border-right:.0625em solid var(--cps-color-text-lightest)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: CheckOptionSelectedPipe, name: "checkOptionSelected" }, { kind: "component", type: CpsInfoCircleComponent, selector: "cps-info-circle", inputs: ["size", "tooltipText", "tooltipPosition", "tooltipContentClass", "tooltipMaxWidth", "tooltipPersistent"] }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "directive", type: CpsTooltipDirective, selector: "[cpsTooltip]", inputs: ["cpsTooltip", "tooltipOpenDelay", "tooltipCloseDelay", "tooltipOpenOn", "tooltipPosition", "tooltipPersistent", "tooltipDisabled", "tooltipMaxWidth", "tooltipContentClass", "tooltipOffset"] }] }); }
192
192
  }
193
193
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CpsButtonToggleComponent, decorators: [{
194
194
  type: Component,
@@ -1,8 +1,9 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { Component, EventEmitter, Input, numberAttribute, Output, ViewChild } from '@angular/core';
3
3
  import { catchError, of, take } from 'rxjs';
4
4
  import { convertSize } from '../../utils/internal/size-utils';
5
5
  import { CpsIconComponent } from '../cps-icon/cps-icon.component';
6
+ import { CpsTooltipDirective } from '../../directives/cps-tooltip/cps-tooltip.directive';
6
7
  import { CpsProgressLinearComponent } from '../cps-progress-linear/cps-progress-linear.component';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "@angular/common";
@@ -37,6 +38,16 @@ export class CpsFileUploadComponent {
37
38
  * @group Props
38
39
  */
39
40
  this.fileProcessingCallback = undefined;
41
+ /**
42
+ * Position of file name tooltip, it can be 'top', 'bottom', 'left' or 'right'.
43
+ * @group Props
44
+ */
45
+ this.fileNameTooltipPosition = 'top';
46
+ /**
47
+ * File name tooltip offset for styling.
48
+ * @group Props
49
+ */
50
+ this.fileNameTooltipOffset = 12;
40
51
  /**
41
52
  * Callback to invoke when file is uploaded.
42
53
  * @param {File} File
@@ -116,6 +127,9 @@ export class CpsFileUploadComponent {
116
127
  const name = this.uploadedFile?.name ?? '';
117
128
  this.uploadedFile = undefined;
118
129
  this.uploadedFileRemoved.emit(name);
130
+ if (this.fileInput) {
131
+ this.fileInput.nativeElement.value = '';
132
+ }
119
133
  }
120
134
  _isFileExtensionValid(file) {
121
135
  if (!file)
@@ -129,11 +143,16 @@ export class CpsFileUploadComponent {
129
143
  return false;
130
144
  }
131
145
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CpsFileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
132
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.0", type: CpsFileUploadComponent, isStandalone: true, selector: "cps-file-upload", inputs: { extensions: "extensions", fileDesc: "fileDesc", width: "width", fileInfo: "fileInfo", fileProcessingCallback: "fileProcessingCallback" }, outputs: { fileUploaded: "fileUploaded", fileUploadFailed: "fileUploadFailed", uploadedFileRemoved: "uploadedFileRemoved" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"cps-file-upload\" [ngStyle]=\"{ width: cvtWidth }\">\n <div\n class=\"cps-file-upload-dropzone\"\n [ngClass]=\"{\n 'dragged-over': isDragoverFile,\n 'with-uploads': uploadedFile?.name\n }\"\n (dragend)=\"isDragoverFile = false\"\n (dragenter)=\"isDragoverFile = true\"\n (dragleave)=\"isDragoverFile = false\"\n (dragover)=\"isDragoverFile = true\"\n (mouseleave)=\"isDragoverFile = false\"\n (drop)=\"tryUploadFile($event)\">\n <input\n (change)=\"tryUploadFile($event)\"\n type=\"file\"\n [accept]=\"extensionsString\"\n title=\"\" />\n <cps-icon icon=\"export\" size=\"large\" color=\"text-darkest\"></cps-icon>\n <div class=\"cps-file-upload-dropzone-title\">\n Drag&Drop or choose a file to upload\n </div>\n <span\n class=\"cps-file-upload-dropzone-file-desc\"\n *ngIf=\"fileDesc || extensionsStringAsterisks\"\n >{{ fileDesc }}\n {{\n extensionsStringAsterisks ? '(' + extensionsStringAsterisks + ')' : ''\n }}</span\n >\n @if(fileInfo) {\n <div class=\"cps-file-upload-dropzone-content\">\n <cps-icon color=\"calm\" icon=\"info-circle\" size=\"xsmall\"></cps-icon>\n {{fileInfo}}\n </div>\n }\n <cps-progress-linear\n *ngIf=\"isProcessingFile && uploadedFile\"\n height=\"3\"\n radius=\"4\"\n opacity=\"0.3\"\n class=\"cps-file-upload-progress-bar\"\n bgColor=\"transparent\">\n </cps-progress-linear>\n </div>\n <div *ngIf=\"uploadedFile\" class=\"cps-file-upload-uploaded-files\">\n <div class=\"cps-file-upload-uploaded-file\">\n <div class=\"cps-file-upload-uploaded-file-title\">\n <cps-icon\n class=\"cps-file-upload-uploaded-file-status-icon\"\n [icon]=\"isProcessingFile ? 'pending' : 'toast-success'\"\n [color]=\"isProcessingFile ? 'warn' : 'success'\">\n </cps-icon>\n <div class=\"cps-file-upload-uploaded-file-name\">\n {{ uploadedFile.name }}\n </div>\n </div>\n <cps-icon\n *ngIf=\"!isProcessingFile\"\n class=\"cps-file-upload-uploaded-file-remove-icon\"\n icon=\"remove\"\n color=\"error\"\n (click)=\"removeUploadedFile()\">\n </cps-icon>\n </div>\n </div>\n</div>\n", styles: [":host{display:flex}:host .cps-file-upload .cps-file-upload-dropzone{font-family:Source Sans Pro,sans-serif;min-height:20px;padding:2rem;text-align:center;border:2px dashed var(--cps-color-calm);position:relative;border-radius:1rem}:host .cps-file-upload .cps-file-upload-dropzone:hover{background-color:var(--cps-color-highlight-hover)}:host .cps-file-upload .cps-file-upload-dropzone:active{background-color:var(--cps-color-highlight-selected)}:host .cps-file-upload .cps-file-upload-dropzone.dragged-over{background-color:var(--cps-color-highlight-selected)}:host .cps-file-upload .cps-file-upload-dropzone.with-uploads{border-bottom-right-radius:0;border-bottom-left-radius:0;border-bottom:1px dashed var(--cps-color-calm)}:host .cps-file-upload .cps-file-upload-dropzone input{cursor:pointer;opacity:0;position:absolute;width:100%;height:100%;top:0;left:0}:host .cps-file-upload .cps-file-upload-dropzone .cps-file-upload-dropzone-title{font-size:16px;margin:8px 0;color:var(--cps-color-calm);font-weight:600}:host .cps-file-upload .cps-file-upload-dropzone .cps-file-upload-dropzone-file-desc{font-size:18px;color:var(--cps-color-text-dark)}:host .cps-file-upload .cps-file-upload-dropzone .cps-file-upload-dropzone-content{margin-top:16px;font-size:1rem}:host .cps-file-upload .cps-file-upload-dropzone .cps-file-upload-progress-bar{position:absolute;bottom:-2px;left:0}:host .cps-file-upload .cps-file-upload-uploaded-files{border-bottom:2px dashed var(--cps-color-calm);border-left:2px dashed var(--cps-color-calm);border-right:2px dashed var(--cps-color-calm);border-bottom-right-radius:16px;border-bottom-left-radius:16px;background-color:var(--cps-color-highlight-hover)}:host .cps-file-upload .cps-file-upload-uploaded-files .cps-file-upload-uploaded-file{cursor:default;display:flex;align-items:center;justify-content:space-between;padding:8px 12px}:host .cps-file-upload .cps-file-upload-uploaded-files .cps-file-upload-uploaded-file .cps-file-upload-uploaded-file-title{display:flex;align-items:center}:host .cps-file-upload .cps-file-upload-uploaded-files .cps-file-upload-uploaded-file .cps-file-upload-uploaded-file-title .cps-file-upload-uploaded-file-name{color:var(--cps-color-text-darkest);font-size:20px;margin:0 8px}:host .cps-file-upload .cps-file-upload-uploaded-files .cps-file-upload-uploaded-file .cps-file-upload-uploaded-file-remove-icon{cursor:pointer}:host .cps-file-upload .cps-file-upload-uploaded-files .cps-file-upload-uploaded-file .cps-file-upload-uploaded-file-remove-icon:hover ::ng-deep .cps-icon{color:var(--cps-color-error-darken1)!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "component", type: CpsProgressLinearComponent, selector: "cps-progress-linear", inputs: ["width", "height", "color", "bgColor", "opacity", "radius"] }] }); }
146
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.0", type: CpsFileUploadComponent, isStandalone: true, selector: "cps-file-upload", inputs: { extensions: "extensions", fileDesc: "fileDesc", width: "width", fileInfo: "fileInfo", fileProcessingCallback: "fileProcessingCallback", fileNameTooltipPosition: "fileNameTooltipPosition", fileNameTooltipOffset: ["fileNameTooltipOffset", "fileNameTooltipOffset", numberAttribute] }, outputs: { fileUploaded: "fileUploaded", fileUploadFailed: "fileUploadFailed", uploadedFileRemoved: "uploadedFileRemoved" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"cps-file-upload\" [ngStyle]=\"{ width: cvtWidth }\">\n <div\n class=\"cps-file-upload-dropzone\"\n [ngClass]=\"{\n 'dragged-over': isDragoverFile,\n 'with-uploads': uploadedFile?.name\n }\"\n (dragend)=\"isDragoverFile = false\"\n (dragenter)=\"isDragoverFile = true\"\n (dragleave)=\"isDragoverFile = false\"\n (dragover)=\"isDragoverFile = true\"\n (mouseleave)=\"isDragoverFile = false\"\n (drop)=\"tryUploadFile($event)\">\n <input\n #fileInput\n (change)=\"tryUploadFile($event)\"\n type=\"file\"\n [accept]=\"extensionsString\"\n title=\"\" />\n <cps-icon icon=\"export\" size=\"large\" color=\"text-darkest\"></cps-icon>\n <div class=\"cps-file-upload-dropzone-title\">\n Drag&Drop or choose a file to upload\n </div>\n <span\n class=\"cps-file-upload-dropzone-file-desc\"\n *ngIf=\"fileDesc || extensionsStringAsterisks\"\n >{{ fileDesc }}\n {{\n extensionsStringAsterisks ? '(' + extensionsStringAsterisks + ')' : ''\n }}</span\n >\n @if(fileInfo) {\n <div class=\"cps-file-upload-dropzone-content\">\n <cps-icon color=\"calm\" icon=\"info-circle\" size=\"xsmall\"></cps-icon>\n {{fileInfo}}\n </div>\n }\n <cps-progress-linear\n *ngIf=\"isProcessingFile && uploadedFile\"\n height=\"3\"\n radius=\"4\"\n opacity=\"0.3\"\n class=\"cps-file-upload-progress-bar\"\n bgColor=\"transparent\">\n </cps-progress-linear>\n </div>\n <div *ngIf=\"uploadedFile\" class=\"cps-file-upload-uploaded-files\">\n <div class=\"cps-file-upload-uploaded-file\">\n <div class=\"cps-file-upload-uploaded-file-title\">\n <cps-icon\n class=\"cps-file-upload-uploaded-file-status-icon\"\n [icon]=\"isProcessingFile ? 'pending' : 'toast-success'\"\n [color]=\"isProcessingFile ? 'warn' : 'success'\">\n </cps-icon>\n <div class=\"cps-file-upload-uploaded-file-name\"\n cpsTooltip=\"{{ uploadedFile.name }}\"\n [tooltipPosition]=\"fileNameTooltipPosition\"\n [tooltipOffset]=\"fileNameTooltipOffset\"\n tooltipOpenOn=\"hover\">\n {{ uploadedFile.name }}\n </div>\n </div>\n <cps-icon\n *ngIf=\"!isProcessingFile\"\n class=\"cps-file-upload-uploaded-file-remove-icon\"\n icon=\"remove\"\n color=\"error\"\n (click)=\"removeUploadedFile()\">\n </cps-icon>\n </div>\n </div>\n</div>\n", styles: [":host{display:flex}:host .cps-file-upload .cps-file-upload-dropzone{font-family:Source Sans Pro,sans-serif;min-height:20px;padding:2rem;text-align:center;border:2px dashed var(--cps-color-calm);position:relative;border-radius:1rem}:host .cps-file-upload .cps-file-upload-dropzone:hover{background-color:var(--cps-color-highlight-hover)}:host .cps-file-upload .cps-file-upload-dropzone:active{background-color:var(--cps-color-highlight-selected)}:host .cps-file-upload .cps-file-upload-dropzone.dragged-over{background-color:var(--cps-color-highlight-selected)}:host .cps-file-upload .cps-file-upload-dropzone.with-uploads{border-bottom-right-radius:0;border-bottom-left-radius:0;border-bottom:1px dashed var(--cps-color-calm)}:host .cps-file-upload .cps-file-upload-dropzone input{cursor:pointer;opacity:0;position:absolute;width:100%;height:100%;top:0;left:0}:host .cps-file-upload .cps-file-upload-dropzone .cps-file-upload-dropzone-title{font-size:16px;margin:8px 0;color:var(--cps-color-calm);font-weight:600}:host .cps-file-upload .cps-file-upload-dropzone .cps-file-upload-dropzone-file-desc{font-size:18px;color:var(--cps-color-text-dark)}:host .cps-file-upload .cps-file-upload-dropzone .cps-file-upload-dropzone-content{margin-top:16px;font-size:1rem}:host .cps-file-upload .cps-file-upload-dropzone .cps-file-upload-progress-bar{position:absolute;bottom:-2px;left:0}:host .cps-file-upload .cps-file-upload-uploaded-files{border-bottom:2px dashed var(--cps-color-calm);border-left:2px dashed var(--cps-color-calm);border-right:2px dashed var(--cps-color-calm);border-bottom-right-radius:16px;border-bottom-left-radius:16px;background-color:var(--cps-color-highlight-hover)}:host .cps-file-upload .cps-file-upload-uploaded-files .cps-file-upload-uploaded-file{cursor:default;display:flex;align-items:center;justify-content:space-between;padding:8px 12px}:host .cps-file-upload .cps-file-upload-uploaded-files .cps-file-upload-uploaded-file .cps-file-upload-uploaded-file-title{display:flex;align-items:center;flex:1;min-width:0}:host .cps-file-upload .cps-file-upload-uploaded-files .cps-file-upload-uploaded-file .cps-file-upload-uploaded-file-title .cps-file-upload-uploaded-file-name{color:var(--cps-color-text-darkest);font-size:20px;margin:0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 60px)}:host .cps-file-upload .cps-file-upload-uploaded-files .cps-file-upload-uploaded-file .cps-file-upload-uploaded-file-remove-icon{cursor:pointer;flex-shrink:0;margin-left:8px}:host .cps-file-upload .cps-file-upload-uploaded-files .cps-file-upload-uploaded-file .cps-file-upload-uploaded-file-remove-icon:hover ::ng-deep .cps-icon{color:var(--cps-color-error-darken1)!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "component", type: CpsProgressLinearComponent, selector: "cps-progress-linear", inputs: ["width", "height", "color", "bgColor", "opacity", "radius"] }, { kind: "directive", type: CpsTooltipDirective, selector: "[cpsTooltip]", inputs: ["cpsTooltip", "tooltipOpenDelay", "tooltipCloseDelay", "tooltipOpenOn", "tooltipPosition", "tooltipPersistent", "tooltipDisabled", "tooltipMaxWidth", "tooltipContentClass", "tooltipOffset"] }] }); }
133
147
  }
134
148
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CpsFileUploadComponent, decorators: [{
135
149
  type: Component,
136
- args: [{ selector: 'cps-file-upload', standalone: true, imports: [CommonModule, CpsIconComponent, CpsProgressLinearComponent], template: "<div class=\"cps-file-upload\" [ngStyle]=\"{ width: cvtWidth }\">\n <div\n class=\"cps-file-upload-dropzone\"\n [ngClass]=\"{\n 'dragged-over': isDragoverFile,\n 'with-uploads': uploadedFile?.name\n }\"\n (dragend)=\"isDragoverFile = false\"\n (dragenter)=\"isDragoverFile = true\"\n (dragleave)=\"isDragoverFile = false\"\n (dragover)=\"isDragoverFile = true\"\n (mouseleave)=\"isDragoverFile = false\"\n (drop)=\"tryUploadFile($event)\">\n <input\n (change)=\"tryUploadFile($event)\"\n type=\"file\"\n [accept]=\"extensionsString\"\n title=\"\" />\n <cps-icon icon=\"export\" size=\"large\" color=\"text-darkest\"></cps-icon>\n <div class=\"cps-file-upload-dropzone-title\">\n Drag&Drop or choose a file to upload\n </div>\n <span\n class=\"cps-file-upload-dropzone-file-desc\"\n *ngIf=\"fileDesc || extensionsStringAsterisks\"\n >{{ fileDesc }}\n {{\n extensionsStringAsterisks ? '(' + extensionsStringAsterisks + ')' : ''\n }}</span\n >\n @if(fileInfo) {\n <div class=\"cps-file-upload-dropzone-content\">\n <cps-icon color=\"calm\" icon=\"info-circle\" size=\"xsmall\"></cps-icon>\n {{fileInfo}}\n </div>\n }\n <cps-progress-linear\n *ngIf=\"isProcessingFile && uploadedFile\"\n height=\"3\"\n radius=\"4\"\n opacity=\"0.3\"\n class=\"cps-file-upload-progress-bar\"\n bgColor=\"transparent\">\n </cps-progress-linear>\n </div>\n <div *ngIf=\"uploadedFile\" class=\"cps-file-upload-uploaded-files\">\n <div class=\"cps-file-upload-uploaded-file\">\n <div class=\"cps-file-upload-uploaded-file-title\">\n <cps-icon\n class=\"cps-file-upload-uploaded-file-status-icon\"\n [icon]=\"isProcessingFile ? 'pending' : 'toast-success'\"\n [color]=\"isProcessingFile ? 'warn' : 'success'\">\n </cps-icon>\n <div class=\"cps-file-upload-uploaded-file-name\">\n {{ uploadedFile.name }}\n </div>\n </div>\n <cps-icon\n *ngIf=\"!isProcessingFile\"\n class=\"cps-file-upload-uploaded-file-remove-icon\"\n icon=\"remove\"\n color=\"error\"\n (click)=\"removeUploadedFile()\">\n </cps-icon>\n </div>\n </div>\n</div>\n", styles: [":host{display:flex}:host .cps-file-upload .cps-file-upload-dropzone{font-family:Source Sans Pro,sans-serif;min-height:20px;padding:2rem;text-align:center;border:2px dashed var(--cps-color-calm);position:relative;border-radius:1rem}:host .cps-file-upload .cps-file-upload-dropzone:hover{background-color:var(--cps-color-highlight-hover)}:host .cps-file-upload .cps-file-upload-dropzone:active{background-color:var(--cps-color-highlight-selected)}:host .cps-file-upload .cps-file-upload-dropzone.dragged-over{background-color:var(--cps-color-highlight-selected)}:host .cps-file-upload .cps-file-upload-dropzone.with-uploads{border-bottom-right-radius:0;border-bottom-left-radius:0;border-bottom:1px dashed var(--cps-color-calm)}:host .cps-file-upload .cps-file-upload-dropzone input{cursor:pointer;opacity:0;position:absolute;width:100%;height:100%;top:0;left:0}:host .cps-file-upload .cps-file-upload-dropzone .cps-file-upload-dropzone-title{font-size:16px;margin:8px 0;color:var(--cps-color-calm);font-weight:600}:host .cps-file-upload .cps-file-upload-dropzone .cps-file-upload-dropzone-file-desc{font-size:18px;color:var(--cps-color-text-dark)}:host .cps-file-upload .cps-file-upload-dropzone .cps-file-upload-dropzone-content{margin-top:16px;font-size:1rem}:host .cps-file-upload .cps-file-upload-dropzone .cps-file-upload-progress-bar{position:absolute;bottom:-2px;left:0}:host .cps-file-upload .cps-file-upload-uploaded-files{border-bottom:2px dashed var(--cps-color-calm);border-left:2px dashed var(--cps-color-calm);border-right:2px dashed var(--cps-color-calm);border-bottom-right-radius:16px;border-bottom-left-radius:16px;background-color:var(--cps-color-highlight-hover)}:host .cps-file-upload .cps-file-upload-uploaded-files .cps-file-upload-uploaded-file{cursor:default;display:flex;align-items:center;justify-content:space-between;padding:8px 12px}:host .cps-file-upload .cps-file-upload-uploaded-files .cps-file-upload-uploaded-file .cps-file-upload-uploaded-file-title{display:flex;align-items:center}:host .cps-file-upload .cps-file-upload-uploaded-files .cps-file-upload-uploaded-file .cps-file-upload-uploaded-file-title .cps-file-upload-uploaded-file-name{color:var(--cps-color-text-darkest);font-size:20px;margin:0 8px}:host .cps-file-upload .cps-file-upload-uploaded-files .cps-file-upload-uploaded-file .cps-file-upload-uploaded-file-remove-icon{cursor:pointer}:host .cps-file-upload .cps-file-upload-uploaded-files .cps-file-upload-uploaded-file .cps-file-upload-uploaded-file-remove-icon:hover ::ng-deep .cps-icon{color:var(--cps-color-error-darken1)!important}\n"] }]
150
+ args: [{ selector: 'cps-file-upload', standalone: true, imports: [
151
+ CommonModule,
152
+ CpsIconComponent,
153
+ CpsProgressLinearComponent,
154
+ CpsTooltipDirective
155
+ ], template: "<div class=\"cps-file-upload\" [ngStyle]=\"{ width: cvtWidth }\">\n <div\n class=\"cps-file-upload-dropzone\"\n [ngClass]=\"{\n 'dragged-over': isDragoverFile,\n 'with-uploads': uploadedFile?.name\n }\"\n (dragend)=\"isDragoverFile = false\"\n (dragenter)=\"isDragoverFile = true\"\n (dragleave)=\"isDragoverFile = false\"\n (dragover)=\"isDragoverFile = true\"\n (mouseleave)=\"isDragoverFile = false\"\n (drop)=\"tryUploadFile($event)\">\n <input\n #fileInput\n (change)=\"tryUploadFile($event)\"\n type=\"file\"\n [accept]=\"extensionsString\"\n title=\"\" />\n <cps-icon icon=\"export\" size=\"large\" color=\"text-darkest\"></cps-icon>\n <div class=\"cps-file-upload-dropzone-title\">\n Drag&Drop or choose a file to upload\n </div>\n <span\n class=\"cps-file-upload-dropzone-file-desc\"\n *ngIf=\"fileDesc || extensionsStringAsterisks\"\n >{{ fileDesc }}\n {{\n extensionsStringAsterisks ? '(' + extensionsStringAsterisks + ')' : ''\n }}</span\n >\n @if(fileInfo) {\n <div class=\"cps-file-upload-dropzone-content\">\n <cps-icon color=\"calm\" icon=\"info-circle\" size=\"xsmall\"></cps-icon>\n {{fileInfo}}\n </div>\n }\n <cps-progress-linear\n *ngIf=\"isProcessingFile && uploadedFile\"\n height=\"3\"\n radius=\"4\"\n opacity=\"0.3\"\n class=\"cps-file-upload-progress-bar\"\n bgColor=\"transparent\">\n </cps-progress-linear>\n </div>\n <div *ngIf=\"uploadedFile\" class=\"cps-file-upload-uploaded-files\">\n <div class=\"cps-file-upload-uploaded-file\">\n <div class=\"cps-file-upload-uploaded-file-title\">\n <cps-icon\n class=\"cps-file-upload-uploaded-file-status-icon\"\n [icon]=\"isProcessingFile ? 'pending' : 'toast-success'\"\n [color]=\"isProcessingFile ? 'warn' : 'success'\">\n </cps-icon>\n <div class=\"cps-file-upload-uploaded-file-name\"\n cpsTooltip=\"{{ uploadedFile.name }}\"\n [tooltipPosition]=\"fileNameTooltipPosition\"\n [tooltipOffset]=\"fileNameTooltipOffset\"\n tooltipOpenOn=\"hover\">\n {{ uploadedFile.name }}\n </div>\n </div>\n <cps-icon\n *ngIf=\"!isProcessingFile\"\n class=\"cps-file-upload-uploaded-file-remove-icon\"\n icon=\"remove\"\n color=\"error\"\n (click)=\"removeUploadedFile()\">\n </cps-icon>\n </div>\n </div>\n</div>\n", styles: [":host{display:flex}:host .cps-file-upload .cps-file-upload-dropzone{font-family:Source Sans Pro,sans-serif;min-height:20px;padding:2rem;text-align:center;border:2px dashed var(--cps-color-calm);position:relative;border-radius:1rem}:host .cps-file-upload .cps-file-upload-dropzone:hover{background-color:var(--cps-color-highlight-hover)}:host .cps-file-upload .cps-file-upload-dropzone:active{background-color:var(--cps-color-highlight-selected)}:host .cps-file-upload .cps-file-upload-dropzone.dragged-over{background-color:var(--cps-color-highlight-selected)}:host .cps-file-upload .cps-file-upload-dropzone.with-uploads{border-bottom-right-radius:0;border-bottom-left-radius:0;border-bottom:1px dashed var(--cps-color-calm)}:host .cps-file-upload .cps-file-upload-dropzone input{cursor:pointer;opacity:0;position:absolute;width:100%;height:100%;top:0;left:0}:host .cps-file-upload .cps-file-upload-dropzone .cps-file-upload-dropzone-title{font-size:16px;margin:8px 0;color:var(--cps-color-calm);font-weight:600}:host .cps-file-upload .cps-file-upload-dropzone .cps-file-upload-dropzone-file-desc{font-size:18px;color:var(--cps-color-text-dark)}:host .cps-file-upload .cps-file-upload-dropzone .cps-file-upload-dropzone-content{margin-top:16px;font-size:1rem}:host .cps-file-upload .cps-file-upload-dropzone .cps-file-upload-progress-bar{position:absolute;bottom:-2px;left:0}:host .cps-file-upload .cps-file-upload-uploaded-files{border-bottom:2px dashed var(--cps-color-calm);border-left:2px dashed var(--cps-color-calm);border-right:2px dashed var(--cps-color-calm);border-bottom-right-radius:16px;border-bottom-left-radius:16px;background-color:var(--cps-color-highlight-hover)}:host .cps-file-upload .cps-file-upload-uploaded-files .cps-file-upload-uploaded-file{cursor:default;display:flex;align-items:center;justify-content:space-between;padding:8px 12px}:host .cps-file-upload .cps-file-upload-uploaded-files .cps-file-upload-uploaded-file .cps-file-upload-uploaded-file-title{display:flex;align-items:center;flex:1;min-width:0}:host .cps-file-upload .cps-file-upload-uploaded-files .cps-file-upload-uploaded-file .cps-file-upload-uploaded-file-title .cps-file-upload-uploaded-file-name{color:var(--cps-color-text-darkest);font-size:20px;margin:0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 60px)}:host .cps-file-upload .cps-file-upload-uploaded-files .cps-file-upload-uploaded-file .cps-file-upload-uploaded-file-remove-icon{cursor:pointer;flex-shrink:0;margin-left:8px}:host .cps-file-upload .cps-file-upload-uploaded-files .cps-file-upload-uploaded-file .cps-file-upload-uploaded-file-remove-icon:hover ::ng-deep .cps-icon{color:var(--cps-color-error-darken1)!important}\n"] }]
137
156
  }], propDecorators: { extensions: [{
138
157
  type: Input
139
158
  }], fileDesc: [{
@@ -144,11 +163,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
144
163
  type: Input
145
164
  }], fileProcessingCallback: [{
146
165
  type: Input
166
+ }], fileNameTooltipPosition: [{
167
+ type: Input
168
+ }], fileNameTooltipOffset: [{
169
+ type: Input,
170
+ args: [{ transform: numberAttribute }]
147
171
  }], fileUploaded: [{
148
172
  type: Output
149
173
  }], fileUploadFailed: [{
150
174
  type: Output
151
175
  }], uploadedFileRemoved: [{
152
176
  type: Output
177
+ }], fileInput: [{
178
+ type: ViewChild,
179
+ args: ['fileInput']
153
180
  }] } });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy1maWxlLXVwbG9hZC9jcHMtZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLWZpbGUtdXBsb2FkL2Nwcy1maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOzs7QUFFbEc7OztHQUdHO0FBUUgsTUFBTSxPQUFPLHNCQUFzQjtJQVBuQztRQVFFOzs7V0FHRztRQUNNLGVBQVUsR0FBYSxFQUFFLENBQUM7UUFFbkM7OztXQUdHO1FBQ00sYUFBUSxHQUFHLFVBQVUsQ0FBQztRQUUvQjs7O1dBR0c7UUFDTSxVQUFLLEdBQW9CLE1BQU0sQ0FBQztRQUV6Qzs7O1dBR0c7UUFDTSxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBRS9COzs7V0FHRztRQUNNLDJCQUFzQixHQUM3QixTQUFTLENBQUM7UUFFWjs7OztXQUlHO1FBQ08saUJBQVksR0FBRyxJQUFJLFlBQVksRUFBUSxD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LENBQUM7OEJBUzVELFVBQVU7c0JBQWxCLEtBQUs7Z0JBTUcsUUFBUTtzQkFBaEIsS0FBSztnQkFNRyxLQUFLO3NCQUFiLEtBQUs7Z0JBTUcsUUFBUTtzQkFBaEIsS0FBSztnQkFNRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBUUksWUFBWTtzQkFBckIsTUFBTTtnQkFPRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBT0csbUJBQW1CO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIE9ic2VydmFibGUsIG9mLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjb252ZXJ0U2l6ZSB9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVybmFsL3NpemUtdXRpbHMnO1xuaW1wb3J0IHsgQ3BzSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Nwcy1pY29uL2Nwcy1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNQcm9ncmVzc0xpbmVhckNvbXBvbmVudCB9IGZyb20gJy4uL2Nwcy1wcm9ncmVzcy1saW5lYXIvY3BzLXByb2dyZXNzLWxpbmVhci5jb21wb25lbnQnO1xuXG4vKipcbiAqIENwc0ZpbGVVcGxvYWRDb21wb25lbnQgaXMgYW4gYWR2YW5jZWQgdXBsb2FkZXIgd2l0aCBkcmFnZHJvcCBzdXBwb3J0LlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3BzLWZpbGUtdXBsb2FkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQ3BzSWNvbkNvbXBvbmVudCwgQ3BzUHJvZ3Jlc3NMaW5lYXJDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vY3BzLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3BzLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3BzRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgLyoqXG4gICAqIEV4cGVjdGVkIGV4dGVuc2lvbnMgb2YgYSBmaWxlIHRvIGJlIHVwbG9hZGVkLiBFLmcuICdkb2Mgb3IgLmRvYycuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgZXh0ZW5zaW9uczogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogRXhwZWN0ZWQgZmlsZSBkZXNjcmlwdGlvbi4gRS5nLiAnV29yZCBkb2N1bWVudCcuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgZmlsZURlc2MgPSAnQW55IGZpbGUnO1xuXG4gIC8qKlxuICAgKiBXaWR0aCBvZiB0aGUgY29tcG9uZW50LCBhIG51bWJlciBkZW5vdGluZyBwaXhlbHMgb3IgYSBzdHJpbmcuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgd2lkdGg6IG51bWJlciB8IHN0cmluZyA9ICcxMDAlJztcblxuICAvKipcbiAgICogRXhwZWN0ZWQgZmlsZSBpbmZvIGJsb2NrLCBleHBsYWluaW5nIHNvbWUgZXh0cmEgc3R1ZmYgYWJvdXQgZmlsZS5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBmaWxlSW5mbzogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZvciB1cGxvYWRlZCBmaWxlIHByb2Nlc3NpbmcuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgZmlsZVByb2Nlc3NpbmdDYWxsYmFjaz86IChmaWxlOiBGaWxlKSA9PiBPYnNlcnZhYmxlPGJvb2xlYW4+ID1cbiAgICB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGZpbGUgaXMgdXBsb2FkZWQuXG4gICAqIEBwYXJhbSB7RmlsZX0gRmlsZVxuICAgKiBAZ3JvdXAgRW1pdHNcbiAgICovXG4gIEBPdXRwdXQoKSBmaWxlVXBsb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGU+KCk7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGZpbGUgdXBsb2FkIGZhaWxzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gLSBmaWxlIG5hbWVcbiAgICogQGdyb3VwIEVtaXRzXG4gICAqL1xuICBAT3V0cHV0KCkgZmlsZVVwbG9hZEZhaWxlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiB1cGxvYWRlZCBmaWxlIGlzIHJlbW92ZWQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSAtIGZpbGUgbmFtZVxuICAgKiBAZ3JvdXAgRW1pdHNcbiAgICovXG4gIEBPdXRwdXQoKSB1cGxvYWRlZEZpbGVSZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgaXNEcmFnb3ZlckZpbGUgPSBmYWxzZTtcbiAgdXBsb2FkZWRGaWxlPzogRmlsZTtcbiAgZXh0ZW5zaW9uc1N0cmluZyA9ICcnO1xuICBleHRlbnNpb25zU3RyaW5nQXN0ZXJpc2tzID0gJyc7XG4gIGN2dFdpZHRoID0gJyc7XG5cbiAgaXNQcm9jZXNzaW5nRmlsZSA9IGZhbHNlO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlRXh0ZW5zaW9uc1N0cmluZygpO1xuICAgIHRoaXMuY3Z0V2lkdGggPSBjb252ZXJ0U2l6ZSh0aGlzLndpZHRoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5leHRlbnNpb25zKSB7XG4gICAgICB0aGlzLnVwZGF0ZUV4dGVuc2lvbnNTdHJpbmcoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVFeHRlbnNpb25zU3RyaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuZXh0ZW5zaW9ucyA9IHRoaXMuZXh0ZW5zaW9ucy5tYXAoKGV4dCkgPT5cbiAgICAgIGV4dC5zdGFydHNXaXRoKCcuJykgPyBleHQgOiAnLicgKyBleHRcbiAgICApO1xuICAgIHRoaXMuZXh0ZW5zaW9uc1N0cmluZyA9IHRoaXMuZXh0ZW5zaW9ucy5qb2luKCcsICcpO1xuICAgIHRoaXMuZXh0ZW5zaW9uc1N0cmluZ0FzdGVyaXNrcyA9IHRoaXMuZXh0ZW5zaW9uc1xuICAgICAgLm1hcCgoZXh0KSA9PiAnKicgKyBleHQpXG4gICAgICAuam9pbignLCAnKTtcbiAgfVxuXG4gIHRyeVVwbG9hZEZpbGUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIHRoaXMuaXNEcmFnb3ZlckZpbGUgPSBmYWxzZTtcbiAgICBsZXQgZmlsZTogRmlsZSB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChldmVudC50eXBlID09PSAnZHJvcCcpIHtcbiAgICAgIGZpbGUgPSAoZXZlbnQgYXMgRHJhZ0V2ZW50KS5kYXRhVHJhbnNmZXI/LmZpbGVzLml0ZW0oMCkgPz8gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBmaWxlcyA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuZmlsZXM7XG4gICAgICBpZiAoIWZpbGVzIHx8IGZpbGVzLmxlbmd0aCA8IDEpIHJldHVybjtcbiAgICAgIGZpbGUgPSBmaWxlcy5pdGVtKDApID8/IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX2lzRmlsZUV4dGVuc2lvblZhbGlkKGZpbGUpKSB7XG4gICAgICB0aGlzLmZpbGVVcGxvYWRGYWlsZWQuZW1pdChmaWxlPy5uYW1lID8/ICcnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnVwbG9hZGVkRmlsZSA9IGZpbGU7XG4gICAgaWYgKHRoaXMudXBsb2FkZWRGaWxlKSB7XG4gICAgICB0aGlzLmZpbGVVcGxvYWRlZC5lbWl0KHRoaXMudXBsb2FkZWRGaWxlKTtcbiAgICAgIGlmICh0aGlzLmZpbGVQcm9jZXNzaW5nQ2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdGaWxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5maWxlUHJvY2Vzc2luZ0NhbGxiYWNrKHRoaXMudXBsb2FkZWRGaWxlKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXJlcykgdGhpcy5yZW1vdmVVcGxvYWRlZEZpbGUoKTtcbiAgICAgICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nRmlsZSA9IGZhbHNlO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlbW92ZVVwbG9hZGVkRmlsZSgpIHtcbiAgICBjb25zdCBuYW1lID0gdGhpcy51cGxvYWRlZEZpbGU/Lm5hbWUgPz8gJyc7XG4gICAgdGhpcy51cGxvYWRlZEZpbGUgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy51cGxvYWRlZEZpbGVSZW1vdmVkLmVtaXQobmFtZSk7XG4gIH1cblxuICBwcml2YXRlIF9pc0ZpbGVFeHRlbnNpb25WYWxpZChmaWxlPzogRmlsZSkge1xuICAgIGlmICghZmlsZSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgaWYgKHRoaXMuZXh0ZW5zaW9ucy5sZW5ndGggPCAxKSByZXR1cm4gdHJ1ZTtcblxuICAgIGZvciAoY29uc3QgZXh0IG9mIHRoaXMuZXh0ZW5zaW9ucykge1xuICAgICAgaWYgKGZpbGUubmFtZS5lbmRzV2l0aChleHQpKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjcHMtZmlsZS11cGxvYWRcIiBbbmdTdHlsZV09XCJ7IHdpZHRoOiBjdnRXaWR0aCB9XCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNwcy1maWxlLXVwbG9hZC1kcm9wem9uZVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2RyYWdnZWQtb3Zlcic6IGlzRHJhZ292ZXJGaWxlLFxuICAgICAgJ3dpdGgtdXBsb2Fkcyc6IHVwbG9hZGVkRmlsZT8ubmFtZVxuICAgIH1cIlxuICAgIChkcmFnZW5kKT1cImlzRHJhZ292ZXJGaWxlID0gZmFsc2VcIlxuICAgIChkcmFnZW50ZXIpPVwiaXNEcmFnb3ZlckZpbGUgPSB0cnVlXCJcbiAgICAoZHJhZ2xlYXZlKT1cImlzRHJhZ292ZXJGaWxlID0gZmFsc2VcIlxuICAgIChkcmFnb3Zlcik9XCJpc0RyYWdvdmVyRmlsZSA9IHRydWVcIlxuICAgIChtb3VzZWxlYXZlKT1cImlzRHJhZ292ZXJGaWxlID0gZmFsc2VcIlxuICAgIChkcm9wKT1cInRyeVVwbG9hZEZpbGUoJGV2ZW50KVwiPlxuICAgIDxpbnB1dFxuICAgICAgKGNoYW5nZSk9XCJ0cnlVcGxvYWRGaWxlKCRldmVudClcIlxuICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgW2FjY2VwdF09XCJleHRlbnNpb25zU3RyaW5nXCJcbiAgICAgIHRpdGxlPVwiXCIgLz5cbiAgICA8Y3BzLWljb24gaWNvbj1cImV4cG9ydFwiIHNpemU9XCJsYXJnZVwiIGNvbG9yPVwidGV4dC1kYXJrZXN0XCI+PC9jcHMtaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiY3BzLWZpbGUtdXBsb2FkLWRyb3B6b25lLXRpdGxlXCI+XG4gICAgICBEcmFnJkRyb3Agb3IgY2hvb3NlIGEgZmlsZSB0byB1cGxvYWRcbiAgICA8L2Rpdj5cbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJjcHMtZmlsZS11cGxvYWQtZHJvcHpvbmUtZmlsZS1kZXNjXCJcbiAgICAgICpuZ0lmPVwiZmlsZURlc2MgfHwgZXh0ZW5zaW9uc1N0cmluZ0FzdGVyaXNrc1wiXG4gICAgICA+e3sgZmlsZURlc2MgfX1cbiAgICAgIHt7XG4gICAgICAgIGV4dGVuc2lvbnNTdHJpbmdBc3Rlcmlza3MgPyAnKCcgKyBleHRlbnNpb25zU3RyaW5nQXN0ZXJpc2tzICsgJyknIDogJydcbiAgICAgIH19PC9zcGFuXG4gICAgPlxuICAgIEBpZihmaWxlSW5mbykge1xuICAgICAgPGRpdiBjbGFzcz1cImNwcy1maWxlLXVwbG9hZC1kcm9wem9uZS1jb250ZW50XCI+XG4gICAgICAgIDxjcHMtaWNvbiBjb2xvcj1cImNhbG1cIiBpY29uPVwiaW5mby1jaXJjbGVcIiBzaXplPVwieHNtYWxsXCI+PC9jcHMtaWNvbj5cbiAgICAgICAge3tmaWxlSW5mb319XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPGNwcy1wcm9ncmVzcy1saW5lYXJcbiAgICAgICpuZ0lmPVwiaXNQcm9jZXNzaW5nRmlsZSAmJiB1cGxvYWRlZEZpbGVcIlxuICAgICAgaGVpZ2h0PVwiM1wiXG4gICAgICByYWRpdXM9XCI0XCJcbiAgICAgIG9wYWNpdHk9XCIwLjNcIlxuICAgICAgY2xhc3M9XCJjcHMtZmlsZS11cGxvYWQtcHJvZ3Jlc3MtYmFyXCJcbiAgICAgIGJnQ29sb3I9XCJ0cmFuc3BhcmVudFwiPlxuICAgIDwvY3BzLXByb2dyZXNzLWxpbmVhcj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJ1cGxvYWRlZEZpbGVcIiBjbGFzcz1cImNwcy1maWxlLXVwbG9hZC11cGxvYWRlZC1maWxlc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjcHMtZmlsZS11cGxvYWQtdXBsb2FkZWQtZmlsZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNwcy1maWxlLXVwbG9hZC11cGxvYWRlZC1maWxlLXRpdGxlXCI+XG4gICAgICAgIDxjcHMtaWNvblxuICAgICAgICAgIGNsYXNzPVwiY3BzLWZpbGUtdXBsb2FkLXVwbG9hZGVkLWZpbGUtc3RhdHVzLWljb25cIlxuICAgICAgICAgIFtpY29uXT1cImlzUHJvY2Vzc2luZ0ZpbGUgPyAncGVuZGluZycgOiAndG9hc3Qtc3VjY2VzcydcIlxuICAgICAgICAgIFtjb2xvcl09XCJpc1Byb2Nlc3NpbmdGaWxlID8gJ3dhcm4nIDogJ3N1Y2Nlc3MnXCI+XG4gICAgICAgIDwvY3BzLWljb24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcHMtZmlsZS11cGxvYWQtdXBsb2FkZWQtZmlsZS1uYW1lXCI+XG4gICAgICAgICAge3sgdXBsb2FkZWRGaWxlLm5hbWUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxjcHMtaWNvblxuICAgICAgICAqbmdJZj1cIiFpc1Byb2Nlc3NpbmdGaWxlXCJcbiAgICAgICAgY2xhc3M9XCJjcHMtZmlsZS11cGxvYWQtdXBsb2FkZWQtZmlsZS1yZW1vdmUtaWNvblwiXG4gICAgICAgIGljb249XCJyZW1vdmVcIlxuICAgICAgICBjb2xvcj1cImVycm9yXCJcbiAgICAgICAgKGNsaWNrKT1cInJlbW92ZVVwbG9hZGVkRmlsZSgpXCI+XG4gICAgICA8L2Nwcy1pY29uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy1maWxlLXVwbG9hZC9jcHMtZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLWZpbGUtdXBsb2FkL2Nwcy1maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLGVBQWUsRUFHZixNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUNMLG1CQUFtQixFQUVwQixNQUFNLG9EQUFvRCxDQUFDO0FBQzVELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOzs7QUFFbEc7OztHQUdHO0FBYUgsTUFBTSxPQUFPLHNCQUFzQjtJQVpuQztRQWFFOzs7V0FHRztRQUNNLGVBQVUsR0FBYSxFQUFFLENBQUM7UUFFbkM7OztXQUdHO1FBQ00sYUFBUSxHQUFHLFVBQVUsQ0FBQztRQUUvQjs7O1dBR0c7UUFDTSxVQUFLLEdBQW9CLE1BQU0sQ0FBQztRQUV6Qzs7O1dBR0c7UUFDTSxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBRS9COzs7V0FHRztRQUNNLDJC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USxDQUFDLEdBQUcsQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztRQUMzQyxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQTVKVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixtVUEwQ2IsZUFBZSx1UkNoRnJDLDIrRUF3RUEsNHRGRDFDSSxZQUFZLHNUQUNaLGdCQUFnQix3RkFDaEIsMEJBQTBCLHNJQUMxQixtQkFBbUI7OzJGQUtWLHNCQUFzQjtrQkFabEMsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLDBCQUEwQjt3QkFDMUIsbUJBQW1CO3FCQUNwQjs4QkFTUSxVQUFVO3NCQUFsQixLQUFLO2dCQU1HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTUcsS0FBSztzQkFBYixLQUFLO2dCQU1HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTUcsc0JBQXNCO3NCQUE5QixLQUFLO2dCQU9HLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFNaUMscUJBQXFCO3NCQUEzRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFPM0IsWUFBWTtzQkFBckIsTUFBTTtnQkFPRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBT0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUVpQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIE9ic2VydmFibGUsIG9mLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjb252ZXJ0U2l6ZSB9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVybmFsL3NpemUtdXRpbHMnO1xuaW1wb3J0IHsgQ3BzSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Nwcy1pY29uL2Nwcy1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBDcHNUb29sdGlwRGlyZWN0aXZlLFxuICBDcHNUb29sdGlwUG9zaXRpb25cbn0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9jcHMtdG9vbHRpcC9jcHMtdG9vbHRpcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ3BzUHJvZ3Jlc3NMaW5lYXJDb21wb25lbnQgfSBmcm9tICcuLi9jcHMtcHJvZ3Jlc3MtbGluZWFyL2Nwcy1wcm9ncmVzcy1saW5lYXIuY29tcG9uZW50JztcblxuLyoqXG4gKiBDcHNGaWxlVXBsb2FkQ29tcG9uZW50IGlzIGFuIGFkdmFuY2VkIHVwbG9hZGVyIHdpdGggZHJhZ2Ryb3Agc3VwcG9ydC5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nwcy1maWxlLXVwbG9hZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ3BzSWNvbkNvbXBvbmVudCxcbiAgICBDcHNQcm9ncmVzc0xpbmVhckNvbXBvbmVudCxcbiAgICBDcHNUb29sdGlwRGlyZWN0aXZlXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jcHMtZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jcHMtZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDcHNGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAvKipcbiAgICogRXhwZWN0ZWQgZXh0ZW5zaW9ucyBvZiBhIGZpbGUgdG8gYmUgdXBsb2FkZWQuIEUuZy4gJ2RvYyBvciAuZG9jJy5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBleHRlbnNpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBFeHBlY3RlZCBmaWxlIGRlc2NyaXB0aW9uLiBFLmcuICdXb3JkIGRvY3VtZW50Jy5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBmaWxlRGVzYyA9ICdBbnkgZmlsZSc7XG5cbiAgLyoqXG4gICAqIFdpZHRoIG9mIHRoZSBjb21wb25lbnQsIGEgbnVtYmVyIGRlbm90aW5nIHBpeGVscyBvciBhIHN0cmluZy5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSB3aWR0aDogbnVtYmVyIHwgc3RyaW5nID0gJzEwMCUnO1xuXG4gIC8qKlxuICAgKiBFeHBlY3RlZCBmaWxlIGluZm8gYmxvY2ssIGV4cGxhaW5pbmcgc29tZSBleHRyYSBzdHVmZiBhYm91dCBmaWxlLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGZpbGVJbmZvOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogQ2FsbGJhY2sgZm9yIHVwbG9hZGVkIGZpbGUgcHJvY2Vzc2luZy5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBmaWxlUHJvY2Vzc2luZ0NhbGxiYWNrPzogKGZpbGU6IEZpbGUpID0+IE9ic2VydmFibGU8Ym9vbGVhbj4gPVxuICAgIHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogUG9zaXRpb24gb2YgZmlsZSBuYW1lIHRvb2x0aXAsIGl0IGNhbiBiZSAndG9wJywgJ2JvdHRvbScsICdsZWZ0JyBvciAncmlnaHQnLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGZpbGVOYW1lVG9vbHRpcFBvc2l0aW9uOiBDcHNUb29sdGlwUG9zaXRpb24gPSAndG9wJztcblxuICAvKipcbiAgICogRmlsZSBuYW1lIHRvb2x0aXAgb2Zmc2V0IGZvciBzdHlsaW5nLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIGZpbGVOYW1lVG9vbHRpcE9mZnNldDogbnVtYmVyID0gMTI7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGZpbGUgaXMgdXBsb2FkZWQuXG4gICAqIEBwYXJhbSB7RmlsZX0gRmlsZVxuICAgKiBAZ3JvdXAgRW1pdHNcbiAgICovXG4gIEBPdXRwdXQoKSBmaWxlVXBsb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGU+KCk7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGZpbGUgdXBsb2FkIGZhaWxzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gLSBmaWxlIG5hbWVcbiAgICogQGdyb3VwIEVtaXRzXG4gICAqL1xuICBAT3V0cHV0KCkgZmlsZVVwbG9hZEZhaWxlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiB1cGxvYWRlZCBmaWxlIGlzIHJlbW92ZWQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSAtIGZpbGUgbmFtZVxuICAgKiBAZ3JvdXAgRW1pdHNcbiAgICovXG4gIEBPdXRwdXQoKSB1cGxvYWRlZEZpbGVSZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0PzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBpc0RyYWdvdmVyRmlsZSA9IGZhbHNlO1xuICB1cGxvYWRlZEZpbGU/OiBGaWxlO1xuICBleHRlbnNpb25zU3RyaW5nID0gJyc7XG4gIGV4dGVuc2lvbnNTdHJpbmdBc3Rlcmlza3MgPSAnJztcbiAgY3Z0V2lkdGggPSAnJztcblxuICBpc1Byb2Nlc3NpbmdGaWxlID0gZmFsc2U7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVFeHRlbnNpb25zU3RyaW5nKCk7XG4gICAgdGhpcy5jdnRXaWR0aCA9IGNvbnZlcnRTaXplKHRoaXMud2lkdGgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmV4dGVuc2lvbnMpIHtcbiAgICAgIHRoaXMudXBkYXRlRXh0ZW5zaW9uc1N0cmluZygpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUV4dGVuc2lvbnNTdHJpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5leHRlbnNpb25zID0gdGhpcy5leHRlbnNpb25zLm1hcCgoZXh0KSA9PlxuICAgICAgZXh0LnN0YXJ0c1dpdGgoJy4nKSA/IGV4dCA6ICcuJyArIGV4dFxuICAgICk7XG4gICAgdGhpcy5leHRlbnNpb25zU3RyaW5nID0gdGhpcy5leHRlbnNpb25zLmpvaW4oJywgJyk7XG4gICAgdGhpcy5leHRlbnNpb25zU3RyaW5nQXN0ZXJpc2tzID0gdGhpcy5leHRlbnNpb25zXG4gICAgICAubWFwKChleHQpID0+ICcqJyArIGV4dClcbiAgICAgIC5qb2luKCcsICcpO1xuICB9XG5cbiAgdHJ5VXBsb2FkRmlsZShldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy5pc0RyYWdvdmVyRmlsZSA9IGZhbHNlO1xuICAgIGxldCBmaWxlOiBGaWxlIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdkcm9wJykge1xuICAgICAgZmlsZSA9IChldmVudCBhcyBEcmFnRXZlbnQpLmRhdGFUcmFuc2Zlcj8uZmlsZXMuaXRlbSgwKSA/PyB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZpbGVzID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5maWxlcztcbiAgICAgIGlmICghZmlsZXMgfHwgZmlsZXMubGVuZ3RoIDwgMSkgcmV0dXJuO1xuICAgICAgZmlsZSA9IGZpbGVzLml0ZW0oMCkgPz8gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5faXNGaWxlRXh0ZW5zaW9uVmFsaWQoZmlsZSkpIHtcbiAgICAgIHRoaXMuZmlsZVVwbG9hZEZhaWxlZC5lbWl0KGZpbGU/Lm5hbWUgPz8gJycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudXBsb2FkZWRGaWxlID0gZmlsZTtcbiAgICBpZiAodGhpcy51cGxvYWRlZEZpbGUpIHtcbiAgICAgIHRoaXMuZmlsZVVwbG9hZGVkLmVtaXQodGhpcy51cGxvYWRlZEZpbGUpO1xuICAgICAgaWYgKHRoaXMuZmlsZVByb2Nlc3NpbmdDYWxsYmFjaykge1xuICAgICAgICB0aGlzLmlzUHJvY2Vzc2luZ0ZpbGUgPSB0cnVlO1xuICAgICAgICB0aGlzLmZpbGVQcm9jZXNzaW5nQ2FsbGJhY2sodGhpcy51cGxvYWRlZEZpbGUpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICAgIGlmICghcmVzKSB0aGlzLnJlbW92ZVVwbG9hZGVkRmlsZSgpO1xuICAgICAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdGaWxlID0gZmFsc2U7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlVXBsb2FkZWRGaWxlKCkge1xuICAgIGNvbnN0IG5hbWUgPSB0aGlzLnVwbG9hZGVkRmlsZT8ubmFtZSA/PyAnJztcbiAgICB0aGlzLnVwbG9hZGVkRmlsZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnVwbG9hZGVkRmlsZVJlbW92ZWQuZW1pdChuYW1lKTtcblxuICAgIGlmICh0aGlzLmZpbGVJbnB1dCkge1xuICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzRmlsZUV4dGVuc2lvblZhbGlkKGZpbGU/OiBGaWxlKSB7XG4gICAgaWYgKCFmaWxlKSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5leHRlbnNpb25zLmxlbmd0aCA8IDEpIHJldHVybiB0cnVlO1xuXG4gICAgZm9yIChjb25zdCBleHQgb2YgdGhpcy5leHRlbnNpb25zKSB7XG4gICAgICBpZiAoZmlsZS5uYW1lLmVuZHNXaXRoKGV4dCkpIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNwcy1maWxlLXVwbG9hZFwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGN2dFdpZHRoIH1cIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY3BzLWZpbGUtdXBsb2FkLWRyb3B6b25lXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnZHJhZ2dlZC1vdmVyJzogaXNEcmFnb3ZlckZpbGUsXG4gICAgICAnd2l0aC11cGxvYWRzJzogdXBsb2FkZWRGaWxlPy5uYW1lXG4gICAgfVwiXG4gICAgKGRyYWdlbmQpPVwiaXNEcmFnb3ZlckZpbGUgPSBmYWxzZVwiXG4gICAgKGRyYWdlbnRlcik9XCJpc0RyYWdvdmVyRmlsZSA9IHRydWVcIlxuICAgIChkcmFnbGVhdmUpPVwiaXNEcmFnb3ZlckZpbGUgPSBmYWxzZVwiXG4gICAgKGRyYWdvdmVyKT1cImlzRHJhZ292ZXJGaWxlID0gdHJ1ZVwiXG4gICAgKG1vdXNlbGVhdmUpPVwiaXNEcmFnb3ZlckZpbGUgPSBmYWxzZVwiXG4gICAgKGRyb3ApPVwidHJ5VXBsb2FkRmlsZSgkZXZlbnQpXCI+XG4gICAgPGlucHV0XG4gICAgICAjZmlsZUlucHV0XG4gICAgICAoY2hhbmdlKT1cInRyeVVwbG9hZEZpbGUoJGV2ZW50KVwiXG4gICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICBbYWNjZXB0XT1cImV4dGVuc2lvbnNTdHJpbmdcIlxuICAgICAgdGl0bGU9XCJcIiAvPlxuICAgIDxjcHMtaWNvbiBpY29uPVwiZXhwb3J0XCIgc2l6ZT1cImxhcmdlXCIgY29sb3I9XCJ0ZXh0LWRhcmtlc3RcIj48L2Nwcy1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJjcHMtZmlsZS11cGxvYWQtZHJvcHpvbmUtdGl0bGVcIj5cbiAgICAgIERyYWcmRHJvcCBvciBjaG9vc2UgYSBmaWxlIHRvIHVwbG9hZFxuICAgIDwvZGl2PlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cImNwcy1maWxlLXVwbG9hZC1kcm9wem9uZS1maWxlLWRlc2NcIlxuICAgICAgKm5nSWY9XCJmaWxlRGVzYyB8fCBleHRlbnNpb25zU3RyaW5nQXN0ZXJpc2tzXCJcbiAgICAgID57eyBmaWxlRGVzYyB9fVxuICAgICAge3tcbiAgICAgICAgZXh0ZW5zaW9uc1N0cmluZ0FzdGVyaXNrcyA/ICcoJyArIGV4dGVuc2lvbnNTdHJpbmdBc3Rlcmlza3MgKyAnKScgOiAnJ1xuICAgICAgfX08L3NwYW5cbiAgICA+XG4gICAgQGlmKGZpbGVJbmZvKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiY3BzLWZpbGUtdXBsb2FkLWRyb3B6b25lLWNvbnRlbnRcIj5cbiAgICAgICAgPGNwcy1pY29uIGNvbG9yPVwiY2FsbVwiIGljb249XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJ4c21hbGxcIj48L2Nwcy1pY29uPlxuICAgICAgICB7e2ZpbGVJbmZvfX1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICA8Y3BzLXByb2dyZXNzLWxpbmVhclxuICAgICAgKm5nSWY9XCJpc1Byb2Nlc3NpbmdGaWxlICYmIHVwbG9hZGVkRmlsZVwiXG4gICAgICBoZWlnaHQ9XCIzXCJcbiAgICAgIHJhZGl1cz1cIjRcIlxuICAgICAgb3BhY2l0eT1cIjAuM1wiXG4gICAgICBjbGFzcz1cImNwcy1maWxlLXVwbG9hZC1wcm9ncmVzcy1iYXJcIlxuICAgICAgYmdDb2xvcj1cInRyYW5zcGFyZW50XCI+XG4gICAgPC9jcHMtcHJvZ3Jlc3MtbGluZWFyPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInVwbG9hZGVkRmlsZVwiIGNsYXNzPVwiY3BzLWZpbGUtdXBsb2FkLXVwbG9hZGVkLWZpbGVzXCI+XG4gICAgPGRpdiBjbGFzcz1cImNwcy1maWxlLXVwbG9hZC11cGxvYWRlZC1maWxlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3BzLWZpbGUtdXBsb2FkLXVwbG9hZGVkLWZpbGUtdGl0bGVcIj5cbiAgICAgICAgPGNwcy1pY29uXG4gICAgICAgICAgY2xhc3M9XCJjcHMtZmlsZS11cGxvYWQtdXBsb2FkZWQtZmlsZS1zdGF0dXMtaWNvblwiXG4gICAgICAgICAgW2ljb25dPVwiaXNQcm9jZXNzaW5nRmlsZSA/ICdwZW5kaW5nJyA6ICd0b2FzdC1zdWNjZXNzJ1wiXG4gICAgICAgICAgW2NvbG9yXT1cImlzUHJvY2Vzc2luZ0ZpbGUgPyAnd2FybicgOiAnc3VjY2VzcydcIj5cbiAgICAgICAgPC9jcHMtaWNvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNwcy1maWxlLXVwbG9hZC11cGxvYWRlZC1maWxlLW5hbWVcIlxuICAgICAgICAgICAgIGNwc1Rvb2x0aXA9XCJ7eyB1cGxvYWRlZEZpbGUubmFtZSB9fVwiXG4gICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJmaWxlTmFtZVRvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgICAgICAgW3Rvb2x0aXBPZmZzZXRdPVwiZmlsZU5hbWVUb29sdGlwT2Zmc2V0XCJcbiAgICAgICAgICAgICB0b29sdGlwT3Blbk9uPVwiaG92ZXJcIj5cbiAgICAgICAgICB7eyB1cGxvYWRlZEZpbGUubmFtZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGNwcy1pY29uXG4gICAgICAgICpuZ0lmPVwiIWlzUHJvY2Vzc2luZ0ZpbGVcIlxuICAgICAgICBjbGFzcz1cImNwcy1maWxlLXVwbG9hZC11cGxvYWRlZC1maWxlLXJlbW92ZS1pY29uXCJcbiAgICAgICAgaWNvbj1cInJlbW92ZVwiXG4gICAgICAgIGNvbG9yPVwiZXJyb3JcIlxuICAgICAgICAoY2xpY2spPVwicmVtb3ZlVXBsb2FkZWRGaWxlKClcIj5cbiAgICAgIDwvY3BzLWljb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -40,7 +40,7 @@ export class CpsInfoCircleComponent {
40
40
  this.tooltipPersistent = false;
41
41
  }
42
42
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CpsInfoCircleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: CpsInfoCircleComponent, isStandalone: true, selector: "cps-info-circle", inputs: { size: "size", tooltipText: "tooltipText", tooltipPosition: "tooltipPosition", tooltipContentClass: "tooltipContentClass", tooltipMaxWidth: "tooltipMaxWidth", tooltipPersistent: "tooltipPersistent" }, ngImport: i0, template: "<cps-icon\n icon=\"info-circle\"\n [size]=\"size\"\n color=\"info\"\n [cpsTooltip]=\"tooltipText\"\n tooltipOpenDelay=\"0\"\n tooltipCloseDelay=\"100\"\n [tooltipPosition]=\"tooltipPosition\"\n [tooltipMaxWidth]=\"tooltipMaxWidth\"\n [tooltipPersistent]=\"tooltipPersistent\"\n [tooltipContentClass]=\"tooltipContentClass\">\n</cps-icon>\n", styles: [":host{display:inline-flex}\n"], dependencies: [{ kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "directive", type: CpsTooltipDirective, selector: "[cpsTooltip]", inputs: ["cpsTooltip", "tooltipOpenDelay", "tooltipCloseDelay", "tooltipOpenOn", "tooltipPosition", "tooltipPersistent", "tooltipDisabled", "tooltipMaxWidth", "tooltipContentClass"] }] }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: CpsInfoCircleComponent, isStandalone: true, selector: "cps-info-circle", inputs: { size: "size", tooltipText: "tooltipText", tooltipPosition: "tooltipPosition", tooltipContentClass: "tooltipContentClass", tooltipMaxWidth: "tooltipMaxWidth", tooltipPersistent: "tooltipPersistent" }, ngImport: i0, template: "<cps-icon\n icon=\"info-circle\"\n [size]=\"size\"\n color=\"info\"\n [cpsTooltip]=\"tooltipText\"\n tooltipOpenDelay=\"0\"\n tooltipCloseDelay=\"100\"\n [tooltipPosition]=\"tooltipPosition\"\n [tooltipMaxWidth]=\"tooltipMaxWidth\"\n [tooltipPersistent]=\"tooltipPersistent\"\n [tooltipContentClass]=\"tooltipContentClass\">\n</cps-icon>\n", styles: [":host{display:inline-flex}\n"], dependencies: [{ kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "directive", type: CpsTooltipDirective, selector: "[cpsTooltip]", inputs: ["cpsTooltip", "tooltipOpenDelay", "tooltipCloseDelay", "tooltipOpenOn", "tooltipPosition", "tooltipPersistent", "tooltipDisabled", "tooltipMaxWidth", "tooltipContentClass", "tooltipOffset"] }] }); }
44
44
  }
45
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CpsInfoCircleComponent, decorators: [{
46
46
  type: Component,
@@ -56,7 +56,7 @@ export class CpsRadioButtonComponent {
56
56
  this.focused.emit();
57
57
  }
58
58
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CpsRadioButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
59
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: CpsRadioButtonComponent, isStandalone: true, selector: "cps-radio-button", inputs: { option: "option", checked: "checked", groupDisabled: "groupDisabled" }, outputs: { updateValueEvent: "updateValueEvent", blurred: "blurred", focused: "focused" }, ngImport: i0, template: "<div\n *ngIf=\"option.tooltip\"\n class=\"cps-radio-group-content-button\"\n [cpsTooltip]=\"option.tooltip\"\n tooltipCloseDelay=\"0\"\n tooltipPosition=\"bottom\">\n <ng-container\n *ngTemplateOutlet=\"\n optionRadioTemplate;\n context: {\n option: option\n }\n \"></ng-container>\n</div>\n<div *ngIf=\"!option?.tooltip\" class=\"cps-radio-group-content-button\">\n <ng-container\n *ngTemplateOutlet=\"\n optionRadioTemplate;\n context: {\n option: option\n }\n \"></ng-container>\n</div>\n\n<ng-template #optionRadioTemplate let-option=\"option\">\n <input\n [id]=\"inputId\"\n type=\"radio\"\n [disabled]=\"option.disabled || groupDisabled\"\n [value]=\"option.value\"\n [checked]=\"checked\"\n (change)=\"updateValue($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\" />\n <div #contentRef class=\"content\">\n <ng-content></ng-content>\n </div>\n <label\n *ngIf=\"!contentRef.innerHTML.trim()\"\n [for]=\"inputId\"\n class=\"cps-radio-group-content-button-label\"\n [ngStyle]=\"{\n cursor: option.disabled || groupDisabled ? 'default' : 'pointer'\n }\"\n >{{ option.label }}\n </label>\n</ng-template>\n", styles: [":host .cps-radio-group-content-button{display:grid;grid-template-columns:1rem auto;align-items:center;gap:.75rem}:host .cps-radio-group-content-button-label{font-size:1rem;color:var(--cps-color-text-dark);font-style:normal;font-weight:400;line-height:1rem}:host .cps-radio-group-content-button input[type=radio]{-webkit-appearance:none;appearance:none;background-color:transparent;margin:0;cursor:pointer;font:inherit;color:var(--cps-color-text-mild);width:1.25rem;height:1.25rem;border:.15rem solid currentColor;border-radius:50%;display:grid;place-content:center}:host .cps-radio-group-content-button input[type=radio]:hover,:host .cps-radio-group-content-button input[type=radio]:checked{color:var(--cps-color-calm)}:host .cps-radio-group-content-button input[type=radio]:disabled{color:var(--cps-color-text-lightest);cursor:default}:host .cps-radio-group-content-button input[type=radio]:before{content:\"\";width:1.25rem;height:1.25rem;border-radius:50%;transform:scale(0);transition:.12s transform ease-in-out;box-shadow:inset 1rem 1rem var(--cps-color-calm);background-color:CanvasText}:host .cps-radio-group-content-button input[type=radio][disabled]:before{box-shadow:inset 1rem 1rem var(--cps-color-text-lightest)}:host .cps-radio-group-content-button input[type=radio]:disabled+.cps-radio-group-content-button-label{color:var(--cps-color-text-light)}:host .cps-radio-group-content-button input[type=radio]:checked:before{transform:scale(.5)}:host .cps-radio-group-content-button .cps-radio-group-content-button-label{-webkit-user-select:none;user-select:none}:host .cps-radio-group-content-button .content:empty{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: CpsTooltipDirective, selector: "[cpsTooltip]", inputs: ["cpsTooltip", "tooltipOpenDelay", "tooltipCloseDelay", "tooltipOpenOn", "tooltipPosition", "tooltipPersistent", "tooltipDisabled", "tooltipMaxWidth", "tooltipContentClass"] }] }); }
59
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: CpsRadioButtonComponent, isStandalone: true, selector: "cps-radio-button", inputs: { option: "option", checked: "checked", groupDisabled: "groupDisabled" }, outputs: { updateValueEvent: "updateValueEvent", blurred: "blurred", focused: "focused" }, ngImport: i0, template: "<div\n *ngIf=\"option.tooltip\"\n class=\"cps-radio-group-content-button\"\n [cpsTooltip]=\"option.tooltip\"\n tooltipCloseDelay=\"0\"\n tooltipPosition=\"bottom\">\n <ng-container\n *ngTemplateOutlet=\"\n optionRadioTemplate;\n context: {\n option: option\n }\n \"></ng-container>\n</div>\n<div *ngIf=\"!option?.tooltip\" class=\"cps-radio-group-content-button\">\n <ng-container\n *ngTemplateOutlet=\"\n optionRadioTemplate;\n context: {\n option: option\n }\n \"></ng-container>\n</div>\n\n<ng-template #optionRadioTemplate let-option=\"option\">\n <input\n [id]=\"inputId\"\n type=\"radio\"\n [disabled]=\"option.disabled || groupDisabled\"\n [value]=\"option.value\"\n [checked]=\"checked\"\n (change)=\"updateValue($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\" />\n <div #contentRef class=\"content\">\n <ng-content></ng-content>\n </div>\n <label\n *ngIf=\"!contentRef.innerHTML.trim()\"\n [for]=\"inputId\"\n class=\"cps-radio-group-content-button-label\"\n [ngStyle]=\"{\n cursor: option.disabled || groupDisabled ? 'default' : 'pointer'\n }\"\n >{{ option.label }}\n </label>\n</ng-template>\n", styles: [":host .cps-radio-group-content-button{display:grid;grid-template-columns:1rem auto;align-items:center;gap:.75rem}:host .cps-radio-group-content-button-label{font-size:1rem;color:var(--cps-color-text-dark);font-style:normal;font-weight:400;line-height:1rem}:host .cps-radio-group-content-button input[type=radio]{-webkit-appearance:none;appearance:none;background-color:transparent;margin:0;cursor:pointer;font:inherit;color:var(--cps-color-text-mild);width:1.25rem;height:1.25rem;border:.15rem solid currentColor;border-radius:50%;display:grid;place-content:center}:host .cps-radio-group-content-button input[type=radio]:hover,:host .cps-radio-group-content-button input[type=radio]:checked{color:var(--cps-color-calm)}:host .cps-radio-group-content-button input[type=radio]:disabled{color:var(--cps-color-text-lightest);cursor:default}:host .cps-radio-group-content-button input[type=radio]:before{content:\"\";width:1.25rem;height:1.25rem;border-radius:50%;transform:scale(0);transition:.12s transform ease-in-out;box-shadow:inset 1rem 1rem var(--cps-color-calm);background-color:CanvasText}:host .cps-radio-group-content-button input[type=radio][disabled]:before{box-shadow:inset 1rem 1rem var(--cps-color-text-lightest)}:host .cps-radio-group-content-button input[type=radio]:disabled+.cps-radio-group-content-button-label{color:var(--cps-color-text-light)}:host .cps-radio-group-content-button input[type=radio]:checked:before{transform:scale(.5)}:host .cps-radio-group-content-button .cps-radio-group-content-button-label{-webkit-user-select:none;user-select:none}:host .cps-radio-group-content-button .content:empty{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: CpsTooltipDirective, selector: "[cpsTooltip]", inputs: ["cpsTooltip", "tooltipOpenDelay", "tooltipCloseDelay", "tooltipOpenOn", "tooltipPosition", "tooltipPersistent", "tooltipDisabled", "tooltipMaxWidth", "tooltipContentClass", "tooltipOffset"] }] }); }
60
60
  }
61
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CpsRadioButtonComponent, decorators: [{
62
62
  type: Component,
@@ -205,7 +205,7 @@ export class CpsTabGroupComponent {
205
205
  return width;
206
206
  }
207
207
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CpsTabGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
208
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: CpsTabGroupComponent, isStandalone: true, selector: "cps-tab-group", inputs: { selectedIndex: "selectedIndex", isSubTabs: "isSubTabs", alignment: "alignment", contentWrapClass: "contentWrapClass", headerClass: "headerClass", stretched: "stretched", animationType: "animationType", navButtonsBackground: "navButtonsBackground", tabsBackground: "tabsBackground" }, outputs: { beforeTabChanged: "beforeTabChanged", afterTabChanged: "afterTabChanged" }, queries: [{ propertyName: "tabs", predicate: CpsTabComponent }], viewQueries: [{ propertyName: "tabsList", first: true, predicate: ["tabsList"], descendants: true }, { propertyName: "backBtn", first: true, predicate: ["backBtn"], descendants: true }, { propertyName: "forwardBtn", first: true, predicate: ["forwardBtn"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"cps-tabs\"\n [class]=\"headerClass\"\n [ngClass]=\"{\n 'cps-tabs-subtabs': isSubTabs,\n 'cps-tabs-center-aligned': alignment === 'center',\n 'cps-tabs-right-aligned': alignment === 'right',\n 'cps-tabs-stretched': stretched\n }\"\n [ngStyle]=\"{ 'background-color': tabsBackground }\">\n <div\n class=\"nav-btn nav-btn-back\"\n [ngStyle]=\"{ 'background-color': navButtonsBackground }\"\n *ngIf=\"!backBtnVisible\"\n #backBtn\n (click)=\"navBackward()\">\n <cps-icon icon=\"chevron-down\" color=\"text-dark\"></cps-icon>\n </div>\n <ul #tabsList class=\"cps-tabs-list\">\n <ng-container *ngFor=\"let tab of tabs; let tabIndex = index\">\n <li\n *ngIf=\"tab.tooltipText\"\n class=\"cps-tab\"\n (click)=\"!tab.disabled ? onTabClick(tabIndex) : ''\"\n [ngClass]=\"{ active: tab.active, disabled: tab.disabled }\"\n [cpsTooltip]=\"tab.tooltipText\"\n tooltipOpenDelay=\"1000\"\n tooltipCloseDelay=\"0\"\n tooltipPosition=\"bottom\"\n [tooltipMaxWidth]=\"tab.tooltipMaxWidth\"\n [tooltipPersistent]=\"tab.tooltipPersistent\"\n [tooltipContentClass]=\"tab.tooltipContentClass\">\n <ng-container\n *ngTemplateOutlet=\"\n tabHeaderTemplate;\n context: {\n tab: tab\n }\n \"></ng-container>\n </li>\n <li\n *ngIf=\"!tab.tooltipText\"\n class=\"cps-tab\"\n (click)=\"!tab.disabled ? onTabClick(tabIndex) : ''\"\n [ngClass]=\"{ active: tab.active, disabled: tab.disabled }\">\n <ng-container\n *ngTemplateOutlet=\"\n tabHeaderTemplate;\n context: {\n tab: tab\n }\n \"></ng-container>\n </li>\n </ng-container>\n </ul>\n <div\n class=\"nav-btn nav-btn-forward\"\n [ngStyle]=\"{ 'background-color': navButtonsBackground }\"\n *ngIf=\"!forwardBtnVisible\"\n #forwardBtn\n (click)=\"navForward()\">\n <cps-icon icon=\"chevron-down\" color=\"text-dark\"></cps-icon>\n </div>\n</div>\n<div\n class=\"cps-tab-content-wrap\"\n [class]=\"contentWrapClass\"\n [ngClass]=\"{\n 'cps-tab-content-wrap-subtabs': isSubTabs\n }\">\n <ng-container *ngFor=\"let tab of tabs\">\n <div class=\"cps-tab-content\" *ngIf=\"tab.active\">\n <div\n [@slideInOut]=\"animationState\"\n *ngIf=\"animationType === 'slide'\"\n class=\"cps-tab-content-inner\">\n <ng-container [ngTemplateOutlet]=\"tab.content\"></ng-container>\n </div>\n <div\n [@fadeInOut]=\"animationState\"\n *ngIf=\"animationType === 'fade'\"\n class=\"cps-tab-content-inner\">\n <ng-container [ngTemplateOutlet]=\"tab.content\"></ng-container>\n </div>\n </div>\n </ng-container>\n</div>\n\n<ng-template #tabHeaderTemplate let-tab=\"tab\">\n <cps-icon *ngIf=\"tab.icon\" class=\"cps-tab-icon\" [icon]=\"tab.icon\"> </cps-icon>\n <a class=\"cps-tab-link\">{{ tab.label }}</a>\n <ng-container *ngIf=\"tab.badgeValue\">\n <div\n *ngIf=\"tab.badgeTooltip\"\n class=\"cps-tab-badge\"\n [cpsTooltip]=\"tab.badgeTooltip\">\n <span>{{ tab.badgeValue }}</span>\n </div>\n <div *ngIf=\"!tab.badgeTooltip\" class=\"cps-tab-badge\">\n <span>{{ tab.badgeValue }}</span>\n </div>\n </ng-container>\n</ng-template>\n", styles: [":host{background-color:inherit;margin:0!important;display:flex;flex-direction:column;max-width:100%}:host .cps-tabs{display:flex;position:relative}:host .cps-tabs .nav-btn{display:flex;justify-content:center;align-items:center;width:32px;cursor:pointer;position:absolute;height:100%}:host .cps-tabs .nav-btn:hover ::ng-deep cps-icon .cps-icon{color:var(--cps-color-calm)!important}:host .cps-tabs .nav-btn-back{left:0;box-shadow:2px 0 2px -1px #0003}:host .cps-tabs .nav-btn-back cps-icon{transform:rotate(90deg)}:host .cps-tabs .nav-btn-forward{right:0;box-shadow:-2px 0 2px -1px #0003}:host .cps-tabs .nav-btn-forward cps-icon{transform:rotate(270deg)}:host .cps-tabs .cps-tabs-list{display:flex;list-style:none;padding:0;margin:0;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;overscroll-behavior:contain auto;-ms-overflow-style:none;scrollbar-width:none}:host .cps-tabs .cps-tabs-list .cps-tab{display:inline-flex;align-items:center;justify-content:center;min-width:150px;padding:0 24px;font-family:Source Sans Pro,sans-serif;font-style:normal;font-weight:500;font-size:15px;line-height:20px;color:var(--cps-color-text-dark);opacity:1;cursor:pointer;border-bottom:3px solid transparent;transition:border-bottom .2s}:host .cps-tabs .cps-tabs-list .cps-tab.active:not(.disabled){color:var(--cps-color-calm)}:host .cps-tabs .cps-tabs-list .cps-tab.disabled{cursor:default;color:var(--cps-color-text-light)}:host .cps-tabs .cps-tabs-list .cps-tab .cps-tab-link{text-decoration:none;padding:10px;color:inherit}:host .cps-tabs .cps-tabs-list .cps-tab .cps-tab-badge{min-width:20px;padding:0 3px;height:20px;border-radius:50%;background-color:var(--cps-color-surprise);color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center}:host .cps-tabs .cps-tabs-list::-webkit-scrollbar{display:none}:host .cps-tabs.cps-tabs-center-aligned{justify-content:center}:host .cps-tabs.cps-tabs-right-aligned{justify-content:flex-end}:host .cps-tabs.cps-tabs-stretched ul{flex-grow:1}:host .cps-tabs.cps-tabs-stretched ul li{flex-grow:1}:host .cps-tabs:not(.cps-tabs-subtabs){border-bottom:1px solid rgba(0,0,0,.12)}:host .cps-tabs:not(.cps-tabs-subtabs) .cps-tabs-list .cps-tab.active:not(.disabled){border-bottom:3px solid var(--cps-color-surprise)}:host .cps-tabs:not(.cps-tabs-subtabs) .cps-tabs-list .cps-tab.active.disabled{border-bottom:3px solid var(--cps-color-line-dark)}:host .cps-tabs:not(.cps-tabs-subtabs) .cps-tabs-list .cps-tab:hover:not(:active,.active,.disabled){border-bottom:3px solid var(--cps-color-line-light)}:host .cps-tabs:not(.cps-tabs-subtabs) .cps-tabs-list .cps-tab:active:not(.disabled,.active){border-bottom:3px solid var(--cps-color-line-mid)}:host .cps-tabs.cps-tabs-subtabs .cps-tabs-list .cps-tab{height:33px;background-color:#d7d7d759}:host .cps-tabs.cps-tabs-subtabs .cps-tabs-list .cps-tab.active{background-color:#fff}:host .cps-tabs.cps-tabs-subtabs .cps-tabs-list .cps-tab:hover:not(.disabled){color:var(--cps-color-calm)}:host .cps-tab-content-wrap{display:flex;position:relative;min-height:100px;font-family:Source Sans Pro,sans-serif;color:var(--cps-color-text-dark);flex:1;border-bottom:none;overflow:hidden}:host .cps-tab-content-wrap .cps-tab-content{display:block;position:relative;overflow-x:hidden;overflow-y:auto;flex-grow:1;flex-basis:100%;inset:0;outline:0}:host .cps-tab-content-wrap .cps-tab-content .cps-tab-content-inner{height:100%;overflow:auto}:host .cps-tab-content-wrap.cps-tab-content-wrap-subtabs{background-color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "directive", type: CpsTooltipDirective, selector: "[cpsTooltip]", inputs: ["cpsTooltip", "tooltipOpenDelay", "tooltipCloseDelay", "tooltipOpenOn", "tooltipPosition", "tooltipPersistent", "tooltipDisabled", "tooltipMaxWidth", "tooltipContentClass"] }], animations: [
208
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: CpsTabGroupComponent, isStandalone: true, selector: "cps-tab-group", inputs: { selectedIndex: "selectedIndex", isSubTabs: "isSubTabs", alignment: "alignment", contentWrapClass: "contentWrapClass", headerClass: "headerClass", stretched: "stretched", animationType: "animationType", navButtonsBackground: "navButtonsBackground", tabsBackground: "tabsBackground" }, outputs: { beforeTabChanged: "beforeTabChanged", afterTabChanged: "afterTabChanged" }, queries: [{ propertyName: "tabs", predicate: CpsTabComponent }], viewQueries: [{ propertyName: "tabsList", first: true, predicate: ["tabsList"], descendants: true }, { propertyName: "backBtn", first: true, predicate: ["backBtn"], descendants: true }, { propertyName: "forwardBtn", first: true, predicate: ["forwardBtn"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"cps-tabs\"\n [class]=\"headerClass\"\n [ngClass]=\"{\n 'cps-tabs-subtabs': isSubTabs,\n 'cps-tabs-center-aligned': alignment === 'center',\n 'cps-tabs-right-aligned': alignment === 'right',\n 'cps-tabs-stretched': stretched\n }\"\n [ngStyle]=\"{ 'background-color': tabsBackground }\">\n <div\n class=\"nav-btn nav-btn-back\"\n [ngStyle]=\"{ 'background-color': navButtonsBackground }\"\n *ngIf=\"!backBtnVisible\"\n #backBtn\n (click)=\"navBackward()\">\n <cps-icon icon=\"chevron-down\" color=\"text-dark\"></cps-icon>\n </div>\n <ul #tabsList class=\"cps-tabs-list\">\n <ng-container *ngFor=\"let tab of tabs; let tabIndex = index\">\n <li\n *ngIf=\"tab.tooltipText\"\n class=\"cps-tab\"\n (click)=\"!tab.disabled ? onTabClick(tabIndex) : ''\"\n [ngClass]=\"{ active: tab.active, disabled: tab.disabled }\"\n [cpsTooltip]=\"tab.tooltipText\"\n tooltipOpenDelay=\"1000\"\n tooltipCloseDelay=\"0\"\n tooltipPosition=\"bottom\"\n [tooltipMaxWidth]=\"tab.tooltipMaxWidth\"\n [tooltipPersistent]=\"tab.tooltipPersistent\"\n [tooltipContentClass]=\"tab.tooltipContentClass\">\n <ng-container\n *ngTemplateOutlet=\"\n tabHeaderTemplate;\n context: {\n tab: tab\n }\n \"></ng-container>\n </li>\n <li\n *ngIf=\"!tab.tooltipText\"\n class=\"cps-tab\"\n (click)=\"!tab.disabled ? onTabClick(tabIndex) : ''\"\n [ngClass]=\"{ active: tab.active, disabled: tab.disabled }\">\n <ng-container\n *ngTemplateOutlet=\"\n tabHeaderTemplate;\n context: {\n tab: tab\n }\n \"></ng-container>\n </li>\n </ng-container>\n </ul>\n <div\n class=\"nav-btn nav-btn-forward\"\n [ngStyle]=\"{ 'background-color': navButtonsBackground }\"\n *ngIf=\"!forwardBtnVisible\"\n #forwardBtn\n (click)=\"navForward()\">\n <cps-icon icon=\"chevron-down\" color=\"text-dark\"></cps-icon>\n </div>\n</div>\n<div\n class=\"cps-tab-content-wrap\"\n [class]=\"contentWrapClass\"\n [ngClass]=\"{\n 'cps-tab-content-wrap-subtabs': isSubTabs\n }\">\n <ng-container *ngFor=\"let tab of tabs\">\n <div class=\"cps-tab-content\" *ngIf=\"tab.active\">\n <div\n [@slideInOut]=\"animationState\"\n *ngIf=\"animationType === 'slide'\"\n class=\"cps-tab-content-inner\">\n <ng-container [ngTemplateOutlet]=\"tab.content\"></ng-container>\n </div>\n <div\n [@fadeInOut]=\"animationState\"\n *ngIf=\"animationType === 'fade'\"\n class=\"cps-tab-content-inner\">\n <ng-container [ngTemplateOutlet]=\"tab.content\"></ng-container>\n </div>\n </div>\n </ng-container>\n</div>\n\n<ng-template #tabHeaderTemplate let-tab=\"tab\">\n <cps-icon *ngIf=\"tab.icon\" class=\"cps-tab-icon\" [icon]=\"tab.icon\"> </cps-icon>\n <a class=\"cps-tab-link\">{{ tab.label }}</a>\n <ng-container *ngIf=\"tab.badgeValue\">\n <div\n *ngIf=\"tab.badgeTooltip\"\n class=\"cps-tab-badge\"\n [cpsTooltip]=\"tab.badgeTooltip\">\n <span>{{ tab.badgeValue }}</span>\n </div>\n <div *ngIf=\"!tab.badgeTooltip\" class=\"cps-tab-badge\">\n <span>{{ tab.badgeValue }}</span>\n </div>\n </ng-container>\n</ng-template>\n", styles: [":host{background-color:inherit;margin:0!important;display:flex;flex-direction:column;max-width:100%}:host .cps-tabs{display:flex;position:relative}:host .cps-tabs .nav-btn{display:flex;justify-content:center;align-items:center;width:32px;cursor:pointer;position:absolute;height:100%}:host .cps-tabs .nav-btn:hover ::ng-deep cps-icon .cps-icon{color:var(--cps-color-calm)!important}:host .cps-tabs .nav-btn-back{left:0;box-shadow:2px 0 2px -1px #0003}:host .cps-tabs .nav-btn-back cps-icon{transform:rotate(90deg)}:host .cps-tabs .nav-btn-forward{right:0;box-shadow:-2px 0 2px -1px #0003}:host .cps-tabs .nav-btn-forward cps-icon{transform:rotate(270deg)}:host .cps-tabs .cps-tabs-list{display:flex;list-style:none;padding:0;margin:0;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;overscroll-behavior:contain auto;-ms-overflow-style:none;scrollbar-width:none}:host .cps-tabs .cps-tabs-list .cps-tab{display:inline-flex;align-items:center;justify-content:center;min-width:150px;padding:0 24px;font-family:Source Sans Pro,sans-serif;font-style:normal;font-weight:500;font-size:15px;line-height:20px;color:var(--cps-color-text-dark);opacity:1;cursor:pointer;border-bottom:3px solid transparent;transition:border-bottom .2s}:host .cps-tabs .cps-tabs-list .cps-tab.active:not(.disabled){color:var(--cps-color-calm)}:host .cps-tabs .cps-tabs-list .cps-tab.disabled{cursor:default;color:var(--cps-color-text-light)}:host .cps-tabs .cps-tabs-list .cps-tab .cps-tab-link{text-decoration:none;padding:10px;color:inherit}:host .cps-tabs .cps-tabs-list .cps-tab .cps-tab-badge{min-width:20px;padding:0 3px;height:20px;border-radius:50%;background-color:var(--cps-color-surprise);color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center}:host .cps-tabs .cps-tabs-list::-webkit-scrollbar{display:none}:host .cps-tabs.cps-tabs-center-aligned{justify-content:center}:host .cps-tabs.cps-tabs-right-aligned{justify-content:flex-end}:host .cps-tabs.cps-tabs-stretched ul{flex-grow:1}:host .cps-tabs.cps-tabs-stretched ul li{flex-grow:1}:host .cps-tabs:not(.cps-tabs-subtabs){border-bottom:1px solid rgba(0,0,0,.12)}:host .cps-tabs:not(.cps-tabs-subtabs) .cps-tabs-list .cps-tab.active:not(.disabled){border-bottom:3px solid var(--cps-color-surprise)}:host .cps-tabs:not(.cps-tabs-subtabs) .cps-tabs-list .cps-tab.active.disabled{border-bottom:3px solid var(--cps-color-line-dark)}:host .cps-tabs:not(.cps-tabs-subtabs) .cps-tabs-list .cps-tab:hover:not(:active,.active,.disabled){border-bottom:3px solid var(--cps-color-line-light)}:host .cps-tabs:not(.cps-tabs-subtabs) .cps-tabs-list .cps-tab:active:not(.disabled,.active){border-bottom:3px solid var(--cps-color-line-mid)}:host .cps-tabs.cps-tabs-subtabs .cps-tabs-list .cps-tab{height:33px;background-color:#d7d7d759}:host .cps-tabs.cps-tabs-subtabs .cps-tabs-list .cps-tab.active{background-color:#fff}:host .cps-tabs.cps-tabs-subtabs .cps-tabs-list .cps-tab:hover:not(.disabled){color:var(--cps-color-calm)}:host .cps-tab-content-wrap{display:flex;position:relative;min-height:100px;font-family:Source Sans Pro,sans-serif;color:var(--cps-color-text-dark);flex:1;border-bottom:none;overflow:hidden}:host .cps-tab-content-wrap .cps-tab-content{display:block;position:relative;overflow-x:hidden;overflow-y:auto;flex-grow:1;flex-basis:100%;inset:0;outline:0}:host .cps-tab-content-wrap .cps-tab-content .cps-tab-content-inner{height:100%;overflow:auto}:host .cps-tab-content-wrap.cps-tab-content-wrap-subtabs{background-color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "directive", type: CpsTooltipDirective, selector: "[cpsTooltip]", inputs: ["cpsTooltip", "tooltipOpenDelay", "tooltipCloseDelay", "tooltipOpenOn", "tooltipPosition", "tooltipPersistent", "tooltipDisabled", "tooltipMaxWidth", "tooltipContentClass", "tooltipOffset"] }], animations: [
209
209
  trigger('slideInOut', [
210
210
  state('slideLeft', style({ transform: 'translateX(0)' })),
211
211
  state('slideRight', style({ transform: 'translateX(0)' })),
@@ -305,4 +305,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
305
305
  type: ContentChildren,
306
306
  args: [CpsTabComponent]
307
307
  }] } });
308
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRhYi1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtdGFiLWdyb3VwL2Nwcy10YWItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYi1ncm91cC9jcHMtdGFiLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNSLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBSUwsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBR04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUNMLFlBQVksRUFDWixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLFNBQVMsRUFDVixNQUFNLE1BQU0sQ0FBQzs7O0FBNkJkOzs7R0FHRztBQXdDSCxNQUFNLE9BQU8sb0JBQW9CO0lBRy9COzs7O09BSUc7SUFDSCxJQUFhLGFBQWEsQ0FBQyxLQUFhO1FBQ3RDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENB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O3NCQUFqQixLQUFLO2dCQU1HLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFNRyxXQUFXO3NCQUFuQixLQUFLO2dCQU1HLFNBQVM7c0JBQWpCLEtBQUs7Z0JBTUcsYUFBYTtzQkFBckIsS0FBSztnQkFNRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBTUcsY0FBYztzQkFBdEIsS0FBSztnQkFPSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBT0csZUFBZTtzQkFBeEIsTUFBTTtnQkFFZ0IsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUNDLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFDSyxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBRVcsSUFBSTtzQkFBckMsZUFBZTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgc3RhdGUsXG4gIHN0eWxlLFxuICB0cmFuc2l0aW9uLFxuICB0cmlnZ2VyXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENwc0ljb25Db21wb25lbnQgfSBmcm9tICcuLi9jcHMtaWNvbi9jcHMtaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BzVGFiQ29tcG9uZW50IH0gZnJvbSAnLi9jcHMtdGFiL2Nwcy10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IENwc1Rvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2Nwcy10b29sdGlwL2Nwcy10b29sdGlwLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBnZXRDU1NDb2xvciB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbG9ycy11dGlscyc7XG5pbXBvcnQge1xuICBTdWJzY3JpcHRpb24sXG4gIGRlYm91bmNlVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZyb21FdmVudFxufSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBDcHNUYWJDaGFuZ2VFdmVudCBpcyB1c2VkIHRvIGRlZmluZSB0aGUgdGFiIGNoYW5nZSBldmVudC5cbiAqIEBncm91cCBJbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcHNUYWJDaGFuZ2VFdmVudCB7XG4gIC8qKlxuICAgKiBJbmRleCBvZiB0aGUgcHJldmlvdXMgdGFiLlxuICAgKi9cbiAgcHJldmlvdXNJbmRleDogbnVtYmVyO1xuICAvKipcbiAgICogSW5kZXggb2YgdGhlIG5ldyB0YWIuXG4gICAqL1xuICBuZXdJbmRleDogbnVtYmVyO1xufVxuXG4vKipcbiAqIENwc1RhYnNBbmltYXRpb25UeXBlIGlzIHVzZWQgdG8gZGVmaW5lIHRoZSB0cmFuc2l0aW9uIG9wdGlvbnMgb2YgaG93IGNvbnRlbnQgYXBwZWFycy5cbiAqIEBncm91cCBUeXBlc1xuICovXG5leHBvcnQgdHlwZSBDcHNUYWJzQW5pbWF0aW9uVHlwZSA9ICdzbGlkZScgfCAnZmFkZSc7XG5cbi8qKlxuICogQ3BzVGFic0FsaWdubWVudFR5cGUgaXMgdXNlZCB0byBkZWZpbmUgdGhlIGhvcml6b250YWwgYWxpZ25tZW50IG9mIHRhYnMuXG4gKiBAZ3JvdXAgVHlwZXNcbiAqL1xuZXhwb3J0IHR5cGUgQ3BzVGFic0FsaWdubWVudFR5cGUgPSAnbGVmdCcgfCAnY2VudGVyJyB8ICdyaWdodCc7XG5cbi8qKlxuICogQ3BzVGFiR3JvdXBDb21wb25lbnQgaXMgYSBuYXZpZ2F0aW9uIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGl0ZW1zIGFzIHRhYiBoZWFkZXJzLlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ3BzSWNvbkNvbXBvbmVudCxcbiAgICBDcHNUYWJDb21wb25lbnQsXG4gICAgQ3BzVG9vbHRpcERpcmVjdGl2ZVxuICBdLFxuICBzZWxlY3RvcjogJ2Nwcy10YWItZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3BzLXRhYi1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nwcy10YWItZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ3NsaWRlSW5PdXQnLCBbXG4gICAgICBzdGF0ZSgnc2xpZGVMZWZ0Jywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyB9KSksXG4gICAgICBzdGF0ZSgnc2xpZGVSaWdodCcsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwKScgfSkpLFxuICAgICAgdHJhbnNpdGlvbignKiA9PiBzbGlkZUxlZnQnLCBbXG4gICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgtMTAwJSknIH0pLFxuICAgICAgICBhbmltYXRlKCcyMDBtcyBlYXNlLWluJylcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbignKiA9PiBzbGlkZVJpZ2h0JywgW1xuICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTAwJSknIH0pLFxuICAgICAgICBhbmltYXRlKCcyMDBtcyBlYXNlLWluJylcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiAqJywgYW5pbWF0ZSgwKSlcbiAgICBdKSxcbiAgICB0cmlnZ2VyKCdmYWRlSW5PdXQnLCBbXG4gICAgICBzdGF0ZSgnZmFkZUluJywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKSxcbiAgICAgIHN0YXRlKCdmYWRlT3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKSxcbiAgICAgIHRyYW5zaXRpb24oJ2ZhZGVPdXQgPT4gZmFkZUluJywgW1xuICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDAgfSksXG4gICAgICAgIGFuaW1hdGUoJzEwMG1zIGVhc2UtaW4nKVxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCdmYWRlSW4gPT4gZmFkZU91dCcsIFtcbiAgICAgICAgYW5pbWF0ZSgnMG1zIGVhc2Utb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKVxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IConLCBhbmltYXRlKDApKVxuICAgIF0pXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ3BzVGFiR3JvdXBDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gIC8qKlxuICAgKiBJbmRleCBvZiB0aGUgc2VsZWN0ZWQgdGFiLlxuICAgKiBAZGVmYXVsdCAwXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkSW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX3ByZXZpb3VzVGFiSW5kZXggPSB0aGlzLl9jdXJyZW50VGFiSW5kZXg7XG4gICAgdGhpcy5fY3VycmVudFRhYkluZGV4ID0gdmFsdWU7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50VGFiSW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGFwcGx5IGFuIGFsdGVybmF0aXZlICdzdWJ0YWJzJyBzdHlsaW5nLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGlzU3ViVGFicyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBIb3Jpem9udGFsIGFsaWdubWVudCBvZiB0YWJzLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGFsaWdubWVudDogQ3BzVGFic0FsaWdubWVudFR5cGUgPSAnbGVmdCc7XG5cbiAgLyoqXG4gICAqIENsYXNzIHRvIGFwcGx5IHRvIHRoZSB0YWIgY29udGVudCB3cmFwcGVyLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGNvbnRlbnRXcmFwQ2xhc3MgPSAnJztcblxuICAvKipcbiAgICogQ2xhc3MgdG8gYXBwbHkgdG8gdGhlIHRhYiBoZWFkZXIuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgaGVhZGVyQ2xhc3MgPSAnJztcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHN0cmV0Y2ggdGFicyB0byBmaWxsIHRoZSBhdmFpbGFibGUgaG9yaXpvbnRhbCBzcGFjZS5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBzdHJldGNoZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogVHJhbnNpdGlvbiBvcHRpb25zIG9mIGhvdyBjb250ZW50IGFwcGVhcnMsIGl0IGNhbiBiZSBcInNsaWRlXCIgb3IgXCJmYWRlXCIuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgYW5pbWF0aW9uVHlwZTogQ3BzVGFic0FuaW1hdGlvblR5cGUgPSAnc2xpZGUnO1xuXG4gIC8qKlxuICAgKiBCYWNrZ3JvdW5kIGNvbG9yIG9mIG5hdmlnYXRpb24gYnV0dG9ucy5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBuYXZCdXR0b25zQmFja2dyb3VuZCA9ICdpbmhlcml0JztcblxuICAvKipcbiAgICogQmFja2dyb3VuZCBjb2xvciBvZiB0YWJzLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIHRhYnNCYWNrZ3JvdW5kID0gJ2luaGVyaXQnO1xuXG4gIC8qKlxuICAgKiBDYWxsYmFjayB0byBpbnZva2UgYmVmb3JlIHRhYiBjaGFuZ2UuXG4gICAqIEBwYXJhbSB7Q3BzVGFiQ2hhbmdlRXZlbnR9IGFueSAtIHRhYiBjaGFuZ2UgZXZlbnQuXG4gICAqIEBncm91cCBFbWl0c1xuICAgKi9cbiAgQE91dHB1dCgpIGJlZm9yZVRhYkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENwc1RhYkNoYW5nZUV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBDYWxsYmFjayB0byBpbnZva2UgYWZ0ZXIgdGFiIGNoYW5nZS5cbiAgICogQHBhcmFtIHtDcHNUYWJDaGFuZ2VFdmVudH0gYW55IC0gdGFiIGNoYW5nZSBldmVudC5cbiAgICogQGdyb3VwIEVtaXRzXG4gICAqL1xuICBAT3V0cHV0KCkgYWZ0ZXJUYWJDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDcHNUYWJDaGFuZ2VFdmVudD4oKTtcblxuICBAVmlld0NoaWxkKCd0YWJzTGlzdCcpIHRhYnNMaXN0ITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnYmFja0J0bicpIGJhY2tCdG4/OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdmb3J3YXJkQnRuJykgZm9yd2FyZEJ0bj86IEVsZW1lbnRSZWY7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihDcHNUYWJDb21wb25lbnQpIHRhYnMhOiBRdWVyeUxpc3Q8Q3BzVGFiQ29tcG9uZW50PjtcblxuICBiYWNrQnRuVmlzaWJsZSA9IGZhbHNlO1xuICBmb3J3YXJkQnRuVmlzaWJsZSA9IGZhbHNlO1xuICBhbmltYXRpb25TdGF0ZTogJ3NsaWRlTGVmdCcgfCAnc2xpZGVSaWdodCcgfCAnZmFkZUluJyB8ICdmYWRlT3V0JyA9ICdmYWRlSW4nO1xuXG4gIHdpbmRvd1Jlc2l6ZSQ6IFN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcbiAgbGlzdFNjcm9sbCQ6IFN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICBwcml2YXRlIF9jdXJyZW50VGFiSW5kZXggPSAwO1xuICBwcml2YXRlIF9wcmV2aW91c1RhYkluZGV4ID0gMDtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1jb25zdHJ1Y3RvclxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudFxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50YWJzQmFja2dyb3VuZCA9IGdldENTU0NvbG9yKHRoaXMudGFic0JhY2tncm91bmQsIHRoaXMuZG9jdW1lbnQpO1xuICAgIHRoaXMubmF2QnV0dG9uc0JhY2tncm91bmQgPSBnZXRDU1NDb2xvcihcbiAgICAgIHRoaXMubmF2QnV0dG9uc0JhY2tncm91bmQsXG4gICAgICB0aGlzLmRvY3VtZW50XG4gICAgKTtcblxuICAgIHRoaXMud2luZG93UmVzaXplJCA9IGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKVxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vblJlc2l6ZSgpKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5zZWxlY3RlZEluZGV4ICYmICFjaGFuZ2VzLnNlbGVjdGVkSW5kZXguZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMuc2VsZWN0VGFiKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuc2VsZWN0VGFiKHRydWUpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuX3VwZGF0ZU5hdkJ0bnNTdGF0ZSgpO1xuXG4gICAgdGhpcy5saXN0U2Nyb2xsJCA9IGZyb21FdmVudCh0aGlzLnRhYnNMaXN0Lm5hdGl2ZUVsZW1lbnQsICdzY3JvbGwnKVxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHRoaXMub25TY3JvbGwoZXZlbnQpKTtcblxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy53aW5kb3dSZXNpemUkPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMubGlzdFNjcm9sbCQ/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRUYWIoKTogQ3BzVGFiQ29tcG9uZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy50YWJzLmZpbmQoKHQpID0+IHQuYWN0aXZlKTtcbiAgfVxuXG4gIG9uVGFiQ2xpY2soaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICAgIHRoaXMuc2VsZWN0VGFiKCk7XG4gIH1cblxuICBzZWxlY3RUYWIoc2lsZW50ID0gZmFsc2UpIHtcbiAgICBjb25zdCBfdGFicyA9IHRoaXMudGFicy50b0FycmF5KCk7XG4gICAgY29uc3QgY3VycmVudFNlbGVjdGVkVGFiID0gX3RhYnMgJiYgX3RhYnNbdGhpcy5fcHJldmlvdXNUYWJJbmRleF07XG5cbiAgICBjdXJyZW50U2VsZWN0ZWRUYWIgJiYgKGN1cnJlbnRTZWxlY3RlZFRhYi5hY3RpdmUgPSBmYWxzZSk7XG4gICAgY29uc3QgbmV3U2VsZWN0ZWRUYWIgPSBfdGFicyAmJiBfdGFic1t0aGlzLl9jdXJyZW50VGFiSW5kZXhdO1xuICAgIG5ld1NlbGVjdGVkVGFiICYmIChuZXdTZWxlY3RlZFRhYi5hY3RpdmUgPSB0cnVlKTtcbiAgICBpZiAodGhpcy5fY3VycmVudFRhYkluZGV4ID09PSB0aGlzLl9wcmV2aW91c1RhYkluZGV4KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFzaWxlbnQpIHtcbiAgICAgIHRoaXMuYmVmb3JlVGFiQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgcHJldmlvdXNJbmRleDogdGhpcy5fcHJldmlvdXNUYWJJbmRleCxcbiAgICAgICAgbmV3SW5kZXg6IHRoaXMuX2N1cnJlbnRUYWJJbmRleFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYW5pbWF0aW9uVHlwZSA9PT0gJ3NsaWRlJykge1xuICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZSA9XG4gICAgICAgIHRoaXMuX2N1cnJlbnRUYWJJbmRleCA8IHRoaXMuX3ByZXZpb3VzVGFiSW5kZXhcbiAgICAgICAgICA/ICdzbGlkZUxlZnQnXG4gICAgICAgICAgOiAnc2xpZGVSaWdodCc7XG5cbiAgICAgIGlmICghc2lsZW50KSB7XG4gICAgICAgIHRoaXMuYWZ0ZXJUYWJDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgIHByZXZpb3VzSW5kZXg6IHRoaXMuX3ByZXZpb3VzVGFiSW5kZXgsXG4gICAgICAgICAgbmV3SW5kZXg6IHRoaXMuX2N1cnJlbnRUYWJJbmRleFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuYW5pbWF0aW9uVHlwZSA9PT0gJ2ZhZGUnKSB7XG4gICAgICB0aGlzLmFuaW1hdGlvblN0YXRlID0gJ2ZhZGVPdXQnO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSAnZmFkZUluJztcbiAgICAgICAgaWYgKCFzaWxlbnQpIHtcbiAgICAgICAgICB0aGlzLmFmdGVyVGFiQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICAgIHByZXZpb3VzSW5kZXg6IHRoaXMuX3ByZXZpb3VzVGFiSW5kZXgsXG4gICAgICAgICAgICBuZXdJbmRleDogdGhpcy5fY3VycmVudFRhYkluZGV4XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sIDEwMCk7XG4gICAgfVxuICB9XG5cbiAgb25TY3JvbGwoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuX3VwZGF0ZU5hdkJ0bnNTdGF0ZSgpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBvblJlc2l6ZSgpIHtcbiAgICB0aGlzLl91cGRhdGVOYXZCdG5zU3RhdGUoKTtcbiAgfVxuXG4gIG5hdkJhY2t3YXJkKCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLnRhYnNMaXN0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLl9nZXRXaWR0aChjb250ZW50KSAtIHRoaXMuX2dldFZpc2libGVCdXR0b25XaWR0aHMoKTtcbiAgICBjb25zdCBwb3MgPSBjb250ZW50LnNjcm9sbExlZnQgLSB3aWR0aDtcbiAgICBjb250ZW50LnNjcm9sbExlZnQgPSBwb3MgPD0gMCA/IDAgOiBwb3M7XG4gIH1cblxuICBuYXZGb3J3YXJkKCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLnRhYnNMaXN0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLl9nZXRXaWR0aChjb250ZW50KSAtIHRoaXMuX2dldFZpc2libGVCdXR0b25XaWR0aHMoKTtcbiAgICBjb25zdCBwb3MgPSBjb250ZW50LnNjcm9sbExlZnQgKyB3aWR0aDtcbiAgICBjb25zdCBsYXN0UG9zID0gY29udGVudC5zY3JvbGxXaWR0aCAtIHdpZHRoO1xuICAgIGNvbnRlbnQuc2Nyb2xsTGVmdCA9IHBvcyA+PSBsYXN0UG9zID8gbGFzdFBvcyA6IHBvcztcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZU5hdkJ0bnNTdGF0ZSgpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy50YWJzTGlzdC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHsgc2Nyb2xsTGVmdCwgc2Nyb2xsV2lkdGggfSA9IGNvbnRlbnQ7XG5cbiAgICBjb25zdCB3aWR0aCA9IHRoaXMuX2dldFdpZHRoKGNvbnRlbnQpO1xuXG4gICAgdGhpcy5iYWNrQnRuVmlzaWJsZSA9IHNjcm9sbExlZnQgPT09IDA7XG4gICAgdGhpcy5mb3J3YXJkQnRuVmlzaWJsZSA9IE1hdGguYWJzKHNjcm9sbExlZnQgLSBzY3JvbGxXaWR0aCArIHdpZHRoKSA8IDI7XG4gIH1cblxuICBwcml2YXRlIF9nZXRWaXNpYmxlQnV0dG9uV2lkdGhzKCkge1xuICAgIHJldHVybiBbdGhpcy5iYWNrQnRuPy5uYXRpdmVFbGVtZW50LCB0aGlzLmZvcndhcmRCdG4/Lm5hdGl2ZUVsZW1lbnRdLnJlZHVjZShcbiAgICAgIChhY2MsIGVsKSA9PiAoZWwgPyBhY2MgKyB0aGlzLl9nZXRXaWR0aChlbCkgOiBhY2MpLFxuICAgICAgMFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRXaWR0aChlbDogYW55KTogbnVtYmVyIHtcbiAgICBsZXQgd2lkdGggPSBlbC5vZmZzZXRXaWR0aDtcbiAgICBpZiAoIXdpZHRoKSByZXR1cm4gd2lkdGg7XG5cbiAgICBjb25zdCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWwpO1xuXG4gICAgd2lkdGggLT1cbiAgICAgIHBhcnNlRmxvYXQoc3R5bGUucGFkZGluZ0xlZnQpICtcbiAgICAgIHBhcnNlRmxvYXQoc3R5bGUucGFkZGluZ1JpZ2h0KSArXG4gICAgICBwYXJzZUZsb2F0KHN0eWxlLmJvcmRlckxlZnRXaWR0aCkgK1xuICAgICAgcGFyc2VGbG9hdChzdHlsZS5ib3JkZXJSaWdodFdpZHRoKTtcblxuICAgIHJldHVybiB3aWR0aDtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImNwcy10YWJzXCJcbiAgW2NsYXNzXT1cImhlYWRlckNsYXNzXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdjcHMtdGFicy1zdWJ0YWJzJzogaXNTdWJUYWJzLFxuICAgICdjcHMtdGFicy1jZW50ZXItYWxpZ25lZCc6IGFsaWdubWVudCA9PT0gJ2NlbnRlcicsXG4gICAgJ2Nwcy10YWJzLXJpZ2h0LWFsaWduZWQnOiBhbGlnbm1lbnQgPT09ICdyaWdodCcsXG4gICAgJ2Nwcy10YWJzLXN0cmV0Y2hlZCc6IHN0cmV0Y2hlZFxuICB9XCJcbiAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IHRhYnNCYWNrZ3JvdW5kIH1cIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwibmF2LWJ0biBuYXYtYnRuLWJhY2tcIlxuICAgIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiBuYXZCdXR0b25zQmFja2dyb3VuZCB9XCJcbiAgICAqbmdJZj1cIiFiYWNrQnRuVmlzaWJsZVwiXG4gICAgI2JhY2tCdG5cbiAgICAoY2xpY2spPVwibmF2QmFja3dhcmQoKVwiPlxuICAgIDxjcHMtaWNvbiBpY29uPVwiY2hldnJvbi1kb3duXCIgY29sb3I9XCJ0ZXh0LWRhcmtcIj48L2Nwcy1pY29uPlxuICA8L2Rpdj5cbiAgPHVsICN0YWJzTGlzdCBjbGFzcz1cImNwcy10YWJzLWxpc3RcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiczsgbGV0IHRhYkluZGV4ID0gaW5kZXhcIj5cbiAgICAgIDxsaVxuICAgICAgICAqbmdJZj1cInRhYi50b29sdGlwVGV4dFwiXG4gICAgICAgIGNsYXNzPVwiY3BzLXRhYlwiXG4gICAgICAgIChjbGljayk9XCIhdGFiLmRpc2FibGVkID8gb25UYWJDbGljayh0YWJJbmRleCkgOiAnJ1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiB0YWIuYWN0aXZlLCBkaXNhYmxlZDogdGFiLmRpc2FibGVkIH1cIlxuICAgICAgICBbY3BzVG9vbHRpcF09XCJ0YWIudG9vbHRpcFRleHRcIlxuICAgICAgICB0b29sdGlwT3BlbkRlbGF5PVwiMTAwMFwiXG4gICAgICAgIHRvb2x0aXBDbG9zZURlbGF5PVwiMFwiXG4gICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICAgIFt0b29sdGlwTWF4V2lkdGhdPVwidGFiLnRvb2x0aXBNYXhXaWR0aFwiXG4gICAgICAgIFt0b29sdGlwUGVyc2lzdGVudF09XCJ0YWIudG9vbHRpcFBlcnNpc3RlbnRcIlxuICAgICAgICBbdG9vbHRpcENvbnRlbnRDbGFzc109XCJ0YWIudG9vbHRpcENvbnRlbnRDbGFzc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIHRhYkhlYWRlclRlbXBsYXRlO1xuICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICB0YWI6IHRhYlxuICAgICAgICAgICAgfVxuICAgICAgICAgIFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9saT5cbiAgICAgIDxsaVxuICAgICAgICAqbmdJZj1cIiF0YWIudG9vbHRpcFRleHRcIlxuICAgICAgICBjbGFzcz1cImNwcy10YWJcIlxuICAgICAgICAoY2xpY2spPVwiIXRhYi5kaXNhYmxlZCA/IG9uVGFiQ2xpY2sodGFiSW5kZXgpIDogJydcIlxuICAgICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogdGFiLmFjdGl2ZSwgZGlzYWJsZWQ6IHRhYi5kaXNhYmxlZCB9XCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgdGFiSGVhZGVyVGVtcGxhdGU7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgIHRhYjogdGFiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2xpPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3VsPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJuYXYtYnRuIG5hdi1idG4tZm9yd2FyZFwiXG4gICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IG5hdkJ1dHRvbnNCYWNrZ3JvdW5kIH1cIlxuICAgICpuZ0lmPVwiIWZvcndhcmRCdG5WaXNpYmxlXCJcbiAgICAjZm9yd2FyZEJ0blxuICAgIChjbGljayk9XCJuYXZGb3J3YXJkKClcIj5cbiAgICA8Y3BzLWljb24gaWNvbj1cImNoZXZyb24tZG93blwiIGNvbG9yPVwidGV4dC1kYXJrXCI+PC9jcHMtaWNvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXZcbiAgY2xhc3M9XCJjcHMtdGFiLWNvbnRlbnQtd3JhcFwiXG4gIFtjbGFzc109XCJjb250ZW50V3JhcENsYXNzXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdjcHMtdGFiLWNvbnRlbnQtd3JhcC1zdWJ0YWJzJzogaXNTdWJUYWJzXG4gIH1cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3BzLXRhYi1jb250ZW50XCIgKm5nSWY9XCJ0YWIuYWN0aXZlXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIFtAc2xpZGVJbk91dF09XCJhbmltYXRpb25TdGF0ZVwiXG4gICAgICAgICpuZ0lmPVwiYW5pbWF0aW9uVHlwZSA9PT0gJ3NsaWRlJ1wiXG4gICAgICAgIGNsYXNzPVwiY3BzLXRhYi1jb250ZW50LWlubmVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFiLmNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBbQGZhZGVJbk91dF09XCJhbmltYXRpb25TdGF0ZVwiXG4gICAgICAgICpuZ0lmPVwiYW5pbWF0aW9uVHlwZSA9PT0gJ2ZhZGUnXCJcbiAgICAgICAgY2xhc3M9XCJjcHMtdGFiLWNvbnRlbnQtaW5uZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWIuY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdGFiSGVhZGVyVGVtcGxhdGUgbGV0LXRhYj1cInRhYlwiPlxuICA8Y3BzLWljb24gKm5nSWY9XCJ0YWIuaWNvblwiIGNsYXNzPVwiY3BzLXRhYi1pY29uXCIgW2ljb25dPVwidGFiLmljb25cIj4gPC9jcHMtaWNvbj5cbiAgPGEgY2xhc3M9XCJjcHMtdGFiLWxpbmtcIj57eyB0YWIubGFiZWwgfX08L2E+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWIuYmFkZ2VWYWx1ZVwiPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwidGFiLmJhZGdlVG9vbHRpcFwiXG4gICAgICBjbGFzcz1cImNwcy10YWItYmFkZ2VcIlxuICAgICAgW2Nwc1Rvb2x0aXBdPVwidGFiLmJhZGdlVG9vbHRpcFwiPlxuICAgICAgPHNwYW4+e3sgdGFiLmJhZGdlVmFsdWUgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiF0YWIuYmFkZ2VUb29sdGlwXCIgY2xhc3M9XCJjcHMtdGFiLWJhZGdlXCI+XG4gICAgICA8c3Bhbj57eyB0YWIuYmFkZ2VWYWx1ZSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
308
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRhYi1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtdGFiLWdyb3VwL2Nwcy10YWItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYi1ncm91cC9jcHMtdGFiLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNSLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBSUwsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBR04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUNMLFlBQVksRUFDWixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLFNBQVMsRUFDVixNQUFNLE1BQU0sQ0FBQzs7O0FBNkJkOzs7R0FHRztBQXdDSCxNQUFNLE9BQU8sb0JBQW9CO0lBRy9COzs7O09BSUc7SUFDSCxJQUFhLGFBQWEsQ0FBQyxLQUFhO1FBQ3RDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENB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O3NCQUFqQixLQUFLO2dCQU1HLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFNRyxXQUFXO3NCQUFuQixLQUFLO2dCQU1HLFNBQVM7c0JBQWpCLEtBQUs7Z0JBTUcsYUFBYTtzQkFBckIsS0FBSztnQkFNRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBTUcsY0FBYztzQkFBdEIsS0FBSztnQkFPSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBT0csZUFBZTtzQkFBeEIsTUFBTTtnQkFFZ0IsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUNDLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFDSyxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBRVcsSUFBSTtzQkFBckMsZUFBZTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgc3RhdGUsXG4gIHN0eWxlLFxuICB0cmFuc2l0aW9uLFxuICB0cmlnZ2VyXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENwc0ljb25Db21wb25lbnQgfSBmcm9tICcuLi9jcHMtaWNvbi9jcHMtaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BzVGFiQ29tcG9uZW50IH0gZnJvbSAnLi9jcHMtdGFiL2Nwcy10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IENwc1Rvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2Nwcy10b29sdGlwL2Nwcy10b29sdGlwLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBnZXRDU1NDb2xvciB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbG9ycy11dGlscyc7XG5pbXBvcnQge1xuICBTdWJzY3JpcHRpb24sXG4gIGRlYm91bmNlVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZyb21FdmVudFxufSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBDcHNUYWJDaGFuZ2VFdmVudCBpcyB1c2VkIHRvIGRlZmluZSB0aGUgdGFiIGNoYW5nZSBldmVudC5cbiAqIEBncm91cCBJbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcHNUYWJDaGFuZ2VFdmVudCB7XG4gIC8qKlxuICAgKiBJbmRleCBvZiB0aGUgcHJldmlvdXMgdGFiLlxuICAgKi9cbiAgcHJldmlvdXNJbmRleDogbnVtYmVyO1xuICAvKipcbiAgICogSW5kZXggb2YgdGhlIG5ldyB0YWIuXG4gICAqL1xuICBuZXdJbmRleDogbnVtYmVyO1xufVxuXG4vKipcbiAqIENwc1RhYnNBbmltYXRpb25UeXBlIGlzIHVzZWQgdG8gZGVmaW5lIHRoZSB0cmFuc2l0aW9uIG9wdGlvbnMgb2YgaG93IGNvbnRlbnQgYXBwZWFycy5cbiAqIEBncm91cCBUeXBlc1xuICovXG5leHBvcnQgdHlwZSBDcHNUYWJzQW5pbWF0aW9uVHlwZSA9ICdzbGlkZScgfCAnZmFkZSc7XG5cbi8qKlxuICogQ3BzVGFic0FsaWdubWVudFR5cGUgaXMgdXNlZCB0byBkZWZpbmUgdGhlIGhvcml6b250YWwgYWxpZ25tZW50IG9mIHRhYnMuXG4gKiBAZ3JvdXAgVHlwZXNcbiAqL1xuZXhwb3J0IHR5cGUgQ3BzVGFic0FsaWdubWVudFR5cGUgPSAnbGVmdCcgfCAnY2VudGVyJyB8ICdyaWdodCc7XG5cbi8qKlxuICogQ3BzVGFiR3JvdXBDb21wb25lbnQgaXMgYSBuYXZpZ2F0aW9uIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGl0ZW1zIGFzIHRhYiBoZWFkZXJzLlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ3BzSWNvbkNvbXBvbmVudCxcbiAgICBDcHNUYWJDb21wb25lbnQsXG4gICAgQ3BzVG9vbHRpcERpcmVjdGl2ZVxuICBdLFxuICBzZWxlY3RvcjogJ2Nwcy10YWItZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3BzLXRhYi1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nwcy10YWItZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ3NsaWRlSW5PdXQnLCBbXG4gICAgICBzdGF0ZSgnc2xpZGVMZWZ0Jywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyB9KSksXG4gICAgICBzdGF0ZSgnc2xpZGVSaWdodCcsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwKScgfSkpLFxuICAgICAgdHJhbnNpdGlvbignKiA9PiBzbGlkZUxlZnQnLCBbXG4gICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgtMTAwJSknIH0pLFxuICAgICAgICBhbmltYXRlKCcyMDBtcyBlYXNlLWluJylcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbignKiA9PiBzbGlkZVJpZ2h0JywgW1xuICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTAwJSknIH0pLFxuICAgICAgICBhbmltYXRlKCcyMDBtcyBlYXNlLWluJylcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiAqJywgYW5pbWF0ZSgwKSlcbiAgICBdKSxcbiAgICB0cmlnZ2VyKCdmYWRlSW5PdXQnLCBbXG4gICAgICBzdGF0ZSgnZmFkZUluJywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKSxcbiAgICAgIHN0YXRlKCdmYWRlT3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKSxcbiAgICAgIHRyYW5zaXRpb24oJ2ZhZGVPdXQgPT4gZmFkZUluJywgW1xuICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDAgfSksXG4gICAgICAgIGFuaW1hdGUoJzEwMG1zIGVhc2UtaW4nKVxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCdmYWRlSW4gPT4gZmFkZU91dCcsIFtcbiAgICAgICAgYW5pbWF0ZSgnMG1zIGVhc2Utb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKVxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IConLCBhbmltYXRlKDApKVxuICAgIF0pXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ3BzVGFiR3JvdXBDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gIC8qKlxuICAgKiBJbmRleCBvZiB0aGUgc2VsZWN0ZWQgdGFiLlxuICAgKiBAZGVmYXVsdCAwXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkSW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX3ByZXZpb3VzVGFiSW5kZXggPSB0aGlzLl9jdXJyZW50VGFiSW5kZXg7XG4gICAgdGhpcy5fY3VycmVudFRhYkluZGV4ID0gdmFsdWU7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50VGFiSW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGFwcGx5IGFuIGFsdGVybmF0aXZlICdzdWJ0YWJzJyBzdHlsaW5nLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGlzU3ViVGFicyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBIb3Jpem9udGFsIGFsaWdubWVudCBvZiB0YWJzLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGFsaWdubWVudDogQ3BzVGFic0FsaWdubWVudFR5cGUgPSAnbGVmdCc7XG5cbiAgLyoqXG4gICAqIENsYXNzIHRvIGFwcGx5IHRvIHRoZSB0YWIgY29udGVudCB3cmFwcGVyLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGNvbnRlbnRXcmFwQ2xhc3MgPSAnJztcblxuICAvKipcbiAgICogQ2xhc3MgdG8gYXBwbHkgdG8gdGhlIHRhYiBoZWFkZXIuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgaGVhZGVyQ2xhc3MgPSAnJztcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHN0cmV0Y2ggdGFicyB0byBmaWxsIHRoZSBhdmFpbGFibGUgaG9yaXpvbnRhbCBzcGFjZS5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBzdHJldGNoZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogVHJhbnNpdGlvbiBvcHRpb25zIG9mIGhvdyBjb250ZW50IGFwcGVhcnMsIGl0IGNhbiBiZSBcInNsaWRlXCIgb3IgXCJmYWRlXCIuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgYW5pbWF0aW9uVHlwZTogQ3BzVGFic0FuaW1hdGlvblR5cGUgPSAnc2xpZGUnO1xuXG4gIC8qKlxuICAgKiBCYWNrZ3JvdW5kIGNvbG9yIG9mIG5hdmlnYXRpb24gYnV0dG9ucy5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBuYXZCdXR0b25zQmFja2dyb3VuZCA9ICdpbmhlcml0JztcblxuICAvKipcbiAgICogQmFja2dyb3VuZCBjb2xvciBvZiB0YWJzLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIHRhYnNCYWNrZ3JvdW5kID0gJ2luaGVyaXQnO1xuXG4gIC8qKlxuICAgKiBDYWxsYmFjayB0byBpbnZva2UgYmVmb3JlIHRhYiBjaGFuZ2UuXG4gICAqIEBwYXJhbSB7Q3BzVGFiQ2hhbmdlRXZlbnR9IGFueSAtIHRhYiBjaGFuZ2UgZXZlbnQuXG4gICAqIEBncm91cCBFbWl0c1xuICAgKi9cbiAgQE91dHB1dCgpIGJlZm9yZVRhYkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENwc1RhYkNoYW5nZUV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBDYWxsYmFjayB0byBpbnZva2UgYWZ0ZXIgdGFiIGNoYW5nZS5cbiAgICogQHBhcmFtIHtDcHNUYWJDaGFuZ2VFdmVudH0gYW55IC0gdGFiIGNoYW5nZSBldmVudC5cbiAgICogQGdyb3VwIEVtaXRzXG4gICAqL1xuICBAT3V0cHV0KCkgYWZ0ZXJUYWJDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDcHNUYWJDaGFuZ2VFdmVudD4oKTtcblxuICBAVmlld0NoaWxkKCd0YWJzTGlzdCcpIHRhYnNMaXN0ITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnYmFja0J0bicpIGJhY2tCdG4/OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdmb3J3YXJkQnRuJykgZm9yd2FyZEJ0bj86IEVsZW1lbnRSZWY7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihDcHNUYWJDb21wb25lbnQpIHRhYnMhOiBRdWVyeUxpc3Q8Q3BzVGFiQ29tcG9uZW50PjtcblxuICBiYWNrQnRuVmlzaWJsZSA9IGZhbHNlO1xuICBmb3J3YXJkQnRuVmlzaWJsZSA9IGZhbHNlO1xuICBhbmltYXRpb25TdGF0ZTogJ3NsaWRlTGVmdCcgfCAnc2xpZGVSaWdodCcgfCAnZmFkZUluJyB8ICdmYWRlT3V0JyA9ICdmYWRlSW4nO1xuXG4gIHdpbmRvd1Jlc2l6ZSQ6IFN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcbiAgbGlzdFNjcm9sbCQ6IFN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICBwcml2YXRlIF9jdXJyZW50VGFiSW5kZXggPSAwO1xuICBwcml2YXRlIF9wcmV2aW91c1RhYkluZGV4ID0gMDtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1jb25zdHJ1Y3RvclxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudFxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50YWJzQmFja2dyb3VuZCA9IGdldENTU0NvbG9yKHRoaXMudGFic0JhY2tncm91bmQsIHRoaXMuZG9jdW1lbnQpO1xuICAgIHRoaXMubmF2QnV0dG9uc0JhY2tncm91bmQgPSBnZXRDU1NDb2xvcihcbiAgICAgIHRoaXMubmF2QnV0dG9uc0JhY2tncm91bmQsXG4gICAgICB0aGlzLmRvY3VtZW50XG4gICAgKTtcblxuICAgIHRoaXMud2luZG93UmVzaXplJCA9IGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKVxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vblJlc2l6ZSgpKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5zZWxlY3RlZEluZGV4ICYmICFjaGFuZ2VzLnNlbGVjdGVkSW5kZXguZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMuc2VsZWN0VGFiKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuc2VsZWN0VGFiKHRydWUpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuX3VwZGF0ZU5hdkJ0bnNTdGF0ZSgpO1xuXG4gICAgdGhpcy5saXN0U2Nyb2xsJCA9IGZyb21FdmVudCh0aGlzLnRhYnNMaXN0Lm5hdGl2ZUVsZW1lbnQsICdzY3JvbGwnKVxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHRoaXMub25TY3JvbGwoZXZlbnQpKTtcblxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy53aW5kb3dSZXNpemUkPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMubGlzdFNjcm9sbCQ/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRUYWIoKTogQ3BzVGFiQ29tcG9uZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy50YWJzLmZpbmQoKHQpID0+IHQuYWN0aXZlKTtcbiAgfVxuXG4gIG9uVGFiQ2xpY2soaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICAgIHRoaXMuc2VsZWN0VGFiKCk7XG4gIH1cblxuICBzZWxlY3RUYWIoc2lsZW50ID0gZmFsc2UpIHtcbiAgICBjb25zdCBfdGFicyA9IHRoaXMudGFicy50b0FycmF5KCk7XG4gICAgY29uc3QgY3VycmVudFNlbGVjdGVkVGFiID0gX3RhYnMgJiYgX3RhYnNbdGhpcy5fcHJldmlvdXNUYWJJbmRleF07XG5cbiAgICBjdXJyZW50U2VsZWN0ZWRUYWIgJiYgKGN1cnJlbnRTZWxlY3RlZFRhYi5hY3RpdmUgPSBmYWxzZSk7XG4gICAgY29uc3QgbmV3U2VsZWN0ZWRUYWIgPSBfdGFicyAmJiBfdGFic1t0aGlzLl9jdXJyZW50VGFiSW5kZXhdO1xuICAgIG5ld1NlbGVjdGVkVGFiICYmIChuZXdTZWxlY3RlZFRhYi5hY3RpdmUgPSB0cnVlKTtcbiAgICBpZiAodGhpcy5fY3VycmVudFRhYkluZGV4ID09PSB0aGlzLl9wcmV2aW91c1RhYkluZGV4KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFzaWxlbnQpIHtcbiAgICAgIHRoaXMuYmVmb3JlVGFiQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgcHJldmlvdXNJbmRleDogdGhpcy5fcHJldmlvdXNUYWJJbmRleCxcbiAgICAgICAgbmV3SW5kZXg6IHRoaXMuX2N1cnJlbnRUYWJJbmRleFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYW5pbWF0aW9uVHlwZSA9PT0gJ3NsaWRlJykge1xuICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZSA9XG4gICAgICAgIHRoaXMuX2N1cnJlbnRUYWJJbmRleCA8IHRoaXMuX3ByZXZpb3VzVGFiSW5kZXhcbiAgICAgICAgICA/ICdzbGlkZUxlZnQnXG4gICAgICAgICAgOiAnc2xpZGVSaWdodCc7XG5cbiAgICAgIGlmICghc2lsZW50KSB7XG4gICAgICAgIHRoaXMuYWZ0ZXJUYWJDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgIHByZXZpb3VzSW5kZXg6IHRoaXMuX3ByZXZpb3VzVGFiSW5kZXgsXG4gICAgICAgICAgbmV3SW5kZXg6IHRoaXMuX2N1cnJlbnRUYWJJbmRleFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuYW5pbWF0aW9uVHlwZSA9PT0gJ2ZhZGUnKSB7XG4gICAgICB0aGlzLmFuaW1hdGlvblN0YXRlID0gJ2ZhZGVPdXQnO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSAnZmFkZUluJztcbiAgICAgICAgaWYgKCFzaWxlbnQpIHtcbiAgICAgICAgICB0aGlzLmFmdGVyVGFiQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICAgIHByZXZpb3VzSW5kZXg6IHRoaXMuX3ByZXZpb3VzVGFiSW5kZXgsXG4gICAgICAgICAgICBuZXdJbmRleDogdGhpcy5fY3VycmVudFRhYkluZGV4XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sIDEwMCk7XG4gICAgfVxuICB9XG5cbiAgb25TY3JvbGwoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuX3VwZGF0ZU5hdkJ0bnNTdGF0ZSgpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBvblJlc2l6ZSgpIHtcbiAgICB0aGlzLl91cGRhdGVOYXZCdG5zU3RhdGUoKTtcbiAgfVxuXG4gIG5hdkJhY2t3YXJkKCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLnRhYnNMaXN0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLl9nZXRXaWR0aChjb250ZW50KSAtIHRoaXMuX2dldFZpc2libGVCdXR0b25XaWR0aHMoKTtcbiAgICBjb25zdCBwb3MgPSBjb250ZW50LnNjcm9sbExlZnQgLSB3aWR0aDtcbiAgICBjb250ZW50LnNjcm9sbExlZnQgPSBwb3MgPD0gMCA/IDAgOiBwb3M7XG4gIH1cblxuICBuYXZGb3J3YXJkKCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLnRhYnNMaXN0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLl9nZXRXaWR0aChjb250ZW50KSAtIHRoaXMuX2dldFZpc2libGVCdXR0b25XaWR0aHMoKTtcbiAgICBjb25zdCBwb3MgPSBjb250ZW50LnNjcm9sbExlZnQgKyB3aWR0aDtcbiAgICBjb25zdCBsYXN0UG9zID0gY29udGVudC5zY3JvbGxXaWR0aCAtIHdpZHRoO1xuICAgIGNvbnRlbnQuc2Nyb2xsTGVmdCA9IHBvcyA+PSBsYXN0UG9zID8gbGFzdFBvcyA6IHBvcztcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZU5hdkJ0bnNTdGF0ZSgpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy50YWJzTGlzdC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHsgc2Nyb2xsTGVmdCwgc2Nyb2xsV2lkdGggfSA9IGNvbnRlbnQ7XG5cbiAgICBjb25zdCB3aWR0aCA9IHRoaXMuX2dldFdpZHRoKGNvbnRlbnQpO1xuXG4gICAgdGhpcy5iYWNrQnRuVmlzaWJsZSA9IHNjcm9sbExlZnQgPT09IDA7XG4gICAgdGhpcy5mb3J3YXJkQnRuVmlzaWJsZSA9IE1hdGguYWJzKHNjcm9sbExlZnQgLSBzY3JvbGxXaWR0aCArIHdpZHRoKSA8IDI7XG4gIH1cblxuICBwcml2YXRlIF9nZXRWaXNpYmxlQnV0dG9uV2lkdGhzKCkge1xuICAgIHJldHVybiBbdGhpcy5iYWNrQnRuPy5uYXRpdmVFbGVtZW50LCB0aGlzLmZvcndhcmRCdG4/Lm5hdGl2ZUVsZW1lbnRdLnJlZHVjZShcbiAgICAgIChhY2MsIGVsKSA9PiAoZWwgPyBhY2MgKyB0aGlzLl9nZXRXaWR0aChlbCkgOiBhY2MpLFxuICAgICAgMFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRXaWR0aChlbDogYW55KTogbnVtYmVyIHtcbiAgICBsZXQgd2lkdGggPSBlbC5vZmZzZXRXaWR0aDtcbiAgICBpZiAoIXdpZHRoKSByZXR1cm4gd2lkdGg7XG5cbiAgICBjb25zdCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWwpO1xuXG4gICAgd2lkdGggLT1cbiAgICAgIHBhcnNlRmxvYXQoc3R5bGUucGFkZGluZ0xlZnQpICtcbiAgICAgIHBhcnNlRmxvYXQoc3R5bGUucGFkZGluZ1JpZ2h0KSArXG4gICAgICBwYXJzZUZsb2F0KHN0eWxlLmJvcmRlckxlZnRXaWR0aCkgK1xuICAgICAgcGFyc2VGbG9hdChzdHlsZS5ib3JkZXJSaWdodFdpZHRoKTtcblxuICAgIHJldHVybiB3aWR0aDtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImNwcy10YWJzXCJcbiAgW2NsYXNzXT1cImhlYWRlckNsYXNzXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdjcHMtdGFicy1zdWJ0YWJzJzogaXNTdWJUYWJzLFxuICAgICdjcHMtdGFicy1jZW50ZXItYWxpZ25lZCc6IGFsaWdubWVudCA9PT0gJ2NlbnRlcicsXG4gICAgJ2Nwcy10YWJzLXJpZ2h0LWFsaWduZWQnOiBhbGlnbm1lbnQgPT09ICdyaWdodCcsXG4gICAgJ2Nwcy10YWJzLXN0cmV0Y2hlZCc6IHN0cmV0Y2hlZFxuICB9XCJcbiAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IHRhYnNCYWNrZ3JvdW5kIH1cIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwibmF2LWJ0biBuYXYtYnRuLWJhY2tcIlxuICAgIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiBuYXZCdXR0b25zQmFja2dyb3VuZCB9XCJcbiAgICAqbmdJZj1cIiFiYWNrQnRuVmlzaWJsZVwiXG4gICAgI2JhY2tCdG5cbiAgICAoY2xpY2spPVwibmF2QmFja3dhcmQoKVwiPlxuICAgIDxjcHMtaWNvbiBpY29uPVwiY2hldnJvbi1kb3duXCIgY29sb3I9XCJ0ZXh0LWRhcmtcIj48L2Nwcy1pY29uPlxuICA8L2Rpdj5cbiAgPHVsICN0YWJzTGlzdCBjbGFzcz1cImNwcy10YWJzLWxpc3RcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiczsgbGV0IHRhYkluZGV4ID0gaW5kZXhcIj5cbiAgICAgIDxsaVxuICAgICAgICAqbmdJZj1cInRhYi50b29sdGlwVGV4dFwiXG4gICAgICAgIGNsYXNzPVwiY3BzLXRhYlwiXG4gICAgICAgIChjbGljayk9XCIhdGFiLmRpc2FibGVkID8gb25UYWJDbGljayh0YWJJbmRleCkgOiAnJ1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiB0YWIuYWN0aXZlLCBkaXNhYmxlZDogdGFiLmRpc2FibGVkIH1cIlxuICAgICAgICBbY3BzVG9vbHRpcF09XCJ0YWIudG9vbHRpcFRleHRcIlxuICAgICAgICB0b29sdGlwT3BlbkRlbGF5PVwiMTAwMFwiXG4gICAgICAgIHRvb2x0aXBDbG9zZURlbGF5PVwiMFwiXG4gICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICAgIFt0b29sdGlwTWF4V2lkdGhdPVwidGFiLnRvb2x0aXBNYXhXaWR0aFwiXG4gICAgICAgIFt0b29sdGlwUGVyc2lzdGVudF09XCJ0YWIudG9vbHRpcFBlcnNpc3RlbnRcIlxuICAgICAgICBbdG9vbHRpcENvbnRlbnRDbGFzc109XCJ0YWIudG9vbHRpcENvbnRlbnRDbGFzc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIHRhYkhlYWRlclRlbXBsYXRlO1xuICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICB0YWI6IHRhYlxuICAgICAgICAgICAgfVxuICAgICAgICAgIFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9saT5cbiAgICAgIDxsaVxuICAgICAgICAqbmdJZj1cIiF0YWIudG9vbHRpcFRleHRcIlxuICAgICAgICBjbGFzcz1cImNwcy10YWJcIlxuICAgICAgICAoY2xpY2spPVwiIXRhYi5kaXNhYmxlZCA/IG9uVGFiQ2xpY2sodGFiSW5kZXgpIDogJydcIlxuICAgICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogdGFiLmFjdGl2ZSwgZGlzYWJsZWQ6IHRhYi5kaXNhYmxlZCB9XCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgdGFiSGVhZGVyVGVtcGxhdGU7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgIHRhYjogdGFiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2xpPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3VsPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJuYXYtYnRuIG5hdi1idG4tZm9yd2FyZFwiXG4gICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IG5hdkJ1dHRvbnNCYWNrZ3JvdW5kIH1cIlxuICAgICpuZ0lmPVwiIWZvcndhcmRCdG5WaXNpYmxlXCJcbiAgICAjZm9yd2FyZEJ0blxuICAgIChjbGljayk9XCJuYXZGb3J3YXJkKClcIj5cbiAgICA8Y3BzLWljb24gaWNvbj1cImNoZXZyb24tZG93blwiIGNvbG9yPVwidGV4dC1kYXJrXCI+PC9jcHMtaWNvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXZcbiAgY2xhc3M9XCJjcHMtdGFiLWNvbnRlbnQtd3JhcFwiXG4gIFtjbGFzc109XCJjb250ZW50V3JhcENsYXNzXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdjcHMtdGFiLWNvbnRlbnQtd3JhcC1zdWJ0YWJzJzogaXNTdWJUYWJzXG4gIH1cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3BzLXRhYi1jb250ZW50XCIgKm5nSWY9XCJ0YWIuYWN0aXZlXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIFtAc2xpZGVJbk91dF09XCJhbmltYXRpb25TdGF0ZVwiXG4gICAgICAgICpuZ0lmPVwiYW5pbWF0aW9uVHlwZSA9PT0gJ3NsaWRlJ1wiXG4gICAgICAgIGNsYXNzPVwiY3BzLXRhYi1jb250ZW50LWlubmVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFiLmNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBbQGZhZGVJbk91dF09XCJhbmltYXRpb25TdGF0ZVwiXG4gICAgICAgICpuZ0lmPVwiYW5pbWF0aW9uVHlwZSA9PT0gJ2ZhZGUnXCJcbiAgICAgICAgY2xhc3M9XCJjcHMtdGFiLWNvbnRlbnQtaW5uZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWIuY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdGFiSGVhZGVyVGVtcGxhdGUgbGV0LXRhYj1cInRhYlwiPlxuICA8Y3BzLWljb24gKm5nSWY9XCJ0YWIuaWNvblwiIGNsYXNzPVwiY3BzLXRhYi1pY29uXCIgW2ljb25dPVwidGFiLmljb25cIj4gPC9jcHMtaWNvbj5cbiAgPGEgY2xhc3M9XCJjcHMtdGFiLWxpbmtcIj57eyB0YWIubGFiZWwgfX08L2E+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWIuYmFkZ2VWYWx1ZVwiPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwidGFiLmJhZGdlVG9vbHRpcFwiXG4gICAgICBjbGFzcz1cImNwcy10YWItYmFkZ2VcIlxuICAgICAgW2Nwc1Rvb2x0aXBdPVwidGFiLmJhZGdlVG9vbHRpcFwiPlxuICAgICAgPHNwYW4+e3sgdGFiLmJhZGdlVmFsdWUgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiF0YWIuYmFkZ2VUb29sdGlwXCIgY2xhc3M9XCJjcHMtdGFiLWJhZGdlXCI+XG4gICAgICA8c3Bhbj57eyB0YWIuYmFkZ2VWYWx1ZSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -34,6 +34,17 @@ export class TableRowMenuComponent {
34
34
  get showRowRemoveButton() {
35
35
  return this._showRowRemoveButton;
36
36
  }
37
+ /**
38
+ * Custom items to be displayed in the menu.
39
+ * @group Props
40
+ */
41
+ set customItems(value) {
42
+ this._customRowMenuItems = value;
43
+ this.initializeItems();
44
+ }
45
+ get customItems() {
46
+ return this._customRowMenuItems;
47
+ }
37
48
  /**
38
49
  * Determines whether the 'Edit' button should be displayed in the menu.
39
50
  * @group Props
@@ -49,28 +60,33 @@ export class TableRowMenuComponent {
49
60
  this.initializeItems();
50
61
  }
51
62
  initializeItems() {
52
- this.items = [];
53
- if (this.showRowEditButton) {
54
- this.items.push({
55
- title: 'Edit',
56
- icon: 'edit',
57
- action: (event) => {
58
- this.editRowBtnClicked.emit(event);
59
- }
60
- });
63
+ if (this._customRowMenuItems) {
64
+ this.items = this._customRowMenuItems;
61
65
  }
62
- if (this.showRowRemoveButton) {
63
- this.items.push({
64
- title: 'Remove',
65
- icon: 'remove',
66
- action: (event) => {
67
- this.removeRowBtnClicked.emit(event);
68
- }
69
- });
66
+ else {
67
+ this.items = [];
68
+ if (this.showRowEditButton) {
69
+ this.items.push({
70
+ title: 'Edit',
71
+ icon: 'edit',
72
+ action: (event) => {
73
+ this.editRowBtnClicked.emit(event);
74
+ }
75
+ });
76
+ }
77
+ if (this.showRowRemoveButton) {
78
+ this.items.push({
79
+ title: 'Remove',
80
+ icon: 'remove',
81
+ action: (event) => {
82
+ this.removeRowBtnClicked.emit(event);
83
+ }
84
+ });
85
+ }
70
86
  }
71
87
  }
72
88
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TableRowMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
73
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TableRowMenuComponent, isStandalone: true, selector: "table-row-menu", inputs: { showRowRemoveButton: "showRowRemoveButton", showRowEditButton: "showRowEditButton" }, outputs: { editRowBtnClicked: "editRowBtnClicked", removeRowBtnClicked: "removeRowBtnClicked" }, ngImport: i0, template: "<cps-menu #rowMenu [items]=\"items\" [compressed]=\"true\" [withArrow]=\"false\">\n</cps-menu>\n<cps-icon\n icon=\"dropdown-menu\"\n size=\"22\"\n (click)=\"rowMenu.toggle($event)\"\n class=\"cps-table-row-menu-icon\">\n</cps-icon>\n", styles: [":host{height:22px;display:block}:host .cps-table-row-menu-icon{cursor:pointer}:host .cps-table-row-menu-icon:hover{color:var(--cps-color-calm)}\n"], dependencies: [{ kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "component", type: CpsMenuComponent, selector: "cps-menu", inputs: ["header", "items", "withArrow", "compressed", "focusOnShow", "persistent", "containerClass", "showTransitionOptions", "hideTransitionOptions"], outputs: ["menuShown", "menuHidden", "beforeMenuHidden", "contentClicked"] }] }); }
89
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TableRowMenuComponent, isStandalone: true, selector: "table-row-menu", inputs: { showRowRemoveButton: "showRowRemoveButton", customItems: "customItems", showRowEditButton: "showRowEditButton" }, outputs: { editRowBtnClicked: "editRowBtnClicked", removeRowBtnClicked: "removeRowBtnClicked" }, ngImport: i0, template: "<cps-menu #rowMenu [items]=\"items\" [compressed]=\"true\" [withArrow]=\"false\">\n</cps-menu>\n<cps-icon\n icon=\"dropdown-menu\"\n size=\"22\"\n (click)=\"rowMenu.toggle($event)\"\n class=\"cps-table-row-menu-icon\">\n</cps-icon>\n", styles: [":host{height:22px;display:block}:host .cps-table-row-menu-icon{cursor:pointer}:host .cps-table-row-menu-icon:hover{color:var(--cps-color-calm)}\n"], dependencies: [{ kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "component", type: CpsMenuComponent, selector: "cps-menu", inputs: ["header", "items", "withArrow", "compressed", "focusOnShow", "persistent", "containerClass", "showTransitionOptions", "hideTransitionOptions"], outputs: ["menuShown", "menuHidden", "beforeMenuHidden", "contentClicked"] }] }); }
74
90
  }
75
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TableRowMenuComponent, decorators: [{
76
92
  type: Component,
@@ -81,7 +97,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
81
97
  type: Output
82
98
  }], showRowRemoveButton: [{
83
99
  type: Input
100
+ }], customItems: [{
101
+ type: Input
84
102
  }], showRowEditButton: [{
85
103
  type: Input
86
104
  }] } });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcm93LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL2NvbXBvbmVudHMvaW50ZXJuYWwvdGFibGUtcm93LW1lbnUvdGFibGUtcm93LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL2NvbXBvbmVudHMvaW50ZXJuYWwvdGFibGUtcm93LW1lbnUvdGFibGUtcm93LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBRWpCLE1BQU0seUNBQXlDLENBQUM7O0FBRWpEOztHQUVHO0FBUUgsTUFBTSxPQUFPLHFCQUFxQjtJQVBsQztRQVFFOzs7O1dBSUc7UUFDTyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXREOzs7O1dBSUc7UUFDTyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBOEJoRCx5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDNUIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBRWxDLFVBQUssR0FBa0IsRUFBRSxDQUFDO0tBNkIzQjtJQTVEQzs7O09BR0c7SUFDSCxJQUNJLG1CQUFtQixDQUFDLEtBQWM7UUFDcEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUNJLGlCQUFpQixDQUFDLEtBQWM7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFPRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFFaEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDZCxLQUFLLEVBQUUsTUFBTTtnQkFDYixJQUFJLEVBQUUsTUFBTTtnQkFDWixNQUFNLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtvQkFDckIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckMsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUNkLEtBQUssRUFBRSxRQUFRO2dCQUNmLElBQUksRUFBRSxRQUFRO2dCQUNkLE1BQU0sRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO29CQUNyQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QyxDQUFDO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7OEdBMUVVLHFCQUFxQjtrR0FBckIscUJBQXFCLDJRQ2pCbEMsK09BUUEsMk1ES1ksZ0JBQWdCLHdGQUFFLGdCQUFnQjs7MkZBSWpDLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQzs4QkFVbkMsaUJBQWlCO3NCQUExQixNQUFNO2dCQU9HLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFPSCxtQkFBbUI7c0JBRHRCLEtBQUs7Z0JBZUYsaUJBQWlCO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3BzSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2Nwcy1pY29uL2Nwcy1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBDcHNNZW51Q29tcG9uZW50LFxuICBDcHNNZW51SXRlbVxufSBmcm9tICcuLi8uLi8uLi8uLi9jcHMtbWVudS9jcHMtbWVudS5jb21wb25lbnQnO1xuXG4vKipcbiAqIFRhYmxlUm93TWVudUNvbXBvbmVudCBpcyBhbiBpbnRlcm5hbCBjb21wb25lbnQgd2hpY2ggYXBwbGllcyB0aGUgbWVudSB0byBlYWNoIHJvdy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGFibGUtcm93LW1lbnUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ3BzSWNvbkNvbXBvbmVudCwgQ3BzTWVudUNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1yb3ctbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLXJvdy1tZW51LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVSb3dNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGVkaXQtcm93IGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgKiBAcGFyYW0ge2FueX0gYW55IC0gYnV0dG9uIGNsaWNrZWQuXG4gICAqIEBncm91cCBFbWl0c1xuICAgKi9cbiAgQE91dHB1dCgpIGVkaXRSb3dCdG5DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIHJlbW92ZS1yb3cgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAqIEBwYXJhbSB7YW55fSBhbnkgLSBidXR0b24gY2xpY2tlZC5cbiAgICogQGdyb3VwIEVtaXRzXG4gICAqL1xuICBAT3V0cHV0KCkgcmVtb3ZlUm93QnRuQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlICdSZW1vdmUnIGJ1dHRvbiBzaG91bGQgYmUgZGlzcGxheWVkIGluIHRoZSBtZW51LlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBzaG93Um93UmVtb3ZlQnV0dG9uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd1Jvd1JlbW92ZUJ1dHRvbiA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gIH1cblxuICBnZXQgc2hvd1Jvd1JlbW92ZUJ1dHRvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd1Jvd1JlbW92ZUJ1dHRvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlICdFZGl0JyBidXR0b24gc2hvdWxkIGJlIGRpc3BsYXllZCBpbiB0aGUgbWVudS5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgc2hvd1Jvd0VkaXRCdXR0b24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaG93Um93RWRpdEJ1dHRvbiA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gIH1cblxuICBnZXQgc2hvd1Jvd0VkaXRCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dSb3dFZGl0QnV0dG9uO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2hvd1Jvd1JlbW92ZUJ1dHRvbiA9IHRydWU7XG4gIHByaXZhdGUgX3Nob3dSb3dFZGl0QnV0dG9uID0gdHJ1ZTtcblxuICBpdGVtczogQ3BzTWVudUl0ZW1bXSA9IFtdO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gIH1cblxuICBpbml0aWFsaXplSXRlbXMoKSB7XG4gICAgdGhpcy5pdGVtcyA9IFtdO1xuXG4gICAgaWYgKHRoaXMuc2hvd1Jvd0VkaXRCdXR0b24pIHtcbiAgICAgIHRoaXMuaXRlbXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnRWRpdCcsXG4gICAgICAgIGljb246ICdlZGl0JyxcbiAgICAgICAgYWN0aW9uOiAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuZWRpdFJvd0J0bkNsaWNrZWQuZW1pdChldmVudCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNob3dSb3dSZW1vdmVCdXR0b24pIHtcbiAgICAgIHRoaXMuaXRlbXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnUmVtb3ZlJyxcbiAgICAgICAgaWNvbjogJ3JlbW92ZScsXG4gICAgICAgIGFjdGlvbjogKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLnJlbW92ZVJvd0J0bkNsaWNrZWQuZW1pdChldmVudCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGNwcy1tZW51ICNyb3dNZW51IFtpdGVtc109XCJpdGVtc1wiIFtjb21wcmVzc2VkXT1cInRydWVcIiBbd2l0aEFycm93XT1cImZhbHNlXCI+XG48L2Nwcy1tZW51PlxuPGNwcy1pY29uXG4gIGljb249XCJkcm9wZG93bi1tZW51XCJcbiAgc2l6ZT1cIjIyXCJcbiAgKGNsaWNrKT1cInJvd01lbnUudG9nZ2xlKCRldmVudClcIlxuICBjbGFzcz1cImNwcy10YWJsZS1yb3ctbWVudS1pY29uXCI+XG48L2Nwcy1pY29uPlxuIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcm93LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL2NvbXBvbmVudHMvaW50ZXJuYWwvdGFibGUtcm93LW1lbnUvdGFibGUtcm93LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL2NvbXBvbmVudHMvaW50ZXJuYWwvdGFibGUtcm93LW1lbnUvdGFibGUtcm93LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBRWpCLE1BQU0seUNBQXlDLENBQUM7O0FBRWpEOztHQUVHO0FBUUgsTUFBTSxPQUFPLHFCQUFxQjtJQVBsQztRQVFFOzs7O1dBSUc7UUFDTyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXREOzs7O1dBSUc7UUFDTyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBNENoRCx5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDNUIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBR2xDLFVBQUssR0FBa0IsRUFBRSxDQUFDO0tBZ0MzQjtJQTlFQzs7O09BR0c7SUFDSCxJQUNJLG1CQUFtQixDQUFDLEtBQWM7UUFDcEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUNJLFdBQVcsQ0FBQyxLQUFnQztRQUM5QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ0ksaUJBQWlCLENBQUMsS0FBYztRQUNsQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQVFELFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ3hDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDaEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQ2QsS0FBSyxFQUFFLE1BQU07b0JBQ2IsSUFBSSxFQUFFLE1BQU07b0JBQ1osTUFBTSxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7d0JBQ3JCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3JDLENBQUM7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO29CQUNkLEtBQUssRUFBRSxRQUFRO29CQUNmLElBQUksRUFBRSxRQUFRO29CQUNkLE1BQU0sRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO3dCQUNyQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUN2QyxDQUFDO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs4R0E1RlUscUJBQXFCO2tHQUFyQixxQkFBcUIsdVNDakJsQywrT0FRQSwyTURLWSxnQkFBZ0Isd0ZBQUUsZ0JBQWdCOzsyRkFJakMscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDOzhCQVVuQyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBT0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQU9ILG1CQUFtQjtzQkFEdEIsS0FBSztnQkFlRixXQUFXO3NCQURkLEtBQUs7Z0JBZUYsaUJBQWlCO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3BzSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2Nwcy1pY29uL2Nwcy1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBDcHNNZW51Q29tcG9uZW50LFxuICBDcHNNZW51SXRlbVxufSBmcm9tICcuLi8uLi8uLi8uLi9jcHMtbWVudS9jcHMtbWVudS5jb21wb25lbnQnO1xuXG4vKipcbiAqIFRhYmxlUm93TWVudUNvbXBvbmVudCBpcyBhbiBpbnRlcm5hbCBjb21wb25lbnQgd2hpY2ggYXBwbGllcyB0aGUgbWVudSB0byBlYWNoIHJvdy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGFibGUtcm93LW1lbnUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ3BzSWNvbkNvbXBvbmVudCwgQ3BzTWVudUNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1yb3ctbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLXJvdy1tZW51LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVSb3dNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGVkaXQtcm93IGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgKiBAcGFyYW0ge2FueX0gYW55IC0gYnV0dG9uIGNsaWNrZWQuXG4gICAqIEBncm91cCBFbWl0c1xuICAgKi9cbiAgQE91dHB1dCgpIGVkaXRSb3dCdG5DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIHJlbW92ZS1yb3cgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAqIEBwYXJhbSB7YW55fSBhbnkgLSBidXR0b24gY2xpY2tlZC5cbiAgICogQGdyb3VwIEVtaXRzXG4gICAqL1xuICBAT3V0cHV0KCkgcmVtb3ZlUm93QnRuQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlICdSZW1vdmUnIGJ1dHRvbiBzaG91bGQgYmUgZGlzcGxheWVkIGluIHRoZSBtZW51LlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBzaG93Um93UmVtb3ZlQnV0dG9uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd1Jvd1JlbW92ZUJ1dHRvbiA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gIH1cblxuICBnZXQgc2hvd1Jvd1JlbW92ZUJ1dHRvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd1Jvd1JlbW92ZUJ1dHRvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDdXN0b20gaXRlbXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBtZW51LlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBjdXN0b21JdGVtcyh2YWx1ZTogQ3BzTWVudUl0ZW1bXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2N1c3RvbVJvd01lbnVJdGVtcyA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gIH1cblxuICBnZXQgY3VzdG9tSXRlbXMoKTogQ3BzTWVudUl0ZW1bXSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2N1c3RvbVJvd01lbnVJdGVtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlICdFZGl0JyBidXR0b24gc2hvdWxkIGJlIGRpc3BsYXllZCBpbiB0aGUgbWVudS5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgc2hvd1Jvd0VkaXRCdXR0b24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaG93Um93RWRpdEJ1dHRvbiA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gIH1cblxuICBnZXQgc2hvd1Jvd0VkaXRCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dSb3dFZGl0QnV0dG9uO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2hvd1Jvd1JlbW92ZUJ1dHRvbiA9IHRydWU7XG4gIHByaXZhdGUgX3Nob3dSb3dFZGl0QnV0dG9uID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfY3VzdG9tUm93TWVudUl0ZW1zPzogQ3BzTWVudUl0ZW1bXTtcblxuICBpdGVtczogQ3BzTWVudUl0ZW1bXSA9IFtdO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gIH1cblxuICBpbml0aWFsaXplSXRlbXMoKSB7XG4gICAgaWYgKHRoaXMuX2N1c3RvbVJvd01lbnVJdGVtcykge1xuICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuX2N1c3RvbVJvd01lbnVJdGVtcztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pdGVtcyA9IFtdO1xuICAgICAgaWYgKHRoaXMuc2hvd1Jvd0VkaXRCdXR0b24pIHtcbiAgICAgICAgdGhpcy5pdGVtcy5wdXNoKHtcbiAgICAgICAgICB0aXRsZTogJ0VkaXQnLFxuICAgICAgICAgIGljb246ICdlZGl0JyxcbiAgICAgICAgICBhY3Rpb246IChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVkaXRSb3dCdG5DbGlja2VkLmVtaXQoZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnNob3dSb3dSZW1vdmVCdXR0b24pIHtcbiAgICAgICAgdGhpcy5pdGVtcy5wdXNoKHtcbiAgICAgICAgICB0aXRsZTogJ1JlbW92ZScsXG4gICAgICAgICAgaWNvbjogJ3JlbW92ZScsXG4gICAgICAgICAgYWN0aW9uOiAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVSb3dCdG5DbGlja2VkLmVtaXQoZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8Y3BzLW1lbnUgI3Jvd01lbnUgW2l0ZW1zXT1cIml0ZW1zXCIgW2NvbXByZXNzZWRdPVwidHJ1ZVwiIFt3aXRoQXJyb3ddPVwiZmFsc2VcIj5cbjwvY3BzLW1lbnU+XG48Y3BzLWljb25cbiAgaWNvbj1cImRyb3Bkb3duLW1lbnVcIlxuICBzaXplPVwiMjJcIlxuICAoY2xpY2spPVwicm93TWVudS50b2dnbGUoJGV2ZW50KVwiXG4gIGNsYXNzPVwiY3BzLXRhYmxlLXJvdy1tZW51LWljb25cIj5cbjwvY3BzLWljb24+XG4iXX0=