theme-lib
Version:
This is a simple example Angular Library published to npm.
233 lines • 16.9 kB
JavaScript
/**
* @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 { Directive, Input, HostBinding } from '@angular/core';
import { convertToBoolProperty } from '../helpers';
/*
* Basic input directive.
*
* ```html
* <input nbInput></input>
* ```
*
* ### Installation
*
* Import `NbInputModule` to your feature module.
* ```ts
* @NgModule({
* imports: [
* // ...
* NbInputModule,
* ],
* })
* export class PageModule { }
* ```
* ### Usage
*
* Default input size is `medium`:
* @stacked-example(Showcase, input/input-showcase.component)
*
* Inputs are available in multiple colors using `status` property:
* @stacked-example(Input Colors, input/input-colors.component)
*
* There are three input sizes:
*
* @stacked-example(Input Sizes, input/input-sizes.component)
*
* Inputs available in different shapes, which could be combined with the other properties:
* @stacked-example(Input Shapes, input/input-shapes.component)
*
* `nbInput` could be applied to the following selectors - `input`, `textarea`:
* @stacked-example(Input Elements, input/input-types.component)
*
* You can add `fullWidth` attribute to make element fill container:
* @stacked-example(Full width inputs, input/input-full-width.component)
*
* @styles
*
* form-control-bg:
* form-control-border-width:
* form-control-border-type:
* form-control-border-color:
* form-control-text-primary-color:
* form-control-focus-bg:
* form-control-selected-border-color:
* form-control-placeholder-font-size:
* form-control-placeholder-color:
* form-control-font-size:
* form-control-padding:
* form-control-font-size-sm:
* form-control-padding-sm:
* form-control-font-size-lg:
* form-control-padding-lg:
* form-control-border-radius:
* form-control-semi-round-border-radius:
* form-control-round-border-radius:
* form-control-info-border-color:
* form-control-success-border-color:
* form-control-warning-border-color:
* form-control-danger-border-color:
*/
export class NbInputDirective {
constructor() {
this.size = NbInputDirective.SIZE_MEDIUM;
/*
* Field shapes: `rectangle`, `round`, `semi-round`
* @param {string} val
*/
this.shape = NbInputDirective.SHAPE_RECTANGLE;
this.fullWidth = false;
}
/*
* Field size, available sizes:
* `small`, `medium`, `large`
* @param {string} val
*/
/**
* @param {?} value
* @return {?}
*/
set setSize(value) {
this.size = value;
}
/*
* If set element will fill container
* @param {string}
*/
/**
* @param {?} value
* @return {?}
*/
set setFullWidth(value) {
this.fullWidth = convertToBoolProperty(value);
}
/**
* @return {?}
*/
get small() {
return this.size === NbInputDirective.SIZE_SMALL;
}
/**
* @return {?}
*/
get medium() {
return this.size === NbInputDirective.SIZE_MEDIUM;
}
/**
* @return {?}
*/
get large() {
return this.size === NbInputDirective.SIZE_LARGE;
}
/**
* @return {?}
*/
get info() {
return this.status === NbInputDirective.STATUS_INFO;
}
/**
* @return {?}
*/
get success() {
return this.status === NbInputDirective.STATUS_SUCCESS;
}
/**
* @return {?}
*/
get warning() {
return this.status === NbInputDirective.STATUS_WARNING;
}
/**
* @return {?}
*/
get danger() {
return this.status === NbInputDirective.STATUS_DANGER;
}
/**
* @return {?}
*/
get rectangle() {
return this.shape === NbInputDirective.SHAPE_RECTANGLE;
}
/**
* @return {?}
*/
get semiRound() {
return this.shape === NbInputDirective.SHAPE_SEMI_ROUND;
}
/**
* @return {?}
*/
get round() {
return this.shape === NbInputDirective.SHAPE_ROUND;
}
}
NbInputDirective.SIZE_SMALL = 'small';
NbInputDirective.SIZE_MEDIUM = 'medium';
NbInputDirective.SIZE_LARGE = 'large';
NbInputDirective.STATUS_INFO = 'info';
NbInputDirective.STATUS_SUCCESS = 'success';
NbInputDirective.STATUS_WARNING = 'warning';
NbInputDirective.STATUS_DANGER = 'danger';
NbInputDirective.SHAPE_RECTANGLE = 'rectangle';
NbInputDirective.SHAPE_SEMI_ROUND = 'semi-round';
NbInputDirective.SHAPE_ROUND = 'round';
NbInputDirective.decorators = [
{ type: Directive, args: [{
selector: 'input[nbInput],textarea[nbInput]',
},] }
];
NbInputDirective.propDecorators = {
setSize: [{ type: Input, args: ['fieldSize',] }],
status: [{ type: Input, args: ['status',] }],
shape: [{ type: Input, args: ['shape',] }],
setFullWidth: [{ type: Input, args: ['fullWidth',] }],
fullWidth: [{ type: HostBinding, args: ['class.input-full-width',] }],
small: [{ type: HostBinding, args: ['class.input-sm',] }],
medium: [{ type: HostBinding, args: ['class.input-md',] }],
large: [{ type: HostBinding, args: ['class.input-lg',] }],
info: [{ type: HostBinding, args: ['class.input-info',] }],
success: [{ type: HostBinding, args: ['class.input-success',] }],
warning: [{ type: HostBinding, args: ['class.input-warning',] }],
danger: [{ type: HostBinding, args: ['class.input-danger',] }],
rectangle: [{ type: HostBinding, args: ['class.input-rectangle',] }],
semiRound: [{ type: HostBinding, args: ['class.input-semi-round',] }],
round: [{ type: HostBinding, args: ['class.input-round',] }]
};
if (false) {
/** @type {?} */
NbInputDirective.SIZE_SMALL;
/** @type {?} */
NbInputDirective.SIZE_MEDIUM;
/** @type {?} */
NbInputDirective.SIZE_LARGE;
/** @type {?} */
NbInputDirective.STATUS_INFO;
/** @type {?} */
NbInputDirective.STATUS_SUCCESS;
/** @type {?} */
NbInputDirective.STATUS_WARNING;
/** @type {?} */
NbInputDirective.STATUS_DANGER;
/** @type {?} */
NbInputDirective.SHAPE_RECTANGLE;
/** @type {?} */
NbInputDirective.SHAPE_SEMI_ROUND;
/** @type {?} */
NbInputDirective.SHAPE_ROUND;
/** @type {?} */
NbInputDirective.prototype.size;
/** @type {?} */
NbInputDirective.prototype.status;
/** @type {?} */
NbInputDirective.prototype.shape;
/** @type {?} */
NbInputDirective.prototype.fullWidth;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGhlbWUtbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQU1BLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNFbkQsTUFBTSxPQUFPLGdCQUFnQjtJQUg3QjtRQWtCRSxTQUFJLEdBQVcsZ0JBQWdCLENBQUMsV0FBVyxDQUFDOzs7OztRQXlCNUMsVUFBSyxHQUFXLGdCQUFnQixDQUFDLGVBQWUsQ0FBQztRQVlqRCxjQUFTLEdBQUcsS0FBSyxDQUFDO0lBbURwQixDQUFDOzs7Ozs7Ozs7O0lBakZDLElBQ0ksT0FBTyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDcEIsQ0FBQzs7Ozs7Ozs7O0lBcUJELElBQ0ksWUFBWSxDQUFDLEtBQUs7UUFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDOzs7O0lBS0QsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztJQUNuRCxDQUFDOzs7O0lBRUQsSUFDSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztJQUNwRCxDQUFDOzs7O0lBRUQsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztJQUNuRCxDQUFDOzs7O0lBRUQsSUFDSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztJQUN0RCxDQUFDOzs7O0lBRUQsSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztJQUN6RCxDQUFDOzs7O0lBRUQsSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztJQUN6RCxDQUFDOzs7O0lBRUQsSUFDSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztJQUN4RCxDQUFDOzs7O0lBRUQsSUFDSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLGdCQUFnQixDQUFDLGVBQWUsQ0FBQztJQUN6RCxDQUFDOzs7O0lBRUQsSUFDSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDO0lBQzFELENBQUM7Ozs7SUFFRCxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssZ0JBQWdCLENBQUMsV0FBVyxDQUFDO0lBQ3JELENBQUM7O0FBcEdlLDJCQUFVLEdBQUcsT0FBTyxDQUFDO0FBQ3JCLDRCQUFXLEdBQUcsUUFBUSxDQUFDO0FBQ3ZCLDJCQUFVLEdBQUcsT0FBTyxDQUFDO0FBRXJCLDRCQUFXLEdBQUcsTUFBTSxDQUFDO0FBQ3JCLCtCQUFjLEdBQUcsU0FBUyxDQUFDO0FBQzNCLCtCQUFjLEdBQUcsU0FBUyxDQUFDO0FBQzNCLDhCQUFhLEdBQUcsUUFBUSxDQUFDO0FBRXpCLGdDQUFlLEdBQUcsV0FBVyxDQUFDO0FBQzlCLGlDQUFnQixHQUFHLFlBQVksQ0FBQztBQUNoQyw0QkFBVyxHQUFHLE9BQU8sQ0FBQzs7WUFoQnZDLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsa0NBQWtDO2FBQzdDOzs7c0JBdUJFLEtBQUssU0FBQyxXQUFXO3FCQVVqQixLQUFLLFNBQUMsUUFBUTtvQkFPZCxLQUFLLFNBQUMsT0FBTzsyQkFPYixLQUFLLFNBQUMsV0FBVzt3QkFLakIsV0FBVyxTQUFDLHdCQUF3QjtvQkFHcEMsV0FBVyxTQUFDLGdCQUFnQjtxQkFLNUIsV0FBVyxTQUFDLGdCQUFnQjtvQkFLNUIsV0FBVyxTQUFDLGdCQUFnQjttQkFLNUIsV0FBVyxTQUFDLGtCQUFrQjtzQkFLOUIsV0FBVyxTQUFDLHFCQUFxQjtzQkFLakMsV0FBVyxTQUFDLHFCQUFxQjtxQkFLakMsV0FBVyxTQUFDLG9CQUFvQjt3QkFLaEMsV0FBVyxTQUFDLHVCQUF1Qjt3QkFLbkMsV0FBVyxTQUFDLHdCQUF3QjtvQkFLcEMsV0FBVyxTQUFDLG1CQUFtQjs7OztJQWpHaEMsNEJBQXFDOztJQUNyQyw2QkFBdUM7O0lBQ3ZDLDRCQUFxQzs7SUFFckMsNkJBQXFDOztJQUNyQyxnQ0FBMkM7O0lBQzNDLGdDQUEyQzs7SUFDM0MsK0JBQXlDOztJQUV6QyxpQ0FBOEM7O0lBQzlDLGtDQUFnRDs7SUFDaEQsNkJBQXNDOztJQUV0QyxnQ0FBNEM7O0lBaUI1QyxrQ0FDZTs7SUFNZixpQ0FDaUQ7O0lBV2pELHFDQUNrQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cclxuICovXHJcblxyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sUHJvcGVydHkgfSBmcm9tICcuLi9oZWxwZXJzJztcclxuXHJcbi8qXHJcbiAqIEJhc2ljIGlucHV0IGRpcmVjdGl2ZS5cclxuICpcclxuICogYGBgaHRtbFxyXG4gKiA8aW5wdXQgbmJJbnB1dD48L2lucHV0PlxyXG4gKiBgYGBcclxuICpcclxuICogIyMjIEluc3RhbGxhdGlvblxyXG4gKlxyXG4gKiBJbXBvcnQgYE5iSW5wdXRNb2R1bGVgIHRvIHlvdXIgZmVhdHVyZSBtb2R1bGUuXHJcbiAqIGBgYHRzXHJcbiAqIEBOZ01vZHVsZSh7XHJcbiAqICAgaW1wb3J0czogW1xyXG4gKiAgIFx0Ly8gLi4uXHJcbiAqICAgICBOYklucHV0TW9kdWxlLFxyXG4gKiAgIF0sXHJcbiAqIH0pXHJcbiAqIGV4cG9ydCBjbGFzcyBQYWdlTW9kdWxlIHsgfVxyXG4gKiBgYGBcclxuICogIyMjIFVzYWdlXHJcbiAqXHJcbiAqIERlZmF1bHQgaW5wdXQgc2l6ZSBpcyBgbWVkaXVtYDpcclxuICogQHN0YWNrZWQtZXhhbXBsZShTaG93Y2FzZSwgaW5wdXQvaW5wdXQtc2hvd2Nhc2UuY29tcG9uZW50KVxyXG4gKlxyXG4gKiBJbnB1dHMgYXJlIGF2YWlsYWJsZSBpbiBtdWx0aXBsZSBjb2xvcnMgdXNpbmcgYHN0YXR1c2AgcHJvcGVydHk6XHJcbiAqIEBzdGFja2VkLWV4YW1wbGUoSW5wdXQgQ29sb3JzLCBpbnB1dC9pbnB1dC1jb2xvcnMuY29tcG9uZW50KVxyXG4gKlxyXG4gKiBUaGVyZSBhcmUgdGhyZWUgaW5wdXQgc2l6ZXM6XHJcbiAqXHJcbiAqIEBzdGFja2VkLWV4YW1wbGUoSW5wdXQgU2l6ZXMsIGlucHV0L2lucHV0LXNpemVzLmNvbXBvbmVudClcclxuICpcclxuICogSW5wdXRzIGF2YWlsYWJsZSBpbiBkaWZmZXJlbnQgc2hhcGVzLCB3aGljaCBjb3VsZCBiZSBjb21iaW5lZCB3aXRoIHRoZSBvdGhlciBwcm9wZXJ0aWVzOlxyXG4gKiBAc3RhY2tlZC1leGFtcGxlKElucHV0IFNoYXBlcywgaW5wdXQvaW5wdXQtc2hhcGVzLmNvbXBvbmVudClcclxuICpcclxuICogYG5iSW5wdXRgIGNvdWxkIGJlIGFwcGxpZWQgdG8gdGhlIGZvbGxvd2luZyBzZWxlY3RvcnMgLSBgaW5wdXRgLCBgdGV4dGFyZWFgOlxyXG4gKiBAc3RhY2tlZC1leGFtcGxlKElucHV0IEVsZW1lbnRzLCBpbnB1dC9pbnB1dC10eXBlcy5jb21wb25lbnQpXHJcbiAqXHJcbiAqIFlvdSBjYW4gYWRkIGBmdWxsV2lkdGhgIGF0dHJpYnV0ZSB0byBtYWtlIGVsZW1lbnQgZmlsbCBjb250YWluZXI6XHJcbiAqIEBzdGFja2VkLWV4YW1wbGUoRnVsbCB3aWR0aCBpbnB1dHMsIGlucHV0L2lucHV0LWZ1bGwtd2lkdGguY29tcG9uZW50KVxyXG4gKlxyXG4gKiBAc3R5bGVzXHJcbiAqXHJcbiAqIGZvcm0tY29udHJvbC1iZzpcclxuICogZm9ybS1jb250cm9sLWJvcmRlci13aWR0aDpcclxuICogZm9ybS1jb250cm9sLWJvcmRlci10eXBlOlxyXG4gKiBmb3JtLWNvbnRyb2wtYm9yZGVyLWNvbG9yOlxyXG4gKiBmb3JtLWNvbnRyb2wtdGV4dC1wcmltYXJ5LWNvbG9yOlxyXG4gKiBmb3JtLWNvbnRyb2wtZm9jdXMtYmc6XHJcbiAqIGZvcm0tY29udHJvbC1zZWxlY3RlZC1ib3JkZXItY29sb3I6XHJcbiAqIGZvcm0tY29udHJvbC1wbGFjZWhvbGRlci1mb250LXNpemU6XHJcbiAqIGZvcm0tY29udHJvbC1wbGFjZWhvbGRlci1jb2xvcjpcclxuICogZm9ybS1jb250cm9sLWZvbnQtc2l6ZTpcclxuICogZm9ybS1jb250cm9sLXBhZGRpbmc6XHJcbiAqIGZvcm0tY29udHJvbC1mb250LXNpemUtc206XHJcbiAqIGZvcm0tY29udHJvbC1wYWRkaW5nLXNtOlxyXG4gKiBmb3JtLWNvbnRyb2wtZm9udC1zaXplLWxnOlxyXG4gKiBmb3JtLWNvbnRyb2wtcGFkZGluZy1sZzpcclxuICogZm9ybS1jb250cm9sLWJvcmRlci1yYWRpdXM6XHJcbiAqIGZvcm0tY29udHJvbC1zZW1pLXJvdW5kLWJvcmRlci1yYWRpdXM6XHJcbiAqIGZvcm0tY29udHJvbC1yb3VuZC1ib3JkZXItcmFkaXVzOlxyXG4gKiBmb3JtLWNvbnRyb2wtaW5mby1ib3JkZXItY29sb3I6XHJcbiAqIGZvcm0tY29udHJvbC1zdWNjZXNzLWJvcmRlci1jb2xvcjpcclxuICogZm9ybS1jb250cm9sLXdhcm5pbmctYm9yZGVyLWNvbG9yOlxyXG4gKiBmb3JtLWNvbnRyb2wtZGFuZ2VyLWJvcmRlci1jb2xvcjpcclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnaW5wdXRbbmJJbnB1dF0sdGV4dGFyZWFbbmJJbnB1dF0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmJJbnB1dERpcmVjdGl2ZSB7XHJcblxyXG4gIHN0YXRpYyByZWFkb25seSBTSVpFX1NNQUxMID0gJ3NtYWxsJztcclxuICBzdGF0aWMgcmVhZG9ubHkgU0laRV9NRURJVU0gPSAnbWVkaXVtJztcclxuICBzdGF0aWMgcmVhZG9ubHkgU0laRV9MQVJHRSA9ICdsYXJnZSc7XHJcblxyXG4gIHN0YXRpYyByZWFkb25seSBTVEFUVVNfSU5GTyA9ICdpbmZvJztcclxuICBzdGF0aWMgcmVhZG9ubHkgU1RBVFVTX1NVQ0NFU1MgPSAnc3VjY2Vzcyc7XHJcbiAgc3RhdGljIHJlYWRvbmx5IFNUQVRVU19XQVJOSU5HID0gJ3dhcm5pbmcnO1xyXG4gIHN0YXRpYyByZWFkb25seSBTVEFUVVNfREFOR0VSID0gJ2Rhbmdlcic7XHJcblxyXG4gIHN0YXRpYyByZWFkb25seSBTSEFQRV9SRUNUQU5HTEUgPSAncmVjdGFuZ2xlJztcclxuICBzdGF0aWMgcmVhZG9ubHkgU0hBUEVfU0VNSV9ST1VORCA9ICdzZW1pLXJvdW5kJztcclxuICBzdGF0aWMgcmVhZG9ubHkgU0hBUEVfUk9VTkQgPSAncm91bmQnO1xyXG5cclxuICBzaXplOiBzdHJpbmcgPSBOYklucHV0RGlyZWN0aXZlLlNJWkVfTUVESVVNO1xyXG5cclxuICAvKlxyXG4gICAqIEZpZWxkIHNpemUsIGF2YWlsYWJsZSBzaXplczpcclxuICAgKiBgc21hbGxgLCBgbWVkaXVtYCwgYGxhcmdlYFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWxcclxuICAgKi9cclxuICBASW5wdXQoJ2ZpZWxkU2l6ZScpXHJcbiAgc2V0IHNldFNpemUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5zaXplID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIEZpZWxkIHN0YXR1cyAoYWRkcyBzcGVjaWZpYyBzdHlsZXMpOlxyXG4gICAqIGBpbmZvYCwgYHN1Y2Nlc3NgLCBgd2FybmluZ2AsIGBkYW5nZXJgXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgnc3RhdHVzJylcclxuICBzdGF0dXM6IHN0cmluZztcclxuXHJcbiAgLypcclxuICAgKiBGaWVsZCBzaGFwZXM6IGByZWN0YW5nbGVgLCBgcm91bmRgLCBgc2VtaS1yb3VuZGBcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsXHJcbiAgICovXHJcbiAgQElucHV0KCdzaGFwZScpXHJcbiAgc2hhcGU6IHN0cmluZyA9IE5iSW5wdXREaXJlY3RpdmUuU0hBUEVfUkVDVEFOR0xFO1xyXG5cclxuICAvKlxyXG4gICAqIElmIHNldCBlbGVtZW50IHdpbGwgZmlsbCBjb250YWluZXJcclxuICAgKiBAcGFyYW0ge3N0cmluZ31cclxuICAgKi9cclxuICBASW5wdXQoJ2Z1bGxXaWR0aCcpXHJcbiAgc2V0IHNldEZ1bGxXaWR0aCh2YWx1ZSkge1xyXG4gICAgdGhpcy5mdWxsV2lkdGggPSBjb252ZXJ0VG9Cb29sUHJvcGVydHkodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pbnB1dC1mdWxsLXdpZHRoJylcclxuICBmdWxsV2lkdGggPSBmYWxzZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pbnB1dC1zbScpXHJcbiAgZ2V0IHNtYWxsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gTmJJbnB1dERpcmVjdGl2ZS5TSVpFX1NNQUxMO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pbnB1dC1tZCcpXHJcbiAgZ2V0IG1lZGl1bSgpIHtcclxuICAgIHJldHVybiB0aGlzLnNpemUgPT09IE5iSW5wdXREaXJlY3RpdmUuU0laRV9NRURJVU07XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlucHV0LWxnJylcclxuICBnZXQgbGFyZ2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zaXplID09PSBOYklucHV0RGlyZWN0aXZlLlNJWkVfTEFSR0U7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlucHV0LWluZm8nKVxyXG4gIGdldCBpbmZvKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBOYklucHV0RGlyZWN0aXZlLlNUQVRVU19JTkZPO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pbnB1dC1zdWNjZXNzJylcclxuICBnZXQgc3VjY2VzcygpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gTmJJbnB1dERpcmVjdGl2ZS5TVEFUVVNfU1VDQ0VTUztcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaW5wdXQtd2FybmluZycpXHJcbiAgZ2V0IHdhcm5pbmcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09IE5iSW5wdXREaXJlY3RpdmUuU1RBVFVTX1dBUk5JTkc7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlucHV0LWRhbmdlcicpXHJcbiAgZ2V0IGRhbmdlcigpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gTmJJbnB1dERpcmVjdGl2ZS5TVEFUVVNfREFOR0VSO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pbnB1dC1yZWN0YW5nbGUnKVxyXG4gIGdldCByZWN0YW5nbGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zaGFwZSA9PT0gTmJJbnB1dERpcmVjdGl2ZS5TSEFQRV9SRUNUQU5HTEU7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlucHV0LXNlbWktcm91bmQnKVxyXG4gIGdldCBzZW1pUm91bmQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zaGFwZSA9PT0gTmJJbnB1dERpcmVjdGl2ZS5TSEFQRV9TRU1JX1JPVU5EO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pbnB1dC1yb3VuZCcpXHJcbiAgZ2V0IHJvdW5kKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hhcGUgPT09IE5iSW5wdXREaXJlY3RpdmUuU0hBUEVfUk9VTkQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==