@taiga-ui/kit 2.60.0 → 2.61.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.
Files changed (54) hide show
  1. package/bundles/taiga-ui-kit-components-badge.umd.js +1 -1
  2. package/bundles/taiga-ui-kit-components-badge.umd.js.map +1 -1
  3. package/bundles/taiga-ui-kit-components-badge.umd.min.js +1 -1
  4. package/bundles/taiga-ui-kit-components-badge.umd.min.js.map +1 -1
  5. package/bundles/taiga-ui-kit-components-badged-content.umd.js +4 -14
  6. package/bundles/taiga-ui-kit-components-badged-content.umd.js.map +1 -1
  7. package/bundles/taiga-ui-kit-components-badged-content.umd.min.js +1 -1
  8. package/bundles/taiga-ui-kit-components-badged-content.umd.min.js.map +1 -1
  9. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +1 -1
  10. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  11. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js +1 -1
  12. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js.map +1 -1
  13. package/bundles/taiga-ui-kit-components-input-tag.umd.js +1 -1
  14. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  15. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
  16. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  17. package/bundles/taiga-ui-kit-components-text-area.umd.js +1 -1
  18. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  19. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  20. package/components/badge/badge.component.d.ts +2 -2
  21. package/components/badge/taiga-ui-kit-components-badge.metadata.json +1 -1
  22. package/components/badged-content/badged-content.component.d.ts +2 -3
  23. package/components/badged-content/taiga-ui-kit-components-badged-content.metadata.json +1 -1
  24. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  25. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  26. package/esm2015/components/badge/badge.component.js +3 -3
  27. package/esm2015/components/badged-content/badged-content.component.js +5 -11
  28. package/esm2015/components/input-phone-international/const/countries.js +2 -2
  29. package/esm2015/components/input-tag/input-tag.component.js +2 -2
  30. package/esm2015/components/text-area/text-area.component.js +1 -1
  31. package/esm5/components/badge/badge.component.js +3 -3
  32. package/esm5/components/badged-content/badged-content.component.js +5 -15
  33. package/esm5/components/input-phone-international/const/countries.js +2 -2
  34. package/esm5/components/input-tag/input-tag.component.js +2 -2
  35. package/esm5/components/text-area/text-area.component.js +1 -1
  36. package/fesm2015/taiga-ui-kit-components-badge.js +1 -1
  37. package/fesm2015/taiga-ui-kit-components-badge.js.map +1 -1
  38. package/fesm2015/taiga-ui-kit-components-badged-content.js +4 -10
  39. package/fesm2015/taiga-ui-kit-components-badged-content.js.map +1 -1
  40. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +1 -1
  41. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  42. package/fesm2015/taiga-ui-kit-components-input-tag.js +1 -1
  43. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  44. package/fesm2015/taiga-ui-kit-components-text-area.js +1 -1
  45. package/fesm5/taiga-ui-kit-components-badge.js +1 -1
  46. package/fesm5/taiga-ui-kit-components-badge.js.map +1 -1
  47. package/fesm5/taiga-ui-kit-components-badged-content.js +4 -14
  48. package/fesm5/taiga-ui-kit-components-badged-content.js.map +1 -1
  49. package/fesm5/taiga-ui-kit-components-input-phone-international.js +1 -1
  50. package/fesm5/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  51. package/fesm5/taiga-ui-kit-components-input-tag.js +1 -1
  52. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  53. package/fesm5/taiga-ui-kit-components-text-area.js +1 -1
  54. package/package.json +4 -4
