UNPKG

theme-lib

Version:

This is a simple example Angular Library published to npm.

211 lines 14.9 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /* * @license * Copyright Akveo. All Rights Reserved. * Licensed under the MIT License. See License.txt in the project root for license information. */ import { Component, Input, HostBinding, } from '@angular/core'; import { convertToBoolProperty } from '../helpers'; /* * Action item, display a link with an icon, or any other content provided instead. */ export class NbActionComponent { constructor() { this.disabledValue = false; } /* * Disables the item (changes item opacity and mouse cursor) * @type boolean */ /** * @param {?} val * @return {?} */ set disabled(val) { this.disabledValue = convertToBoolProperty(val); } } NbActionComponent.decorators = [ { type: Component, args: [{ selector: 'nb-action', template: ` <a class="icon-container" href="#" *ngIf="icon; else showContent" (click)="$event.preventDefault()"> <i class="control-icon {{ icon }}"></i> </a> <ng-template #showContent> <ng-content></ng-content> </ng-template> <nb-badge *ngIf="badgeText" [text]="badgeText" [status]="badgeStatus" [position]="badgePosition"></nb-badge> ` }] } ]; NbActionComponent.propDecorators = { disabledValue: [{ type: HostBinding, args: ['class.disabled',] }], icon: [{ type: Input }], disabled: [{ type: Input }], badgeText: [{ type: Input }], badgeStatus: [{ type: Input }], badgePosition: [{ type: Input }] }; if (false) { /** @type {?} */ NbActionComponent.prototype.disabledValue; /** @type {?} */ NbActionComponent.prototype.icon; /** @type {?} */ NbActionComponent.prototype.badgeText; /** @type {?} */ NbActionComponent.prototype.badgeStatus; /** @type {?} */ NbActionComponent.prototype.badgePosition; } /* * Shows a horizontal list of actions, available in multiple sizes. * Aligns items vertically. * * @stacked-example(Showcase, action/action-showcase.component) * * Basic actions setup: * ```html * <nb-actions size="small"> * <nb-action icon="nb-search"></nb-action> * <nb-action icon="nb-power-circled"></nb-action> * <nb-action icon="nb-person"></nb-action> * </nb-actions> * ``` * ### Installation * * Import `NbActionsModule` to your feature module. * ```ts * @NgModule({ * imports: [ * // ... * NbActionsModule, * ], * }) * export class PageModule { } * ``` * ### Usage * * Multiple sizes example: * @stacked-example(Multiple Sizes, action/action-sizes.component) * * It is also possible to specify a `badge` value: * * @stacked-example(Action Badge, action/action-badge.component) * * and we can set it to full a width of a parent component * @stacked-example(Full Width, action/action-width.component) * * @styles * * actions-font-size: * actions-font-family: * actions-line-height: * actions-fg: * actions-bg: * actions-separator: * actions-padding: * actions-size-small: * actions-size-medium: * actions-size-large: */ export class NbActionsComponent { constructor() { this.fullWidthValue = false; } /** * @return {?} */ get small() { return this.sizeValue === NbActionsComponent.SIZE_SMALL; } /** * @return {?} */ get medium() { return this.sizeValue === NbActionsComponent.SIZE_MEDIUM; } /** * @return {?} */ get large() { return this.sizeValue === NbActionsComponent.SIZE_LARGE; } /* * Size of the component, small|medium|large * @type string */ /** * @param {?} val * @return {?} */ set size(val) { this.sizeValue = val; } /* * Makes colors inverse based on current theme * @type boolean */ /** * @param {?} val * @return {?} */ set inverse(val) { this.inverseValue = convertToBoolProperty(val); } /* * Component will fill full width of the container * @type boolean */ /** * @param {?} val * @return {?} */ set fullWidth(val) { this.fullWidthValue = convertToBoolProperty(val); } } NbActionsComponent.SIZE_SMALL = 'small'; NbActionsComponent.SIZE_MEDIUM = 'medium'; NbActionsComponent.SIZE_LARGE = 'large'; NbActionsComponent.decorators = [ { type: Component, args: [{ selector: 'nb-actions', template: ` <ng-content select="nb-action"></ng-content> `, styles: [":host{display:flex;align-items:center}:host /deep/ nb-action{display:flex;flex-wrap:wrap;align-items:center;position:relative}:host /deep/ nb-action i.control-icon:hover{cursor:pointer}:host /deep/ nb-action.disabled{cursor:not-allowed}:host /deep/ nb-action.disabled>*{opacity:.5}:host /deep/ nb-action.disabled a,:host /deep/ nb-action.disabled i{cursor:not-allowed!important}"] }] } ]; NbActionsComponent.propDecorators = { inverseValue: [{ type: HostBinding, args: ['class.inverse',] }], small: [{ type: HostBinding, args: ['class.small',] }], medium: [{ type: HostBinding, args: ['class.medium',] }], large: [{ type: HostBinding, args: ['class.large',] }], fullWidthValue: [{ type: HostBinding, args: ['class.full-width',] }], size: [{ type: Input }], inverse: [{ type: Input }], fullWidth: [{ type: Input }] }; if (false) { /** @type {?} */ NbActionsComponent.SIZE_SMALL; /** @type {?} */ NbActionsComponent.SIZE_MEDIUM; /** @type {?} */ NbActionsComponent.SIZE_LARGE; /** * @type {?} * @private */ NbActionsComponent.prototype.sizeValue; /** @type {?} */ NbActionsComponent.prototype.inverseValue; /** @type {?} */ NbActionsComponent.prototype.fullWidthValue; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly90aGVtZS1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hY3Rpb25zL2FjdGlvbnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQU1BLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7QUFpQm5ELE1BQU0sT0FBTyxpQkFBaUI7SUFaOUI7UUFjaUMsa0JBQWEsR0FBWSxLQUFLLENBQUM7SUF1Q2hFLENBQUM7Ozs7Ozs7OztJQTNCQyxJQUNJLFFBQVEsQ0FBQyxHQUFZO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7O1lBN0JGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsV0FBVztnQkFDckIsUUFBUSxFQUFFOzs7Ozs7OztHQVFUO2FBQ0Y7Ozs0QkFHRSxXQUFXLFNBQUMsZ0JBQWdCO21CQU01QixLQUFLO3VCQU1MLEtBQUs7d0JBU0wsS0FBSzswQkFPTCxLQUFLOzRCQVNMLEtBQUs7Ozs7SUFyQ04sMENBQThEOztJQU05RCxpQ0FBc0I7O0lBZXRCLHNDQUEyQjs7SUFPM0Isd0NBQTZCOztJQVM3QiwwQ0FBK0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBOERqQyxNQUFNLE9BQU8sa0JBQWtCO0lBUC9CO1FBaUNFLG1CQUFjLEdBQVksS0FBSyxDQUFDO0lBNEJsQyxDQUFDOzs7O0lBNUNDLElBQ0ksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxrQkFBa0IsQ0FBQyxVQUFVLENBQUM7SUFDMUQsQ0FBQzs7OztJQUVELElBQ0ksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxrQkFBa0IsQ0FBQyxXQUFXLENBQUM7SUFDM0QsQ0FBQzs7OztJQUVELElBQ0ksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxrQkFBa0IsQ0FBQyxVQUFVLENBQUM7SUFDMUQsQ0FBQzs7Ozs7Ozs7O0lBU0QsSUFDSSxJQUFJLENBQUMsR0FBVztRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztJQUN2QixDQUFDOzs7Ozs7Ozs7SUFNRCxJQUNJLE9BQU8sQ0FBQyxHQUFZO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakQsQ0FBQzs7Ozs7Ozs7O0lBTUQsSUFDSSxTQUFTLENBQUMsR0FBWTtRQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7O0FBbkRlLDZCQUFVLEdBQUcsT0FBTyxDQUFDO0FBQ3JCLDhCQUFXLEdBQUcsUUFBUSxDQUFDO0FBQ3ZCLDZCQUFVLEdBQUcsT0FBTyxDQUFDOztZQVh0QyxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBRXRCLFFBQVEsRUFBRTs7R0FFVDs7YUFDRjs7OzJCQVNFLFdBQVcsU0FBQyxlQUFlO29CQUUzQixXQUFXLFNBQUMsYUFBYTtxQkFLekIsV0FBVyxTQUFDLGNBQWM7b0JBSzFCLFdBQVcsU0FBQyxhQUFhOzZCQUt6QixXQUFXLFNBQUMsa0JBQWtCO21CQU85QixLQUFLO3NCQVNMLEtBQUs7d0JBU0wsS0FBSzs7OztJQWhETiw4QkFBcUM7O0lBQ3JDLCtCQUF1Qzs7SUFDdkMsOEJBQXFDOzs7OztJQUVyQyx1Q0FBMEI7O0lBRTFCLDBDQUFvRDs7SUFpQnBELDRDQUNnQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cclxuICovXHJcblxyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBIb3N0QmluZGluZyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IGNvbnZlcnRUb0Jvb2xQcm9wZXJ0eSB9IGZyb20gJy4uL2hlbHBlcnMnO1xyXG5cclxuLypcclxuICogQWN0aW9uIGl0ZW0sIGRpc3BsYXkgYSBsaW5rIHdpdGggYW4gaWNvbiwgb3IgYW55IG90aGVyIGNvbnRlbnQgcHJvdmlkZWQgaW5zdGVhZC5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbmItYWN0aW9uJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGEgY2xhc3M9XCJpY29uLWNvbnRhaW5lclwiIGhyZWY9XCIjXCIgKm5nSWY9XCJpY29uOyBlbHNlIHNob3dDb250ZW50XCIgKGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwiY29udHJvbC1pY29uIHt7IGljb24gfX1cIj48L2k+XHJcbiAgICA8L2E+XHJcbiAgICA8bmctdGVtcGxhdGUgI3Nob3dDb250ZW50PlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5iLWJhZGdlICpuZ0lmPVwiYmFkZ2VUZXh0XCIgW3RleHRdPVwiYmFkZ2VUZXh0XCIgW3N0YXR1c109XCJiYWRnZVN0YXR1c1wiIFtwb3NpdGlvbl09XCJiYWRnZVBvc2l0aW9uXCI+PC9uYi1iYWRnZT5cclxuICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmJBY3Rpb25Db21wb25lbnQge1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRpc2FibGVkJykgZGlzYWJsZWRWYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKlxyXG4gICAqIEljb24gY2xhc3MgdG8gZGlzcGxheVxyXG4gICAqIEB0eXBlIHN0cmluZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGljb246IHN0cmluZztcclxuXHJcbiAgLypcclxuICAgKiBEaXNhYmxlcyB0aGUgaXRlbSAoY2hhbmdlcyBpdGVtIG9wYWNpdHkgYW5kIG1vdXNlIGN1cnNvcilcclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgZGlzYWJsZWQodmFsOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmRpc2FibGVkVmFsdWUgPSBjb252ZXJ0VG9Cb29sUHJvcGVydHkodmFsKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogQmFkZ2UgdGV4dCB0byBkaXNwbGF5XHJcbiAgICogQHR5cGUgc3RyaW5nXHJcbiAgICovXHJcbiAgQElucHV0KCkgYmFkZ2VUZXh0OiBzdHJpbmc7XHJcblxyXG4gIC8qXHJcbiAgICogQmFkZ2Ugc3RhdHVzIChhZGRzIHNwZWNpZmljIHN0eWxlcyk6XHJcbiAgICogJ3ByaW1hcnknLCAnaW5mbycsICdzdWNjZXNzJywgJ3dhcm5pbmcnLCAnZGFuZ2VyJ1xyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWxcclxuICAgKi9cclxuICBASW5wdXQoKSBiYWRnZVN0YXR1czogc3RyaW5nO1xyXG5cclxuICAvKlxyXG4gICAqIEJhZGdlIHBvc2l0aW9uLlxyXG4gICAqIENhbiBiZSBzZXQgdG8gYW55IGNsYXNzIG9yIHRvIG9uZSBvZiBwcmVkZWZpbmVkIHBvc2l0aW9uczpcclxuICAgKiAndG9wIGxlZnQnLCAndG9wIHJpZ2h0JywgJ2JvdHRvbSBsZWZ0JywgJ2JvdHRvbSByaWdodCcsXHJcbiAgICogJ3RvcCBzdGFydCcsICd0b3AgZW5kJywgJ2JvdHRvbSBzdGFydCcsICdib3R0b20gZW5kJ1xyXG4gICAqIEB0eXBlIHN0cmluZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGJhZGdlUG9zaXRpb246IHN0cmluZztcclxuXHJcbn1cclxuXHJcbi8qXHJcbiAqIFNob3dzIGEgaG9yaXpvbnRhbCBsaXN0IG9mIGFjdGlvbnMsIGF2YWlsYWJsZSBpbiBtdWx0aXBsZSBzaXplcy5cclxuICogQWxpZ25zIGl0ZW1zIHZlcnRpY2FsbHkuXHJcbiAqXHJcbiAqIEBzdGFja2VkLWV4YW1wbGUoU2hvd2Nhc2UsIGFjdGlvbi9hY3Rpb24tc2hvd2Nhc2UuY29tcG9uZW50KVxyXG4gKlxyXG4gKiBCYXNpYyBhY3Rpb25zIHNldHVwOlxyXG4gKiBgYGBodG1sXHJcbiAqIDxuYi1hY3Rpb25zIHNpemU9XCJzbWFsbFwiPlxyXG4gKiAgIDxuYi1hY3Rpb24gaWNvbj1cIm5iLXNlYXJjaFwiPjwvbmItYWN0aW9uPlxyXG4gKiAgIDxuYi1hY3Rpb24gaWNvbj1cIm5iLXBvd2VyLWNpcmNsZWRcIj48L25iLWFjdGlvbj5cclxuICogICA8bmItYWN0aW9uIGljb249XCJuYi1wZXJzb25cIj48L25iLWFjdGlvbj5cclxuICogPC9uYi1hY3Rpb25zPlxyXG4gKiBgYGBcclxuICogIyMjIEluc3RhbGxhdGlvblxyXG4gKlxyXG4gKiBJbXBvcnQgYE5iQWN0aW9uc01vZHVsZWAgdG8geW91ciBmZWF0dXJlIG1vZHVsZS5cclxuICogYGBgdHNcclxuICogQE5nTW9kdWxlKHtcclxuICogICBpbXBvcnRzOiBbXHJcbiAqICAgXHQvLyAuLi5cclxuICogICAgIE5iQWN0aW9uc01vZHVsZSxcclxuICogICBdLFxyXG4gKiB9KVxyXG4gKiBleHBvcnQgY2xhc3MgUGFnZU1vZHVsZSB7IH1cclxuICogYGBgXHJcbiAqICMjIyBVc2FnZVxyXG4gKlxyXG4gKiBNdWx0aXBsZSBzaXplcyBleGFtcGxlOlxyXG4gKiBAc3RhY2tlZC1leGFtcGxlKE11bHRpcGxlIFNpemVzLCBhY3Rpb24vYWN0aW9uLXNpemVzLmNvbXBvbmVudClcclxuICpcclxuICogSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBzcGVjaWZ5IGEgYGJhZGdlYCB2YWx1ZTpcclxuICpcclxuICogQHN0YWNrZWQtZXhhbXBsZShBY3Rpb24gQmFkZ2UsIGFjdGlvbi9hY3Rpb24tYmFkZ2UuY29tcG9uZW50KVxyXG4gKlxyXG4gKiBhbmQgd2UgY2FuIHNldCBpdCB0byBmdWxsIGEgd2lkdGggb2YgYSBwYXJlbnQgY29tcG9uZW50XHJcbiAqIEBzdGFja2VkLWV4YW1wbGUoRnVsbCBXaWR0aCwgYWN0aW9uL2FjdGlvbi13aWR0aC5jb21wb25lbnQpXHJcbiAqXHJcbiAqIEBzdHlsZXNcclxuICpcclxuICogYWN0aW9ucy1mb250LXNpemU6XHJcbiAqIGFjdGlvbnMtZm9udC1mYW1pbHk6XHJcbiAqIGFjdGlvbnMtbGluZS1oZWlnaHQ6XHJcbiAqIGFjdGlvbnMtZmc6XHJcbiAqIGFjdGlvbnMtYmc6XHJcbiAqIGFjdGlvbnMtc2VwYXJhdG9yOlxyXG4gKiBhY3Rpb25zLXBhZGRpbmc6XHJcbiAqIGFjdGlvbnMtc2l6ZS1zbWFsbDpcclxuICogYWN0aW9ucy1zaXplLW1lZGl1bTpcclxuICogYWN0aW9ucy1zaXplLWxhcmdlOlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduYi1hY3Rpb25zJyxcclxuICBzdHlsZVVybHM6IFsnLi9hY3Rpb25zLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm5iLWFjdGlvblwiPjwvbmctY29udGVudD5cclxuICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmJBY3Rpb25zQ29tcG9uZW50IHtcclxuXHJcbiAgc3RhdGljIHJlYWRvbmx5IFNJWkVfU01BTEwgPSAnc21hbGwnO1xyXG4gIHN0YXRpYyByZWFkb25seSBTSVpFX01FRElVTSA9ICdtZWRpdW0nO1xyXG4gIHN0YXRpYyByZWFkb25seSBTSVpFX0xBUkdFID0gJ2xhcmdlJztcclxuXHJcbiAgcHJpdmF0ZSBzaXplVmFsdWU6IHN0cmluZztcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pbnZlcnNlJykgaW52ZXJzZVZhbHVlOiBib29sZWFuO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNtYWxsJylcclxuICBnZXQgc21hbGwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zaXplVmFsdWUgPT09IE5iQWN0aW9uc0NvbXBvbmVudC5TSVpFX1NNQUxMO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tZWRpdW0nKVxyXG4gIGdldCBtZWRpdW0oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zaXplVmFsdWUgPT09IE5iQWN0aW9uc0NvbXBvbmVudC5TSVpFX01FRElVTTtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MubGFyZ2UnKVxyXG4gIGdldCBsYXJnZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnNpemVWYWx1ZSA9PT0gTmJBY3Rpb25zQ29tcG9uZW50LlNJWkVfTEFSR0U7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZ1bGwtd2lkdGgnKVxyXG4gIGZ1bGxXaWR0aFZhbHVlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qXHJcbiAgICogU2l6ZSBvZiB0aGUgY29tcG9uZW50LCBzbWFsbHxtZWRpdW18bGFyZ2VcclxuICAgKiBAdHlwZSBzdHJpbmdcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBzaXplKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNpemVWYWx1ZSA9IHZhbDtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogTWFrZXMgY29sb3JzIGludmVyc2UgYmFzZWQgb24gY3VycmVudCB0aGVtZVxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBpbnZlcnNlKHZhbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pbnZlcnNlVmFsdWUgPSBjb252ZXJ0VG9Cb29sUHJvcGVydHkodmFsKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogQ29tcG9uZW50IHdpbGwgZmlsbCBmdWxsIHdpZHRoIG9mIHRoZSBjb250YWluZXJcclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgZnVsbFdpZHRoKHZhbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5mdWxsV2lkdGhWYWx1ZSA9IGNvbnZlcnRUb0Jvb2xQcm9wZXJ0eSh2YWwpO1xyXG4gIH1cclxufVxyXG4iXX0=