@inspark/inspark-components 1.0.29 → 1.0.31

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.
@@ -7,6 +7,7 @@ import { ScrollingModule } from '@angular/cdk/scrolling';
7
7
  import { CommonModule } from '@angular/common';
8
8
  import { PrimengComponentsModule } from '../primeng.module';
9
9
  import { animate, state, style, transition, trigger } from '@angular/animations';
10
+ import { TranslateModule } from '@ngx-translate/core';
10
11
  let DropdownItem = class DropdownItem {
11
12
  constructor() {
12
13
  this.onClick = new EventEmitter();
@@ -297,7 +298,7 @@ __decorate([
297
298
  DropdownComponent = DropdownComponent_1 = __decorate([
298
299
  Component({
299
300
  selector: 'in-dropdown',
300
- template: "<span *ngIf=\"label\" class=\"c-label__content\">\n {{label}}\n <span *ngIf=\"required\" class=\"c-label__req\">*</span>\n<span *ngIf=\"error\" class=\"c-label__sub_is-error\">{{error}}</span>\n </span>\n<div #container (click)=\"onMouseclick($event)\"\n [class]=\"styleClass\" [ngClass]=\"{'ui-dropdown ui-widget ui-state-default ui-corner-all ui-helper-clearfix':true,\n 'ui-state-disabled':disabled, 'ui-dropdown-open':overlayVisible, 'ui-state-focus':focused, 'ui-dropdown-clearable': showClear && !disabled}\" [ngStyle]=\"style\">\n <div class=\"ui-helper-hidden-accessible\">\n <input #in (blur)=\"onInputBlur($event)\" (focus)=\"onInputFocus($event)\" (keydown)=\"onKeydown($event, true)\"\n [attr.aria-label]=\"selectedOption ? selectedOption.label : ' '\" [attr.autofocus]=\"autofocus\" [attr.id]=\"inputId\"\n [attr.tabindex]=\"tabindex\" [disabled]=\"disabled\" aria-haspopup=\"listbox\"\n readonly type=\"text\">\n </div>\n <div class=\"ui-helper-hidden-accessible ui-dropdown-hidden-select\">\n <select [attr.name]=\"name\" [attr.required]=\"required\" aria-hidden=\"true\" tabindex=\"-1\">\n <option *ngIf=\"placeholder\" value=\"\">{{placeholder}}</option>\n <option *ngIf=\"selectedOption\" [selected]=\"true\"\n [value]=\"selectedOption.value\">{{selectedOption.label}}</option>\n </select>\n </div>\n <div [pTooltip]=\"tooltip\" [positionStyle]=\"tooltipPositionStyle\" [tooltipPosition]=\"tooltipPosition\"\n [tooltipStyleClass]=\"tooltipStyleClass\" class=\"ui-dropdown-label-container\">\n <label\n *ngIf=\"!editable && (labelText != null)\"\n [attr.title]=\"labelText || 'empty'\"\n [ngClass]=\"{'ui-dropdown-label ui-inputtext ui-corner-all':true,'ui-dropdown-label-empty':(labelText == null || labelText.length === 0)}\">\n <ng-container *ngIf=\"!selectedItemTemplate\">{{labelText || 'empty'}}</ng-container>\n <ng-container *ngTemplateOutlet=\"selectedItemTemplate; context: {$implicit: selectedOption}\"></ng-container>\n </label>\n <label\n *ngIf=\"!editable && (labelText == null)\"\n [ngClass]=\"{'ui-dropdown-label ui-inputtext ui-corner-all ui-placeholder':true,'ui-dropdown-label-empty': (placeholder == null || placeholder.length === 0)}\">{{placeholder || 'empty'}}</label>\n <input #editableInput (blur)=\"onInputBlur($event)\" (click)=\"onEditableInputClick($event)\"\n (focus)=\"onEditableInputFocus($event)\"\n (input)=\"onEditableInputChange($event)\" *ngIf=\"editable\" [attr.aria-label]=\"selectedOption ? selectedOption.label : ' '\"\n [attr.maxlength]=\"maxlength\"\n [attr.placeholder]=\"placeholder\" [disabled]=\"disabled\"\n class=\"ui-dropdown-label ui-inputtext ui-corner-all\" type=\"text\">\n <i (click)=\"clear($event)\" *ngIf=\"value != null && showClear && !disabled\"\n class=\"ui-dropdown-clear-icon pi pi-times\"></i>\n </div>\n <div class=\"ui-dropdown-trigger ui-state-default ui-corner-right\">\n <span [ngClass]=\"dropdownIcon\" class=\"ui-dropdown-trigger-icon ui-clickable\"></span>\n </div>\n <div (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\" *ngIf=\"overlayVisible\"\n [@overlayAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\"\n [class]=\"panelStyleClass\"\n [ngClass]=\"'ui-dropdown-panel ui-widget ui-widget-content ui-corner-all ui-shadow'\"\n [ngStyle]=\"panelStyle\"\n [attr.virtual-scroll]=\"virtualScroll ? 'true' : null\">\n <div (click)=\"$event.stopPropagation()\" *ngIf=\"filter\" class=\"ui-dropdown-filter-container\">\n <input #filter (input)=\"onFilter($event)\" (keydown)=\"onKeydown($event, false)\" (keydown.enter)=\"$event.preventDefault()\"\n [attr.aria-label]=\"ariaFilterLabel\"\n [attr.placeholder]=\"filterPlaceholder\"\n [value]=\"filterValue||''\" autocomplete=\"off\"\n class=\"ui-dropdown-filter ui-inputtext ui-widget ui-state-default ui-corner-all\" type=\"text\">\n <span class=\"ui-dropdown-filter-icon pi pi-search\"></span>\n </div>\n <div [style.max-height]=\"virtualScroll ? 'auto' : (scrollHeight||'auto')\" class=\"ui-dropdown-items-wrapper\">\n <ul class=\"ui-dropdown-items ui-dropdown-list ui-widget-content ui-widget ui-corner-all ui-helper-reset\"\n role=\"listbox\">\n <ng-container *ngIf=\"group\">\n <ng-template [ngForOf]=\"optionsToDisplay\" let-optgroup ngFor>\n <li class=\"ui-dropdown-item-group\">\n <span *ngIf=\"!groupTemplate\">{{optgroup.label || 'empty'}}</span>\n <ng-container\n *ngTemplateOutlet=\"groupTemplate; context: {$implicit: optgroup}\"></ng-container>\n </li>\n <ng-container\n *ngTemplateOutlet=\"itemslist; context: {$implicit: optgroup.items, selectedOption: selectedOption}\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!group\">\n <ng-container\n *ngTemplateOutlet=\"itemslist; context: {$implicit: optionsToDisplay, selectedOption: selectedOption}\"></ng-container>\n </ng-container>\n <ng-template #itemslist let-options let-selectedOption=\"selectedOption\">\n <ng-container *ngIf=\"!virtualScroll; else virtualScrollList\">\n <ng-template [ngForOf]=\"options\" let-i=\"index\" let-option ngFor>\n <p-dropdownItem (onClick)=\"onItemClick($event)\" [option]=\"option\"\n [selected]=\"selectedOption == option\"\n [template]=\"itemTemplate\"></p-dropdownItem>\n </ng-template>\n </ng-container>\n <ng-template #virtualScrollList>\n <cdk-virtual-scroll-viewport #viewport\n (scrolledIndexChange)=\"scrollToSelectedVirtualScrollElement()\" *ngIf=\"virtualScroll && optionsToDisplay && optionsToDisplay.length\"\n [itemSize]=\"itemSize\"\n [ngStyle]=\"{'height': scrollHeight}\">\n <ng-container\n *cdkVirtualFor=\"let option of options; let i = index; let c = count; let f = first; let l = last; let e = even; let o = odd\">\n <p-dropdownItem (onClick)=\"onItemClick($event)\" [option]=\"option\"\n [attr.title]=\"option.label\"\n [selected]=\"selectedOption == option\"\n [template]=\"itemTemplate\"></p-dropdownItem>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n </ng-template>\n <li *ngIf=\"filter && optionsToDisplay && optionsToDisplay.length === 0\"\n class=\"ui-dropdown-empty-message\">{{emptyFilterMessage}}</li>\n </ul>\n </div>\n </div>\n</div>\n",
301
+ template: "<span *ngIf=\"label\" class=\"c-label__content\">\n {{label}}\n <span *ngIf=\"required\" class=\"c-label__req\">*</span>\n<span *ngIf=\"error\" class=\"c-label__sub_is-error\">{{error}}</span>\n </span>\n<div #container (click)=\"onMouseclick($event)\"\n [class]=\"styleClass\" [ngClass]=\"{'ui-dropdown ui-widget ui-state-default ui-corner-all ui-helper-clearfix':true,\n 'ui-state-disabled':disabled, 'ui-dropdown-open':overlayVisible, 'ui-state-focus':focused, 'ui-dropdown-clearable': showClear && !disabled}\" [ngStyle]=\"style\">\n <div class=\"ui-helper-hidden-accessible\">\n <input #in (blur)=\"onInputBlur($event)\" (focus)=\"onInputFocus($event)\" (keydown)=\"onKeydown($event, true)\"\n [attr.aria-label]=\"selectedOption ? selectedOption.label : ' '\" [attr.autofocus]=\"autofocus\" [attr.id]=\"inputId\"\n [attr.tabindex]=\"tabindex\" [disabled]=\"disabled\" aria-haspopup=\"listbox\"\n readonly type=\"text\">\n </div>\n <div class=\"ui-helper-hidden-accessible ui-dropdown-hidden-select\">\n <select [attr.name]=\"name\" [attr.required]=\"required\" aria-hidden=\"true\" tabindex=\"-1\">\n <option *ngIf=\"placeholder\" value=\"\">{{placeholder}}</option>\n <option *ngIf=\"selectedOption\" [selected]=\"true\"\n [value]=\"selectedOption.value\">{{selectedOption.label}}</option>\n </select>\n </div>\n <div [pTooltip]=\"tooltip\" [positionStyle]=\"tooltipPositionStyle\" [tooltipPosition]=\"tooltipPosition\"\n [tooltipStyleClass]=\"tooltipStyleClass\" class=\"ui-dropdown-label-container\">\n <label\n *ngIf=\"!editable && (labelText != null)\"\n [attr.title]=\"labelText ? (labelText | translate) : null\"\n [ngClass]=\"{'ui-dropdown-label ui-inputtext ui-corner-all':true,'ui-dropdown-label-empty':(labelText == null || labelText.length === 0)}\">\n <ng-container *ngIf=\"!selectedItemTemplate\">{{labelText || 'empty'}}</ng-container>\n <ng-container *ngTemplateOutlet=\"selectedItemTemplate; context: {$implicit: selectedOption}\"></ng-container>\n </label>\n <label\n *ngIf=\"!editable && (labelText == null)\"\n [ngClass]=\"{'ui-dropdown-label ui-inputtext ui-corner-all ui-placeholder':true,'ui-dropdown-label-empty': (placeholder == null || placeholder.length === 0)}\">{{placeholder || 'empty'}}</label>\n <input #editableInput (blur)=\"onInputBlur($event)\" (click)=\"onEditableInputClick($event)\"\n (focus)=\"onEditableInputFocus($event)\"\n (input)=\"onEditableInputChange($event)\" *ngIf=\"editable\" [attr.aria-label]=\"selectedOption ? selectedOption.label : ' '\"\n [attr.maxlength]=\"maxlength\"\n [attr.placeholder]=\"placeholder\" [disabled]=\"disabled\"\n class=\"ui-dropdown-label ui-inputtext ui-corner-all\" type=\"text\">\n <i (click)=\"clear($event)\" *ngIf=\"value != null && showClear && !disabled\"\n class=\"ui-dropdown-clear-icon pi pi-times\"></i>\n </div>\n <div class=\"ui-dropdown-trigger ui-state-default ui-corner-right\">\n <span [ngClass]=\"dropdownIcon\" class=\"ui-dropdown-trigger-icon ui-clickable\"></span>\n </div>\n <div (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\" *ngIf=\"overlayVisible\"\n [@overlayAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\"\n [class]=\"panelStyleClass\"\n [ngClass]=\"'ui-dropdown-panel ui-widget ui-widget-content ui-corner-all ui-shadow'\"\n [ngStyle]=\"panelStyle\"\n [attr.virtual-scroll]=\"virtualScroll ? 'true' : null\">\n <div (click)=\"$event.stopPropagation()\" *ngIf=\"filter\" class=\"ui-dropdown-filter-container\">\n <input #filter (input)=\"onFilter($event)\" (keydown)=\"onKeydown($event, false)\" (keydown.enter)=\"$event.preventDefault()\"\n [attr.aria-label]=\"ariaFilterLabel\"\n [attr.placeholder]=\"filterPlaceholder\"\n [value]=\"filterValue||''\" autocomplete=\"off\"\n class=\"ui-dropdown-filter ui-inputtext ui-widget ui-state-default ui-corner-all\" type=\"text\">\n <span class=\"ui-dropdown-filter-icon pi pi-search\"></span>\n </div>\n <div [style.max-height]=\"virtualScroll ? 'auto' : (scrollHeight||'auto')\" class=\"ui-dropdown-items-wrapper\">\n <ul class=\"ui-dropdown-items ui-dropdown-list ui-widget-content ui-widget ui-corner-all ui-helper-reset\"\n role=\"listbox\">\n <ng-container *ngIf=\"group\">\n <ng-template [ngForOf]=\"optionsToDisplay\" let-optgroup ngFor>\n <li class=\"ui-dropdown-item-group\">\n <span *ngIf=\"!groupTemplate\">{{optgroup.label || 'empty'}}</span>\n <ng-container\n *ngTemplateOutlet=\"groupTemplate; context: {$implicit: optgroup}\"></ng-container>\n </li>\n <ng-container\n *ngTemplateOutlet=\"itemslist; context: {$implicit: optgroup.items, selectedOption: selectedOption}\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!group\">\n <ng-container\n *ngTemplateOutlet=\"itemslist; context: {$implicit: optionsToDisplay, selectedOption: selectedOption}\"></ng-container>\n </ng-container>\n <ng-template #itemslist let-options let-selectedOption=\"selectedOption\">\n <ng-container *ngIf=\"!virtualScroll; else virtualScrollList\">\n <ng-template [ngForOf]=\"options\" let-i=\"index\" let-option ngFor>\n <p-dropdownItem (onClick)=\"onItemClick($event)\" [option]=\"option\"\n [selected]=\"selectedOption == option\"\n [template]=\"itemTemplate\"></p-dropdownItem>\n </ng-template>\n </ng-container>\n <ng-template #virtualScrollList>\n <cdk-virtual-scroll-viewport #viewport\n (scrolledIndexChange)=\"scrollToSelectedVirtualScrollElement()\" *ngIf=\"virtualScroll && optionsToDisplay && optionsToDisplay.length\"\n [itemSize]=\"itemSize\"\n [ngStyle]=\"{'height': scrollHeight}\">\n <ng-container\n *cdkVirtualFor=\"let option of options; let i = index; let c = count; let f = first; let l = last; let e = even; let o = odd\">\n <p-dropdownItem (onClick)=\"onItemClick($event)\" [option]=\"option\"\n [attr.title]=\"option.label\"\n [selected]=\"selectedOption == option\"\n [template]=\"itemTemplate\"></p-dropdownItem>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n </ng-template>\n <li *ngIf=\"filter && optionsToDisplay && optionsToDisplay.length === 0\"\n class=\"ui-dropdown-empty-message\">{{emptyFilterMessage}}</li>\n </ul>\n </div>\n </div>\n</div>\n",
301
302
  animations: [
302
303
  trigger('overlayAnimation', [
303
304
  state('void', style({
@@ -334,6 +335,7 @@ DropdownComponentModule = __decorate([
334
335
  ScrollingModule,
335
336
  CommonModule,
336
337
  PrimengComponentsModule,
338
+ TranslateModule,
337
339
  ],
338
340
  exports: [
339
341
  DropdownComponent,
@@ -344,4 +346,4 @@ DropdownComponentModule = __decorate([
344
346
  })
345
347
  ], DropdownComponentModule);
346
348
  export { DropdownComponentModule };
347
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGluc3BhcmsvaW5zcGFyay1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUMsUUFBUSxFQUFjLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQWlCLE1BQU0scUJBQXFCLENBQUM7QUFtQi9GLElBQWEsWUFBWSxHQUF6QixNQUFhLFlBQVk7SUFBekI7UUFjWSxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFRNUQsQ0FBQztJQU5DLGFBQWEsQ0FBQyxLQUFZO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2hCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YsQ0FBQTtBQXBCVTtJQUFSLEtBQUssRUFBRTs7NENBQW9CO0FBRW5CO0lBQVIsS0FBSyxFQUFFOzs4Q0FBbUI7QUFFbEI7SUFBUixLQUFLLEVBQUU7OzhD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e0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgTmdNb2R1bGUsIE91dHB1dCwgVGVtcGxhdGVSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7RHJvcGRvd24sIFNlbGVjdEl0ZW0sIFRvb2x0aXBNb2R1bGV9IGZyb20gJ3ByaW1lbmcvcHJpbWVuZyc7XG5pbXBvcnQge1Njcm9sbGluZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5cbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtQcmltZW5nQ29tcG9uZW50c01vZHVsZX0gZnJvbSAnLi4vcHJpbWVuZy5tb2R1bGUnO1xuaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIsIEFuaW1hdGlvbkV2ZW50fSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWRyb3Bkb3duSXRlbScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGxpIChjbGljayk9XCJvbk9wdGlvbkNsaWNrKCRldmVudClcIiByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJvcHRpb24ubGFiZWxcIlxuICAgICAgICBbYXR0ci50aXRsZV09XCJvcHRpb24ubGFiZWxcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7J2hlaWdodCc6IGl0ZW1TaXplICsgJ3B4J31cIlxuICAgICAgICBbbmdDbGFzc109XCJ7J3VpLWRyb3Bkb3duLWl0ZW0gdWktY29ybmVyLWFsbCc6dHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgJ3VpLXN0YXRlLWhpZ2hsaWdodCc6IHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAndWktc3RhdGUtZGlzYWJsZWQnOihvcHRpb24uZGlzYWJsZWQpLFxuICAgICAgICAgICAgICAgICAgICAndWktZHJvcGRvd24taXRlbS1lbXB0eSc6ICFvcHRpb24ubGFiZWx8fG9wdGlvbi5sYWJlbC5sZW5ndGggPT09IDB9XCI+XG4gICAgICA8c3BhbiAqbmdJZj1cIiF0ZW1wbGF0ZVwiPnt7b3B0aW9uLmxhYmVsIHx8ICdlbXB0eSd9fTwvc3Bhbj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogb3B0aW9ufVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbGk+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25JdGVtIHtcblxuICBASW5wdXQoKSBvcHRpb246IFNlbGVjdEl0ZW07XG5cbiAgQElucHV0KCkgc2VsZWN0ZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgdmlzaWJsZTogYm9vbGVhbjtcblxuICBASW5wdXQoKSBpdGVtU2l6ZTogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBPdXRwdXQoKSBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBvbk9wdGlvbkNsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMub25DbGljay5lbWl0KHtcbiAgICAgIG9yaWdpbmFsRXZlbnQ6IGV2ZW50LFxuICAgICAgb3B0aW9uOiB0aGlzLm9wdGlvblxuICAgIH0pO1xuICB9XG59XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW4tZHJvcGRvd24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi5jb21wb25lbnQuY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdvdmVybGF5QW5pbWF0aW9uJywgW1xuICAgICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7XG4gICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoNSUpJyxcbiAgICAgICAgb3BhY2l0eTogMFxuICAgICAgfSkpLFxuICAgICAgc3RhdGUoJ3Zpc2libGUnLCBzdHlsZSh7XG4gICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknLFxuICAgICAgICBvcGFjaXR5OiAxXG4gICAgICB9KSksXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IHZpc2libGUnLCBhbmltYXRlKCd7e3Nob3dUcmFuc2l0aW9uUGFyYW1zfX0nKSksXG4gICAgICB0cmFuc2l0aW9uKCd2aXNpYmxlID0+IHZvaWQnLCBhbmltYXRlKCd7e2hpZGVUcmFuc2l0aW9uUGFyYW1zfX0nKSlcbiAgICBdKVxuICBdLFxuICBwcm92aWRlcnM6IFt7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRHJvcGRvd25Db21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlXG4gIH1dXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29tcG9uZW50IGV4dGVuZHMgRHJvcGRvd24gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgQElucHV0KCkgc2Nyb2xsSGVpZ2h0ID0gJzIwMHB4JztcblxuICBASW5wdXQoKSBmaWx0ZXI6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHN0eWxlOiBhbnk7XG5cbiAgQElucHV0KCkgcGFuZWxTdHlsZTogYW55O1xuXG4gIEBJbnB1dCgpIHN0eWxlQ2xhc3M6IHN0cmluZztcblxuICBASW5wdXQoKSBwYW5lbFN0eWxlQ2xhc3M6IHN0cmluZztcblxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjtcblxuICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBlZGl0YWJsZTogYm9vbGVhbjtcblxuICBASW5wdXQoKSBhcHBlbmRUbzogYW55O1xuXG4gIEBJbnB1dCgpIHRhYmluZGV4OiBudW1iZXI7XG5cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBASW5wdXQoKSBmaWx0ZXJQbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGlucHV0SWQ6IHN0cmluZztcblxuICBASW5wdXQoKSBzZWxlY3RJZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGRhdGFLZXk6IHN0cmluZztcblxuICBASW5wdXQoKSBmaWx0ZXJCeSA9ICdsYWJlbCc7XG5cbiAgQElucHV0KCkgYXV0b2ZvY3VzOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHJlc2V0RmlsdGVyT25IaWRlID0gZmFsc2U7XG5cbiAgQElucHV0KCkgZHJvcGRvd25JY29uID0gJ3BpIHBpLWNoZXZyb24tZG93bic7XG5cbiAgQElucHV0KCkgb3B0aW9uTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKSBhdXRvRGlzcGxheUZpcnN0ID0gdHJ1ZTtcblxuICBASW5wdXQoKSBncm91cDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBzaG93Q2xlYXI6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgZW1wdHlGaWx0ZXJNZXNzYWdlID0gJ05vIHJlc3VsdHMgZm91bmQnO1xuXG4gIEBJbnB1dCgpIHZpcnR1YWxTY3JvbGw6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgaXRlbVNpemU6IG51bWJlcjtcblxuICBASW5wdXQoKSBhdXRvWkluZGV4ID0gdHJ1ZTtcblxuICBASW5wdXQoKSBiYXNlWkluZGV4ID0gMDtcblxuICBASW5wdXQoKSBzaG93VHJhbnNpdGlvbk9wdGlvbnMgPSAnMG1zJztcblxuICBASW5wdXQoKSBoaWRlVHJhbnNpdGlvbk9wdGlvbnMgPSAnMG1zJztcblxuICBASW5wdXQoKSBhcmlhRmlsdGVyTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKSBmaWx0ZXJNYXRjaE1vZGUgPSAnY29udGFpbnMnO1xuXG4gIEBJbnB1dCgpIG1heGxlbmd0aDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHRvb2x0aXAgPSAnJztcblxuICBASW5wdXQoKSBvcHRpb25zOiBhbnlbXTtcblxuICBASW5wdXQoKSBlcnJvciA9IG51bGw7XG5cbiAgQElucHV0KCkgdG9vbHRpcFBvc2l0aW9uID0gJ3JpZ2h0JztcblxuICBASW5wdXQoKSB0b29sdGlwUG9zaXRpb25TdHlsZSA9ICdhYnNvbHV0ZSc7XG5cbiAgQElucHV0KCkgdG9vbHRpcFN0eWxlQ2xhc3M6IHN0cmluZztcblxuICBAT3V0cHV0KCkgb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSBvbkZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgb25CbHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgb25DbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIG9uU2hvdzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIG9uSGlkZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblxuICBfbGFiZWwgPSAnJztcblxuICBASW5wdXQoKSBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbGFiZWw7XG4gIH1cblxuICBzZXQgbGFiZWwodmFsKSB7XG4gICAgdGhpcy5fbGFiZWwgPSB2YWw7XG4gIH1cblxuXG4gIGdldCBsYWJlbFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuc2VsZWN0ZWRPcHRpb24gPyB0aGlzLnNlbGVjdGVkT3B0aW9uLmxhYmVsIDogbnVsbCk7XG4gIH1cbn1cblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBEcm9wZG93bkNvbXBvbmVudCxcbiAgICBEcm9wZG93bkl0ZW0sXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBUb29sdGlwTW9kdWxlLFxuICAgIFNjcm9sbGluZ01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUHJpbWVuZ0NvbXBvbmVudHNNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBEcm9wZG93bkNvbXBvbmVudCxcbiAgXSxcbiAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgRHJvcGRvd25Db21wb25lbnQsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Db21wb25lbnRNb2R1bGUge1xufVxuIl19
349
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGluc3BhcmsvaW5zcGFyay1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUMsUUFBUSxFQUFjLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQWlCLE1BQU0scUJBQXFCLENBQUM7QUFDL0YsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBbUJwRCxJQUFhLFlBQVksR0FBekIsTUFBYSxZQUFZO0lBQXpCO1FBY1ksWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBUTVELENBQUM7SUFOQyxhQUFhLENBQUMsS0FBWTtRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNoQixhQUFhLEVBQUUsS0FBSztZQUNwQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGLENBQUE7QUFwQlU7SUFBUixLQUFLLEVBQUU7OzRDQUFvQjtBQUVuQjtJQUFS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Vyx1QkFBdUIsQ0FDbkM7U0FEWSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgTmdNb2R1bGUsIE91dHB1dCwgVGVtcGxhdGVSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7RHJvcGRvd24sIFNlbGVjdEl0ZW0sIFRvb2x0aXBNb2R1bGV9IGZyb20gJ3ByaW1lbmcvcHJpbWVuZyc7XG5pbXBvcnQge1Njcm9sbGluZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5cbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtQcmltZW5nQ29tcG9uZW50c01vZHVsZX0gZnJvbSAnLi4vcHJpbWVuZy5tb2R1bGUnO1xuaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIsIEFuaW1hdGlvbkV2ZW50fSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWRyb3Bkb3duSXRlbScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGxpIChjbGljayk9XCJvbk9wdGlvbkNsaWNrKCRldmVudClcIiByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJvcHRpb24ubGFiZWxcIlxuICAgICAgICBbYXR0ci50aXRsZV09XCJvcHRpb24ubGFiZWxcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7J2hlaWdodCc6IGl0ZW1TaXplICsgJ3B4J31cIlxuICAgICAgICBbbmdDbGFzc109XCJ7J3VpLWRyb3Bkb3duLWl0ZW0gdWktY29ybmVyLWFsbCc6dHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgJ3VpLXN0YXRlLWhpZ2hsaWdodCc6IHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAndWktc3RhdGUtZGlzYWJsZWQnOihvcHRpb24uZGlzYWJsZWQpLFxuICAgICAgICAgICAgICAgICAgICAndWktZHJvcGRvd24taXRlbS1lbXB0eSc6ICFvcHRpb24ubGFiZWx8fG9wdGlvbi5sYWJlbC5sZW5ndGggPT09IDB9XCI+XG4gICAgICA8c3BhbiAqbmdJZj1cIiF0ZW1wbGF0ZVwiPnt7b3B0aW9uLmxhYmVsIHx8ICdlbXB0eSd9fTwvc3Bhbj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogb3B0aW9ufVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbGk+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25JdGVtIHtcblxuICBASW5wdXQoKSBvcHRpb246IFNlbGVjdEl0ZW07XG5cbiAgQElucHV0KCkgc2VsZWN0ZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgdmlzaWJsZTogYm9vbGVhbjtcblxuICBASW5wdXQoKSBpdGVtU2l6ZTogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBPdXRwdXQoKSBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBvbk9wdGlvbkNsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMub25DbGljay5lbWl0KHtcbiAgICAgIG9yaWdpbmFsRXZlbnQ6IGV2ZW50LFxuICAgICAgb3B0aW9uOiB0aGlzLm9wdGlvblxuICAgIH0pO1xuICB9XG59XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW4tZHJvcGRvd24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi5jb21wb25lbnQuY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdvdmVybGF5QW5pbWF0aW9uJywgW1xuICAgICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7XG4gICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoNSUpJyxcbiAgICAgICAgb3BhY2l0eTogMFxuICAgICAgfSkpLFxuICAgICAgc3RhdGUoJ3Zpc2libGUnLCBzdHlsZSh7XG4gICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknLFxuICAgICAgICBvcGFjaXR5OiAxXG4gICAgICB9KSksXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IHZpc2libGUnLCBhbmltYXRlKCd7e3Nob3dUcmFuc2l0aW9uUGFyYW1zfX0nKSksXG4gICAgICB0cmFuc2l0aW9uKCd2aXNpYmxlID0+IHZvaWQnLCBhbmltYXRlKCd7e2hpZGVUcmFuc2l0aW9uUGFyYW1zfX0nKSlcbiAgICBdKVxuICBdLFxuICBwcm92aWRlcnM6IFt7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRHJvcGRvd25Db21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlXG4gIH1dXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29tcG9uZW50IGV4dGVuZHMgRHJvcGRvd24gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgQElucHV0KCkgc2Nyb2xsSGVpZ2h0ID0gJzIwMHB4JztcblxuICBASW5wdXQoKSBmaWx0ZXI6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHN0eWxlOiBhbnk7XG5cbiAgQElucHV0KCkgcGFuZWxTdHlsZTogYW55O1xuXG4gIEBJbnB1dCgpIHN0eWxlQ2xhc3M6IHN0cmluZztcblxuICBASW5wdXQoKSBwYW5lbFN0eWxlQ2xhc3M6IHN0cmluZztcblxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjtcblxuICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBlZGl0YWJsZTogYm9vbGVhbjtcblxuICBASW5wdXQoKSBhcHBlbmRUbzogYW55O1xuXG4gIEBJbnB1dCgpIHRhYmluZGV4OiBudW1iZXI7XG5cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBASW5wdXQoKSBmaWx0ZXJQbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGlucHV0SWQ6IHN0cmluZztcblxuICBASW5wdXQoKSBzZWxlY3RJZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGRhdGFLZXk6IHN0cmluZztcblxuICBASW5wdXQoKSBmaWx0ZXJCeSA9ICdsYWJlbCc7XG5cbiAgQElucHV0KCkgYXV0b2ZvY3VzOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHJlc2V0RmlsdGVyT25IaWRlID0gZmFsc2U7XG5cbiAgQElucHV0KCkgZHJvcGRvd25JY29uID0gJ3BpIHBpLWNoZXZyb24tZG93bic7XG5cbiAgQElucHV0KCkgb3B0aW9uTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKSBhdXRvRGlzcGxheUZpcnN0ID0gdHJ1ZTtcblxuICBASW5wdXQoKSBncm91cDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBzaG93Q2xlYXI6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgZW1wdHlGaWx0ZXJNZXNzYWdlID0gJ05vIHJlc3VsdHMgZm91bmQnO1xuXG4gIEBJbnB1dCgpIHZpcnR1YWxTY3JvbGw6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgaXRlbVNpemU6IG51bWJlcjtcblxuICBASW5wdXQoKSBhdXRvWkluZGV4ID0gdHJ1ZTtcblxuICBASW5wdXQoKSBiYXNlWkluZGV4ID0gMDtcblxuICBASW5wdXQoKSBzaG93VHJhbnNpdGlvbk9wdGlvbnMgPSAnMG1zJztcblxuICBASW5wdXQoKSBoaWRlVHJhbnNpdGlvbk9wdGlvbnMgPSAnMG1zJztcblxuICBASW5wdXQoKSBhcmlhRmlsdGVyTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKSBmaWx0ZXJNYXRjaE1vZGUgPSAnY29udGFpbnMnO1xuXG4gIEBJbnB1dCgpIG1heGxlbmd0aDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHRvb2x0aXAgPSAnJztcblxuICBASW5wdXQoKSBvcHRpb25zOiBhbnlbXTtcblxuICBASW5wdXQoKSBlcnJvciA9IG51bGw7XG5cbiAgQElucHV0KCkgdG9vbHRpcFBvc2l0aW9uID0gJ3JpZ2h0JztcblxuICBASW5wdXQoKSB0b29sdGlwUG9zaXRpb25TdHlsZSA9ICdhYnNvbHV0ZSc7XG5cbiAgQElucHV0KCkgdG9vbHRpcFN0eWxlQ2xhc3M6IHN0cmluZztcblxuICBAT3V0cHV0KCkgb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSBvbkZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgb25CbHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgb25DbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIG9uU2hvdzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIG9uSGlkZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblxuICBfbGFiZWwgPSAnJztcblxuICBASW5wdXQoKSBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbGFiZWw7XG4gIH1cblxuICBzZXQgbGFiZWwodmFsKSB7XG4gICAgdGhpcy5fbGFiZWwgPSB2YWw7XG4gIH1cblxuXG4gIGdldCBsYWJlbFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuc2VsZWN0ZWRPcHRpb24gPyB0aGlzLnNlbGVjdGVkT3B0aW9uLmxhYmVsIDogbnVsbCk7XG4gIH1cbn1cblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBEcm9wZG93bkNvbXBvbmVudCxcbiAgICBEcm9wZG93bkl0ZW0sXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBUb29sdGlwTW9kdWxlLFxuICAgIFNjcm9sbGluZ01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUHJpbWVuZ0NvbXBvbmVudHNNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRHJvcGRvd25Db21wb25lbnQsXG4gIF0sXG4gIGVudHJ5Q29tcG9uZW50czogW1xuICAgIERyb3Bkb3duQ29tcG9uZW50LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29tcG9uZW50TW9kdWxlIHtcbn1cbiJdfQ==
@@ -6,6 +6,7 @@ import { ScrollingModule } from '@angular/cdk/scrolling';
6
6
  import { CommonModule } from '@angular/common';
7
7
  import { PrimengComponentsModule } from '../primeng.module';
8
8
  import { animate, state, style, transition, trigger } from '@angular/animations';
9
+ import { TranslateModule } from '@ngx-translate/core';
9
10
  var DropdownItem = /** @class */ (function () {
10
11
  function DropdownItem() {
11
12
  this.onClick = new EventEmitter();
@@ -296,7 +297,7 @@ var DropdownComponent = /** @class */ (function (_super) {
296
297
  DropdownComponent = DropdownComponent_1 = __decorate([
297
298
  Component({
298
299
  selector: 'in-dropdown',
299
- template: "<span *ngIf=\"label\" class=\"c-label__content\">\n {{label}}\n <span *ngIf=\"required\" class=\"c-label__req\">*</span>\n<span *ngIf=\"error\" class=\"c-label__sub_is-error\">{{error}}</span>\n </span>\n<div #container (click)=\"onMouseclick($event)\"\n [class]=\"styleClass\" [ngClass]=\"{'ui-dropdown ui-widget ui-state-default ui-corner-all ui-helper-clearfix':true,\n 'ui-state-disabled':disabled, 'ui-dropdown-open':overlayVisible, 'ui-state-focus':focused, 'ui-dropdown-clearable': showClear && !disabled}\" [ngStyle]=\"style\">\n <div class=\"ui-helper-hidden-accessible\">\n <input #in (blur)=\"onInputBlur($event)\" (focus)=\"onInputFocus($event)\" (keydown)=\"onKeydown($event, true)\"\n [attr.aria-label]=\"selectedOption ? selectedOption.label : ' '\" [attr.autofocus]=\"autofocus\" [attr.id]=\"inputId\"\n [attr.tabindex]=\"tabindex\" [disabled]=\"disabled\" aria-haspopup=\"listbox\"\n readonly type=\"text\">\n </div>\n <div class=\"ui-helper-hidden-accessible ui-dropdown-hidden-select\">\n <select [attr.name]=\"name\" [attr.required]=\"required\" aria-hidden=\"true\" tabindex=\"-1\">\n <option *ngIf=\"placeholder\" value=\"\">{{placeholder}}</option>\n <option *ngIf=\"selectedOption\" [selected]=\"true\"\n [value]=\"selectedOption.value\">{{selectedOption.label}}</option>\n </select>\n </div>\n <div [pTooltip]=\"tooltip\" [positionStyle]=\"tooltipPositionStyle\" [tooltipPosition]=\"tooltipPosition\"\n [tooltipStyleClass]=\"tooltipStyleClass\" class=\"ui-dropdown-label-container\">\n <label\n *ngIf=\"!editable && (labelText != null)\"\n [attr.title]=\"labelText || 'empty'\"\n [ngClass]=\"{'ui-dropdown-label ui-inputtext ui-corner-all':true,'ui-dropdown-label-empty':(labelText == null || labelText.length === 0)}\">\n <ng-container *ngIf=\"!selectedItemTemplate\">{{labelText || 'empty'}}</ng-container>\n <ng-container *ngTemplateOutlet=\"selectedItemTemplate; context: {$implicit: selectedOption}\"></ng-container>\n </label>\n <label\n *ngIf=\"!editable && (labelText == null)\"\n [ngClass]=\"{'ui-dropdown-label ui-inputtext ui-corner-all ui-placeholder':true,'ui-dropdown-label-empty': (placeholder == null || placeholder.length === 0)}\">{{placeholder || 'empty'}}</label>\n <input #editableInput (blur)=\"onInputBlur($event)\" (click)=\"onEditableInputClick($event)\"\n (focus)=\"onEditableInputFocus($event)\"\n (input)=\"onEditableInputChange($event)\" *ngIf=\"editable\" [attr.aria-label]=\"selectedOption ? selectedOption.label : ' '\"\n [attr.maxlength]=\"maxlength\"\n [attr.placeholder]=\"placeholder\" [disabled]=\"disabled\"\n class=\"ui-dropdown-label ui-inputtext ui-corner-all\" type=\"text\">\n <i (click)=\"clear($event)\" *ngIf=\"value != null && showClear && !disabled\"\n class=\"ui-dropdown-clear-icon pi pi-times\"></i>\n </div>\n <div class=\"ui-dropdown-trigger ui-state-default ui-corner-right\">\n <span [ngClass]=\"dropdownIcon\" class=\"ui-dropdown-trigger-icon ui-clickable\"></span>\n </div>\n <div (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\" *ngIf=\"overlayVisible\"\n [@overlayAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\"\n [class]=\"panelStyleClass\"\n [ngClass]=\"'ui-dropdown-panel ui-widget ui-widget-content ui-corner-all ui-shadow'\"\n [ngStyle]=\"panelStyle\"\n [attr.virtual-scroll]=\"virtualScroll ? 'true' : null\">\n <div (click)=\"$event.stopPropagation()\" *ngIf=\"filter\" class=\"ui-dropdown-filter-container\">\n <input #filter (input)=\"onFilter($event)\" (keydown)=\"onKeydown($event, false)\" (keydown.enter)=\"$event.preventDefault()\"\n [attr.aria-label]=\"ariaFilterLabel\"\n [attr.placeholder]=\"filterPlaceholder\"\n [value]=\"filterValue||''\" autocomplete=\"off\"\n class=\"ui-dropdown-filter ui-inputtext ui-widget ui-state-default ui-corner-all\" type=\"text\">\n <span class=\"ui-dropdown-filter-icon pi pi-search\"></span>\n </div>\n <div [style.max-height]=\"virtualScroll ? 'auto' : (scrollHeight||'auto')\" class=\"ui-dropdown-items-wrapper\">\n <ul class=\"ui-dropdown-items ui-dropdown-list ui-widget-content ui-widget ui-corner-all ui-helper-reset\"\n role=\"listbox\">\n <ng-container *ngIf=\"group\">\n <ng-template [ngForOf]=\"optionsToDisplay\" let-optgroup ngFor>\n <li class=\"ui-dropdown-item-group\">\n <span *ngIf=\"!groupTemplate\">{{optgroup.label || 'empty'}}</span>\n <ng-container\n *ngTemplateOutlet=\"groupTemplate; context: {$implicit: optgroup}\"></ng-container>\n </li>\n <ng-container\n *ngTemplateOutlet=\"itemslist; context: {$implicit: optgroup.items, selectedOption: selectedOption}\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!group\">\n <ng-container\n *ngTemplateOutlet=\"itemslist; context: {$implicit: optionsToDisplay, selectedOption: selectedOption}\"></ng-container>\n </ng-container>\n <ng-template #itemslist let-options let-selectedOption=\"selectedOption\">\n <ng-container *ngIf=\"!virtualScroll; else virtualScrollList\">\n <ng-template [ngForOf]=\"options\" let-i=\"index\" let-option ngFor>\n <p-dropdownItem (onClick)=\"onItemClick($event)\" [option]=\"option\"\n [selected]=\"selectedOption == option\"\n [template]=\"itemTemplate\"></p-dropdownItem>\n </ng-template>\n </ng-container>\n <ng-template #virtualScrollList>\n <cdk-virtual-scroll-viewport #viewport\n (scrolledIndexChange)=\"scrollToSelectedVirtualScrollElement()\" *ngIf=\"virtualScroll && optionsToDisplay && optionsToDisplay.length\"\n [itemSize]=\"itemSize\"\n [ngStyle]=\"{'height': scrollHeight}\">\n <ng-container\n *cdkVirtualFor=\"let option of options; let i = index; let c = count; let f = first; let l = last; let e = even; let o = odd\">\n <p-dropdownItem (onClick)=\"onItemClick($event)\" [option]=\"option\"\n [attr.title]=\"option.label\"\n [selected]=\"selectedOption == option\"\n [template]=\"itemTemplate\"></p-dropdownItem>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n </ng-template>\n <li *ngIf=\"filter && optionsToDisplay && optionsToDisplay.length === 0\"\n class=\"ui-dropdown-empty-message\">{{emptyFilterMessage}}</li>\n </ul>\n </div>\n </div>\n</div>\n",
300
+ template: "<span *ngIf=\"label\" class=\"c-label__content\">\n {{label}}\n <span *ngIf=\"required\" class=\"c-label__req\">*</span>\n<span *ngIf=\"error\" class=\"c-label__sub_is-error\">{{error}}</span>\n </span>\n<div #container (click)=\"onMouseclick($event)\"\n [class]=\"styleClass\" [ngClass]=\"{'ui-dropdown ui-widget ui-state-default ui-corner-all ui-helper-clearfix':true,\n 'ui-state-disabled':disabled, 'ui-dropdown-open':overlayVisible, 'ui-state-focus':focused, 'ui-dropdown-clearable': showClear && !disabled}\" [ngStyle]=\"style\">\n <div class=\"ui-helper-hidden-accessible\">\n <input #in (blur)=\"onInputBlur($event)\" (focus)=\"onInputFocus($event)\" (keydown)=\"onKeydown($event, true)\"\n [attr.aria-label]=\"selectedOption ? selectedOption.label : ' '\" [attr.autofocus]=\"autofocus\" [attr.id]=\"inputId\"\n [attr.tabindex]=\"tabindex\" [disabled]=\"disabled\" aria-haspopup=\"listbox\"\n readonly type=\"text\">\n </div>\n <div class=\"ui-helper-hidden-accessible ui-dropdown-hidden-select\">\n <select [attr.name]=\"name\" [attr.required]=\"required\" aria-hidden=\"true\" tabindex=\"-1\">\n <option *ngIf=\"placeholder\" value=\"\">{{placeholder}}</option>\n <option *ngIf=\"selectedOption\" [selected]=\"true\"\n [value]=\"selectedOption.value\">{{selectedOption.label}}</option>\n </select>\n </div>\n <div [pTooltip]=\"tooltip\" [positionStyle]=\"tooltipPositionStyle\" [tooltipPosition]=\"tooltipPosition\"\n [tooltipStyleClass]=\"tooltipStyleClass\" class=\"ui-dropdown-label-container\">\n <label\n *ngIf=\"!editable && (labelText != null)\"\n [attr.title]=\"labelText ? (labelText | translate) : null\"\n [ngClass]=\"{'ui-dropdown-label ui-inputtext ui-corner-all':true,'ui-dropdown-label-empty':(labelText == null || labelText.length === 0)}\">\n <ng-container *ngIf=\"!selectedItemTemplate\">{{labelText || 'empty'}}</ng-container>\n <ng-container *ngTemplateOutlet=\"selectedItemTemplate; context: {$implicit: selectedOption}\"></ng-container>\n </label>\n <label\n *ngIf=\"!editable && (labelText == null)\"\n [ngClass]=\"{'ui-dropdown-label ui-inputtext ui-corner-all ui-placeholder':true,'ui-dropdown-label-empty': (placeholder == null || placeholder.length === 0)}\">{{placeholder || 'empty'}}</label>\n <input #editableInput (blur)=\"onInputBlur($event)\" (click)=\"onEditableInputClick($event)\"\n (focus)=\"onEditableInputFocus($event)\"\n (input)=\"onEditableInputChange($event)\" *ngIf=\"editable\" [attr.aria-label]=\"selectedOption ? selectedOption.label : ' '\"\n [attr.maxlength]=\"maxlength\"\n [attr.placeholder]=\"placeholder\" [disabled]=\"disabled\"\n class=\"ui-dropdown-label ui-inputtext ui-corner-all\" type=\"text\">\n <i (click)=\"clear($event)\" *ngIf=\"value != null && showClear && !disabled\"\n class=\"ui-dropdown-clear-icon pi pi-times\"></i>\n </div>\n <div class=\"ui-dropdown-trigger ui-state-default ui-corner-right\">\n <span [ngClass]=\"dropdownIcon\" class=\"ui-dropdown-trigger-icon ui-clickable\"></span>\n </div>\n <div (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\" *ngIf=\"overlayVisible\"\n [@overlayAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\"\n [class]=\"panelStyleClass\"\n [ngClass]=\"'ui-dropdown-panel ui-widget ui-widget-content ui-corner-all ui-shadow'\"\n [ngStyle]=\"panelStyle\"\n [attr.virtual-scroll]=\"virtualScroll ? 'true' : null\">\n <div (click)=\"$event.stopPropagation()\" *ngIf=\"filter\" class=\"ui-dropdown-filter-container\">\n <input #filter (input)=\"onFilter($event)\" (keydown)=\"onKeydown($event, false)\" (keydown.enter)=\"$event.preventDefault()\"\n [attr.aria-label]=\"ariaFilterLabel\"\n [attr.placeholder]=\"filterPlaceholder\"\n [value]=\"filterValue||''\" autocomplete=\"off\"\n class=\"ui-dropdown-filter ui-inputtext ui-widget ui-state-default ui-corner-all\" type=\"text\">\n <span class=\"ui-dropdown-filter-icon pi pi-search\"></span>\n </div>\n <div [style.max-height]=\"virtualScroll ? 'auto' : (scrollHeight||'auto')\" class=\"ui-dropdown-items-wrapper\">\n <ul class=\"ui-dropdown-items ui-dropdown-list ui-widget-content ui-widget ui-corner-all ui-helper-reset\"\n role=\"listbox\">\n <ng-container *ngIf=\"group\">\n <ng-template [ngForOf]=\"optionsToDisplay\" let-optgroup ngFor>\n <li class=\"ui-dropdown-item-group\">\n <span *ngIf=\"!groupTemplate\">{{optgroup.label || 'empty'}}</span>\n <ng-container\n *ngTemplateOutlet=\"groupTemplate; context: {$implicit: optgroup}\"></ng-container>\n </li>\n <ng-container\n *ngTemplateOutlet=\"itemslist; context: {$implicit: optgroup.items, selectedOption: selectedOption}\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!group\">\n <ng-container\n *ngTemplateOutlet=\"itemslist; context: {$implicit: optionsToDisplay, selectedOption: selectedOption}\"></ng-container>\n </ng-container>\n <ng-template #itemslist let-options let-selectedOption=\"selectedOption\">\n <ng-container *ngIf=\"!virtualScroll; else virtualScrollList\">\n <ng-template [ngForOf]=\"options\" let-i=\"index\" let-option ngFor>\n <p-dropdownItem (onClick)=\"onItemClick($event)\" [option]=\"option\"\n [selected]=\"selectedOption == option\"\n [template]=\"itemTemplate\"></p-dropdownItem>\n </ng-template>\n </ng-container>\n <ng-template #virtualScrollList>\n <cdk-virtual-scroll-viewport #viewport\n (scrolledIndexChange)=\"scrollToSelectedVirtualScrollElement()\" *ngIf=\"virtualScroll && optionsToDisplay && optionsToDisplay.length\"\n [itemSize]=\"itemSize\"\n [ngStyle]=\"{'height': scrollHeight}\">\n <ng-container\n *cdkVirtualFor=\"let option of options; let i = index; let c = count; let f = first; let l = last; let e = even; let o = odd\">\n <p-dropdownItem (onClick)=\"onItemClick($event)\" [option]=\"option\"\n [attr.title]=\"option.label\"\n [selected]=\"selectedOption == option\"\n [template]=\"itemTemplate\"></p-dropdownItem>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n </ng-template>\n <li *ngIf=\"filter && optionsToDisplay && optionsToDisplay.length === 0\"\n class=\"ui-dropdown-empty-message\">{{emptyFilterMessage}}</li>\n </ul>\n </div>\n </div>\n</div>\n",
300
301
  animations: [
301
302
  trigger('overlayAnimation', [
302
303
  state('void', style({
@@ -336,6 +337,7 @@ var DropdownComponentModule = /** @class */ (function () {
336
337
  ScrollingModule,
337
338
  CommonModule,
338
339
  PrimengComponentsModule,
340
+ TranslateModule,
339
341
  ],
340
342
  exports: [
341
343
  DropdownComponent,
@@ -348,4 +350,4 @@ var DropdownComponentModule = /** @class */ (function () {
348
350
  return DropdownComponentModule;
349
351
  }());
350
352
  export { DropdownComponentModule };
351
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGluc3BhcmsvaW5zcGFyay1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxRQUFRLEVBQWMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBaUIsTUFBTSxxQkFBcUIsQ0FBQztBQW1CL0Y7SUFBQTtRQWNZLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQVE1RCxDQUFDO0lBTkMsb0NBQWEsR0FBYixVQUFjLEtBQVk7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEIsYUFBYSxFQUFFLEtBQUs7WUFDcEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFuQlE7UUFBUixLQUFLLEVBQUU7O2dEQUFvQjtJQUVuQjtRQUFSLEtBQUssRUFBRTs7a0RBQW1CO0lBRWxCO1FBQVIsS0FBSyxFQUFFOztrREFBbUI7SUFFbEI7UUFBUixLQUFLLEVBQUU7O2lEQUFr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O0NBQUEsQUFERCxJQUNDO1NBRFksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE5nTW9kdWxlLCBPdXRwdXQsIFRlbXBsYXRlUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0Ryb3Bkb3duLCBTZWxlY3RJdGVtLCBUb29sdGlwTW9kdWxlfSBmcm9tICdwcmltZW5nL3ByaW1lbmcnO1xuaW1wb3J0IHtTY3JvbGxpbmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7UHJpbWVuZ0NvbXBvbmVudHNNb2R1bGV9IGZyb20gJy4uL3ByaW1lbmcubW9kdWxlJztcbmltcG9ydCB7YW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyLCBBbmltYXRpb25FdmVudH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1kcm9wZG93bkl0ZW0nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxsaSAoY2xpY2spPVwib25PcHRpb25DbGljaygkZXZlbnQpXCIgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwib3B0aW9uLmxhYmVsXCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwib3B0aW9uLmxhYmVsXCJcbiAgICAgICAgW25nU3R5bGVdPVwieydoZWlnaHQnOiBpdGVtU2l6ZSArICdweCd9XCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyd1aS1kcm9wZG93bi1pdGVtIHVpLWNvcm5lci1hbGwnOnRydWUsXG4gICAgICAgICAgICAgICAgICAgICd1aS1zdGF0ZS1oaWdobGlnaHQnOiBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgJ3VpLXN0YXRlLWRpc2FibGVkJzoob3B0aW9uLmRpc2FibGVkKSxcbiAgICAgICAgICAgICAgICAgICAgJ3VpLWRyb3Bkb3duLWl0ZW0tZW1wdHknOiAhb3B0aW9uLmxhYmVsfHxvcHRpb24ubGFiZWwubGVuZ3RoID09PSAwfVwiPlxuICAgICAgPHNwYW4gKm5nSWY9XCIhdGVtcGxhdGVcIj57e29wdGlvbi5sYWJlbCB8fCAnZW1wdHknfX08L3NwYW4+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IG9wdGlvbn1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2xpPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duSXRlbSB7XG5cbiAgQElucHV0KCkgb3B0aW9uOiBTZWxlY3RJdGVtO1xuXG4gIEBJbnB1dCgpIHNlbGVjdGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHZpc2libGU6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgaXRlbVNpemU6IG51bWJlcjtcblxuICBASW5wdXQoKSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAT3V0cHV0KCkgb25DbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgb25PcHRpb25DbGljayhldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh7XG4gICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcbiAgICAgIG9wdGlvbjogdGhpcy5vcHRpb25cbiAgICB9KTtcbiAgfVxufVxuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2luLWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24uY29tcG9uZW50LmNzcyddLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignb3ZlcmxheUFuaW1hdGlvbicsIFtcbiAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoe1xuICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDUlKScsXG4gICAgICAgIG9wYWNpdHk6IDBcbiAgICAgIH0pKSxcbiAgICAgIHN0YXRlKCd2aXNpYmxlJywgc3R5bGUoe1xuICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDApJyxcbiAgICAgICAgb3BhY2l0eTogMVxuICAgICAgfSkpLFxuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiB2aXNpYmxlJywgYW5pbWF0ZSgne3tzaG93VHJhbnNpdGlvblBhcmFtc319JykpLFxuICAgICAgdHJhbnNpdGlvbigndmlzaWJsZSA9PiB2b2lkJywgYW5pbWF0ZSgne3toaWRlVHJhbnNpdGlvblBhcmFtc319JykpXG4gICAgXSlcbiAgXSxcbiAgcHJvdmlkZXJzOiBbe1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERyb3Bkb3duQ29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZVxuICB9XVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbXBvbmVudCBleHRlbmRzIERyb3Bkb3duIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIEBJbnB1dCgpIHNjcm9sbEhlaWdodCA9ICcyMDBweCc7XG5cbiAgQElucHV0KCkgZmlsdGVyOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcblxuICBASW5wdXQoKSBzdHlsZTogYW55O1xuXG4gIEBJbnB1dCgpIHBhbmVsU3R5bGU6IGFueTtcblxuICBASW5wdXQoKSBzdHlsZUNsYXNzOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgcGFuZWxTdHlsZUNsYXNzOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgZWRpdGFibGU6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgYXBwZW5kVG86IGFueTtcblxuICBASW5wdXQoKSB0YWJpbmRleDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgZmlsdGVyUGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBASW5wdXQoKSBpbnB1dElkOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgc2VsZWN0SWQ6IHN0cmluZztcblxuICBASW5wdXQoKSBkYXRhS2V5OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgZmlsdGVyQnkgPSAnbGFiZWwnO1xuXG4gIEBJbnB1dCgpIGF1dG9mb2N1czogYm9vbGVhbjtcblxuICBASW5wdXQoKSByZXNldEZpbHRlck9uSGlkZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGRyb3Bkb3duSWNvbiA9ICdwaSBwaS1jaGV2cm9uLWRvd24nO1xuXG4gIEBJbnB1dCgpIG9wdGlvbkxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgYXV0b0Rpc3BsYXlGaXJzdCA9IHRydWU7XG5cbiAgQElucHV0KCkgZ3JvdXA6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgc2hvd0NsZWFyOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGVtcHR5RmlsdGVyTWVzc2FnZSA9ICdObyByZXN1bHRzIGZvdW5kJztcblxuICBASW5wdXQoKSB2aXJ0dWFsU2Nyb2xsOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGl0ZW1TaXplOiBudW1iZXI7XG5cbiAgQElucHV0KCkgYXV0b1pJbmRleCA9IHRydWU7XG5cbiAgQElucHV0KCkgYmFzZVpJbmRleCA9IDA7XG5cbiAgQElucHV0KCkgc2hvd1RyYW5zaXRpb25PcHRpb25zID0gJzBtcyc7XG5cbiAgQElucHV0KCkgaGlkZVRyYW5zaXRpb25PcHRpb25zID0gJzBtcyc7XG5cbiAgQElucHV0KCkgYXJpYUZpbHRlckxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgZmlsdGVyTWF0Y2hNb2RlID0gJ2NvbnRhaW5zJztcblxuICBASW5wdXQoKSBtYXhsZW5ndGg6IG51bWJlcjtcblxuICBASW5wdXQoKSB0b29sdGlwID0gJyc7XG5cbiAgQElucHV0KCkgb3B0aW9uczogYW55W107XG5cbiAgQElucHV0KCkgZXJyb3IgPSBudWxsO1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBQb3NpdGlvbiA9ICdyaWdodCc7XG5cbiAgQElucHV0KCkgdG9vbHRpcFBvc2l0aW9uU3R5bGUgPSAnYWJzb2x1dGUnO1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBTdHlsZUNsYXNzOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIG9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgb25Gb2N1czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIG9uQmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSBvblNob3c6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSBvbkhpZGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cbiAgX2xhYmVsID0gJyc7XG5cbiAgQElucHV0KCkgZ2V0IGxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2xhYmVsO1xuICB9XG5cbiAgc2V0IGxhYmVsKHZhbCkge1xuICAgIHRoaXMuX2xhYmVsID0gdmFsO1xuICB9XG5cblxuICBnZXQgbGFiZWxUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLnNlbGVjdGVkT3B0aW9uID8gdGhpcy5zZWxlY3RlZE9wdGlvbi5sYWJlbCA6IG51bGwpO1xuICB9XG59XG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRHJvcGRvd25Db21wb25lbnQsXG4gICAgRHJvcGRvd25JdGVtLFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgVG9vbHRpcE1vZHVsZSxcbiAgICBTY3JvbGxpbmdNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFByaW1lbmdDb21wb25lbnRzTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRHJvcGRvd25Db21wb25lbnQsXG4gIF0sXG4gIGVudHJ5Q29tcG9uZW50czogW1xuICAgIERyb3Bkb3duQ29tcG9uZW50LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29tcG9uZW50TW9kdWxlIHtcbn1cbiJdfQ==
353
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGluc3BhcmsvaW5zcGFyay1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxRQUFRLEVBQWMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBaUIsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFtQnBEO0lBQUE7UUFjWSxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFRNUQsQ0FBQztJQU5DLG9DQUFhLEdBQWIsVUFBYyxLQUFZO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2hCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBbkJRO1FBQVIsS0FBSyxFQUFFOztnREFBb0I7SUFFbkI7UUFBUixLQUFLLEVBQUU7O2tEQUFtQjtJQUVsQjtRQUFSLEtB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QUNmLGlCQUFpQjthQUNsQjtTQUNGLENBQUM7T0FDVyx1QkFBdUIsQ0FDbkM7SUFBRCw4QkFBQztDQUFBLEFBREQsSUFDQztTQURZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBOZ01vZHVsZSwgT3V0cHV0LCBUZW1wbGF0ZVJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtEcm9wZG93biwgU2VsZWN0SXRlbSwgVG9vbHRpcE1vZHVsZX0gZnJvbSAncHJpbWVuZy9wcmltZW5nJztcbmltcG9ydCB7U2Nyb2xsaW5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcblxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1ByaW1lbmdDb21wb25lbnRzTW9kdWxlfSBmcm9tICcuLi9wcmltZW5nLm1vZHVsZSc7XG5pbXBvcnQge2FuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciwgQW5pbWF0aW9uRXZlbnR9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtZHJvcGRvd25JdGVtJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bGkgKGNsaWNrKT1cIm9uT3B0aW9uQ2xpY2soJGV2ZW50KVwiIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm9wdGlvbi5sYWJlbFwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cIm9wdGlvbi5sYWJlbFwiXG4gICAgICAgIFtuZ1N0eWxlXT1cInsnaGVpZ2h0JzogaXRlbVNpemUgKyAncHgnfVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsndWktZHJvcGRvd24taXRlbSB1aS1jb3JuZXItYWxsJzp0cnVlLFxuICAgICAgICAgICAgICAgICAgICAndWktc3RhdGUtaGlnaGxpZ2h0Jzogc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICd1aS1zdGF0ZS1kaXNhYmxlZCc6KG9wdGlvbi5kaXNhYmxlZCksXG4gICAgICAgICAgICAgICAgICAgICd1aS1kcm9wZG93bi1pdGVtLWVtcHR5JzogIW9wdGlvbi5sYWJlbHx8b3B0aW9uLmxhYmVsLmxlbmd0aCA9PT0gMH1cIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiIXRlbXBsYXRlXCI+e3tvcHRpb24ubGFiZWwgfHwgJ2VtcHR5J319PC9zcGFuPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBvcHRpb259XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9saT5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkl0ZW0ge1xuXG4gIEBJbnB1dCgpIG9wdGlvbjogU2VsZWN0SXRlbTtcblxuICBASW5wdXQoKSBzZWxlY3RlZDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcblxuICBASW5wdXQoKSB2aXNpYmxlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGl0ZW1TaXplOiBudW1iZXI7XG5cbiAgQElucHV0KCkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQE91dHB1dCgpIG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIG9uT3B0aW9uQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQoe1xuICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXG4gICAgICBvcHRpb246IHRoaXMub3B0aW9uXG4gICAgfSk7XG4gIH1cbn1cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbi1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLmNvbXBvbmVudC5jc3MnXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ292ZXJsYXlBbmltYXRpb24nLCBbXG4gICAgICBzdGF0ZSgndm9pZCcsIHN0eWxlKHtcbiAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSg1JSknLFxuICAgICAgICBvcGFjaXR5OiAwXG4gICAgICB9KSksXG4gICAgICBzdGF0ZSgndmlzaWJsZScsIHN0eWxlKHtcbiAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScsXG4gICAgICAgIG9wYWNpdHk6IDFcbiAgICAgIH0pKSxcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gdmlzaWJsZScsIGFuaW1hdGUoJ3t7c2hvd1RyYW5zaXRpb25QYXJhbXN9fScpKSxcbiAgICAgIHRyYW5zaXRpb24oJ3Zpc2libGUgPT4gdm9pZCcsIGFuaW1hdGUoJ3t7aGlkZVRyYW5zaXRpb25QYXJhbXN9fScpKVxuICAgIF0pXG4gIF0sXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEcm9wZG93bkNvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbiAgfV1cbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Db21wb25lbnQgZXh0ZW5kcyBEcm9wZG93biBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICBASW5wdXQoKSBzY3JvbGxIZWlnaHQgPSAnMjAwcHgnO1xuXG4gIEBJbnB1dCgpIGZpbHRlcjogYm9vbGVhbjtcblxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgc3R5bGU6IGFueTtcblxuICBASW5wdXQoKSBwYW5lbFN0eWxlOiBhbnk7XG5cbiAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHBhbmVsU3R5bGVDbGFzczogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGVkaXRhYmxlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGFwcGVuZFRvOiBhbnk7XG5cbiAgQElucHV0KCkgdGFiaW5kZXg6IG51bWJlcjtcblxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGZpbHRlclBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgaW5wdXRJZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHNlbGVjdElkOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgZGF0YUtleTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGZpbHRlckJ5ID0gJ2xhYmVsJztcblxuICBASW5wdXQoKSBhdXRvZm9jdXM6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgcmVzZXRGaWx0ZXJPbkhpZGUgPSBmYWxzZTtcblxuICBASW5wdXQoKSBkcm9wZG93bkljb24gPSAncGkgcGktY2hldnJvbi1kb3duJztcblxuICBASW5wdXQoKSBvcHRpb25MYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGF1dG9EaXNwbGF5Rmlyc3QgPSB0cnVlO1xuXG4gIEBJbnB1dCgpIGdyb3VwOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHNob3dDbGVhcjogYm9vbGVhbjtcblxuICBASW5wdXQoKSBlbXB0eUZpbHRlck1lc3NhZ2UgPSAnTm8gcmVzdWx0cyBmb3VuZCc7XG5cbiAgQElucHV0KCkgdmlydHVhbFNjcm9sbDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBpdGVtU2l6ZTogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIGF1dG9aSW5kZXggPSB0cnVlO1xuXG4gIEBJbnB1dCgpIGJhc2VaSW5kZXggPSAwO1xuXG4gIEBJbnB1dCgpIHNob3dUcmFuc2l0aW9uT3B0aW9ucyA9ICcwbXMnO1xuXG4gIEBJbnB1dCgpIGhpZGVUcmFuc2l0aW9uT3B0aW9ucyA9ICcwbXMnO1xuXG4gIEBJbnB1dCgpIGFyaWFGaWx0ZXJMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGZpbHRlck1hdGNoTW9kZSA9ICdjb250YWlucyc7XG5cbiAgQElucHV0KCkgbWF4bGVuZ3RoOiBudW1iZXI7XG5cbiAgQElucHV0KCkgdG9vbHRpcCA9ICcnO1xuXG4gIEBJbnB1dCgpIG9wdGlvbnM6IGFueVtdO1xuXG4gIEBJbnB1dCgpIGVycm9yID0gbnVsbDtcblxuICBASW5wdXQoKSB0b29sdGlwUG9zaXRpb24gPSAncmlnaHQnO1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBQb3NpdGlvblN0eWxlID0gJ2Fic29sdXRlJztcblxuICBASW5wdXQoKSB0b29sdGlwU3R5bGVDbGFzczogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSBvbkJsdXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgb25TaG93OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgb25IaWRlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXG4gIF9sYWJlbCA9ICcnO1xuXG4gIEBJbnB1dCgpIGdldCBsYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9sYWJlbDtcbiAgfVxuXG4gIHNldCBsYWJlbCh2YWwpIHtcbiAgICB0aGlzLl9sYWJlbCA9IHZhbDtcbiAgfVxuXG5cbiAgZ2V0IGxhYmVsVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5zZWxlY3RlZE9wdGlvbiA/IHRoaXMuc2VsZWN0ZWRPcHRpb24ubGFiZWwgOiBudWxsKTtcbiAgfVxufVxuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIERyb3Bkb3duQ29tcG9uZW50LFxuICAgIERyb3Bkb3duSXRlbSxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgU2Nyb2xsaW5nTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBQcmltZW5nQ29tcG9uZW50c01vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBEcm9wZG93bkNvbXBvbmVudCxcbiAgXSxcbiAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgRHJvcGRvd25Db21wb25lbnQsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Db21wb25lbnRNb2R1bGUge1xufVxuIl19
@@ -1376,7 +1376,7 @@ __decorate([
1376
1376
  DropdownComponent = DropdownComponent_1 = __decorate([
1377
1377
  Component({
1378
1378
  selector: 'in-dropdown',
1379
- template: "<span *ngIf=\"label\" class=\"c-label__content\">\n {{label}}\n <span *ngIf=\"required\" class=\"c-label__req\">*</span>\n<span *ngIf=\"error\" class=\"c-label__sub_is-error\">{{error}}</span>\n </span>\n<div #container (click)=\"onMouseclick($event)\"\n [class]=\"styleClass\" [ngClass]=\"{'ui-dropdown ui-widget ui-state-default ui-corner-all ui-helper-clearfix':true,\n 'ui-state-disabled':disabled, 'ui-dropdown-open':overlayVisible, 'ui-state-focus':focused, 'ui-dropdown-clearable': showClear && !disabled}\" [ngStyle]=\"style\">\n <div class=\"ui-helper-hidden-accessible\">\n <input #in (blur)=\"onInputBlur($event)\" (focus)=\"onInputFocus($event)\" (keydown)=\"onKeydown($event, true)\"\n [attr.aria-label]=\"selectedOption ? selectedOption.label : ' '\" [attr.autofocus]=\"autofocus\" [attr.id]=\"inputId\"\n [attr.tabindex]=\"tabindex\" [disabled]=\"disabled\" aria-haspopup=\"listbox\"\n readonly type=\"text\">\n </div>\n <div class=\"ui-helper-hidden-accessible ui-dropdown-hidden-select\">\n <select [attr.name]=\"name\" [attr.required]=\"required\" aria-hidden=\"true\" tabindex=\"-1\">\n <option *ngIf=\"placeholder\" value=\"\">{{placeholder}}</option>\n <option *ngIf=\"selectedOption\" [selected]=\"true\"\n [value]=\"selectedOption.value\">{{selectedOption.label}}</option>\n </select>\n </div>\n <div [pTooltip]=\"tooltip\" [positionStyle]=\"tooltipPositionStyle\" [tooltipPosition]=\"tooltipPosition\"\n [tooltipStyleClass]=\"tooltipStyleClass\" class=\"ui-dropdown-label-container\">\n <label\n *ngIf=\"!editable && (labelText != null)\"\n [attr.title]=\"labelText || 'empty'\"\n [ngClass]=\"{'ui-dropdown-label ui-inputtext ui-corner-all':true,'ui-dropdown-label-empty':(labelText == null || labelText.length === 0)}\">\n <ng-container *ngIf=\"!selectedItemTemplate\">{{labelText || 'empty'}}</ng-container>\n <ng-container *ngTemplateOutlet=\"selectedItemTemplate; context: {$implicit: selectedOption}\"></ng-container>\n </label>\n <label\n *ngIf=\"!editable && (labelText == null)\"\n [ngClass]=\"{'ui-dropdown-label ui-inputtext ui-corner-all ui-placeholder':true,'ui-dropdown-label-empty': (placeholder == null || placeholder.length === 0)}\">{{placeholder || 'empty'}}</label>\n <input #editableInput (blur)=\"onInputBlur($event)\" (click)=\"onEditableInputClick($event)\"\n (focus)=\"onEditableInputFocus($event)\"\n (input)=\"onEditableInputChange($event)\" *ngIf=\"editable\" [attr.aria-label]=\"selectedOption ? selectedOption.label : ' '\"\n [attr.maxlength]=\"maxlength\"\n [attr.placeholder]=\"placeholder\" [disabled]=\"disabled\"\n class=\"ui-dropdown-label ui-inputtext ui-corner-all\" type=\"text\">\n <i (click)=\"clear($event)\" *ngIf=\"value != null && showClear && !disabled\"\n class=\"ui-dropdown-clear-icon pi pi-times\"></i>\n </div>\n <div class=\"ui-dropdown-trigger ui-state-default ui-corner-right\">\n <span [ngClass]=\"dropdownIcon\" class=\"ui-dropdown-trigger-icon ui-clickable\"></span>\n </div>\n <div (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\" *ngIf=\"overlayVisible\"\n [@overlayAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\"\n [class]=\"panelStyleClass\"\n [ngClass]=\"'ui-dropdown-panel ui-widget ui-widget-content ui-corner-all ui-shadow'\"\n [ngStyle]=\"panelStyle\"\n [attr.virtual-scroll]=\"virtualScroll ? 'true' : null\">\n <div (click)=\"$event.stopPropagation()\" *ngIf=\"filter\" class=\"ui-dropdown-filter-container\">\n <input #filter (input)=\"onFilter($event)\" (keydown)=\"onKeydown($event, false)\" (keydown.enter)=\"$event.preventDefault()\"\n [attr.aria-label]=\"ariaFilterLabel\"\n [attr.placeholder]=\"filterPlaceholder\"\n [value]=\"filterValue||''\" autocomplete=\"off\"\n class=\"ui-dropdown-filter ui-inputtext ui-widget ui-state-default ui-corner-all\" type=\"text\">\n <span class=\"ui-dropdown-filter-icon pi pi-search\"></span>\n </div>\n <div [style.max-height]=\"virtualScroll ? 'auto' : (scrollHeight||'auto')\" class=\"ui-dropdown-items-wrapper\">\n <ul class=\"ui-dropdown-items ui-dropdown-list ui-widget-content ui-widget ui-corner-all ui-helper-reset\"\n role=\"listbox\">\n <ng-container *ngIf=\"group\">\n <ng-template [ngForOf]=\"optionsToDisplay\" let-optgroup ngFor>\n <li class=\"ui-dropdown-item-group\">\n <span *ngIf=\"!groupTemplate\">{{optgroup.label || 'empty'}}</span>\n <ng-container\n *ngTemplateOutlet=\"groupTemplate; context: {$implicit: optgroup}\"></ng-container>\n </li>\n <ng-container\n *ngTemplateOutlet=\"itemslist; context: {$implicit: optgroup.items, selectedOption: selectedOption}\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!group\">\n <ng-container\n *ngTemplateOutlet=\"itemslist; context: {$implicit: optionsToDisplay, selectedOption: selectedOption}\"></ng-container>\n </ng-container>\n <ng-template #itemslist let-options let-selectedOption=\"selectedOption\">\n <ng-container *ngIf=\"!virtualScroll; else virtualScrollList\">\n <ng-template [ngForOf]=\"options\" let-i=\"index\" let-option ngFor>\n <p-dropdownItem (onClick)=\"onItemClick($event)\" [option]=\"option\"\n [selected]=\"selectedOption == option\"\n [template]=\"itemTemplate\"></p-dropdownItem>\n </ng-template>\n </ng-container>\n <ng-template #virtualScrollList>\n <cdk-virtual-scroll-viewport #viewport\n (scrolledIndexChange)=\"scrollToSelectedVirtualScrollElement()\" *ngIf=\"virtualScroll && optionsToDisplay && optionsToDisplay.length\"\n [itemSize]=\"itemSize\"\n [ngStyle]=\"{'height': scrollHeight}\">\n <ng-container\n *cdkVirtualFor=\"let option of options; let i = index; let c = count; let f = first; let l = last; let e = even; let o = odd\">\n <p-dropdownItem (onClick)=\"onItemClick($event)\" [option]=\"option\"\n [attr.title]=\"option.label\"\n [selected]=\"selectedOption == option\"\n [template]=\"itemTemplate\"></p-dropdownItem>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n </ng-template>\n <li *ngIf=\"filter && optionsToDisplay && optionsToDisplay.length === 0\"\n class=\"ui-dropdown-empty-message\">{{emptyFilterMessage}}</li>\n </ul>\n </div>\n </div>\n</div>\n",
1379
+ template: "<span *ngIf=\"label\" class=\"c-label__content\">\n {{label}}\n <span *ngIf=\"required\" class=\"c-label__req\">*</span>\n<span *ngIf=\"error\" class=\"c-label__sub_is-error\">{{error}}</span>\n </span>\n<div #container (click)=\"onMouseclick($event)\"\n [class]=\"styleClass\" [ngClass]=\"{'ui-dropdown ui-widget ui-state-default ui-corner-all ui-helper-clearfix':true,\n 'ui-state-disabled':disabled, 'ui-dropdown-open':overlayVisible, 'ui-state-focus':focused, 'ui-dropdown-clearable': showClear && !disabled}\" [ngStyle]=\"style\">\n <div class=\"ui-helper-hidden-accessible\">\n <input #in (blur)=\"onInputBlur($event)\" (focus)=\"onInputFocus($event)\" (keydown)=\"onKeydown($event, true)\"\n [attr.aria-label]=\"selectedOption ? selectedOption.label : ' '\" [attr.autofocus]=\"autofocus\" [attr.id]=\"inputId\"\n [attr.tabindex]=\"tabindex\" [disabled]=\"disabled\" aria-haspopup=\"listbox\"\n readonly type=\"text\">\n </div>\n <div class=\"ui-helper-hidden-accessible ui-dropdown-hidden-select\">\n <select [attr.name]=\"name\" [attr.required]=\"required\" aria-hidden=\"true\" tabindex=\"-1\">\n <option *ngIf=\"placeholder\" value=\"\">{{placeholder}}</option>\n <option *ngIf=\"selectedOption\" [selected]=\"true\"\n [value]=\"selectedOption.value\">{{selectedOption.label}}</option>\n </select>\n </div>\n <div [pTooltip]=\"tooltip\" [positionStyle]=\"tooltipPositionStyle\" [tooltipPosition]=\"tooltipPosition\"\n [tooltipStyleClass]=\"tooltipStyleClass\" class=\"ui-dropdown-label-container\">\n <label\n *ngIf=\"!editable && (labelText != null)\"\n [attr.title]=\"labelText ? (labelText | translate) : null\"\n [ngClass]=\"{'ui-dropdown-label ui-inputtext ui-corner-all':true,'ui-dropdown-label-empty':(labelText == null || labelText.length === 0)}\">\n <ng-container *ngIf=\"!selectedItemTemplate\">{{labelText || 'empty'}}</ng-container>\n <ng-container *ngTemplateOutlet=\"selectedItemTemplate; context: {$implicit: selectedOption}\"></ng-container>\n </label>\n <label\n *ngIf=\"!editable && (labelText == null)\"\n [ngClass]=\"{'ui-dropdown-label ui-inputtext ui-corner-all ui-placeholder':true,'ui-dropdown-label-empty': (placeholder == null || placeholder.length === 0)}\">{{placeholder || 'empty'}}</label>\n <input #editableInput (blur)=\"onInputBlur($event)\" (click)=\"onEditableInputClick($event)\"\n (focus)=\"onEditableInputFocus($event)\"\n (input)=\"onEditableInputChange($event)\" *ngIf=\"editable\" [attr.aria-label]=\"selectedOption ? selectedOption.label : ' '\"\n [attr.maxlength]=\"maxlength\"\n [attr.placeholder]=\"placeholder\" [disabled]=\"disabled\"\n class=\"ui-dropdown-label ui-inputtext ui-corner-all\" type=\"text\">\n <i (click)=\"clear($event)\" *ngIf=\"value != null && showClear && !disabled\"\n class=\"ui-dropdown-clear-icon pi pi-times\"></i>\n </div>\n <div class=\"ui-dropdown-trigger ui-state-default ui-corner-right\">\n <span [ngClass]=\"dropdownIcon\" class=\"ui-dropdown-trigger-icon ui-clickable\"></span>\n </div>\n <div (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\" *ngIf=\"overlayVisible\"\n [@overlayAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\"\n [class]=\"panelStyleClass\"\n [ngClass]=\"'ui-dropdown-panel ui-widget ui-widget-content ui-corner-all ui-shadow'\"\n [ngStyle]=\"panelStyle\"\n [attr.virtual-scroll]=\"virtualScroll ? 'true' : null\">\n <div (click)=\"$event.stopPropagation()\" *ngIf=\"filter\" class=\"ui-dropdown-filter-container\">\n <input #filter (input)=\"onFilter($event)\" (keydown)=\"onKeydown($event, false)\" (keydown.enter)=\"$event.preventDefault()\"\n [attr.aria-label]=\"ariaFilterLabel\"\n [attr.placeholder]=\"filterPlaceholder\"\n [value]=\"filterValue||''\" autocomplete=\"off\"\n class=\"ui-dropdown-filter ui-inputtext ui-widget ui-state-default ui-corner-all\" type=\"text\">\n <span class=\"ui-dropdown-filter-icon pi pi-search\"></span>\n </div>\n <div [style.max-height]=\"virtualScroll ? 'auto' : (scrollHeight||'auto')\" class=\"ui-dropdown-items-wrapper\">\n <ul class=\"ui-dropdown-items ui-dropdown-list ui-widget-content ui-widget ui-corner-all ui-helper-reset\"\n role=\"listbox\">\n <ng-container *ngIf=\"group\">\n <ng-template [ngForOf]=\"optionsToDisplay\" let-optgroup ngFor>\n <li class=\"ui-dropdown-item-group\">\n <span *ngIf=\"!groupTemplate\">{{optgroup.label || 'empty'}}</span>\n <ng-container\n *ngTemplateOutlet=\"groupTemplate; context: {$implicit: optgroup}\"></ng-container>\n </li>\n <ng-container\n *ngTemplateOutlet=\"itemslist; context: {$implicit: optgroup.items, selectedOption: selectedOption}\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!group\">\n <ng-container\n *ngTemplateOutlet=\"itemslist; context: {$implicit: optionsToDisplay, selectedOption: selectedOption}\"></ng-container>\n </ng-container>\n <ng-template #itemslist let-options let-selectedOption=\"selectedOption\">\n <ng-container *ngIf=\"!virtualScroll; else virtualScrollList\">\n <ng-template [ngForOf]=\"options\" let-i=\"index\" let-option ngFor>\n <p-dropdownItem (onClick)=\"onItemClick($event)\" [option]=\"option\"\n [selected]=\"selectedOption == option\"\n [template]=\"itemTemplate\"></p-dropdownItem>\n </ng-template>\n </ng-container>\n <ng-template #virtualScrollList>\n <cdk-virtual-scroll-viewport #viewport\n (scrolledIndexChange)=\"scrollToSelectedVirtualScrollElement()\" *ngIf=\"virtualScroll && optionsToDisplay && optionsToDisplay.length\"\n [itemSize]=\"itemSize\"\n [ngStyle]=\"{'height': scrollHeight}\">\n <ng-container\n *cdkVirtualFor=\"let option of options; let i = index; let c = count; let f = first; let l = last; let e = even; let o = odd\">\n <p-dropdownItem (onClick)=\"onItemClick($event)\" [option]=\"option\"\n [attr.title]=\"option.label\"\n [selected]=\"selectedOption == option\"\n [template]=\"itemTemplate\"></p-dropdownItem>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n </ng-template>\n <li *ngIf=\"filter && optionsToDisplay && optionsToDisplay.length === 0\"\n class=\"ui-dropdown-empty-message\">{{emptyFilterMessage}}</li>\n </ul>\n </div>\n </div>\n</div>\n",
1380
1380
  animations: [
1381
1381
  trigger('overlayAnimation', [
1382
1382
  state('void', style({
@@ -1412,6 +1412,7 @@ DropdownComponentModule = __decorate([
1412
1412
  ScrollingModule,
1413
1413
  CommonModule,
1414
1414
  PrimengComponentsModule,
1415
+ TranslateModule,
1415
1416
  ],
1416
1417
  exports: [
1417
1418
  DropdownComponent,