@@ -394,7 +394,7 @@ TuiInputTagComponent = TuiInputTagComponent_1 = __decorate([
394
394
  Component({
395
395
  selector: `tui-input-tag`,
396
396
  changeDetection: ChangeDetectionStrategy.OnPush,
397
- template: "<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"datalist || ''\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-wrapper\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered\"\n [disabled]=\"computedDisabled\"\n [invalid]=\"computedInvalid\"\n (tuiHoveredChange)=\"onHoveredChange($event)\"\n (mousedown)=\"onMouseDown($event)\"\n >\n <div class=\"t-content\">\n <div\n *ngIf=\"iconAlignLeft\"\n class=\"t-icons t-icons_left\"\n >\n <tui-svg\n class=\"t-icon\"\n [src]=\"icon\"\n ></tui-svg>\n </div>\n <div class=\"t-wrapper\">\n <div class=\"t-absolute-wrapper\">\n <div\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-input-tag__placeholder\"\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n <tui-scrollbar\n *ngIf=\"!expandable; else items\"\n class=\"t-scrollbar\"\n [hidden]=\"true\"\n >\n <ng-container [ngTemplateOutlet]=\"items\"></ng-container>\n </tui-scrollbar>\n <ng-template #items>\n <div\n #tagsContainer\n class=\"t-tags\"\n >\n <ng-container *ngIf=\"labelOutside; else text\">\n <tui-tag\n *ngFor=\"let item of value; index as index; trackBy: trackByFn\"\n #tag\n automation-id=\"tui-input-tag__tag\"\n class=\"t-tag\"\n [status]=\"(status$ | async)!\"\n [leftContent]=\"getLeftContent(item)\"\n [allowSpaces]=\"allowSpaces\"\n [tuiFocusable]=\"false\"\n [disabled]=\"computedDisabled || disabledItemHandler(item)\"\n [editable]=\"editable && !readOnly\"\n [hoverable]=\"!readOnly\"\n [removable]=\"!readOnly\"\n [separator]=\"separator\"\n [maxLength]=\"controller.maxLength\"\n [size]=\"controller.size\"\n [value]=\"item.toString()\"\n (edited)=\"onTagEdited($event, index)\"\n (keydown.arrowLeft.prevent)=\"onTagKeyDownArrowLeft(index)\"\n (keydown.arrowRight.prevent)=\"onTagKeyDownArrowRight(index)\"\n ></tui-tag>\n </ng-container>\n <ng-template #text>\n <span\n *ngFor=\"let item of value\"\n class=\"t-text\"\n [class.t-text_disabled]=\"disabledItemHandler(item)\"\n [class.t-text_error]=\"!tagValidator(item)\"\n [innerText]=\"item\"\n ></span>\n </ng-template>\n <div\n class=\"t-input-wrapper\"\n [class.t-input-wrapper_collapsed]=\"computedDisabled || readOnly || inputHidden\"\n >\n <div class=\"t-ghost\">{{ search }}</div>\n <input\n #focusableElement\n type=\"text\"\n automation-id=\"tui-input-tag__native\"\n class=\"t-native\"\n [placeholder]=\"controller.exampleText\"\n [class.t-native_hidden]=\"inputHidden\"\n [attr.maxLength]=\"controller.maxLength\"\n [id]=\"id\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly || inputHidden\"\n [tuiFocusable]=\"computedFocusable\"\n [ngModel]=\"search\"\n (ngModelChange)=\"onInput($event)\"\n (keydown.arrowLeft)=\"onFieldKeyDownArrowLeft($event)\"\n (keydown.backspace)=\"onFieldKeyDownBackspace($event)\"\n (keydown.enter.prevent)=\"onFieldKeyDownEnter()\"\n />\n </div>\n </div>\n </ng-template>\n </div>\n <div\n *ngIf=\"hasRightIcons\"\n class=\"t-icons t-icons_right\"\n >\n <tui-svg\n *ngIf=\"hasCleaner\"\n #cleaner\n automation-id=\"tui-input-tag__cleaner\"\n src=\"tuiIconCloseLarge\"\n class=\"t-cleaner\"\n (click.stop)=\"onCleanerClick()\"\n ></tui-svg>\n <tui-tooltip\n *ngIf=\"hasTooltip\"\n automation-id=\"tui-input-tag__tooltip\"\n describeId=\"placeholer_until_accesibility_is_added\"\n class=\"t-tooltip\"\n [direction]=\"hintController.direction\"\n [mode]=\"hintController.mode\"\n [content]=\"hintController.content || ''\"\n [showDelay]=\"hintController.showDelay\"\n [hideDelay]=\"hintController.hideDelay\"\n ></tui-tooltip>\n <tui-svg\n *ngIf=\"iconAlignRight\"\n class=\"t-icon\"\n [src]=\"icon\"\n ></tui-svg>\n </div>\n </div>\n <ng-template #errorIcon>\n <tui-svg\n src=\"tuiIconAttention\"\n class=\"t-error-icon\"\n ></tui-svg>\n </ng-template>\n </tui-wrapper>\n</tui-hosted-dropdown>\n",
397
+ template: "<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"datalist || ''\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-wrapper\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered\"\n [disabled]=\"computedDisabled\"\n [invalid]=\"computedInvalid\"\n (tuiHoveredChange)=\"onHoveredChange($event)\"\n (mousedown)=\"onMouseDown($event)\"\n >\n <div class=\"t-content\">\n <div\n *ngIf=\"iconAlignLeft\"\n class=\"t-icons t-icons_left\"\n >\n <tui-svg\n class=\"t-icon\"\n [src]=\"icon\"\n ></tui-svg>\n </div>\n <div class=\"t-wrapper\">\n <div class=\"t-absolute-wrapper\">\n <div\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-input-tag__placeholder\"\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n <tui-scrollbar\n *ngIf=\"!expandable; else items\"\n class=\"t-scrollbar\"\n [hidden]=\"true\"\n >\n <ng-container [ngTemplateOutlet]=\"items\"></ng-container>\n </tui-scrollbar>\n <ng-template #items>\n <div\n #tagsContainer\n class=\"t-tags\"\n >\n <ng-container *ngIf=\"labelOutside; else text\">\n <tui-tag\n *ngFor=\"let item of value; index as index; trackBy: trackByFn\"\n #tag\n automation-id=\"tui-input-tag__tag\"\n class=\"t-tag\"\n [status]=\"(status$ | async)!\"\n [leftContent]=\"getLeftContent(item)\"\n [allowSpaces]=\"allowSpaces\"\n [tuiFocusable]=\"false\"\n [disabled]=\"computedDisabled || disabledItemHandler(item)\"\n [editable]=\"editable && !readOnly\"\n [hoverable]=\"!readOnly\"\n [removable]=\"!readOnly\"\n [separator]=\"separator\"\n [maxLength]=\"controller.maxLength\"\n [size]=\"controller.size\"\n [value]=\"item.toString()\"\n (edited)=\"onTagEdited($event, index)\"\n (keydown.arrowLeft.prevent)=\"onTagKeyDownArrowLeft(index)\"\n (keydown.arrowRight.prevent)=\"onTagKeyDownArrowRight(index)\"\n ></tui-tag>\n </ng-container>\n <ng-template #text>\n <span\n *ngFor=\"let item of value\"\n class=\"t-text\"\n [class.t-text_disabled]=\"disabledItemHandler(item)\"\n [class.t-text_error]=\"!tagValidator(item)\"\n [textContent]=\"item\"\n ></span>\n </ng-template>\n <div\n class=\"t-input-wrapper\"\n [class.t-input-wrapper_collapsed]=\"computedDisabled || readOnly || inputHidden\"\n >\n <div class=\"t-ghost\">{{ search }}</div>\n <input\n #focusableElement\n type=\"text\"\n automation-id=\"tui-input-tag__native\"\n class=\"t-native\"\n [placeholder]=\"controller.exampleText\"\n [class.t-native_hidden]=\"inputHidden\"\n [attr.maxLength]=\"controller.maxLength\"\n [id]=\"id\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly || inputHidden\"\n [tuiFocusable]=\"computedFocusable\"\n [ngModel]=\"search\"\n (ngModelChange)=\"onInput($event)\"\n (keydown.arrowLeft)=\"onFieldKeyDownArrowLeft($event)\"\n (keydown.backspace)=\"onFieldKeyDownBackspace($event)\"\n (keydown.enter.prevent)=\"onFieldKeyDownEnter()\"\n />\n </div>\n </div>\n </ng-template>\n </div>\n <div\n *ngIf=\"hasRightIcons\"\n class=\"t-icons t-icons_right\"\n >\n <tui-svg\n *ngIf=\"hasCleaner\"\n #cleaner\n automation-id=\"tui-input-tag__cleaner\"\n src=\"tuiIconCloseLarge\"\n class=\"t-cleaner\"\n (click.stop)=\"onCleanerClick()\"\n ></tui-svg>\n <tui-tooltip\n *ngIf=\"hasTooltip\"\n automation-id=\"tui-input-tag__tooltip\"\n describeId=\"placeholer_until_accesibility_is_added\"\n class=\"t-tooltip\"\n [direction]=\"hintController.direction\"\n [mode]=\"hintController.mode\"\n [content]=\"hintController.content || ''\"\n [showDelay]=\"hintController.showDelay\"\n [hideDelay]=\"hintController.hideDelay\"\n ></tui-tooltip>\n <tui-svg\n *ngIf=\"iconAlignRight\"\n class=\"t-icon\"\n [src]=\"icon\"\n ></tui-svg>\n </div>\n </div>\n <ng-template #errorIcon>\n <tui-svg\n src=\"tuiIconAttention\"\n class=\"t-error-icon\"\n ></tui-svg>\n </ng-template>\n </tui-wrapper>\n</tui-hosted-dropdown>\n",
398
398
  providers: [
399
399
  {
400
400
  provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
@@ -429,4 +429,4 @@ TuiInputTagComponent = TuiInputTagComponent_1 = __decorate([
429
429
  __param(11, Inject(TuiHostedDropdownComponent))
430
430
  ], TuiInputTagComponent);
431
431
  export { TuiInputTagComponent };
432
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC10YWcvIiwic291cmNlcyI6WyJpbnB1dC10YWcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEVBQ0osV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCwwQkFBMEIsRUFDMUIsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixXQUFXLEVBQ1gsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLDJCQUEyQixFQUMzQixzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLHNCQUFzQixFQUN0QixjQUFjLEVBQ2QsMkJBQTJCLEVBQzNCLGdCQUFnQixFQUNoQixjQUFjLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIsYUFBYSxFQUNiLDZCQUE2QixFQUM3QixrQkFBa0IsRUFDbEIsMkJBQTJCLEVBQzNCLFFBQVEsRUFDUix3QkFBd0IsRUFDeEIsZ0NBQWdDLEVBQ2hDLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsMEJBQTBCLEVBQzFCLGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsUUFBUSxFQUNSLFFBQVEsRUFDUixzQkFBc0IsR0FDekIsTUFBTSxnQkFBZ0IsQ0FBQztB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b0JBQW9CLENBbWNoQztTQW5jWSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlNdWx0aXBsZUNvbnRyb2wsXG4gICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG4gICAgQUxXQVlTX1RSVUVfSEFORExFUixcbiAgICBFTVBUWV9RVUVSWSxcbiAgICBnZXRBY3R1YWxUYXJnZXQsXG4gICAgaXNOYXRpdmVGb2N1c2VkSW4sXG4gICAgcHJldmVudERlZmF1bHQsXG4gICAgc2V0TmF0aXZlRm9jdXNlZCxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgVHVpQWN0aXZlWm9uZURpcmVjdGl2ZSxcbiAgICBUdWlCb29sZWFuSGFuZGxlcixcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlTY3JvbGxTZXJ2aWNlLFxuICAgIHR5cGVkRnJvbUV2ZW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgSElOVF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIE1PREVfUFJPVklERVIsXG4gICAgVEVYVEZJRUxEX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgVFVJX0RBVEFfTElTVF9IT1NULFxuICAgIFRVSV9ISU5UX1dBVENIRURfQ09OVFJPTExFUixcbiAgICBUVUlfTU9ERSxcbiAgICBUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UsXG4gICAgVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIsXG4gICAgVHVpQnJpZ2h0bmVzcyxcbiAgICBUdWlEYXRhTGlzdERpcmVjdGl2ZSxcbiAgICBUdWlEYXRhTGlzdEhvc3QsXG4gICAgVHVpSGludENvbnRyb2xsZXJEaXJlY3RpdmUsXG4gICAgVHVpSG9yaXpvbnRhbERpcmVjdGlvbixcbiAgICBUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudCxcbiAgICBUdWlNb2RlRGlyZWN0aXZlLFxuICAgIFR1aVNjcm9sbGJhckNvbXBvbmVudCxcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplUyxcbiAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aVN0cmluZ2lmaWFibGVJdGVtfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NsYXNzZXMnO1xuaW1wb3J0IHtBTExPV0VEX1NQQUNFX1JFR0VYUH0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3RhZyc7XG5pbXBvcnQge0ZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJ9IGZyb20gJ0B0YWlnYS11aS9raXQvcHJvdmlkZXJzJztcbmltcG9ydCB7VFVJX1RBR19TVEFUVVN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7VHVpU3RhdHVzVH0gZnJvbSAnQHRhaWdhLXVpL2tpdC90eXBlcyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge21lcmdlLCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyLCBtYXAsIG1hcFRvLCBzd2l0Y2hNYXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1RVSV9JTlBVVF9UQUdfT1BUSU9OUywgVHVpSW5wdXRUYWdPcHRpb25zfSBmcm9tICcuL2lucHV0LXRhZy1vcHRpb25zJztcblxuY29uc3QgRVZFTlRfWV9UT19YX0NPRUZGSUNJRU5UID0gMztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IGB0dWktaW5wdXQtdGFnYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICB0ZW1wbGF0ZVVybDogYC4vaW5wdXQtdGFnLnRlbXBsYXRlLmh0bWxgLFxuICAgIHN0eWxlVXJsczogW2AuL2lucHV0LXRhZy5zdHlsZS5sZXNzYF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0VGFnQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0RBVEFfTElTVF9IT1NULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXRUYWdDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICBGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgICAgICBURVhURklFTERfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICAgICAgSElOVF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgICAgICBNT0RFX1BST1ZJREVSLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0VGFnQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aU11bHRpcGxlQ29udHJvbDxzdHJpbmc+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsIFR1aURhdGFMaXN0SG9zdDxzdHJpbmc+XG57XG4gICAgQFZpZXdDaGlsZChUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhvc3RlZERyb3Bkb3duPzogVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKGBmb2N1c2FibGVFbGVtZW50YClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzYWJsZUVsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZChgdGFnc0NvbnRhaW5lcmApXG4gICAgcHJpdmF0ZSByZWFkb25seSB0YWdzQ29udGFpbmVyPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkcmVuKGB0YWdgLCB7cmVhZDogRWxlbWVudFJlZn0pXG4gICAgcHJpdmF0ZSByZWFkb25seSB0YWdzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+ID0gRU1QVFlfUVVFUlk7XG5cbiAgICBAVmlld0NoaWxkKGBjbGVhbmVyYCwge3JlYWQ6IEVsZW1lbnRSZWZ9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2xlYW5lclN2Zz86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZChUdWlTY3JvbGxiYXJDb21wb25lbnQsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbEJhcj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBzY3JvbGxUb1N0YXJ0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzY3JvbGxUb0VuZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLy8gVE9ETzogMy4wIFJlbW92ZVxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBhbGxvd1NwYWNlcyA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2VwYXJhdG9yOiBzdHJpbmcgfCBSZWdFeHAgPSB0aGlzLm9wdGlvbnMuc2VwYXJhdG9yO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGljb24gPSBgYDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpY29uQWxpZ246IFR1aUhvcml6b250YWxEaXJlY3Rpb24gPSBgcmlnaHRgO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNlYXJjaCA9IGBgO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGVkaXRhYmxlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB0YWdWYWxpZGF0b3I6IFR1aUJvb2xlYW5IYW5kbGVyPHN0cmluZz4gPSBBTFdBWVNfVFJVRV9IQU5ETEVSO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoYGNsYXNzLl9leHBhbmRhYmxlYClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGV4cGFuZGFibGUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGlucHV0SGlkZGVuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgdW5pcXVlVGFncyA9IHRoaXMub3B0aW9ucy51bmlxdWVUYWdzO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPHN0cmluZyB8IFR1aVN0cmluZ2lmaWFibGVJdGVtPGFueT4+ID1cbiAgICAgICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoYHBzZXVkb0ZvY3VzZWRgKVxuICAgIHNldCBwc2V1ZG9Gb2N1c2VkU2V0dGVyKHZhbHVlOiBib29sZWFuIHwgbnVsbCkge1xuICAgICAgICBpZiAoIXZhbHVlICYmICF0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9TdGFydCQubmV4dCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wc2V1ZG9Gb2N1c2VkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgc2VhcmNoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBAQ29udGVudENoaWxkKFR1aURhdGFMaXN0RGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWZ9KVxuICAgIHJlYWRvbmx5IGRhdGFsaXN0PzogVGVtcGxhdGVSZWY8VHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlBY3RpdmVab25lRGlyZWN0aXZlPj47XG5cbiAgICBAVmlld0NoaWxkKGBlcnJvckljb25gKVxuICAgIHJlYWRvbmx5IGVycm9ySWNvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+O1xuXG4gICAgQFZpZXdDaGlsZChUdWlTY3JvbGxiYXJDb21wb25lbnQpXG4gICAgc2V0IHNjcm9sbGVyU2V0dGVyKHNjcm9sbGVyOiBUdWlTY3JvbGxiYXJDb21wb25lbnQgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuaW5pdFNjcm9sbGVyU3Vic2NyaXB0aW9uKHNjcm9sbGVyKTtcbiAgICB9XG5cbiAgICBzdGF0dXMkOiBPYnNlcnZhYmxlPFR1aVN0YXR1c1Q+ID0gdGhpcy5tb2RlJC5waXBlKG1hcCgoKSA9PiB0aGlzLnN0YXR1cykpO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUdWlTY3JvbGxTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IHR1aVNjcm9sbFNlcnZpY2U6IFR1aVNjcm9sbFNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UpIHJlYWRvbmx5IGFwcGVhcmFuY2U6IHN0cmluZyxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUdWlNb2RlRGlyZWN0aXZlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGVEaXJlY3RpdmU6IFR1aU1vZGVEaXJlY3RpdmUgfCBudWxsLFxuICAgICAgICBASW5qZWN0KFRVSV9NT0RFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGUkOiBPYnNlcnZhYmxlPFR1aUJyaWdodG5lc3MgfCBudWxsPixcbiAgICAgICAgQEluamVjdChUVUlfVEFHX1NUQVRVUykgcHJpdmF0ZSByZWFkb25seSB0YWdTdGF0dXM6IFR1aVN0YXR1c1QsXG4gICAgICAgIEBJbmplY3QoVFVJX0hJTlRfV0FUQ0hFRF9DT05UUk9MTEVSKVxuICAgICAgICByZWFkb25seSBoaW50Q29udHJvbGxlcjogVHVpSGludENvbnRyb2xsZXJEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIpXG4gICAgICAgIHJlYWRvbmx5IGNvbnRyb2xsZXI6IFR1aVRleHRmaWVsZENvbnRyb2xsZXIsXG4gICAgICAgIEBJbmplY3QoVFVJX0lOUFVUX1RBR19PUFRJT05TKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFR1aUlucHV0VGFnT3B0aW9ucyxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBwYXJlbnRIb3N0ZWREcm9wZG93bj86IFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gIXRoaXMuZm9jdXNhYmxlRWxlbWVudCB8fCB0aGlzLmNvbXB1dGVkRGlzYWJsZWRcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLmZvY3VzYWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGlzTmF0aXZlRm9jdXNlZEluKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSB8fFxuICAgICAgICAgICAgISF0aGlzLmhvc3RlZERyb3Bkb3duPy5mb2N1c2VkXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKGBhdHRyLmRhdGEtc2l6ZWApXG4gICAgZ2V0IHNpemUoKTogVHVpU2l6ZUwgfCBUdWlTaXplUyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuc2l6ZTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoYGNsYXNzLl9sYWJlbC1vdXRzaWRlYClcbiAgICBnZXQgbGFiZWxPdXRzaWRlKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB7c2l6ZSwgbGFiZWxPdXRzaWRlfSA9IHRoaXMuY29udHJvbGxlcjtcblxuICAgICAgICByZXR1cm4gc2l6ZSA9PT0gYHNgIHx8IGxhYmVsT3V0c2lkZTtcbiAgICB9XG5cbiAgICBnZXQgaGFzQ2xlYW5lcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5jbGVhbmVyICYmIHRoaXMuaGFzVmFsdWUgJiYgdGhpcy5pbnRlcmFjdGl2ZTtcbiAgICB9XG5cbiAgICBnZXQgaGFzTmF0aXZlVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc2VhcmNoO1xuICAgIH1cblxuICAgIGdldCBoYXNWYWx1ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy52YWx1ZS5sZW5ndGggfHwgdGhpcy5oYXNOYXRpdmVWYWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaGFzUGxhY2Vob2xkZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhdGhpcy5sYWJlbE91dHNpZGUgfHxcbiAgICAgICAgICAgICghdGhpcy5oYXNWYWx1ZSAmJiAoIXRoaXMuaGFzRXhhbXBsZVRleHQgfHwgdGhpcy5pbnB1dEhpZGRlbikpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IHBsYWNlaG9sZGVyUmFpc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXRoaXMubGFiZWxPdXRzaWRlICYmXG4gICAgICAgICAgICAoKHRoaXMuY29tcHV0ZWRGb2N1c2VkICYmICF0aGlzLnJlYWRPbmx5KSB8fCB0aGlzLmhhc1ZhbHVlKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBoYXNFeGFtcGxlVGV4dCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICEhdGhpcy5jb250cm9sbGVyLmV4YW1wbGVUZXh0ICYmXG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkRm9jdXNlZCAmJlxuICAgICAgICAgICAgIXRoaXMuaGFzVmFsdWUgJiZcbiAgICAgICAgICAgICF0aGlzLnJlYWRPbmx5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1Rvb2x0aXAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaGludENvbnRyb2xsZXIuY29udGVudCAmJiAhdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBnZXQgaWNvbkFsaWduTGVmdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5pY29uICYmIHRoaXMuaWNvbkFsaWduID09PSBgbGVmdGA7XG4gICAgfVxuXG4gICAgZ2V0IGljb25BbGlnblJpZ2h0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmljb24gJiYgdGhpcy5pY29uQWxpZ24gPT09IGByaWdodGA7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1JpZ2h0SWNvbnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0NsZWFuZXIgfHwgdGhpcy5oYXNUb29sdGlwIHx8IHRoaXMuaWNvbkFsaWduUmlnaHQ7XG4gICAgfVxuXG4gICAgZ2V0IHN0YXR1cygpOiBUdWlTdGF0dXNUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZURpcmVjdGl2ZT8ubW9kZSA/IGBkZWZhdWx0YCA6IHRoaXMudGFnU3RhdHVzO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcmFjdGl2ZSAmJiAhIXRoaXMuZGF0YWxpc3Q7XG4gICAgfVxuXG4gICAgZ2V0TGVmdENvbnRlbnQodGFnOiBzdHJpbmcpOiBQb2x5bW9ycGhldXNDb250ZW50IHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnRhZ1ZhbGlkYXRvcih0YWcpICYmIHRoaXMuZXJyb3JJY29uVGVtcGxhdGVcbiAgICAgICAgICAgID8gdGhpcy5lcnJvckljb25UZW1wbGF0ZVxuICAgICAgICAgICAgOiBgYDtcbiAgICB9XG5cbiAgICBvbkNsZWFuZXJDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVTZWFyY2goYGApO1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB0aGlzLnBhcmVudEhvc3RlZERyb3Bkb3duPy51cGRhdGVPcGVuKHRydWUpO1xuICAgIH1cblxuICAgIG9uQWN0aXZlWm9uZShhY3RpdmU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWRkVGFnKCk7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChhY3RpdmUpO1xuXG4gICAgICAgIGlmICghdGhpcy5jb21wdXRlZEZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9TdGFydCQubmV4dCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYWN0dWFsVGFyZ2V0ID0gZ2V0QWN0dWFsVGFyZ2V0KGV2ZW50KTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5mb2N1c2FibGVFbGVtZW50IHx8XG4gICAgICAgICAgICBhY3R1YWxUYXJnZXQgPT09IHRoaXMuZm9jdXNhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50IHx8XG4gICAgICAgICAgICAvLyBUT0RPOiBpZnJhbWUgd2FybmluZ1xuICAgICAgICAgICAgIShldmVudC50YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50KSB8fFxuICAgICAgICAgICAgdGhpcy5jbGVhbmVyU3ZnPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgfHxcbiAgICAgICAgICAgICh0aGlzLnRhZ3NDb250YWluZXIgJiZcbiAgICAgICAgICAgICAgICBhY3R1YWxUYXJnZXQgIT09IHRoaXMudGFnc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50ICYmXG4gICAgICAgICAgICAgICAgdGhpcy50YWdzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoYWN0dWFsVGFyZ2V0KSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICB9XG5cbiAgICBvbkZpZWxkS2V5RG93bkJhY2tzcGFjZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsT3V0c2lkZSAmJiAhdGhpcy5oYXNOYXRpdmVWYWx1ZSAmJiB0aGlzLnZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5kZWxldGVMYXN0RW5hYmxlZEl0ZW0oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25GaWVsZEtleURvd25BcnJvd0xlZnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25GaWVsZEtleURvd25BcnJvd0xlZnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5sYWJlbE91dHNpZGUgfHwgdGhpcy5oYXNOYXRpdmVWYWx1ZSB8fCAhdGhpcy52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHNldE5hdGl2ZUZvY3VzZWQodGhpcy50YWdzLmxhc3QubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgb25GaWVsZEtleURvd25FbnRlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hZGRUYWcoKTtcbiAgICAgICAgdGhpcy5zY3JvbGxUb0VuZCQubmV4dCgpO1xuICAgIH1cblxuICAgIG9uVGFnS2V5RG93bkFycm93TGVmdChjdXJyZW50SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoY3VycmVudEluZGV4ID4gMCkge1xuICAgICAgICAgICAgdGhpcy5vblNjcm9sbEtleURvd24oY3VycmVudEluZGV4LCAtMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblRhZ0tleURvd25BcnJvd1JpZ2h0KGN1cnJlbnRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChjdXJyZW50SW5kZXggPT09IHRoaXMudmFsdWUubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uU2Nyb2xsS2V5RG93bihjdXJyZW50SW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25UYWdFZGl0ZWQodmFsdWU6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShcbiAgICAgICAgICAgIHRoaXMudmFsdWVcbiAgICAgICAgICAgICAgICAubWFwKCh0YWcsIHRhZ0luZGV4KSA9PlxuICAgICAgICAgICAgICAgICAgICB0YWdJbmRleCAhPT0gaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGFnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQodGhpcy5zZXBhcmF0b3IpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKHRhZyA9PiB0YWcudHJpbSgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnJlZHVjZTxzdHJpbmdbXT4oXG4gICAgICAgICAgICAgICAgICAgIChyZXN1bHQsIGl0ZW06IHN0cmluZyB8IHN0cmluZ1tdKSA9PiByZXN1bHQuY29uY2F0KGl0ZW0pLFxuICAgICAgICAgICAgICAgICAgICBbXSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGhhbmRsZU9wdGlvbihpdGVtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKGBgKTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLnZhbHVlLmNvbmNhdChpdGVtKSk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNjcm9sbFRvRW5kJC5uZXh0KCk7XG4gICAgfVxuXG4gICAgb25JbnB1dCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFycmF5ID0gdGhpcy5hbGxvd1NwYWNlc1xuICAgICAgICAgICAgPyB2YWx1ZS5zcGxpdCh0aGlzLnNlcGFyYXRvcilcbiAgICAgICAgICAgIDogdmFsdWUuc3BsaXQoQUxMT1dFRF9TUEFDRV9SRUdFWFApO1xuICAgICAgICBjb25zdCB0YWdzID0gYXJyYXlcbiAgICAgICAgICAgIC5tYXAoaXRlbSA9PiBpdGVtLnRyaW0oKSlcbiAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW0sIGluZGV4LCB7bGVuZ3RofSkgPT4gaXRlbS5sZW5ndGggPiAwICYmIGluZGV4ICE9PSBsZW5ndGggLSAxKTtcbiAgICAgICAgY29uc3QgdmFsaWRhdGVkID0gdGFncy5maWx0ZXIodGFnID0+ICF0aGlzLmRpc2FibGVkSXRlbUhhbmRsZXIodGFnKSk7XG5cbiAgICAgICAgaWYgKGFycmF5Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKGFycmF5W2FycmF5Lmxlbmd0aCAtIDFdLnRyaW0oKSk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFsuLi50aGlzLnZhbHVlLCAuLi52YWxpZGF0ZWRdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub3BlbiA9IHRoaXMuaGFzTmF0aXZlVmFsdWU7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkQ2hhbmdlKGhvdmVyZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdHJhY2tCeUZuKF86IG51bWJlciwgdGFnOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICAvLyBBY3R1YWxseSB0YWcgaGFzIFR1aVN0cmluZ2lmaWFibGVJdGVtIHR5cGUgbm90IHN0cmluZ1xuICAgICAgICByZXR1cm4gdGFnLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVZhbHVlKHZhbHVlOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWVuID0gbmV3IFNldCgpO1xuXG4gICAgICAgIHN1cGVyLnVwZGF0ZVZhbHVlKFxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgICAgICAucmV2ZXJzZSgpXG4gICAgICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgaXRlbSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgIXRoaXMudW5pcXVlVGFncyB8fCAoISFpdGVtICYmICFzZWVuLmhhcyhpdGVtKSAmJiBzZWVuLmFkZChpdGVtKSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5yZXZlcnNlKCksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblNjcm9sbEtleURvd24oY3VycmVudEluZGV4OiBudW1iZXIsIGZsYWc6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCB0YWcgPSB0aGlzLnRhZ3MuZmluZCgoX2l0ZW0sIGluZGV4KSA9PiBpbmRleCA9PT0gY3VycmVudEluZGV4ICsgZmxhZyk7XG5cbiAgICAgICAgaWYgKCF0YWcgfHwgIXRoaXMuc2Nyb2xsQmFyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRhZy5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBmbGFnICogdGhpcy5zY3JvbGxCYXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCAtXG4gICAgICAgICAgICAgICAgZmxhZyAqIHRhZy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQgLVxuICAgICAgICAgICAgICAgIHRhZy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoIDxcbiAgICAgICAgICAgIDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbEJhci5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgKz1cbiAgICAgICAgICAgICAgICBmbGFnICogdGFnLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTY3JvbGxlclN1YnNjcmlwdGlvbihzY3JvbGxlcjogVHVpU2Nyb2xsYmFyQ29tcG9uZW50IHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBpZiAoIXNjcm9sbGVyPy5icm93c2VyU2Nyb2xsUmVmKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7bmF0aXZlRWxlbWVudH0gPSBzY3JvbGxlci5icm93c2VyU2Nyb2xsUmVmO1xuXG4gICAgICAgIGNvbnN0IHdoZWVsJCA9IHR5cGVkRnJvbUV2ZW50KG5hdGl2ZUVsZW1lbnQsIGB3aGVlbGAsIHtwYXNzaXZlOiBmYWxzZX0pLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQuZGVsdGFYID09PSAwICYmIHRoaXMuc2hvdWxkU2Nyb2xsKG5hdGl2ZUVsZW1lbnQpKSxcbiAgICAgICAgICAgIHByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICBtYXAoKHtkZWx0YVl9KSA9PlxuICAgICAgICAgICAgICAgIE1hdGgubWF4KG5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCArIGRlbHRhWSAqIEVWRU5UX1lfVE9fWF9DT0VGRklDSUVOVCwgMCksXG4gICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBzdGFydCQgPSB0aGlzLnNjcm9sbFRvU3RhcnQkLnBpcGUobWFwVG8oMCkpO1xuICAgICAgICBjb25zdCBlbmQkID0gdGhpcy5zY3JvbGxUb0VuZCQucGlwZShtYXAoKCkgPT4gbmF0aXZlRWxlbWVudC5zY3JvbGxXaWR0aCkpO1xuXG4gICAgICAgIG1lcmdlKHdoZWVsJCwgc3RhcnQkLCBlbmQkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKGxlZnQgPT4gdGhpcy50dWlTY3JvbGxTZXJ2aWNlLnNjcm9sbCQobmF0aXZlRWxlbWVudCwgMCwgbGVmdCkpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVNlYXJjaCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlYXJjaCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNlYXJjaENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNob3VsZFNjcm9sbCh7c2Nyb2xsV2lkdGgsIG9mZnNldFdpZHRofTogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHNjcm9sbFdpZHRoID4gb2Zmc2V0V2lkdGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRUYWcoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSB0aGlzLnNlYXJjaC50cmltKCk7XG5cbiAgICAgICAgaWYgKCFpbnB1dFZhbHVlIHx8IHRoaXMuZGlzYWJsZWRJdGVtSGFuZGxlcihpbnB1dFZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVTZWFyY2goYGApO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMudmFsdWUuY29uY2F0KGlucHV0VmFsdWUpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlbGV0ZUxhc3RFbmFibGVkSXRlbSgpOiB2b2lkIHtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSB0aGlzLnZhbHVlLmxlbmd0aCAtIDE7IGluZGV4ID49IDA7IGluZGV4LS0pIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5kaXNhYmxlZEl0ZW1IYW5kbGVyKHRoaXMudmFsdWVbaW5kZXhdKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUoW1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnZhbHVlLnNsaWNlKDAsIGluZGV4KSxcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy52YWx1ZS5zbGljZShpbmRleCArIDEsIHRoaXMudmFsdWUubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICBdKTtcblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KHByZXZlbnRTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCwgdHJ1ZSwgcHJldmVudFNjcm9sbCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
432
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC10YWcvIiwic291cmNlcyI6WyJpbnB1dC10YWcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEVBQ0osV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCwwQkFBMEIsRUFDMUIsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixXQUFXLEVBQ1gsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLDJCQUEyQixFQUMzQixzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLHNCQUFzQixFQUN0QixjQUFjLEVBQ2QsMkJBQTJCLEVBQzNCLGdCQUFnQixFQUNoQixjQUFjLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIsYUFBYSxFQUNiLDZCQUE2QixFQUM3QixrQkFBa0IsRUFDbEIsMkJBQTJCLEVBQzNCLFFBQVEsRUFDUix3QkFBd0IsRUFDeEIsZ0NBQWdDLEVBQ2hDLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsMEJBQTBCLEVBQzFCLGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsUUFBUSxFQUNSLFFBQVEsRUFDUixzQkFBc0IsR0FDekIsTUFBTSxnQkFBZ0IsQ0FBQztB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b0JBQW9CLENBbWNoQztTQW5jWSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlNdWx0aXBsZUNvbnRyb2wsXG4gICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG4gICAgQUxXQVlTX1RSVUVfSEFORExFUixcbiAgICBFTVBUWV9RVUVSWSxcbiAgICBnZXRBY3R1YWxUYXJnZXQsXG4gICAgaXNOYXRpdmVGb2N1c2VkSW4sXG4gICAgcHJldmVudERlZmF1bHQsXG4gICAgc2V0TmF0aXZlRm9jdXNlZCxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgVHVpQWN0aXZlWm9uZURpcmVjdGl2ZSxcbiAgICBUdWlCb29sZWFuSGFuZGxlcixcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlTY3JvbGxTZXJ2aWNlLFxuICAgIHR5cGVkRnJvbUV2ZW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgSElOVF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIE1PREVfUFJPVklERVIsXG4gICAgVEVYVEZJRUxEX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgVFVJX0RBVEFfTElTVF9IT1NULFxuICAgIFRVSV9ISU5UX1dBVENIRURfQ09OVFJPTExFUixcbiAgICBUVUlfTU9ERSxcbiAgICBUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UsXG4gICAgVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIsXG4gICAgVHVpQnJpZ2h0bmVzcyxcbiAgICBUdWlEYXRhTGlzdERpcmVjdGl2ZSxcbiAgICBUdWlEYXRhTGlzdEhvc3QsXG4gICAgVHVpSGludENvbnRyb2xsZXJEaXJlY3RpdmUsXG4gICAgVHVpSG9yaXpvbnRhbERpcmVjdGlvbixcbiAgICBUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudCxcbiAgICBUdWlNb2RlRGlyZWN0aXZlLFxuICAgIFR1aVNjcm9sbGJhckNvbXBvbmVudCxcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplUyxcbiAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aVN0cmluZ2lmaWFibGVJdGVtfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NsYXNzZXMnO1xuaW1wb3J0IHtBTExPV0VEX1NQQUNFX1JFR0VYUH0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3RhZyc7XG5pbXBvcnQge0ZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJ9IGZyb20gJ0B0YWlnYS11aS9raXQvcHJvdmlkZXJzJztcbmltcG9ydCB7VFVJX1RBR19TVEFUVVN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7VHVpU3RhdHVzVH0gZnJvbSAnQHRhaWdhLXVpL2tpdC90eXBlcyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge21lcmdlLCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyLCBtYXAsIG1hcFRvLCBzd2l0Y2hNYXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1RVSV9JTlBVVF9UQUdfT1BUSU9OUywgVHVpSW5wdXRUYWdPcHRpb25zfSBmcm9tICcuL2lucHV0LXRhZy1vcHRpb25zJztcblxuY29uc3QgRVZFTlRfWV9UT19YX0NPRUZGSUNJRU5UID0gMztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IGB0dWktaW5wdXQtdGFnYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICB0ZW1wbGF0ZVVybDogYC4vaW5wdXQtdGFnLnRlbXBsYXRlLmh0bWxgLFxuICAgIHN0eWxlVXJsczogW2AuL2lucHV0LXRhZy5zdHlsZS5sZXNzYF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0VGFnQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0RBVEFfTElTVF9IT1NULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXRUYWdDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICBGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgICAgICBURVhURklFTERfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICAgICAgSElOVF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgICAgICBNT0RFX1BST1ZJREVSLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0VGFnQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aU11bHRpcGxlQ29udHJvbDxzdHJpbmc+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsIFR1aURhdGFMaXN0SG9zdDxzdHJpbmc+XG57XG4gICAgQFZpZXdDaGlsZChUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhvc3RlZERyb3Bkb3duPzogVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKGBmb2N1c2FibGVFbGVtZW50YClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzYWJsZUVsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZChgdGFnc0NvbnRhaW5lcmApXG4gICAgcHJpdmF0ZSByZWFkb25seSB0YWdzQ29udGFpbmVyPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkcmVuKGB0YWdgLCB7cmVhZDogRWxlbWVudFJlZn0pXG4gICAgcHJpdmF0ZSByZWFkb25seSB0YWdzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+ID0gRU1QVFlfUVVFUlk7XG5cbiAgICBAVmlld0NoaWxkKGBjbGVhbmVyYCwge3JlYWQ6IEVsZW1lbnRSZWZ9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2xlYW5lclN2Zz86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZChUdWlTY3JvbGxiYXJDb21wb25lbnQsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbEJhcj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBzY3JvbGxUb1N0YXJ0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzY3JvbGxUb0VuZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLy8gVE9ETzogMy4wIFJlbW92ZVxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBhbGxvd1NwYWNlcyA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2VwYXJhdG9yOiBzdHJpbmcgfCBSZWdFeHAgPSB0aGlzLm9wdGlvbnMuc2VwYXJhdG9yO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGljb24gPSBgYDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpY29uQWxpZ246IFR1aUhvcml6b250YWxEaXJlY3Rpb24gPSBgcmlnaHRgO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNlYXJjaCA9IGBgO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGVkaXRhYmxlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB0YWdWYWxpZGF0b3I6IFR1aUJvb2xlYW5IYW5kbGVyPHN0cmluZz4gPSBBTFdBWVNfVFJVRV9IQU5ETEVSO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoYGNsYXNzLl9leHBhbmRhYmxlYClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGV4cGFuZGFibGUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGlucHV0SGlkZGVuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgdW5pcXVlVGFncyA9IHRoaXMub3B0aW9ucy51bmlxdWVUYWdzO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPHN0cmluZyB8IFR1aVN0cmluZ2lmaWFibGVJdGVtPGFueT4+ID1cbiAgICAgICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoYHBzZXVkb0ZvY3VzZWRgKVxuICAgIHNldCBwc2V1ZG9Gb2N1c2VkU2V0dGVyKHZhbHVlOiBib29sZWFuIHwgbnVsbCkge1xuICAgICAgICBpZiAoIXZhbHVlICYmICF0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9TdGFydCQubmV4dCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wc2V1ZG9Gb2N1c2VkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgc2VhcmNoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBAQ29udGVudENoaWxkKFR1aURhdGFMaXN0RGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWZ9KVxuICAgIHJlYWRvbmx5IGRhdGFsaXN0PzogVGVtcGxhdGVSZWY8VHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlBY3RpdmVab25lRGlyZWN0aXZlPj47XG5cbiAgICBAVmlld0NoaWxkKGBlcnJvckljb25gKVxuICAgIHJlYWRvbmx5IGVycm9ySWNvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+O1xuXG4gICAgQFZpZXdDaGlsZChUdWlTY3JvbGxiYXJDb21wb25lbnQpXG4gICAgc2V0IHNjcm9sbGVyU2V0dGVyKHNjcm9sbGVyOiBUdWlTY3JvbGxiYXJDb21wb25lbnQgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuaW5pdFNjcm9sbGVyU3Vic2NyaXB0aW9uKHNjcm9sbGVyKTtcbiAgICB9XG5cbiAgICBzdGF0dXMkOiBPYnNlcnZhYmxlPFR1aVN0YXR1c1Q+ID0gdGhpcy5tb2RlJC5waXBlKG1hcCgoKSA9PiB0aGlzLnN0YXR1cykpO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUdWlTY3JvbGxTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IHR1aVNjcm9sbFNlcnZpY2U6IFR1aVNjcm9sbFNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UpIHJlYWRvbmx5IGFwcGVhcmFuY2U6IHN0cmluZyxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUdWlNb2RlRGlyZWN0aXZlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGVEaXJlY3RpdmU6IFR1aU1vZGVEaXJlY3RpdmUgfCBudWxsLFxuICAgICAgICBASW5qZWN0KFRVSV9NT0RFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGUkOiBPYnNlcnZhYmxlPFR1aUJyaWdodG5lc3MgfCBudWxsPixcbiAgICAgICAgQEluamVjdChUVUlfVEFHX1NUQVRVUykgcHJpdmF0ZSByZWFkb25seSB0YWdTdGF0dXM6IFR1aVN0YXR1c1QsXG4gICAgICAgIEBJbmplY3QoVFVJX0hJTlRfV0FUQ0hFRF9DT05UUk9MTEVSKVxuICAgICAgICByZWFkb25seSBoaW50Q29udHJvbGxlcjogVHVpSGludENvbnRyb2xsZXJEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIpXG4gICAgICAgIHJlYWRvbmx5IGNvbnRyb2xsZXI6IFR1aVRleHRmaWVsZENvbnRyb2xsZXIsXG4gICAgICAgIEBJbmplY3QoVFVJX0lOUFVUX1RBR19PUFRJT05TKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFR1aUlucHV0VGFnT3B0aW9ucyxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBwYXJlbnRIb3N0ZWREcm9wZG93bj86IFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gIXRoaXMuZm9jdXNhYmxlRWxlbWVudCB8fCB0aGlzLmNvbXB1dGVkRGlzYWJsZWRcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLmZvY3VzYWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGlzTmF0aXZlRm9jdXNlZEluKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSB8fFxuICAgICAgICAgICAgISF0aGlzLmhvc3RlZERyb3Bkb3duPy5mb2N1c2VkXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKGBhdHRyLmRhdGEtc2l6ZWApXG4gICAgZ2V0IHNpemUoKTogVHVpU2l6ZUwgfCBUdWlTaXplUyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuc2l6ZTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoYGNsYXNzLl9sYWJlbC1vdXRzaWRlYClcbiAgICBnZXQgbGFiZWxPdXRzaWRlKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB7c2l6ZSwgbGFiZWxPdXRzaWRlfSA9IHRoaXMuY29udHJvbGxlcjtcblxuICAgICAgICByZXR1cm4gc2l6ZSA9PT0gYHNgIHx8IGxhYmVsT3V0c2lkZTtcbiAgICB9XG5cbiAgICBnZXQgaGFzQ2xlYW5lcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5jbGVhbmVyICYmIHRoaXMuaGFzVmFsdWUgJiYgdGhpcy5pbnRlcmFjdGl2ZTtcbiAgICB9XG5cbiAgICBnZXQgaGFzTmF0aXZlVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc2VhcmNoO1xuICAgIH1cblxuICAgIGdldCBoYXNWYWx1ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy52YWx1ZS5sZW5ndGggfHwgdGhpcy5oYXNOYXRpdmVWYWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaGFzUGxhY2Vob2xkZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhdGhpcy5sYWJlbE91dHNpZGUgfHxcbiAgICAgICAgICAgICghdGhpcy5oYXNWYWx1ZSAmJiAoIXRoaXMuaGFzRXhhbXBsZVRleHQgfHwgdGhpcy5pbnB1dEhpZGRlbikpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IHBsYWNlaG9sZGVyUmFpc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXRoaXMubGFiZWxPdXRzaWRlICYmXG4gICAgICAgICAgICAoKHRoaXMuY29tcHV0ZWRGb2N1c2VkICYmICF0aGlzLnJlYWRPbmx5KSB8fCB0aGlzLmhhc1ZhbHVlKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBoYXNFeGFtcGxlVGV4dCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICEhdGhpcy5jb250cm9sbGVyLmV4YW1wbGVUZXh0ICYmXG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkRm9jdXNlZCAmJlxuICAgICAgICAgICAgIXRoaXMuaGFzVmFsdWUgJiZcbiAgICAgICAgICAgICF0aGlzLnJlYWRPbmx5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1Rvb2x0aXAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaGludENvbnRyb2xsZXIuY29udGVudCAmJiAhdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBnZXQgaWNvbkFsaWduTGVmdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5pY29uICYmIHRoaXMuaWNvbkFsaWduID09PSBgbGVmdGA7XG4gICAgfVxuXG4gICAgZ2V0IGljb25BbGlnblJpZ2h0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmljb24gJiYgdGhpcy5pY29uQWxpZ24gPT09IGByaWdodGA7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1JpZ2h0SWNvbnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0NsZWFuZXIgfHwgdGhpcy5oYXNUb29sdGlwIHx8IHRoaXMuaWNvbkFsaWduUmlnaHQ7XG4gICAgfVxuXG4gICAgZ2V0IHN0YXR1cygpOiBUdWlTdGF0dXNUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZURpcmVjdGl2ZT8ubW9kZSA/IGBkZWZhdWx0YCA6IHRoaXMudGFnU3RhdHVzO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcmFjdGl2ZSAmJiAhIXRoaXMuZGF0YWxpc3Q7XG4gICAgfVxuXG4gICAgZ2V0TGVmdENvbnRlbnQodGFnOiBzdHJpbmcpOiBQb2x5bW9ycGhldXNDb250ZW50IHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnRhZ1ZhbGlkYXRvcih0YWcpICYmIHRoaXMuZXJyb3JJY29uVGVtcGxhdGVcbiAgICAgICAgICAgID8gdGhpcy5lcnJvckljb25UZW1wbGF0ZVxuICAgICAgICAgICAgOiBgYDtcbiAgICB9XG5cbiAgICBvbkNsZWFuZXJDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVTZWFyY2goYGApO1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB0aGlzLnBhcmVudEhvc3RlZERyb3Bkb3duPy51cGRhdGVPcGVuKHRydWUpO1xuICAgIH1cblxuICAgIG9uQWN0aXZlWm9uZShhY3RpdmU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWRkVGFnKCk7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChhY3RpdmUpO1xuXG4gICAgICAgIGlmICghdGhpcy5jb21wdXRlZEZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9TdGFydCQubmV4dCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYWN0dWFsVGFyZ2V0ID0gZ2V0QWN0dWFsVGFyZ2V0KGV2ZW50KTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5mb2N1c2FibGVFbGVtZW50IHx8XG4gICAgICAgICAgICBhY3R1YWxUYXJnZXQgPT09IHRoaXMuZm9jdXNhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50IHx8XG4gICAgICAgICAgICAvLyBUT0RPOiBpZnJhbWUgd2FybmluZ1xuICAgICAgICAgICAgIShldmVudC50YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50KSB8fFxuICAgICAgICAgICAgdGhpcy5jbGVhbmVyU3ZnPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgfHxcbiAgICAgICAgICAgICh0aGlzLnRhZ3NDb250YWluZXIgJiZcbiAgICAgICAgICAgICAgICBhY3R1YWxUYXJnZXQgIT09IHRoaXMudGFnc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50ICYmXG4gICAgICAgICAgICAgICAgdGhpcy50YWdzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoYWN0dWFsVGFyZ2V0KSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICB9XG5cbiAgICBvbkZpZWxkS2V5RG93bkJhY2tzcGFjZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsT3V0c2lkZSAmJiAhdGhpcy5oYXNOYXRpdmVWYWx1ZSAmJiB0aGlzLnZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5kZWxldGVMYXN0RW5hYmxlZEl0ZW0oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25GaWVsZEtleURvd25BcnJvd0xlZnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25GaWVsZEtleURvd25BcnJvd0xlZnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5sYWJlbE91dHNpZGUgfHwgdGhpcy5oYXNOYXRpdmVWYWx1ZSB8fCAhdGhpcy52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHNldE5hdGl2ZUZvY3VzZWQodGhpcy50YWdzLmxhc3QubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgb25GaWVsZEtleURvd25FbnRlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hZGRUYWcoKTtcbiAgICAgICAgdGhpcy5zY3JvbGxUb0VuZCQubmV4dCgpO1xuICAgIH1cblxuICAgIG9uVGFnS2V5RG93bkFycm93TGVmdChjdXJyZW50SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoY3VycmVudEluZGV4ID4gMCkge1xuICAgICAgICAgICAgdGhpcy5vblNjcm9sbEtleURvd24oY3VycmVudEluZGV4LCAtMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblRhZ0tleURvd25BcnJvd1JpZ2h0KGN1cnJlbnRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChjdXJyZW50SW5kZXggPT09IHRoaXMudmFsdWUubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uU2Nyb2xsS2V5RG93bihjdXJyZW50SW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25UYWdFZGl0ZWQodmFsdWU6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShcbiAgICAgICAgICAgIHRoaXMudmFsdWVcbiAgICAgICAgICAgICAgICAubWFwKCh0YWcsIHRhZ0luZGV4KSA9PlxuICAgICAgICAgICAgICAgICAgICB0YWdJbmRleCAhPT0gaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGFnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQodGhpcy5zZXBhcmF0b3IpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKHRhZyA9PiB0YWcudHJpbSgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnJlZHVjZTxzdHJpbmdbXT4oXG4gICAgICAgICAgICAgICAgICAgIChyZXN1bHQsIGl0ZW06IHN0cmluZyB8IHN0cmluZ1tdKSA9PiByZXN1bHQuY29uY2F0KGl0ZW0pLFxuICAgICAgICAgICAgICAgICAgICBbXSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGhhbmRsZU9wdGlvbihpdGVtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKGBgKTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLnZhbHVlLmNvbmNhdChpdGVtKSk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNjcm9sbFRvRW5kJC5uZXh0KCk7XG4gICAgfVxuXG4gICAgb25JbnB1dCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFycmF5ID0gdGhpcy5hbGxvd1NwYWNlc1xuICAgICAgICAgICAgPyB2YWx1ZS5zcGxpdCh0aGlzLnNlcGFyYXRvcilcbiAgICAgICAgICAgIDogdmFsdWUuc3BsaXQoQUxMT1dFRF9TUEFDRV9SRUdFWFApO1xuICAgICAgICBjb25zdCB0YWdzID0gYXJyYXlcbiAgICAgICAgICAgIC5tYXAoaXRlbSA9PiBpdGVtLnRyaW0oKSlcbiAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW0sIGluZGV4LCB7bGVuZ3RofSkgPT4gaXRlbS5sZW5ndGggPiAwICYmIGluZGV4ICE9PSBsZW5ndGggLSAxKTtcbiAgICAgICAgY29uc3QgdmFsaWRhdGVkID0gdGFncy5maWx0ZXIodGFnID0+ICF0aGlzLmRpc2FibGVkSXRlbUhhbmRsZXIodGFnKSk7XG5cbiAgICAgICAgaWYgKGFycmF5Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKGFycmF5W2FycmF5Lmxlbmd0aCAtIDFdLnRyaW0oKSk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFsuLi50aGlzLnZhbHVlLCAuLi52YWxpZGF0ZWRdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub3BlbiA9IHRoaXMuaGFzTmF0aXZlVmFsdWU7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkQ2hhbmdlKGhvdmVyZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdHJhY2tCeUZuKF86IG51bWJlciwgdGFnOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICAvLyBBY3R1YWxseSB0YWcgaGFzIFR1aVN0cmluZ2lmaWFibGVJdGVtIHR5cGUgbm90IHN0cmluZ1xuICAgICAgICByZXR1cm4gdGFnLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVZhbHVlKHZhbHVlOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWVuID0gbmV3IFNldCgpO1xuXG4gICAgICAgIHN1cGVyLnVwZGF0ZVZhbHVlKFxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgICAgICAucmV2ZXJzZSgpXG4gICAgICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgaXRlbSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgIXRoaXMudW5pcXVlVGFncyB8fCAoISFpdGVtICYmICFzZWVuLmhhcyhpdGVtKSAmJiBzZWVuLmFkZChpdGVtKSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5yZXZlcnNlKCksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblNjcm9sbEtleURvd24oY3VycmVudEluZGV4OiBudW1iZXIsIGZsYWc6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCB0YWcgPSB0aGlzLnRhZ3MuZmluZCgoX2l0ZW0sIGluZGV4KSA9PiBpbmRleCA9PT0gY3VycmVudEluZGV4ICsgZmxhZyk7XG5cbiAgICAgICAgaWYgKCF0YWcgfHwgIXRoaXMuc2Nyb2xsQmFyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRhZy5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBmbGFnICogdGhpcy5zY3JvbGxCYXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCAtXG4gICAgICAgICAgICAgICAgZmxhZyAqIHRhZy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQgLVxuICAgICAgICAgICAgICAgIHRhZy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoIDxcbiAgICAgICAgICAgIDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbEJhci5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgKz1cbiAgICAgICAgICAgICAgICBmbGFnICogdGFnLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTY3JvbGxlclN1YnNjcmlwdGlvbihzY3JvbGxlcjogVHVpU2Nyb2xsYmFyQ29tcG9uZW50IHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBpZiAoIXNjcm9sbGVyPy5icm93c2VyU2Nyb2xsUmVmKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7bmF0aXZlRWxlbWVudH0gPSBzY3JvbGxlci5icm93c2VyU2Nyb2xsUmVmO1xuXG4gICAgICAgIGNvbnN0IHdoZWVsJCA9IHR5cGVkRnJvbUV2ZW50KG5hdGl2ZUVsZW1lbnQsIGB3aGVlbGAsIHtwYXNzaXZlOiBmYWxzZX0pLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQuZGVsdGFYID09PSAwICYmIHRoaXMuc2hvdWxkU2Nyb2xsKG5hdGl2ZUVsZW1lbnQpKSxcbiAgICAgICAgICAgIHByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICBtYXAoKHtkZWx0YVl9KSA9PlxuICAgICAgICAgICAgICAgIE1hdGgubWF4KG5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCArIGRlbHRhWSAqIEVWRU5UX1lfVE9fWF9DT0VGRklDSUVOVCwgMCksXG4gICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBzdGFydCQgPSB0aGlzLnNjcm9sbFRvU3RhcnQkLnBpcGUobWFwVG8oMCkpO1xuICAgICAgICBjb25zdCBlbmQkID0gdGhpcy5zY3JvbGxUb0VuZCQucGlwZShtYXAoKCkgPT4gbmF0aXZlRWxlbWVudC5zY3JvbGxXaWR0aCkpO1xuXG4gICAgICAgIG1lcmdlKHdoZWVsJCwgc3RhcnQkLCBlbmQkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKGxlZnQgPT4gdGhpcy50dWlTY3JvbGxTZXJ2aWNlLnNjcm9sbCQobmF0aXZlRWxlbWVudCwgMCwgbGVmdCkpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVNlYXJjaCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlYXJjaCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNlYXJjaENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNob3VsZFNjcm9sbCh7c2Nyb2xsV2lkdGgsIG9mZnNldFdpZHRofTogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHNjcm9sbFdpZHRoID4gb2Zmc2V0V2lkdGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRUYWcoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSB0aGlzLnNlYXJjaC50cmltKCk7XG5cbiAgICAgICAgaWYgKCFpbnB1dFZhbHVlIHx8IHRoaXMuZGlzYWJsZWRJdGVtSGFuZGxlcihpbnB1dFZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVTZWFyY2goYGApO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMudmFsdWUuY29uY2F0KGlucHV0VmFsdWUpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlbGV0ZUxhc3RFbmFibGVkSXRlbSgpOiB2b2lkIHtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSB0aGlzLnZhbHVlLmxlbmd0aCAtIDE7IGluZGV4ID49IDA7IGluZGV4LS0pIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5kaXNhYmxlZEl0ZW1IYW5kbGVyKHRoaXMudmFsdWVbaW5kZXhdKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUoW1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnZhbHVlLnNsaWNlKDAsIGluZGV4KSxcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy52YWx1ZS5zbGljZShpbmRleCArIDEsIHRoaXMudmFsdWUubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICBdKTtcblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KHByZXZlbnRTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCwgdHJ1ZSwgcHJldmVudFNjcm9sbCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -155,7 +155,7 @@ TuiTextAreaComponent = __decorate([
155
155
  '($.data-mode.attr)': `mode$`,
156
156
  '[class._ios]': `isIOS`,
157
157
  },
158
- styles: [":host{position:relative;z-index:0;display:flex;font:var(--tui-font-text-m);flex-direction:column;min-height:6.75rem;border-radius:var(--tui-radius-m);color:var(--tui-text-01)}:host[data-mode=onDark]{color:var(--tui-text-01-night)}:host[data-size='m']{font:var(--tui-font-text-s);min-height:5.5rem}:host[data-size='m']._has-counter{min-height:6.625rem}:host[data-size='l']._has-counter{min-height:7.875rem}.t-outline{min-height:inherit}.t-content{display:block;margin-top:0;margin-bottom:0;min-height:inherit;box-sizing:border-box;overflow:hidden;cursor:text}:host._disabled .t-content{cursor:auto;opacity:var(--tui-disabled-opacity)}:host:not(._expandable) .t-content{position:absolute;top:0;left:0;bottom:1px;right:0;min-height:auto}:host._has-counter:not(._expandable) .t-content{bottom:1.6875rem}.t-wrapper{position:relative;width:100%;height:100%;min-height:inherit;padding-bottom:.4375rem;box-sizing:border-box}:host[data-size='m']._label-outside .t-wrapper{padding-top:.75rem}:host[data-size='l']._label-outside .t-wrapper{padding-top:1rem}:host[data-size='m']:not(._label-outside) .t-wrapper{padding-top:1.375rem}:host[data-size='l']:not(._label-outside) .t-wrapper{padding-top:1.625rem}:host-context(table)[data-size='m']._label-outside .t-wrapper{padding-bottom:.75rem}:host-context(table)[data-size='l']._label-outside .t-wrapper{padding-bottom:1rem}.t-input-wrapper{min-height:inherit;width:100%;flex:1}.t-relative{position:relative;min-height:inherit}.t-box{display:flex;min-height:100%;width:100%}:host:not(._expandable) .t-box{height:100%}:host._has-counter._expandable .t-box{margin-bottom:1.25rem}.t-pseudo-content{white-space:pre-wrap;word-wrap:break-word;pointer-events:none;color:transparent;overflow:hidden;border:solid transparent;border-width:0 var(--border-end,0) 0 var(--border-start,0);border-inline-start-width:var(--border-start,0);border-inline-end-width:var(--border-end,0)}:host[data-size='m'] .t-pseudo-content{padding:0 .75rem}:host[data-size='l'] .t-pseudo-content{padding:0 1rem}.t-pseudo-content__extra{background-color:var(--tui-error-bg-night)}.t-input{padding:0;margin:0;border:0;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;resize:none;overflow:hidden;outline:0;border:solid transparent;border-width:0 var(--border-end,0) 0 var(--border-start,0);border-inline-start-width:var(--border-start,0);border-inline-end-width:var(--border-end,0)}.t-input:-webkit-autofill,.t-input:-webkit-autofill:focus,.t-input:-webkit-autofill:hover{caret-color:var(--tui-base-09);border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 100rem var(--tui-autofill) inset!important}.t-input:not(:last-of-type){display:none}.t-input::-ms-input-placeholder{color:var(--tui-text-03);opacity:0}.t-input::placeholder{color:var(--tui-text-03);opacity:0}:host[data-mode=onDark] .t-input::-ms-input-placeholder{color:var(--tui-text-03-night)}:host[data-mode=onDark] .t-input::placeholder{color:var(--tui-text-03-night)}:host._focused .t-input:not(:read-only)::-ms-input-placeholder{opacity:1}:host._focused .t-input:not(:-moz-read-only)::placeholder{opacity:1}:host._focused .t-input:not(:read-only)::placeholder{opacity:1}:host[data-size='m'] .t-input{padding:0 .75rem}:host[data-size='l'] .t-input{padding:0 1rem}:host._ios .t-input{padding-left:.8125rem}:host[data-mode=onDark]._disabled .t-input{color:var(--tui-text-03-night)}.t-placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;font:var(--tui-font-text-s);color:var(--tui-text-01);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--tui-text-02);pointer-events:none;will-change:transform;transform:translateY(0);position:absolute;left:0;max-width:100%;padding:0 1rem;border:solid transparent;border-width:0 var(--border-end,0) 0 var(--border-start,0);border-inline-start-width:var(--border-start,0);border-inline-end-width:var(--border-end,0);box-sizing:border-box}.t-placeholder_raised{transform:translateY(-.625rem)}:host[data-size='m'] .t-placeholder_raised{font:var(--tui-font-text-xs);transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .t-placeholder_raised,:host._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-error-fill)}:host[data-mode=onDark]._invalid:not(._focused) .t-placeholder_raised,:host[data-mode=onDark]._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-error-fill-night)}:host._focused .t-placeholder,:host[data-size='l']._focused._label-outside .t-placeholder,:host[data-size='m']._focused._label-outside .t-placeholder{color:var(--tui-text-03)}:host[data-size='l'] .t-placeholder{font-size:.9375rem}:host[data-size='l'] .t-placeholder_raised{font-size:.8156rem}:host[data-size='l']._focused:not(._label-outside) .t-placeholder,:host[data-size='m']._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-01)}:host[data-mode=onDark] .t-placeholder{color:var(--tui-text-02-night)}:host[data-size='l'][data-mode=onDark]._focused:not(._label-outside) .t-placeholder,:host[data-size='m'][data-mode=onDark]._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-01-night)}:host[data-mode=onDark]._focused .t-placeholder,:host[data-size='l'][data-mode=onDark]._focused._label-outside .t-placeholder,:host[data-size='m'][data-mode=onDark]._focused._label-outside .t-placeholder{color:var(--tui-text-02-night)}@supports (-webkit-hyphens:none){.t-placeholder{will-change:unset;transition-property:transform,color,letter-spacing}}:host[data-size='m'] .t-placeholder{top:.75rem;padding:0 .75rem}:host[data-size='l'] .t-placeholder{top:1rem}:host._label-outside .t-placeholder{overflow:initial;height:auto;white-space:initial}.t-icons{position:absolute;top:0;left:0;bottom:0;right:0;display:flex;justify-content:flex-end;pointer-events:none;padding:1rem .75rem}:host[data-size='m'] .t-icons{padding:.75rem}.t-cleaner{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;cursor:pointer;transition-property:color,transform;pointer-events:auto}.t-cleaner:hover{color:var(--tui-text-02)}:host._disabled .t-cleaner,:host._readonly .t-cleaner{pointer-events:none}:host[data-mode=onDark] .t-cleaner{color:var(--tui-text-03-night)}:host[data-mode=onDark] .t-cleaner:hover{color:var(--tui-text-01-night)}.t-tooltip{pointer-events:auto}.t-counter{position:absolute;right:.75rem;bottom:.5rem;font:var(--tui-font-text-s);pointer-events:none;margin-top:auto;text-align:right;color:var(--tui-text-03)}:host[data-mode=onDark] .t-counter{color:var(--tui-text-03-night)}"]
158
+ styles: [":host{position:relative;z-index:0;display:flex;font:var(--tui-font-text-m);flex-direction:column;min-height:6.75rem;border-radius:var(--tui-radius-m);color:var(--tui-text-01)}:host[data-mode=onDark]{color:var(--tui-text-01-night)}:host[data-size='m']{font:var(--tui-font-text-s);min-height:5.5rem}:host[data-size='m']._has-counter{min-height:6.625rem}:host[data-size='l']._has-counter{min-height:7.875rem}.t-outline{min-height:inherit}.t-content{display:block;margin-top:0;margin-bottom:0;min-height:inherit;box-sizing:border-box;overflow:hidden;cursor:text}:host._disabled .t-content{cursor:auto;opacity:var(--tui-disabled-opacity)}:host:not(._expandable) .t-content{position:absolute;top:0;left:0;bottom:1px;right:0;min-height:auto}:host._has-counter:not(._expandable) .t-content{bottom:1.6875rem}.t-wrapper{position:relative;width:100%;height:100%;min-height:inherit;padding-bottom:.4375rem;box-sizing:border-box}:host[data-size='m']._label-outside .t-wrapper{padding-top:.75rem}:host[data-size='l']._label-outside .t-wrapper{padding-top:1rem}:host[data-size='m']:not(._label-outside) .t-wrapper{padding-top:1.375rem}:host[data-size='l']:not(._label-outside) .t-wrapper{padding-top:1.625rem}:host-context(table)[data-size='m']._label-outside .t-wrapper{padding-bottom:.75rem}:host-context(table)[data-size='l']._label-outside .t-wrapper{padding-bottom:1rem}.t-input-wrapper{min-height:inherit;width:100%;flex:1}.t-relative{position:relative;min-height:inherit}.t-box{display:flex;min-height:100%;width:100%}:host:not(._expandable) .t-box{height:100%}:host._has-counter._expandable .t-box{margin-bottom:1.25rem}.t-pseudo-content{white-space:pre-wrap;word-wrap:break-word;pointer-events:none;color:transparent;overflow:hidden;border:solid transparent;border-width:0 var(--border-end,0) 0 var(--border-start,0);border-inline-start-width:var(--border-start,0);border-inline-end-width:var(--border-end,0)}:host[data-size='m'] .t-pseudo-content{padding:0 .75rem}:host[data-size='l'] .t-pseudo-content{padding:0 1rem}.t-pseudo-content__extra{background-color:var(--tui-error-bg-night)}.t-input{padding:0;margin:0;border:0;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;resize:none;overflow:hidden;outline:0;border:solid transparent;border-width:0 var(--border-end,0) 0 var(--border-start,0);border-inline-start-width:var(--border-start,0);border-inline-end-width:var(--border-end,0)}.t-input:-webkit-autofill,.t-input:-webkit-autofill:focus,.t-input:-webkit-autofill:hover{caret-color:var(--tui-base-09);border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 100rem var(--tui-autofill) inset!important}.t-input:not(:last-of-type){display:none}.t-input::-ms-input-placeholder{color:var(--tui-text-03);opacity:0}.t-input::placeholder{color:var(--tui-text-03);opacity:0}:host[data-mode=onDark] .t-input::-ms-input-placeholder{color:var(--tui-text-03-night)}:host[data-mode=onDark] .t-input::placeholder{color:var(--tui-text-03-night)}:host._focused .t-input:not(:read-only)::-ms-input-placeholder{opacity:1}:host._focused .t-input:not(:-moz-read-only)::placeholder{opacity:1}:host._focused .t-input:not(:read-only)::placeholder{opacity:1}:host[data-size='m'] .t-input{padding:0 .75rem}:host[data-size='l'] .t-input{padding:0 1rem}:host[data-mode=onDark]._disabled .t-input{color:var(--tui-text-03-night)}@supports (-webkit-marquee-repetition:infinite) and (object-fit:fill){:host._ios .t-input{padding-left:.8125rem}}.t-placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;font:var(--tui-font-text-s);color:var(--tui-text-01);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--tui-text-02);pointer-events:none;will-change:transform;transform:translateY(0);position:absolute;left:0;max-width:100%;padding:0 1rem;border:solid transparent;border-width:0 var(--border-end,0) 0 var(--border-start,0);border-inline-start-width:var(--border-start,0);border-inline-end-width:var(--border-end,0);box-sizing:border-box}.t-placeholder_raised{transform:translateY(-.625rem)}:host[data-size='m'] .t-placeholder_raised{font:var(--tui-font-text-xs);transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .t-placeholder_raised,:host._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-error-fill)}:host[data-mode=onDark]._invalid:not(._focused) .t-placeholder_raised,:host[data-mode=onDark]._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-error-fill-night)}:host._focused .t-placeholder,:host[data-size='l']._focused._label-outside .t-placeholder,:host[data-size='m']._focused._label-outside .t-placeholder{color:var(--tui-text-03)}:host[data-size='l'] .t-placeholder{font-size:.9375rem}:host[data-size='l'] .t-placeholder_raised{font-size:.8156rem}:host[data-size='l']._focused:not(._label-outside) .t-placeholder,:host[data-size='m']._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-01)}:host[data-mode=onDark] .t-placeholder{color:var(--tui-text-02-night)}:host[data-size='l'][data-mode=onDark]._focused:not(._label-outside) .t-placeholder,:host[data-size='m'][data-mode=onDark]._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-01-night)}:host[data-mode=onDark]._focused .t-placeholder,:host[data-size='l'][data-mode=onDark]._focused._label-outside .t-placeholder,:host[data-size='m'][data-mode=onDark]._focused._label-outside .t-placeholder{color:var(--tui-text-02-night)}@supports (-webkit-hyphens:none){.t-placeholder{will-change:unset;transition-property:transform,color,letter-spacing}}:host[data-size='m'] .t-placeholder{top:.75rem;padding:0 .75rem}:host[data-size='l'] .t-placeholder{top:1rem}:host._label-outside .t-placeholder{overflow:initial;height:auto;white-space:initial}.t-icons{position:absolute;top:0;left:0;bottom:0;right:0;display:flex;justify-content:flex-end;pointer-events:none;padding:1rem .75rem}:host[data-size='m'] .t-icons{padding:.75rem}.t-cleaner{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;cursor:pointer;transition-property:color,transform;pointer-events:auto}.t-cleaner:hover{color:var(--tui-text-02)}:host._disabled .t-cleaner,:host._readonly .t-cleaner{pointer-events:none}:host[data-mode=onDark] .t-cleaner{color:var(--tui-text-03-night)}:host[data-mode=onDark] .t-cleaner:hover{color:var(--tui-text-01-night)}.t-tooltip{pointer-events:auto}.t-counter{position:absolute;right:.75rem;bottom:.5rem;font:var(--tui-font-text-s);pointer-events:none;margin-top:auto;text-align:right;color:var(--tui-text-03)}:host[data-mode=onDark] .t-counter{color:var(--tui-text-03-night)}"]
159
159
  }),
160
160
  __param(0, Optional()),
161
161
  __param(0, Self()),
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __param } from "tslib";
2
2
  import { ChangeDetectionStrategy, Component, HostBinding, Inject, Input, } from '@angular/core';
3
3
  import { isNumber, tuiDefaultProp } from '@taiga-ui/cdk';
4
- import { MODE_PROVIDER, TUI_MODE } from '@taiga-ui/core';
4
+ import { MODE_PROVIDER, TUI_MODE, } from '@taiga-ui/core';
5
5
  import { Observable } from 'rxjs';
6
6
  var TuiBadgeComponent = /** @class */ (function () {
7
7
  function TuiBadgeComponent(mode$) {
@@ -77,11 +77,11 @@ var TuiBadgeComponent = /** @class */ (function () {
77
77
  host: {
78
78
  '($.data-mode.attr)': "mode$",
79
79
  },
80
- styles: [":host{transition-property:background-color;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;--left-content-color:currentColor;position:relative;display:inline-flex;font:var(--tui-font-text-s);align-items:center;justify-content:center;box-sizing:border-box;color:var(--tui-base-01);border-radius:6.25rem;white-space:nowrap;overflow:hidden;vertical-align:middle}:host:after{transition-property:background;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:absolute;top:0;left:0;width:100%;height:100%;content:'';box-sizing:border-box;border-radius:inherit;pointer-events:none}:host._hoverable:active[data-tui-host-status=custom]:after,:host._hoverable:hover[data-tui-host-status=custom]:after{background-color:var(--tui-clear)}:host[data-tui-host-status=primary]{background-color:var(--tui-primary);color:var(--tui-primary-text)}:host[data-tui-host-status=primary]._hoverable:hover{background-color:var(--tui-primary-hover)}:host[data-tui-host-status=primary]._hoverable:active{background-color:var(--tui-primary-active)}:host[data-tui-host-status=error]{--left-content-color:var(--tui-error-fill);background-color:var(--tui-error-bg);color:var(--tui-text-01)}:host[data-tui-host-status=error]._hoverable:active,:host[data-tui-host-status=error]._hoverable:hover{background-color:var(--tui-error-bg-hover)}:host[data-tui-host-status=error][data-mode=onDark]{background-color:var(--tui-error-bg-night);color:var(--tui-text-01-night)}:host[data-tui-host-status=error][data-mode=onDark]._hoverable:active,:host[data-tui-host-status=error][data-mode=onDark]._hoverable:hover{background-color:var(--tui-error-bg-night-hover)}:host[data-tui-host-status=success]{--left-content-color:var(--tui-success-fill);background-color:var(--tui-success-bg);color:var(--tui-text-01)}:host[data-tui-host-status=success]._hoverable:active,:host[data-tui-host-status=success]._hoverable:hover{background-color:var(--tui-success-bg-hover)}:host[data-tui-host-status=success][data-mode=onDark]{background-color:var(--tui-success-bg-night);color:var(--tui-text-01-night)}:host[data-tui-host-status=success][data-mode=onDark]._hoverable:active,:host[data-tui-host-status=success][data-mode=onDark]._hoverable:hover{background-color:var(--tui-success-bg-night-hover)}:host[data-tui-host-status=warning]{--left-content-color:var(--tui-warning-fill);background-color:var(--tui-warning-bg);color:var(--tui-text-01)}:host[data-tui-host-status=warning]._hoverable:active,:host[data-tui-host-status=warning]._hoverable:hover{background-color:var(--tui-warning-bg-hover)}:host[data-tui-host-status=warning][data-mode=onDark]{background-color:var(--tui-warning-bg-night);color:var(--tui-text-01-night)}:host[data-tui-host-status=warning][data-mode=onDark]._hoverable:active,:host[data-tui-host-status=warning][data-mode=onDark]._hoverable:hover{background-color:var(--tui-warning-bg-night-hover)}:host[data-tui-host-status=info]{--left-content-color:var(--tui-info-fill);background-color:var(--tui-info-bg);color:var(--tui-text-01)}:host[data-tui-host-status=info]._hoverable:active,:host[data-tui-host-status=info]._hoverable:hover{background-color:var(--tui-info-bg-hover)}:host[data-tui-host-status=info][data-mode=onDark]{background-color:var(--tui-info-bg-night);color:var(--tui-text-01-night)}:host[data-tui-host-status=info][data-mode=onDark]._hoverable:active,:host[data-tui-host-status=info][data-mode=onDark]._hoverable:hover{background-color:var(--tui-info-bg-night-hover)}:host[data-tui-host-status=neutral]{--left-content-color:var(--tui-neutral-fill);background-color:var(--tui-neutral-bg);color:var(--tui-text-01)}:host[data-tui-host-status=neutral]._hoverable:active,:host[data-tui-host-status=neutral]._hoverable:hover{background-color:var(--tui-neutral-bg-hover)}:host[data-tui-host-status=neutral][data-mode=onDark]{background-color:var(--tui-neutral-bg-night);color:var(--tui-text-01-night)}:host[data-tui-host-status=neutral][data-mode=onDark]._hoverable:active,:host[data-tui-host-status=neutral][data-mode=onDark]._hoverable:hover{background-color:var(--tui-neutral-bg-night-hover)}:host[data-tui-host-status=default]{background-color:var(--tui-base-06)}:host[data-tui-host-status=default]:not([data-mode])._hoverable:hover{background-color:var(--tui-base-07)}:host[data-tui-host-status=default]:not([data-mode])._hoverable:active{background-color:var(--tui-base-08)}:host[data-tui-host-status=default][data-mode=onDark]{background-color:var(--tui-clear-inverse-hover)}:host[data-tui-host-status=default][data-mode=onDark]._hoverable:hover{background-color:var(--tui-clear-inverse-active)}:host[data-tui-host-status=default][data-mode=onDark]._hoverable:active{background-color:var(--tui-clear-inverse-active)}:host[data-tui-host-status=default][data-mode=onDark]:focus:after{border:2px solid var(--tui-base-01)}:host[data-tui-host-status=default][data-mode=onLight]{background-color:var(--tui-clear);color:var(--tui-text-01)}:host[data-tui-host-status=default][data-mode=onLight]._hoverable:hover{background-color:var(--tui-clear-hover)}:host[data-tui-host-status=default][data-mode=onLight]._hoverable:active{background-color:var(--tui-clear-active)}:host._hoverable{cursor:pointer}:host[data-tui-host-padding='m']{padding:0 .5rem}:host[data-tui-host-padding='m'][data-size='s']{padding:0 .375rem}:host[data-tui-host-padding='m'][data-size='l']{padding:0 .625rem}:host[data-tui-host-padding='l']{padding:0 .625rem}:host[data-tui-host-padding='l'][data-size='s']{padding:0 .5rem}:host[data-tui-host-padding='l'][data-size='l']{padding:0 .75rem}:host[data-size='s']{font:var(--tui-font-text-xs);height:1.25rem;min-width:1.25rem}:host[data-size='s'] .left-content:before{width:.25rem;height:.25rem}:host[data-size='m']{height:var(--tui-height-xs);line-height:var(--tui-height-xs);min-width:var(--tui-height-xs)}:host[data-size='l']{height:var(--tui-height-s);line-height:var(--tui-height-s);min-width:var(--tui-height-s)}:host[data-size='l'] .left-content:before{margin:0 .5rem 0 0;width:.5rem;height:.5rem}:host._empty-value .left-content{margin:0 -.25rem}:host._empty-value .left-content:before{margin:0}.left-content{display:none;color:var(--left-content-color);line-height:0}.left-content:not(:empty){display:block;margin-left:-.25rem}.left-content:not(:empty):before{content:none}:host[data-tui-host-status=error] .left-content,:host[data-tui-host-status=info] .left-content,:host[data-tui-host-status=neutral] .left-content,:host[data-tui-host-status=success] .left-content,:host[data-tui-host-status=warning] .left-content{display:block}.left-content:before{content:'';display:block;background:currentColor;margin:0 .375rem 0 0;width:.375rem;height:.375rem;border-radius:100%}"]
80
+ styles: [":host{transition-property:background-color;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;--left-content-color:currentColor;position:relative;display:inline-flex;font:var(--tui-font-text-s);align-items:center;justify-content:center;box-sizing:border-box;color:var(--tui-base-01);border-radius:6.25rem;white-space:nowrap;overflow:hidden;vertical-align:middle}:host:after{transition-property:background;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:absolute;top:0;left:0;width:100%;height:100%;content:'';box-sizing:border-box;border-radius:inherit;pointer-events:none}:host._hoverable:active[data-tui-host-status=custom]:after,:host._hoverable:hover[data-tui-host-status=custom]:after{background-color:var(--tui-clear)}:host[data-tui-host-status=primary]{background-color:var(--tui-primary);color:var(--tui-primary-text)}:host[data-tui-host-status=primary]._hoverable:hover{background-color:var(--tui-primary-hover)}:host[data-tui-host-status=primary]._hoverable:active{background-color:var(--tui-primary-active)}:host[data-tui-host-status=error]{--left-content-color:var(--tui-error-fill);background-color:var(--tui-error-bg);color:var(--tui-text-01)}:host[data-tui-host-status=error]._hoverable:active,:host[data-tui-host-status=error]._hoverable:hover{background-color:var(--tui-error-bg-hover)}:host[data-tui-host-status=error][data-mode=onDark]{background-color:var(--tui-error-bg-night);color:var(--tui-text-01-night)}:host[data-tui-host-status=error][data-mode=onDark]._hoverable:active,:host[data-tui-host-status=error][data-mode=onDark]._hoverable:hover{background-color:var(--tui-error-bg-night-hover)}:host[data-tui-host-status=success]{--left-content-color:var(--tui-success-fill);background-color:var(--tui-success-bg);color:var(--tui-text-01)}:host[data-tui-host-status=success]._hoverable:active,:host[data-tui-host-status=success]._hoverable:hover{background-color:var(--tui-success-bg-hover)}:host[data-tui-host-status=success][data-mode=onDark]{background-color:var(--tui-success-bg-night);color:var(--tui-text-01-night)}:host[data-tui-host-status=success][data-mode=onDark]._hoverable:active,:host[data-tui-host-status=success][data-mode=onDark]._hoverable:hover{background-color:var(--tui-success-bg-night-hover)}:host[data-tui-host-status=warning]{--left-content-color:var(--tui-warning-fill);background-color:var(--tui-warning-bg);color:var(--tui-text-01)}:host[data-tui-host-status=warning]._hoverable:active,:host[data-tui-host-status=warning]._hoverable:hover{background-color:var(--tui-warning-bg-hover)}:host[data-tui-host-status=warning][data-mode=onDark]{background-color:var(--tui-warning-bg-night);color:var(--tui-text-01-night)}:host[data-tui-host-status=warning][data-mode=onDark]._hoverable:active,:host[data-tui-host-status=warning][data-mode=onDark]._hoverable:hover{background-color:var(--tui-warning-bg-night-hover)}:host[data-tui-host-status=info]{--left-content-color:var(--tui-info-fill);background-color:var(--tui-info-bg);color:var(--tui-text-01)}:host[data-tui-host-status=info]._hoverable:active,:host[data-tui-host-status=info]._hoverable:hover{background-color:var(--tui-info-bg-hover)}:host[data-tui-host-status=info][data-mode=onDark]{background-color:var(--tui-info-bg-night);color:var(--tui-text-01-night)}:host[data-tui-host-status=info][data-mode=onDark]._hoverable:active,:host[data-tui-host-status=info][data-mode=onDark]._hoverable:hover{background-color:var(--tui-info-bg-night-hover)}:host[data-tui-host-status=neutral]{--left-content-color:var(--tui-neutral-fill);background-color:var(--tui-neutral-bg);color:var(--tui-text-01)}:host[data-tui-host-status=neutral]._hoverable:active,:host[data-tui-host-status=neutral]._hoverable:hover{background-color:var(--tui-neutral-bg-hover)}:host[data-tui-host-status=neutral][data-mode=onDark]{background-color:var(--tui-neutral-bg-night);color:var(--tui-text-01-night)}:host[data-tui-host-status=neutral][data-mode=onDark]._hoverable:active,:host[data-tui-host-status=neutral][data-mode=onDark]._hoverable:hover{background-color:var(--tui-neutral-bg-night-hover)}:host[data-tui-host-status=default]{background-color:var(--tui-base-06)}:host[data-tui-host-status=default]:not([data-mode])._hoverable:hover{background-color:var(--tui-base-07)}:host[data-tui-host-status=default]:not([data-mode])._hoverable:active{background-color:var(--tui-base-08)}:host[data-tui-host-status=default][data-mode=onDark]{background-color:var(--tui-clear-inverse-hover)}:host[data-tui-host-status=default][data-mode=onDark]._hoverable:hover{background-color:var(--tui-clear-inverse-active)}:host[data-tui-host-status=default][data-mode=onDark]._hoverable:active{background-color:var(--tui-clear-inverse-active)}:host[data-tui-host-status=default][data-mode=onDark]:focus:after{border:2px solid var(--tui-base-01)}:host[data-tui-host-status=default][data-mode=onLight]{background-color:var(--tui-clear);color:var(--tui-text-01)}:host[data-tui-host-status=default][data-mode=onLight]._hoverable:hover{background-color:var(--tui-clear-hover)}:host[data-tui-host-status=default][data-mode=onLight]._hoverable:active{background-color:var(--tui-clear-active)}:host._hoverable{cursor:pointer}:host[data-tui-host-padding='m']{padding:0 .5rem}:host[data-tui-host-padding='m'][data-size=xs]{padding:0 .25rem}:host[data-tui-host-padding='m'][data-size='s']{padding:0 .375rem}:host[data-tui-host-padding='m'][data-size='l']{padding:0 .625rem}:host[data-tui-host-padding='l']{padding:0 .625rem}:host[data-tui-host-padding='l'][data-size=xs]{padding:0 .375rem}:host[data-tui-host-padding='l'][data-size='s']{padding:0 .5rem}:host[data-tui-host-padding='l'][data-size='l']{padding:0 .75rem}:host[data-size=xs]{font:var(--tui-font-text-xs);height:1rem;min-width:1rem}:host[data-size=xs] .left-content:before{width:.34375rem;height:.34375rem}:host[data-size='s']{font:var(--tui-font-text-xs);height:1.25rem;min-width:1.25rem}:host[data-size='s'] .left-content:before{width:.25rem;height:.25rem}:host[data-size='m']{height:var(--tui-height-xs);line-height:var(--tui-height-xs);min-width:var(--tui-height-xs)}:host[data-size='l']{height:var(--tui-height-s);line-height:var(--tui-height-s);min-width:var(--tui-height-s)}:host[data-size='l'] .left-content:before{margin:0 .5rem 0 0;width:.5rem;height:.5rem}:host._empty-value .left-content{margin:0 -.25rem}:host._empty-value .left-content:before{margin:0}.left-content{display:none;color:var(--left-content-color);line-height:0}.left-content:not(:empty){display:block;margin-left:-.25rem}.left-content:not(:empty):before{content:none}:host[data-tui-host-status=error] .left-content,:host[data-tui-host-status=info] .left-content,:host[data-tui-host-status=neutral] .left-content,:host[data-tui-host-status=success] .left-content,:host[data-tui-host-status=warning] .left-content{display:block}.left-content:before{content:'';display:block;background:currentColor;margin:0 .375rem 0 0;width:.375rem;height:.375rem;border-radius:100%}"]
81
81
  }),
82
82
  __param(0, Inject(TUI_MODE))
83
83
  ], TuiBadgeComponent);
84
84
  return TuiBadgeComponent;
85
85
  }());
86
86
  export { TuiBadgeComponent };
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2JhZGdlLyIsInNvdXJjZXMiOlsiYmFkZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssR0FDUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsUUFBUSxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsYUFBYSxFQUFFLFFBQVEsRUFBb0MsTUFBTSxnQkFBZ0IsQ0FBQztBQUcxRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBWWhDO0lBb0JJLDJCQUF1QyxLQUF1QztRQUF2QyxVQUFLLEdBQUwsS0FBSyxDQUFrQztRQWpCOUUsVUFBSyxHQUF3QixFQUFFLENBQUM7UUFLaEMsU0FBSSxHQUF3QixHQUFHLENBQUM7UUFLaEMsV0FBTSxHQUFlLFNBQVMsQ0FBQztRQUsvQixjQUFTLEdBQUcsS0FBSyxDQUFDO0lBRStELENBQUM7SUFHbEYsc0JBQUksc0NBQU87YUFBWDtZQUNJLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDZCxPQUFPLE1BQU0sQ0FBQzthQUNqQjtZQUVELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDdEQsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSwwQ0FBVzthQUFmO1lBQ0ksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFO2dCQUM3RCxPQUFPLEtBQUssQ0FBQzthQUNoQjtpQkFBTTtnQkFDSCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDN0I7UUFDTCxDQUFDOzs7T0FBQTtJQUdELHNCQUFJLHNDQUFPO2FBQVg7WUFDSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQzdCLENBQUM7OztPQUFBOztnQkF0QjZDLFVBQVUsdUJBQTNDLE1BQU0sU0FBQyxRQUFROztJQWpCNUI7UUFGQyxLQUFLLEVBQUU7UUFDUCxjQUFjLEVBQUU7b0RBQ2U7SUFLaEM7UUFIQyxLQUFLLEVBQUU7UUFDUCxXQUFXLENBQUMsZ0JBQWdCLENBQUM7UUFDN0IsY0FBYyxFQUFFO21EQUNlO0lBS2hDO1FBSEMsS0FBSyxFQUFFO1FBQ1AsV0FBVyxDQUFDLDJCQUEyQixDQUFDO1FBQ3hDLGNBQWMsRUFBRTtxREFDYztJQUsvQjtRQUhDLEtBQUssRUFBRTtRQUNQLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQztRQUMvQixjQUFjLEVBQUU7d0RBQ0M7SUFLbEI7UUFEQyxXQUFXLENBQUMsNEJBQTRCLENBQUM7b0RBT3pDO0lBV0Q7UUFEQyxXQUFXLENBQUMsb0JBQW9CLENBQUM7b0RBR2pDO0lBMUNRLGlCQUFpQjtRQVY3QixTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsV0FBVztZQUNyQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtZQUMvQyw4RkFBb0M7WUFFcEMsU0FBUyxFQUFFLENBQUMsYUFBYSxDQUFDO1lBQzFCLElBQUksRUFBRTtnQkFDRixvQkFBb0IsRUFBRSxPQUFPO2FBQ2hDOztTQUNKLENBQUM7UUFxQmUsV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7T0FwQnBCLGlCQUFpQixDQTJDN0I7SUFBRCx3QkFBQztDQUFBLEFBM0NELElBMkNDO1NBM0NZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2lzTnVtYmVyLCB0dWlEZWZhdWx0UHJvcH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge01PREVfUFJPVklERVIsIFRVSV9NT0RFLCBUdWlCcmlnaHRuZXNzLCBUdWlTaXplTCwgVHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VHVpU3RhdHVzVH0gZnJvbSAnQHRhaWdhLXVpL2tpdC90eXBlcyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogYHR1aS1iYWRnZWAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdGVtcGxhdGVVcmw6IGAuL2JhZGdlLnRlbXBsYXRlLmh0bWxgLFxuICAgIHN0eWxlVXJsczogW2AuL2JhZGdlLnN0eWxlLmxlc3NgXSxcbiAgICBwcm92aWRlcnM6IFtNT0RFX1BST1ZJREVSXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoJC5kYXRhLW1vZGUuYXR0ciknOiBgbW9kZSRgLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUJhZGdlQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgdmFsdWU6IFBvbHltb3JwaGV1c0NvbnRlbnQgPSBgYDtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKGBhdHRyLmRhdGEtc2l6ZWApXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzaXplOiBUdWlTaXplUyB8IFR1aVNpemVMID0gYG1gO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoYGF0dHIuZGF0YS10dWktaG9zdC1zdGF0dXNgKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc3RhdHVzOiBUdWlTdGF0dXNUID0gYGRlZmF1bHRgO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoYGNsYXNzLl9ob3ZlcmFibGVgKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaG92ZXJhYmxlID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KFRVSV9NT0RFKSByZWFkb25seSBtb2RlJDogT2JzZXJ2YWJsZTxUdWlCcmlnaHRuZXNzIHwgbnVsbD4pIHt9XG5cbiAgICBASG9zdEJpbmRpbmcoYGF0dHIuZGF0YS10dWktaG9zdC1wYWRkaW5nYClcbiAgICBnZXQgcGFkZGluZygpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5pc0VtcHR5KSB7XG4gICAgICAgICAgICByZXR1cm4gYG5vbmVgO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlzTnVtYmVyKHRoaXMudmFsdWUudmFsdWVPZigpKSA/IGBtYCA6IGBsYDtcbiAgICB9XG5cbiAgICBnZXQgb3V0cHV0VmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGlzTnVtYmVyKHRoaXMudmFsdWUudmFsdWVPZigpKSAmJiB0aGlzLnZhbHVlLnZhbHVlT2YoKSA+IDk5KSB7XG4gICAgICAgICAgICByZXR1cm4gYDk5K2A7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nKHRoaXMudmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy5fZW1wdHktdmFsdWVgKVxuICAgIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSA9PT0gYGA7XG4gICAgfVxufVxuIl19
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2JhZGdlLyIsInNvdXJjZXMiOlsiYmFkZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssR0FDUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsUUFBUSxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQ0gsYUFBYSxFQUNiLFFBQVEsR0FJWCxNQUFNLGdCQUFnQixDQUFDO0FBR3hCLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFZaEM7SUFvQkksMkJBQXVDLEtBQXVDO1FBQXZDLFVBQUssR0FBTCxLQUFLLENBQWtDO1FBakI5RSxVQUFLLEdBQXdCLEVBQUUsQ0FBQztRQUtoQyxTQUFJLEdBQXlCLEdBQUcsQ0FBQztRQUtqQyxXQUFNLEdBQWUsU0FBUyxDQUFDO1FBSy9CLGNBQVMsR0FBRyxLQUFLLENBQUM7SUFFK0QsQ0FBQztJQUdsRixzQkFBSSxzQ0FBTzthQUFYO1lBQ0ksSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNkLE9BQU8sTUFBTSxDQUFDO2FBQ2pCO1lBRUQsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUN0RCxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLDBDQUFXO2FBQWY7WUFDSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQzdELE9BQU8sS0FBSyxDQUFDO2FBQ2hCO2lCQUFNO2dCQUNILE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM3QjtRQUNMLENBQUM7OztPQUFBO0lBR0Qsc0JBQUksc0NBQU87YUFBWDtZQUNJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDN0IsQ0FBQzs7O09BQUE7O2dCQXRCNkMsVUFBVSx1QkFBM0MsTUFBTSxTQUFDLFFBQVE7O0lBakI1QjtRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTtvREFDZTtJQUtoQztRQUhDLEtBQUssRUFBRTtRQUNQLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztRQUM3QixjQUFjLEVBQUU7bURBQ2dCO0lBS2pDO1FBSEMsS0FBSyxFQUFFO1FBQ1AsV0FBVyxDQUFDLDJCQUEyQixDQUFDO1FBQ3hDLGNBQWMsRUFBRTtxREFDYztJQUsvQjtRQUhDLEtBQUssRUFBRTtRQUNQLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQztRQUMvQixjQUFjLEVBQUU7d0RBQ0M7SUFLbEI7UUFEQyxXQUFXLENBQUMsNEJBQTRCLENBQUM7b0RBT3pDO0lBV0Q7UUFEQyxXQUFXLENBQUMsb0JBQW9CLENBQUM7b0RBR2pDO0lBMUNRLGlCQUFpQjtRQVY3QixTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsV0FBVztZQUNyQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtZQUMvQyw4RkFBb0M7WUFFcEMsU0FBUyxFQUFFLENBQUMsYUFBYSxDQUFDO1lBQzFCLElBQUksRUFBRTtnQkFDRixvQkFBb0IsRUFBRSxPQUFPO2FBQ2hDOztTQUNKLENBQUM7UUFxQmUsV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7T0FwQnBCLGlCQUFpQixDQTJDN0I7SUFBRCx3QkFBQztDQUFBLEFBM0NELElBMkNDO1NBM0NZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2lzTnVtYmVyLCB0dWlEZWZhdWx0UHJvcH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIE1PREVfUFJPVklERVIsXG4gICAgVFVJX01PREUsXG4gICAgVHVpQnJpZ2h0bmVzcyxcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplWFMsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VHVpU3RhdHVzVH0gZnJvbSAnQHRhaWdhLXVpL2tpdC90eXBlcyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogYHR1aS1iYWRnZWAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdGVtcGxhdGVVcmw6IGAuL2JhZGdlLnRlbXBsYXRlLmh0bWxgLFxuICAgIHN0eWxlVXJsczogW2AuL2JhZGdlLnN0eWxlLmxlc3NgXSxcbiAgICBwcm92aWRlcnM6IFtNT0RFX1BST1ZJREVSXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoJC5kYXRhLW1vZGUuYXR0ciknOiBgbW9kZSRgLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUJhZGdlQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgdmFsdWU6IFBvbHltb3JwaGV1c0NvbnRlbnQgPSBgYDtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKGBhdHRyLmRhdGEtc2l6ZWApXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzaXplOiBUdWlTaXplWFMgfCBUdWlTaXplTCA9IGBtYDtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKGBhdHRyLmRhdGEtdHVpLWhvc3Qtc3RhdHVzYClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHN0YXR1czogVHVpU3RhdHVzVCA9IGBkZWZhdWx0YDtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy5faG92ZXJhYmxlYClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGhvdmVyYWJsZSA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChUVUlfTU9ERSkgcmVhZG9ubHkgbW9kZSQ6IE9ic2VydmFibGU8VHVpQnJpZ2h0bmVzcyB8IG51bGw+KSB7fVxuXG4gICAgQEhvc3RCaW5kaW5nKGBhdHRyLmRhdGEtdHVpLWhvc3QtcGFkZGluZ2ApXG4gICAgZ2V0IHBhZGRpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuaXNFbXB0eSkge1xuICAgICAgICAgICAgcmV0dXJuIGBub25lYDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpc051bWJlcih0aGlzLnZhbHVlLnZhbHVlT2YoKSkgPyBgbWAgOiBgbGA7XG4gICAgfVxuXG4gICAgZ2V0IG91dHB1dFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGlmIChpc051bWJlcih0aGlzLnZhbHVlLnZhbHVlT2YoKSkgJiYgdGhpcy52YWx1ZS52YWx1ZU9mKCkgPiA5OSkge1xuICAgICAgICAgICAgcmV0dXJuIGA5OStgO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh0aGlzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0QmluZGluZyhgY2xhc3MuX2VtcHR5LXZhbHVlYClcbiAgICBnZXQgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgPT09IGBgO1xuICAgIH1cbn1cbiJdfQ==
@@ -3,7 +3,7 @@ import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular
3
3
  import { isNumber, px, tuiDefaultProp } from '@taiga-ui/cdk';
4
4
  import { sizeBigger } from '@taiga-ui/core';
5
5
  var BADGE_SIZE = {
6
- xs: "s",
6
+ xs: "xs",
7
7
  s: "s",
8
8
  m: "s",
9
9
  l: "m",
@@ -21,10 +21,7 @@ var TuiBadgedContentComponent = /** @class */ (function () {
21
21
  }
22
22
  Object.defineProperty(TuiBadgedContentComponent.prototype, "topNotification", {
23
23
  get: function () {
24
- return (!this.contentTop && this.colorTop) ||
25
- (this.contentTop && this.contentIsNumber(this.contentTop) && this.badgeHidden)
26
- ? this.colorTop
27
- : "";
24
+ return !this.contentTop && this.colorTop ? this.colorTop : "";
28
25
  },
29
26
  enumerable: true,
30
27
  configurable: true
@@ -43,13 +40,6 @@ var TuiBadgedContentComponent = /** @class */ (function () {
43
40
  enumerable: true,
44
41
  configurable: true
45
42
  });
46
- Object.defineProperty(TuiBadgedContentComponent.prototype, "badgeHidden", {
47
- get: function () {
48
- return this.size === "xs";
49
- },
50
- enumerable: true,
51
- configurable: true
52
- });
53
43
  Object.defineProperty(TuiBadgedContentComponent.prototype, "sizeBig", {
54
44
  get: function () {
55
45
  return sizeBigger(this.size);
@@ -106,11 +96,11 @@ var TuiBadgedContentComponent = /** @class */ (function () {
106
96
  Component({
107
97
  selector: "tui-badged-content",
108
98
  changeDetection: ChangeDetectionStrategy.OnPush,
109
- template: "<ng-content></ng-content>\n\n<div\n *ngIf=\"topNotification\"\n class=\"t-notification t-notification_top\"\n [style.background]=\"topNotification\"\n [style.boxShadow]=\"boxShadow\"\n></div>\n\n<div\n *ngIf=\"bottomNotification\"\n class=\"t-notification t-notification_bottom\"\n [style.background]=\"bottomNotification\"\n [style.boxShadow]=\"boxShadow\"\n></div>\n\n<div\n *ngIf=\"contentTop\"\n polymorpheus-outlet\n class=\"t-content t-content_top\"\n [style.boxShadow]=\"boxShadow\"\n [content]=\"contentTop\"\n>\n <ng-template let-content>\n <tui-badge\n *ngIf=\"contentIsNumber(content) && !badgeHidden\"\n [status]=\"getStatus(colorTop)\"\n [style.backgroundColor]=\"colorTop\"\n [size]=\"badgeSize\"\n [value]=\"contentTop\"\n ></tui-badge>\n <tui-svg\n *ngIf=\"contentIsString(content)\"\n class=\"t-icon\"\n [style.color]=\"colorTop\"\n [src]=\"content\"\n ></tui-svg>\n </ng-template>\n</div>\n\n<div\n *ngIf=\"contentBottom && sizeBig\"\n polymorpheus-outlet\n class=\"t-content t-content_bottom\"\n [style.boxShadow]=\"boxShadow\"\n [content]=\"contentBottom\"\n>\n <ng-template let-content>\n <tui-badge\n *ngIf=\"contentIsNumber(content)\"\n [status]=\"getStatus(colorBottom)\"\n [style.backgroundColor]=\"colorBottom\"\n [size]=\"badgeSize\"\n [value]=\"contentBottom\"\n ></tui-badge>\n <tui-svg\n *ngIf=\"contentIsString(content)\"\n class=\"t-icon\"\n [style.color]=\"colorBottom\"\n [src]=\"content\"\n ></tui-svg>\n </ng-template>\n</div>\n",
110
- styles: [":host{position:relative;display:inline-block;color:var(--tui-base-01)}.t-notification{position:absolute;border-radius:100%;box-shadow:0 0 0 2px currentColor}.t-notification:not([data-tui-background]){background-color:currentColor}:host[data-size='m']:not(._rounded) .t-notification_top,:host[data-size='s']:not(._rounded) .t-notification_top,:host[data-size=xs]:not(._rounded) .t-notification_top{top:-.125rem;right:-.125rem}:host[data-size='l']:not(._rounded) .t-notification_top,:host[data-size=xl]:not(._rounded) .t-notification_top{top:-.25rem;right:-.25rem}:host[data-size=xxl]:not(._rounded) .t-notification_top{top:-.5rem;right:-.5rem}:host[data-size=xs]._rounded .t-notification_top{top:0;right:0}:host[data-size='s']._rounded .t-notification_top{top:.0625rem;right:.0625rem}:host[data-size='m']._rounded .t-notification_top{top:.1875rem;right:.1875rem}:host[data-size='l']._rounded .t-notification_top{top:.25rem;right:.25rem}:host[data-size=xl]._rounded .t-notification_top{top:.375rem;right:.375rem}:host[data-size=xxl]._rounded .t-notification_top{top:.5rem;right:.5rem}:host[data-size='m']:not(._rounded) .t-notification_bottom{bottom:-.125rem;right:-.125rem}:host[data-size='l']:not(._rounded) .t-notification_bottom,:host[data-size=xl]:not(._rounded) .t-notification_bottom{bottom:-.25rem;right:-.25rem}:host[data-size=xxl]:not(._rounded) .t-notification_bottom{bottom:-.5rem;right:-.5rem}:host[data-size='m']._rounded .t-notification_bottom{bottom:.1875rem;right:.1875rem}:host[data-size='l']._rounded .t-notification_bottom{bottom:.25rem;right:.25rem}:host[data-size=xl]._rounded .t-notification_bottom{bottom:.375rem;right:.375rem}:host[data-size=xxl]._rounded .t-notification_bottom{bottom:.5rem;right:.5rem}:host[data-size='m'] .t-notification,:host[data-size='s'] .t-notification,:host[data-size=xs] .t-notification{width:.5rem;height:.5rem}:host[data-size='l'] .t-notification{width:.75rem;height:.75rem}:host[data-size=xl] .t-notification{width:1rem;height:1rem}:host[data-size=xxl] .t-notification{width:1.5rem;height:1.5rem}.t-icon[data-tui-color=normal],.t-notification[data-tui-color=normal]{color:var(--tui-base-06)}.t-icon[data-tui-color=onDark],.t-notification[data-tui-color=onDark]{color:var(--tui-secondary)}.t-icon[data-tui-color=gray],.t-notification[data-tui-color=gray]{color:var(--tui-base-03)}.t-icon[data-tui-color=warning],.t-notification[data-tui-color=warning]{color:var(--tui-primary)}.t-icon[data-tui-color=secondary],.t-notification[data-tui-color=secondary]{color:var(--tui-info-fill)}.t-icon[data-tui-color=highlight],.t-icon[data-tui-color=white],.t-notification[data-tui-color=highlight],.t-notification[data-tui-color=white]{color:var(--tui-base-01)}.t-icon[data-tui-color=transparent-dark],.t-notification[data-tui-color=transparent-dark]{color:var(--tui-clear)}.t-icon[data-tui-color=transparent-light],.t-notification[data-tui-color=transparent-light]{color:var(--tui-clear-inverse)}.t-icon{color:var(--tui-success-fill)}:host[data-size='m'] .t-icon,:host[data-size='s'] .t-icon{width:1.5rem;height:1.5rem;margin:-.125rem}:host[data-size='l'] .t-icon,:host[data-size=xl] .t-icon{transform:scale(1.2)}:host[data-size=xxl] .t-icon{transform:scale(1.6)}.t-content{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:6.25rem;overflow:hidden;background-color:currentColor;box-shadow:0 0 0 2px currentColor}:host[data-size='l'][data-tui-host-top]:not(._rounded) .t-content_top,:host[data-size=xxl][data-tui-host-top]:not(._rounded) .t-content_top{right:-.5rem;top:-.5rem}:host[data-size=xl][data-tui-host-top]:not(._rounded) .t-content_top{right:-.375rem;top:-.375rem}:host[data-size='m'][data-tui-host-top]:not(._rounded) .t-content_top,:host[data-size='s'][data-tui-host-top]:not(._rounded) .t-content_top,:host[data-size=xs][data-tui-host-top]:not(._rounded) .t-content_top{right:-.25rem;top:-.25rem}:host[data-size=xxl][data-tui-host-top]._rounded .t-content_top{right:.25rem;top:.25rem}:host[data-size=xl][data-tui-host-top]._rounded .t-content_top{right:.125rem;top:.125rem}:host[data-size='l'][data-tui-host-top]._rounded .t-content_top,:host[data-size='m'][data-tui-host-top]._rounded .t-content_top,:host[data-size='s'][data-tui-host-top]._rounded .t-content_top,:host[data-size=xs][data-tui-host-top]._rounded .t-content_top{right:-.25rem;top:-.25rem}:host[data-size='l'][data-tui-host-bottom]:not(._rounded) .t-content_bottom,:host[data-size=xxl][data-tui-host-bottom]:not(._rounded) .t-content_bottom{bottom:-.5rem;right:-.5rem}:host[data-size=xl][data-tui-host-bottom]:not(._rounded) .t-content_bottom{bottom:-.375rem;right:-.375rem}:host[data-size='m'][data-tui-host-bottom]:not(._rounded) .t-content_bottom{bottom:-.25rem;right:-.25rem}:host[data-size=xxl][data-tui-host-bottom]._rounded .t-content_bottom{bottom:.25rem;right:.25rem}:host[data-size=xl][data-tui-host-bottom]._rounded .t-content_bottom{bottom:.125rem;right:.125rem}:host[data-size='l'][data-tui-host-bottom]._rounded .t-content_bottom,:host[data-size='m'][data-tui-host-bottom]._rounded .t-content_bottom{bottom:-.25rem;right:-.25rem}:host[data-size=xxl] .t-content{height:2rem;min-width:2rem}:host[data-size='l'] .t-content,:host[data-size=xl] .t-content{height:1.5rem;min-width:1.5rem}:host[data-size='m'] .t-content,:host[data-size='s'] .t-content{height:1.25rem;min-width:1.25rem}:host[data-size=xs] .t-content{height:1rem;min-width:1rem}"]
99
+ template: "<ng-content></ng-content>\n\n<div\n *ngIf=\"topNotification\"\n class=\"t-notification t-notification_top\"\n [style.background]=\"topNotification\"\n [style.boxShadow]=\"boxShadow\"\n></div>\n\n<div\n *ngIf=\"bottomNotification\"\n class=\"t-notification t-notification_bottom\"\n [style.background]=\"bottomNotification\"\n [style.boxShadow]=\"boxShadow\"\n></div>\n\n<div\n *ngIf=\"contentTop\"\n polymorpheus-outlet\n class=\"t-content t-content_top\"\n [style.boxShadow]=\"boxShadow\"\n [content]=\"contentTop\"\n>\n <ng-template let-content>\n <tui-badge\n *ngIf=\"contentIsNumber(content)\"\n [status]=\"getStatus(colorTop)\"\n [style.backgroundColor]=\"colorTop\"\n [size]=\"badgeSize\"\n [value]=\"contentTop\"\n ></tui-badge>\n <tui-svg\n *ngIf=\"contentIsString(content)\"\n class=\"t-icon\"\n [style.color]=\"colorTop\"\n [src]=\"content\"\n ></tui-svg>\n </ng-template>\n</div>\n\n<div\n *ngIf=\"contentBottom && sizeBig\"\n polymorpheus-outlet\n class=\"t-content t-content_bottom\"\n [style.boxShadow]=\"boxShadow\"\n [content]=\"contentBottom\"\n>\n <ng-template let-content>\n <tui-badge\n *ngIf=\"contentIsNumber(content)\"\n [status]=\"getStatus(colorBottom)\"\n [style.backgroundColor]=\"colorBottom\"\n [size]=\"badgeSize\"\n [value]=\"contentBottom\"\n ></tui-badge>\n <tui-svg\n *ngIf=\"contentIsString(content)\"\n class=\"t-icon\"\n [style.color]=\"colorBottom\"\n [src]=\"content\"\n ></tui-svg>\n </ng-template>\n</div>\n",
100
+ styles: [":host{position:relative;display:inline-block;color:var(--tui-base-01)}.t-notification{position:absolute;border-radius:100%;box-shadow:0 0 0 2px currentColor}.t-notification:not([data-tui-background]){background-color:currentColor}:host[data-size='m']:not(._rounded) .t-notification_top,:host[data-size='s']:not(._rounded) .t-notification_top,:host[data-size=xs]:not(._rounded) .t-notification_top{top:-.125rem;right:-.125rem}:host[data-size='l']:not(._rounded) .t-notification_top,:host[data-size=xl]:not(._rounded) .t-notification_top{top:-.25rem;right:-.25rem}:host[data-size=xxl]:not(._rounded) .t-notification_top{top:-.5rem;right:-.5rem}:host[data-size=xs]._rounded .t-notification_top{top:0;right:0}:host[data-size='s']._rounded .t-notification_top{top:.0625rem;right:.0625rem}:host[data-size='m']._rounded .t-notification_top{top:.1875rem;right:.1875rem}:host[data-size='l']._rounded .t-notification_top{top:.25rem;right:.25rem}:host[data-size=xl]._rounded .t-notification_top{top:.375rem;right:.375rem}:host[data-size=xxl]._rounded .t-notification_top{top:.5rem;right:.5rem}:host[data-size='m']:not(._rounded) .t-notification_bottom{bottom:-.125rem;right:-.125rem}:host[data-size='l']:not(._rounded) .t-notification_bottom,:host[data-size=xl]:not(._rounded) .t-notification_bottom{bottom:-.25rem;right:-.25rem}:host[data-size=xxl]:not(._rounded) .t-notification_bottom{bottom:-.5rem;right:-.5rem}:host[data-size='m']._rounded .t-notification_bottom{bottom:.1875rem;right:.1875rem}:host[data-size='l']._rounded .t-notification_bottom{bottom:.25rem;right:.25rem}:host[data-size=xl]._rounded .t-notification_bottom{bottom:.375rem;right:.375rem}:host[data-size=xxl]._rounded .t-notification_bottom{bottom:.5rem;right:.5rem}:host[data-size='m'] .t-notification,:host[data-size='s'] .t-notification,:host[data-size=xs] .t-notification{width:.5rem;height:.5rem}:host[data-size='l'] .t-notification{width:.75rem;height:.75rem}:host[data-size=xl] .t-notification{width:1rem;height:1rem}:host[data-size=xxl] .t-notification{width:1.5rem;height:1.5rem}.t-icon[data-tui-color=normal],.t-notification[data-tui-color=normal]{color:var(--tui-base-06)}.t-icon[data-tui-color=onDark],.t-notification[data-tui-color=onDark]{color:var(--tui-secondary)}.t-icon[data-tui-color=gray],.t-notification[data-tui-color=gray]{color:var(--tui-base-03)}.t-icon[data-tui-color=warning],.t-notification[data-tui-color=warning]{color:var(--tui-primary)}.t-icon[data-tui-color=secondary],.t-notification[data-tui-color=secondary]{color:var(--tui-info-fill)}.t-icon[data-tui-color=highlight],.t-icon[data-tui-color=white],.t-notification[data-tui-color=highlight],.t-notification[data-tui-color=white]{color:var(--tui-base-01)}.t-icon[data-tui-color=transparent-dark],.t-notification[data-tui-color=transparent-dark]{color:var(--tui-clear)}.t-icon[data-tui-color=transparent-light],.t-notification[data-tui-color=transparent-light]{color:var(--tui-clear-inverse)}.t-icon{color:var(--tui-success-fill)}:host[data-size=xs] .t-icon{transform:scale(.66666667);margin:-.25rem}:host[data-size='m'] .t-icon,:host[data-size='s'] .t-icon{width:1.5rem;height:1.5rem;margin:-.125rem}:host[data-size='l'] .t-icon,:host[data-size=xl] .t-icon{transform:scale(1.2)}:host[data-size=xxl] .t-icon{transform:scale(1.6)}.t-content{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:6.25rem;overflow:hidden;background-color:currentColor;box-shadow:0 0 0 2px currentColor}:host[data-size='l'][data-tui-host-top]:not(._rounded) .t-content_top,:host[data-size=xxl][data-tui-host-top]:not(._rounded) .t-content_top{right:-.5rem;top:-.5rem}:host[data-size=xl][data-tui-host-top]:not(._rounded) .t-content_top{right:-.375rem;top:-.375rem}:host[data-size='m'][data-tui-host-top]:not(._rounded) .t-content_top,:host[data-size='s'][data-tui-host-top]:not(._rounded) .t-content_top,:host[data-size=xs][data-tui-host-top]:not(._rounded) .t-content_top{right:-.25rem;top:-.25rem}:host[data-size=xxl][data-tui-host-top]._rounded .t-content_top{right:.25rem;top:.25rem}:host[data-size=xl][data-tui-host-top]._rounded .t-content_top{right:.125rem;top:.125rem}:host[data-size='l'][data-tui-host-top]._rounded .t-content_top,:host[data-size='m'][data-tui-host-top]._rounded .t-content_top,:host[data-size='s'][data-tui-host-top]._rounded .t-content_top,:host[data-size=xs][data-tui-host-top]._rounded .t-content_top{right:-.25rem;top:-.25rem}:host[data-size='l'][data-tui-host-bottom]:not(._rounded) .t-content_bottom,:host[data-size=xxl][data-tui-host-bottom]:not(._rounded) .t-content_bottom{bottom:-.5rem;right:-.5rem}:host[data-size=xl][data-tui-host-bottom]:not(._rounded) .t-content_bottom{bottom:-.375rem;right:-.375rem}:host[data-size='m'][data-tui-host-bottom]:not(._rounded) .t-content_bottom{bottom:-.25rem;right:-.25rem}:host[data-size=xxl][data-tui-host-bottom]._rounded .t-content_bottom{bottom:.25rem;right:.25rem}:host[data-size=xl][data-tui-host-bottom]._rounded .t-content_bottom{bottom:.125rem;right:.125rem}:host[data-size='l'][data-tui-host-bottom]._rounded .t-content_bottom,:host[data-size='m'][data-tui-host-bottom]._rounded .t-content_bottom{bottom:-.25rem;right:-.25rem}:host[data-size=xxl] .t-content{height:2rem;min-width:2rem}:host[data-size='l'] .t-content,:host[data-size=xl] .t-content{height:1.5rem;min-width:1.5rem}:host[data-size='m'] .t-content,:host[data-size='s'] .t-content{height:1.25rem;min-width:1.25rem}:host[data-size=xs] .t-content{height:1rem;min-width:1rem}"]
111
101
  })
112
102
  ], TuiBadgedContentComponent);
113
103
  return TuiBadgedContentComponent;
114
104
  }());
115
105
  export { TuiBadgedContentComponent };
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2VkLWNvbnRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2JhZGdlZC1jb250ZW50LyIsInNvdXJjZXMiOlsiYmFkZ2VkLWNvbnRlbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBQyxVQUFVLEVBQTRDLE1BQU0sZ0JBQWdCLENBQUM7QUFJckYsSUFBTSxVQUFVLEdBQXlDO0lBQ3JELEVBQUUsRUFBRSxHQUFHO0lBQ1AsQ0FBQyxFQUFFLEdBQUc7SUFDTixDQUFDLEVBQUUsR0FBRztJQUNOLENBQUMsRUFBRSxHQUFHO0lBQ04sRUFBRSxFQUFFLEdBQUc7SUFDUCxHQUFHLEVBQUUsR0FBRztDQUNYLENBQUM7QUFRRjtJQUFBO1FBSUksZUFBVSxHQUF3QixFQUFFLENBQUM7UUFLckMsa0JBQWEsR0FBd0IsRUFBRSxDQUFDO1FBS3hDLFNBQUksR0FBMkIsR0FBRyxDQUFDO1FBSW5DLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFJZCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUtqQixZQUFPLEdBQUcsS0FBSyxDQUFDO0lBMENwQixDQUFDO0lBeENHLHNCQUFJLHNEQUFlO2FBQW5CO1lBQ0ksT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUN0QyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDOUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRO2dCQUNmLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDYixDQUFDOzs7T0FBQTtJQUVELHNCQUFJLHlEQUFrQjthQUF0QjtZQUNJLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMzRSxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLGdEQUFTO2FBQWI7WUFDSSxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSxrREFBVzthQUFmO1lBQ0ksT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztRQUM5QixDQUFDOzs7T0FBQTtJQUVELHNCQUFJLDhDQUFPO2FBQVg7WUFDSSxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSxnREFBUzthQUFiO1lBQ0ksSUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFekMsT0FBTyxXQUFTLEVBQUUsQ0FBQyxXQUFXLENBQUcsQ0FBQztRQUN0QyxDQUFDOzs7T0FBQTtJQUVELG1EQUFlLEdBQWYsVUFBZ0IsT0FBNEI7UUFDeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELG1EQUFlLEdBQWYsVUFBZ0IsT0FBNEI7UUFDeEMsT0FBTyxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUM7SUFDakQsQ0FBQztJQUVELDZDQUFTLEdBQVQsVUFBVSxLQUFhO1FBQ25CLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN4QyxDQUFDO0lBaEVEO1FBSEMsS0FBSyxFQUFFO1FBQ1AsV0FBVyxDQUFDLHdCQUF3QixDQUFDO1FBQ3JDLGNBQWMsRUFBRTtpRUFDb0I7SUFLckM7UUFIQyxLQUFLLEVBQUU7UUFDUCxXQUFXLENBQUMsMkJBQTJCLENBQUM7UUFDeEMsY0FBYyxFQUFFO29FQUN1QjtJQUt4QztRQUhDLEtBQUssRUFBRTtRQUNQLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztRQUM3QixjQUFjLEVBQUU7MkRBQ2tCO0lBSW5DO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFOytEQUNIO0lBSWQ7UUFGQyxLQUFLLEVBQUU7UUFDUCxjQUFjLEVBQUU7a0VBQ0E7SUFLakI7UUFIQyxLQUFLLEVBQUU7UUFDUCxXQUFXLENBQUMsZ0JBQWdCLENBQUM7UUFDN0IsY0FBYyxFQUFFOzhEQUNEO0lBM0JQLHlCQUF5QjtRQU5yQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsb0JBQW9CO1lBQzlCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1lBQy9DLG93REFBNkM7O1NBRWhELENBQUM7T0FDVyx5QkFBeUIsQ0FxRXJDO0lBQUQsZ0NBQUM7Q0FBQSxBQXJFRCxJQXFFQztTQXJFWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2lzTnVtYmVyLCBweCwgdHVpRGVmYXVsdFByb3B9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtzaXplQmlnZ2VyLCBUdWlTaXplTCwgVHVpU2l6ZVMsIFR1aVNpemVYUywgVHVpU2l6ZVhYTH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlTdGF0dXNUfSBmcm9tICdAdGFpZ2EtdWkva2l0L3R5cGVzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuY29uc3QgQkFER0VfU0laRToge1trZXk6IHN0cmluZ106IFR1aVNpemVTIHwgVHVpU2l6ZUx9ID0ge1xuICAgIHhzOiBgc2AsXG4gICAgczogYHNgLFxuICAgIG06IGBzYCxcbiAgICBsOiBgbWAsXG4gICAgeGw6IGBtYCxcbiAgICB4eGw6IGBsYCxcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBgdHVpLWJhZGdlZC1jb250ZW50YCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICB0ZW1wbGF0ZVVybDogYC4vYmFkZ2VkLWNvbnRlbnQudGVtcGxhdGUuaHRtbGAsXG4gICAgc3R5bGVVcmxzOiBbYC4vYmFkZ2VkLWNvbnRlbnQuc3R5bGUubGVzc2BdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlCYWRnZWRDb250ZW50Q29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZyhgYXR0ci5kYXRhLXR1aS1ob3N0LXRvcGApXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBjb250ZW50VG9wOiBQb2x5bW9ycGhldXNDb250ZW50ID0gYGA7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZyhgYXR0ci5kYXRhLXR1aS1ob3N0LWJvdHRvbWApXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBjb250ZW50Qm90dG9tOiBQb2x5bW9ycGhldXNDb250ZW50ID0gYGA7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZyhgYXR0ci5kYXRhLXNpemVgKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2l6ZTogVHVpU2l6ZVhTIHwgVHVpU2l6ZVhYTCA9IGBtYDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBjb2xvclRvcCA9IGBgO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGNvbG9yQm90dG9tID0gYGA7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZyhgY2xhc3MuX3JvdW5kZWRgKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcm91bmRlZCA9IGZhbHNlO1xuXG4gICAgZ2V0IHRvcE5vdGlmaWNhdGlvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gKCF0aGlzLmNvbnRlbnRUb3AgJiYgdGhpcy5jb2xvclRvcCkgfHxcbiAgICAgICAgICAgICh0aGlzLmNvbnRlbnRUb3AgJiYgdGhpcy5jb250ZW50SXNOdW1iZXIodGhpcy5jb250ZW50VG9wKSAmJiB0aGlzLmJhZGdlSGlkZGVuKVxuICAgICAgICAgICAgPyB0aGlzLmNvbG9yVG9wXG4gICAgICAgICAgICA6IGBgO1xuICAgIH1cblxuICAgIGdldCBib3R0b21Ob3RpZmljYXRpb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbnRlbnRCb3R0b20gJiYgdGhpcy5jb2xvckJvdHRvbSA/IHRoaXMuY29sb3JCb3R0b20gOiBgYDtcbiAgICB9XG5cbiAgICBnZXQgYmFkZ2VTaXplKCk6IFR1aVNpemVTIHwgVHVpU2l6ZUwge1xuICAgICAgICByZXR1cm4gQkFER0VfU0laRVt0aGlzLnNpemVdO1xuICAgIH1cblxuICAgIGdldCBiYWRnZUhpZGRlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gYHhzYDtcbiAgICB9XG5cbiAgICBnZXQgc2l6ZUJpZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHNpemVCaWdnZXIodGhpcy5zaXplKTtcbiAgICB9XG5cbiAgICBnZXQgYm94U2hhZG93KCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGJvcmRlcldpZHRoID0gdGhpcy5zaXplQmlnID8gMyA6IDI7XG5cbiAgICAgICAgcmV0dXJuIGAwIDAgMCAke3B4KGJvcmRlcldpZHRoKX1gO1xuICAgIH1cblxuICAgIGNvbnRlbnRJc051bWJlcihjb250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc051bWJlcihjb250ZW50LnZhbHVlT2YoKSk7XG4gICAgfVxuXG4gICAgY29udGVudElzU3RyaW5nKGNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBjb250ZW50LnZhbHVlT2YoKSA9PT0gYHN0cmluZ2A7XG4gICAgfVxuXG4gICAgZ2V0U3RhdHVzKGNvbG9yOiBzdHJpbmcpOiBUdWlTdGF0dXNUIHtcbiAgICAgICAgcmV0dXJuIGNvbG9yID8gYGN1c3RvbWAgOiBgcHJpbWFyeWA7XG4gICAgfVxufVxuIl19
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2VkLWNvbnRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2JhZGdlZC1jb250ZW50LyIsInNvdXJjZXMiOlsiYmFkZ2VkLWNvbnRlbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBQyxVQUFVLEVBQWtDLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0UsSUFBTSxVQUFVLEdBQTBDO0lBQ3RELEVBQUUsRUFBRSxJQUFJO0lBQ1IsQ0FBQyxFQUFFLEdBQUc7SUFDTixDQUFDLEVBQUUsR0FBRztJQUNOLENBQUMsRUFBRSxHQUFHO0lBQ04sRUFBRSxFQUFFLEdBQUc7SUFDUCxHQUFHLEVBQUUsR0FBRztDQUNYLENBQUM7QUFRRjtJQUFBO1FBSUksZUFBVSxHQUF3QixFQUFFLENBQUM7UUFLckMsa0JBQWEsR0FBd0IsRUFBRSxDQUFDO1FBS3hDLFNBQUksR0FBMkIsR0FBRyxDQUFDO1FBSW5DLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFJZCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUtqQixZQUFPLEdBQUcsS0FBSyxDQUFDO0lBbUNwQixDQUFDO0lBakNHLHNCQUFJLHNEQUFlO2FBQW5CO1lBQ0ksT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2xFLENBQUM7OztPQUFBO0lBRUQsc0JBQUkseURBQWtCO2FBQXRCO1lBQ0ksT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzNFLENBQUM7OztPQUFBO0lBRUQsc0JBQUksZ0RBQVM7YUFBYjtZQUNJLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLDhDQUFPO2FBQVg7WUFDSSxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSxnREFBUzthQUFiO1lBQ0ksSUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFekMsT0FBTyxXQUFTLEVBQUUsQ0FBQyxXQUFXLENBQUcsQ0FBQztRQUN0QyxDQUFDOzs7T0FBQTtJQUVELG1EQUFlLEdBQWYsVUFBZ0IsT0FBNEI7UUFDeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELG1EQUFlLEdBQWYsVUFBZ0IsT0FBNEI7UUFDeEMsT0FBTyxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUM7SUFDakQsQ0FBQztJQUVELDZDQUFTLEdBQVQsVUFBVSxLQUFhO1FBQ25CLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN4QyxDQUFDO0lBekREO1FBSEMsS0FBSyxFQUFFO1FBQ1AsV0FBVyxDQUFDLHdCQUF3QixDQUFDO1FBQ3JDLGNBQWMsRUFBRTtpRUFDb0I7SUFLckM7UUFIQyxLQUFLLEVBQUU7UUFDUCxXQUFXLENBQUMsMkJBQTJCLENBQUM7UUFDeEMsY0FBYyxFQUFFO29FQUN1QjtJQUt4QztRQUhDLEtBQUssRUFBRTtRQUNQLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztRQUM3QixjQUFjLEVBQUU7MkRBQ2tCO0lBSW5DO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFOytEQUNIO0lBSWQ7UUFGQyxLQUFLLEVBQUU7UUFDUCxjQUFjLEVBQUU7a0VBQ0E7SUFLakI7UUFIQyxLQUFLLEVBQUU7UUFDUCxXQUFXLENBQUMsZ0JBQWdCLENBQUM7UUFDN0IsY0FBYyxFQUFFOzhEQUNEO0lBM0JQLHlCQUF5QjtRQU5yQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsb0JBQW9CO1lBQzlCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1lBQy9DLG92REFBNkM7O1NBRWhELENBQUM7T0FDVyx5QkFBeUIsQ0E4RHJDO0lBQUQsZ0NBQUM7Q0FBQSxBQTlERCxJQThEQztTQTlEWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2lzTnVtYmVyLCBweCwgdHVpRGVmYXVsdFByb3B9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtzaXplQmlnZ2VyLCBUdWlTaXplTCwgVHVpU2l6ZVhTLCBUdWlTaXplWFhMfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aVN0YXR1c1R9IGZyb20gJ0B0YWlnYS11aS9raXQvdHlwZXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuXG5jb25zdCBCQURHRV9TSVpFOiB7W2tleTogc3RyaW5nXTogVHVpU2l6ZVhTIHwgVHVpU2l6ZUx9ID0ge1xuICAgIHhzOiBgeHNgLFxuICAgIHM6IGBzYCxcbiAgICBtOiBgc2AsXG4gICAgbDogYG1gLFxuICAgIHhsOiBgbWAsXG4gICAgeHhsOiBgbGAsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogYHR1aS1iYWRnZWQtY29udGVudGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdGVtcGxhdGVVcmw6IGAuL2JhZGdlZC1jb250ZW50LnRlbXBsYXRlLmh0bWxgLFxuICAgIHN0eWxlVXJsczogW2AuL2JhZGdlZC1jb250ZW50LnN0eWxlLmxlc3NgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpQmFkZ2VkQ29udGVudENvbXBvbmVudCB7XG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoYGF0dHIuZGF0YS10dWktaG9zdC10b3BgKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgY29udGVudFRvcDogUG9seW1vcnBoZXVzQ29udGVudCA9IGBgO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoYGF0dHIuZGF0YS10dWktaG9zdC1ib3R0b21gKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgY29udGVudEJvdHRvbTogUG9seW1vcnBoZXVzQ29udGVudCA9IGBgO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoYGF0dHIuZGF0YS1zaXplYClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNpemU6IFR1aVNpemVYUyB8IFR1aVNpemVYWEwgPSBgbWA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgY29sb3JUb3AgPSBgYDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBjb2xvckJvdHRvbSA9IGBgO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoYGNsYXNzLl9yb3VuZGVkYClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHJvdW5kZWQgPSBmYWxzZTtcblxuICAgIGdldCB0b3BOb3RpZmljYXRpb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbnRlbnRUb3AgJiYgdGhpcy5jb2xvclRvcCA/IHRoaXMuY29sb3JUb3AgOiBgYDtcbiAgICB9XG5cbiAgICBnZXQgYm90dG9tTm90aWZpY2F0aW9uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAhdGhpcy5jb250ZW50Qm90dG9tICYmIHRoaXMuY29sb3JCb3R0b20gPyB0aGlzLmNvbG9yQm90dG9tIDogYGA7XG4gICAgfVxuXG4gICAgZ2V0IGJhZGdlU2l6ZSgpOiBUdWlTaXplWFMgfCBUdWlTaXplTCB7XG4gICAgICAgIHJldHVybiBCQURHRV9TSVpFW3RoaXMuc2l6ZV07XG4gICAgfVxuXG4gICAgZ2V0IHNpemVCaWcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBzaXplQmlnZ2VyKHRoaXMuc2l6ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGJveFNoYWRvdygpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBib3JkZXJXaWR0aCA9IHRoaXMuc2l6ZUJpZyA/IDMgOiAyO1xuXG4gICAgICAgIHJldHVybiBgMCAwIDAgJHtweChib3JkZXJXaWR0aCl9YDtcbiAgICB9XG5cbiAgICBjb250ZW50SXNOdW1iZXIoY29udGVudDogUG9seW1vcnBoZXVzQ29udGVudCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNOdW1iZXIoY29udGVudC52YWx1ZU9mKCkpO1xuICAgIH1cblxuICAgIGNvbnRlbnRJc1N0cmluZyhjb250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgY29udGVudC52YWx1ZU9mKCkgPT09IGBzdHJpbmdgO1xuICAgIH1cblxuICAgIGdldFN0YXR1cyhjb2xvcjogc3RyaW5nKTogVHVpU3RhdHVzVCB7XG4gICAgICAgIHJldHVybiBjb2xvciA/IGBjdXN0b21gIDogYHByaW1hcnlgO1xuICAgIH1cbn1cbiJdfQ==