UNPKG

@kushki/ng-suka

Version:

<p align="center"> <h1 align="center">Suka Components Angular</h1> <p align="center"> An Angular implementation of the Suka Design System </p> </p>

244 lines 16.3 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, Input, Output, EventEmitter, ElementRef, TemplateRef } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; var DatePickerInput = /** @class */ (function () { function DatePickerInput(elementRef) { this.elementRef = elementRef; /** * Select a calendar type for the `model`. */ this.type = 'simple'; /** * Sets the id for the `DatePickerInput`. */ this.id = "datepicker-" + DatePickerInput.datePickerCount++; /** * Set to `true` to display a calendar icon */ this.hasIcon = false; /** * Sets the input's placeholder. */ this.placeholder = 'dd/mm/yyyy'; /** * Sets the pattern to follow. */ this.pattern = '^\\d{1,2}/\\d{1,2}/\\d{4}$'; /** * Emits event notifying other classes of a value change. */ this.valueChange = new EventEmitter(); /** * Set to `true` to disable the input */ this.disabled = false; /** * Set to `true` to display invalid state. */ this.invalid = false; /** * Sets a time picker icon for input */ this.timePicker = false; /** * Skeleton state. */ this.skeleton = false; /** * Sets the `DatepickerInput` value. */ this.value = ''; this.onTouched = (/** * @return {?} */ function () { }); this.propagateChange = (/** * @param {?} _ * @return {?} */ function (_) { }); } /** * Sets the value, marks the input as touched and emits a value change event. */ /** * Sets the value, marks the input as touched and emits a value change event. * @param {?} event * @return {?} */ DatePickerInput.prototype.onChange = /** * Sets the value, marks the input as touched and emits a value change event. * @param {?} event * @return {?} */ function (event) { this.value = event.target.value; this.valueChange.emit(this.value); this.propagateChange(this.value); this.onTouched(); }; /** * @param {?} value * @return {?} */ DatePickerInput.prototype.writeValue = /** * @param {?} value * @return {?} */ function (value) { this.value = value; }; /** * @param {?} fn * @return {?} */ DatePickerInput.prototype.registerOnChange = /** * @param {?} fn * @return {?} */ function (fn) { this.propagateChange = fn; }; /** * @param {?} fn * @return {?} */ DatePickerInput.prototype.registerOnTouched = /** * @param {?} fn * @return {?} */ function (fn) { this.onTouched = fn; }; /** * @param {?} value * @return {?} */ DatePickerInput.prototype.isTemplate = /** * @param {?} value * @return {?} */ function (value) { return value instanceof TemplateRef; }; DatePickerInput.datePickerCount = 0; DatePickerInput.decorators = [ { type: Component, args: [{ selector: 'suka-date-picker-input', template: "\n <div class=\"date-picker-input\"\n [ngClass]=\"{\n 'date-picker--single' : type === 'single',\n 'date-picker--range' : type === 'range',\n 'skeleton' : skeleton\n }\">\n <div class=\"date-picker-input-container\">\n <label *ngIf=\"label\" [for]=\"id\" class=\"label\">\n <ng-container *ngIf=\"!isTemplate(label)\">{{label}}</ng-container>\n <ng-template *ngIf=\"isTemplate(label)\" [ngTemplateOutlet]=\"label\"></ng-template>\n </label>\n <div class=\"date-picker-input__wrapper\">\n <input\n *ngIf=\"!skeleton\"\n autocomplete=\"off\"\n type=\"text\"\n class=\"date-picker__input\"\n [value]=\"value\"\n [pattern]=\"pattern\"\n [placeholder]=\"placeholder\"\n [id]= \"id\"\n [disabled]=\"disabled\"\n (change)=\"onChange($event)\"/>\n <suka-icon\n icon=\"calendar\"\n class=\"date-picker__icon\"\n *ngIf=\"!timePicker\"\n >\n </suka-icon>\n <suka-icon\n icon=\"clock\"\n class=\"date-picker__icon\"\n *ngIf=\"timePicker\"\n >\n </suka-icon>\n </div>\n <div *ngIf=\"invalid\" class=\"form-requirement\">\n <ng-container *ngIf=\"!isTemplate(invalidText)\">{{invalidText}}</ng-container>\n <ng-template *ngIf=\"isTemplate(invalidText)\" [ngTemplateOutlet]=\"invalidText\"></ng-template>\n </div>\n </div>\n </div>\n ", providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: DatePickerInput, multi: true } ] }] } ]; /** @nocollapse */ DatePickerInput.ctorParameters = function () { return [ { type: ElementRef } ]; }; DatePickerInput.propDecorators = { type: [{ type: Input }], id: [{ type: Input }], hasIcon: [{ type: Input }], label: [{ type: Input }], placeholder: [{ type: Input }], pattern: [{ type: Input }], valueChange: [{ type: Output }], disabled: [{ type: Input }], invalid: [{ type: Input }], invalidText: [{ type: Input }], timePicker: [{ type: Input }], skeleton: [{ type: Input }], value: [{ type: Input }] }; return DatePickerInput; }()); export { DatePickerInput }; if (false) { /** * @type {?} * @private */ DatePickerInput.datePickerCount; /** * Select a calendar type for the `model`. * @type {?} */ DatePickerInput.prototype.type; /** * Sets the id for the `DatePickerInput`. * @type {?} */ DatePickerInput.prototype.id; /** * Set to `true` to display a calendar icon * @type {?} */ DatePickerInput.prototype.hasIcon; /** * label content. * @type {?} */ DatePickerInput.prototype.label; /** * Sets the input's placeholder. * @type {?} */ DatePickerInput.prototype.placeholder; /** * Sets the pattern to follow. * @type {?} */ DatePickerInput.prototype.pattern; /** * Emits event notifying other classes of a value change. * @type {?} */ DatePickerInput.prototype.valueChange; /** * Set to `true` to disable the input * @type {?} */ DatePickerInput.prototype.disabled; /** * Set to `true` to display invalid state. * @type {?} */ DatePickerInput.prototype.invalid; /** * Feedback message to display when `DatepickerInput` is invalid. * @type {?} */ DatePickerInput.prototype.invalidText; /** * Sets a time picker icon for input * @type {?} */ DatePickerInput.prototype.timePicker; /** * Skeleton state. * @type {?} */ DatePickerInput.prototype.skeleton; /** * Sets the `DatepickerInput` value. * @type {?} */ DatePickerInput.prototype.value; /** @type {?} */ DatePickerInput.prototype.onTouched; /** @type {?} */ DatePickerInput.prototype.propagateChange; /** * @type {?} * @protected */ DatePickerInput.prototype.elementRef; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Aa3VzaGtpL25nLXN1a2EvIiwic291cmNlcyI6WyJsaWIvZGF0ZXBpY2tlci1pbnB1dC9kYXRlcGlja2VyLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5EO0lBMEhFLHlCQUFzQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZOzs7O1FBOURuQyxTQUFJLEdBQWtDLFFBQVEsQ0FBQzs7OztRQUsvQyxPQUFFLEdBQUcsZ0JBQWMsZUFBZSxDQUFDLGVBQWUsRUFBSSxDQUFDOzs7O1FBS3ZELFlBQU8sR0FBRyxLQUFLLENBQUM7Ozs7UUFVaEIsZ0JBQVcsR0FBRyxZQUFZLENBQUM7Ozs7UUFLM0IsWUFBTyxHQUFHLDRCQUE0QixDQUFDOzs7O1FBS3RDLGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7Ozs7UUFLeEQsYUFBUSxHQUFHLEtBQUssQ0FBQzs7OztRQUtqQixZQUFPLEdBQUcsS0FBSyxDQUFDOzs7O1FBVWhCLGVBQVUsR0FBRyxLQUFLLENBQUM7Ozs7UUFLbkIsYUFBUSxHQUFHLEtBQUssQ0FBQzs7OztRQUtqQixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBMEJwQixjQUFTOzs7UUFBYyxjQUFRLENBQUMsRUFBQztRQUVqQyxvQkFBZTs7OztRQUFHLFVBQUMsQ0FBTSxJQUFPLENBQUMsRUFBQztJQTFCYyxDQUFDO0lBRWpEOztPQUVHOzs7Ozs7SUFDSCxrQ0FBUTs7Ozs7SUFBUixVQUFTLEtBQUs7UUFDWixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7Ozs7SUFFTSxvQ0FBVTs7OztJQUFqQixVQUFrQixLQUFVO1FBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7Ozs7O0lBRU0sMENBQWdCOzs7O0lBQXZCLFVBQXdCLEVBQU87UUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7Ozs7SUFFTSwyQ0FBaUI7Ozs7SUFBeEIsVUFBeUIsRUFBTztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDOzs7OztJQU1NLG9DQUFVOzs7O0lBQWpCLFVBQWtCLEtBQUs7UUFDckIsT0FBTyxLQUFLLFlBQVksV0FBVyxDQUFDO0lBQ3RDLENBQUM7SUFqR2MsK0JBQWUsR0FBRyxDQUFDLENBQUM7O2dCQXZEcEMsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRSx3a0RBMkNUO29CQUNELFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsZUFBZTs0QkFDNUIsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0Y7Ozs7Z0JBMURDLFVBQVU7Ozt1QkFpRVQsS0FBSztxQkFLTCxLQUFLOzBCQUtMLEtBQUs7d0JBS0wsS0FBSzs4QkFLTCxLQUFLOzBCQUtMLEtBQUs7OEJBS0wsTUFBTTsyQkFLTixLQUFLOzBCQUtMLEtBQUs7OEJBS0wsS0FBSzs2QkFLTCxLQUFLOzJCQUtMLEtBQUs7d0JBS0wsS0FBSzs7SUFpQ1Isc0JBQUM7Q0FBQSxBQXpKRCxJQXlKQztTQW5HWSxlQUFlOzs7Ozs7SUFDMUIsZ0NBQW1DOzs7OztJQUtuQywrQkFBd0Q7Ozs7O0lBS3hELDZCQUFnRTs7Ozs7SUFLaEUsa0NBQXlCOzs7OztJQUt6QixnQ0FBMEM7Ozs7O0lBSzFDLHNDQUFvQzs7Ozs7SUFLcEMsa0NBQWdEOzs7OztJQUtoRCxzQ0FBaUU7Ozs7O0lBS2pFLG1DQUEwQjs7Ozs7SUFLMUIsa0NBQXlCOzs7OztJQUt6QixzQ0FBZ0Q7Ozs7O0lBS2hELHFDQUE0Qjs7Ozs7SUFLNUIsbUNBQTBCOzs7OztJQUsxQixnQ0FBb0I7O0lBMEJwQixvQ0FBaUM7O0lBRWpDLDBDQUFrQzs7Ozs7SUExQnRCLHFDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBFbGVtZW50UmVmLFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdWthLWRhdGUtcGlja2VyLWlucHV0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItaW5wdXRcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnZGF0ZS1waWNrZXItLXNpbmdsZScgOiB0eXBlID09PSAnc2luZ2xlJyxcbiAgICAgICAgJ2RhdGUtcGlja2VyLS1yYW5nZScgOiB0eXBlID09PSAncmFuZ2UnLFxuICAgICAgICAnc2tlbGV0b24nIDogc2tlbGV0b25cbiAgICAgIH1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLXBpY2tlci1pbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBbZm9yXT1cImlkXCIgY2xhc3M9XCJsYWJlbFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZShsYWJlbClcIj57e2xhYmVsfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJpc1RlbXBsYXRlKGxhYmVsKVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtcGlja2VyLWlucHV0X193cmFwcGVyXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAqbmdJZj1cIiFza2VsZXRvblwiXG4gICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJkYXRlLXBpY2tlcl9faW5wdXRcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgICAgIFtwYXR0ZXJuXT1cInBhdHRlcm5cIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgIFtpZF09IFwiaWRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiLz5cbiAgICAgICAgICAgIDxzdWthLWljb25cbiAgICAgICAgICAgICAgaWNvbj1cImNhbGVuZGFyXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkYXRlLXBpY2tlcl9faWNvblwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiIXRpbWVQaWNrZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9zdWthLWljb24+XG4gICAgICAgICAgICA8c3VrYS1pY29uXG4gICAgICAgICAgICAgIGljb249XCJjbG9ja1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwiZGF0ZS1waWNrZXJfX2ljb25cIlxuICAgICAgICAgICAgICAqbmdJZj1cInRpbWVQaWNrZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9zdWthLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaW52YWxpZFwiIGNsYXNzPVwiZm9ybS1yZXF1aXJlbWVudFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZShpbnZhbGlkVGV4dClcIj57e2ludmFsaWRUZXh0fX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJpc1RlbXBsYXRlKGludmFsaWRUZXh0KVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImludmFsaWRUZXh0XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogRGF0ZVBpY2tlcklucHV0LFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlcklucHV0IHtcbiAgcHJpdmF0ZSBzdGF0aWMgZGF0ZVBpY2tlckNvdW50ID0gMDtcblxuICAvKipcbiAgICogU2VsZWN0IGEgY2FsZW5kYXIgdHlwZSBmb3IgdGhlIGBtb2RlbGAuXG4gICAqL1xuICBASW5wdXQoKSB0eXBlOiAnc2ltcGxlJyB8ICdzaW5nbGUnIHwgJ3JhbmdlJyA9ICdzaW1wbGUnO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBpZCBmb3IgdGhlIGBEYXRlUGlja2VySW5wdXRgLlxuICAgKi9cbiAgQElucHV0KCkgaWQgPSBgZGF0ZXBpY2tlci0ke0RhdGVQaWNrZXJJbnB1dC5kYXRlUGlja2VyQ291bnQrK31gO1xuXG4gIC8qKlxuICAgKiAgU2V0IHRvIGB0cnVlYCB0byBkaXNwbGF5IGEgY2FsZW5kYXIgaWNvblxuICAgKi9cbiAgQElucHV0KCkgaGFzSWNvbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBsYWJlbCBjb250ZW50LlxuICAgKi9cbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGlucHV0J3MgcGxhY2Vob2xkZXIuXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICdkZC9tbS95eXl5JztcblxuICAvKipcbiAgICogU2V0cyB0aGUgcGF0dGVybiB0byBmb2xsb3cuXG4gICAqL1xuICBASW5wdXQoKSBwYXR0ZXJuID0gJ15cXFxcZHsxLDJ9L1xcXFxkezEsMn0vXFxcXGR7NH0kJztcblxuICAvKipcbiAgICogRW1pdHMgZXZlbnQgbm90aWZ5aW5nIG90aGVyIGNsYXNzZXMgb2YgYSB2YWx1ZSBjaGFuZ2UuXG4gICAqL1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBTZXQgdG8gYHRydWVgIHRvIGRpc2FibGUgdGhlIGlucHV0XG4gICAqL1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTZXQgdG8gYHRydWVgIHRvIGRpc3BsYXkgaW52YWxpZCBzdGF0ZS5cbiAgICovXG4gIEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogRmVlZGJhY2sgbWVzc2FnZSB0byBkaXNwbGF5IHdoZW4gYERhdGVwaWNrZXJJbnB1dGAgaXMgaW52YWxpZC5cbiAgICovXG4gIEBJbnB1dCgpIGludmFsaWRUZXh0OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKlxuICAgKiBTZXRzIGEgdGltZSBwaWNrZXIgaWNvbiBmb3IgaW5wdXRcbiAgICovXG4gIEBJbnB1dCgpIHRpbWVQaWNrZXIgPSBmYWxzZTtcblxuICAvKipcbiAgICogU2tlbGV0b24gc3RhdGUuXG4gICAqL1xuICBASW5wdXQoKSBza2VsZXRvbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBgRGF0ZXBpY2tlcklucHV0YCB2YWx1ZS5cbiAgICovXG4gIEBJbnB1dCgpIHZhbHVlID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHsgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2YWx1ZSwgbWFya3MgdGhlIGlucHV0IGFzIHRvdWNoZWQgYW5kIGVtaXRzIGEgdmFsdWUgY2hhbmdlIGV2ZW50LlxuICAgKi9cbiAgb25DaGFuZ2UoZXZlbnQpIHtcbiAgICB0aGlzLnZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgb25Ub3VjaGVkOiAoKSA9PiBhbnkgPSAoKSA9PiB7IH07XG5cbiAgcHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xuXG4gIHB1YmxpYyBpc1RlbXBsYXRlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWY7XG4gIH1cbn1cbiJdfQ==