UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

299 lines 23.1 kB
/** * @fileoverview added by tsickle * Generated from: col.directive.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { __assign, __read } from "tslib"; /** * @license * Copyright Alibaba.com All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE */ import { Directive, ElementRef, Host, Input, Optional, Renderer2 } from '@angular/core'; import { isNotNil } from 'ng-zorro-antd/core/util'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { NzRowDirective } from './row.directive'; /** * @record */ export function EmbeddedProperty() { } if (false) { /** @type {?|undefined} */ EmbeddedProperty.prototype.span; /** @type {?|undefined} */ EmbeddedProperty.prototype.pull; /** @type {?|undefined} */ EmbeddedProperty.prototype.push; /** @type {?|undefined} */ EmbeddedProperty.prototype.offset; /** @type {?|undefined} */ EmbeddedProperty.prototype.order; } var NzColDirective = /** @class */ (function () { function NzColDirective(elementRef, nzRowDirective, renderer) { this.elementRef = elementRef; this.nzRowDirective = nzRowDirective; this.renderer = renderer; this.classMap = {}; this.destroy$ = new Subject(); this.hostFlexStyle = null; this.nzFlex = null; this.nzSpan = null; this.nzOrder = null; this.nzOffset = null; this.nzPush = null; this.nzPull = null; this.nzXs = null; this.nzSm = null; this.nzMd = null; this.nzLg = null; this.nzXl = null; this.nzXXl = null; } /** * @return {?} */ NzColDirective.prototype.setHostClassMap = /** * @return {?} */ function () { var _a; /** @type {?} */ var hostClassMap = __assign((_a = {}, _a['ant-col'] = true, _a["ant-col-" + this.nzSpan] = isNotNil(this.nzSpan), _a["ant-col-order-" + this.nzOrder] = isNotNil(this.nzOrder), _a["ant-col-offset-" + this.nzOffset] = isNotNil(this.nzOffset), _a["ant-col-pull-" + this.nzPull] = isNotNil(this.nzPull), _a["ant-col-push-" + this.nzPush] = isNotNil(this.nzPush), _a), this.generateClass()); for (var i in this.classMap) { if (this.classMap.hasOwnProperty(i)) { this.renderer.removeClass(this.elementRef.nativeElement, i); } } this.classMap = __assign({}, hostClassMap); for (var i in this.classMap) { if (this.classMap.hasOwnProperty(i) && this.classMap[i]) { this.renderer.addClass(this.elementRef.nativeElement, i); } } }; /** * @return {?} */ NzColDirective.prototype.setHostFlexStyle = /** * @return {?} */ function () { this.hostFlexStyle = this.parseFlex(this.nzFlex); }; /** * @param {?} flex * @return {?} */ NzColDirective.prototype.parseFlex = /** * @param {?} flex * @return {?} */ function (flex) { if (typeof flex === 'number') { return flex + " " + flex + " auto"; } else if (typeof flex === 'string') { if (/^\d+(\.\d+)?(px|em|rem|%)$/.test(flex)) { return "0 0 " + flex; } } return flex; }; /** * @return {?} */ NzColDirective.prototype.generateClass = /** * @return {?} */ function () { var _this = this; /** @type {?} */ var listOfSizeInputName = ['nzXs', 'nzSm', 'nzMd', 'nzLg', 'nzXl', 'nzXXl']; /** @type {?} */ var listClassMap = {}; listOfSizeInputName.forEach((/** * @param {?} name * @return {?} */ function (name) { /** @type {?} */ var sizeName = name.replace('nz', '').toLowerCase(); if (isNotNil(_this[name])) { if (typeof _this[name] === 'number' || typeof _this[name] === 'string') { listClassMap["ant-col-" + sizeName + "-" + _this[name]] = true; } else { /** @type {?} */ var embedded_1 = (/** @type {?} */ (_this[name])); /** @type {?} */ var prefixArray = ['span', 'pull', 'push', 'offset', 'order']; prefixArray.forEach((/** * @param {?} prefix * @return {?} */ function (prefix) { /** @type {?} */ var prefixClass = prefix === 'span' ? '-' : "-" + prefix + "-"; listClassMap["ant-col-" + sizeName + prefixClass + embedded_1[prefix]] = embedded_1 && isNotNil(embedded_1[prefix]); })); } } })); return listClassMap; }; /** * @return {?} */ NzColDirective.prototype.ngOnInit = /** * @return {?} */ function () { this.setHostClassMap(); this.setHostFlexStyle(); }; /** * @param {?} changes * @return {?} */ NzColDirective.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { this.setHostClassMap(); var nzFlex = changes.nzFlex; if (nzFlex) { this.setHostFlexStyle(); } }; /** * @return {?} */ NzColDirective.prototype.ngAfterViewInit = /** * @return {?} */ function () { var _this = this; if (this.nzRowDirective) { this.nzRowDirective.actualGutter$.pipe(takeUntil(this.destroy$)).subscribe((/** * @param {?} __0 * @return {?} */ function (_a) { var _b = __read(_a, 2), horizontalGutter = _b[0], verticalGutter = _b[1]; /** @type {?} */ var renderGutter = (/** * @param {?} name * @param {?} gutter * @return {?} */ function (name, gutter) { /** @type {?} */ var nativeElement = _this.elementRef.nativeElement; _this.renderer.setStyle(nativeElement, name, gutter / 2 + "px"); }); if (horizontalGutter > 0) { renderGutter('padding-left', horizontalGutter); renderGutter('padding-right', horizontalGutter); } if (verticalGutter > 0) { renderGutter('padding-top', verticalGutter); renderGutter('padding-bottom', verticalGutter); } })); } }; /** * @return {?} */ NzColDirective.prototype.ngOnDestroy = /** * @return {?} */ function () { this.destroy$.next(); this.destroy$.complete(); }; NzColDirective.decorators = [ { type: Directive, args: [{ selector: '[nz-col],nz-col,nz-form-control,nz-form-label', exportAs: 'nzCol', host: { '[style.flex]': 'hostFlexStyle' } },] } ]; /** @nocollapse */ NzColDirective.ctorParameters = function () { return [ { type: ElementRef }, { type: NzRowDirective, decorators: [{ type: Optional }, { type: Host }] }, { type: Renderer2 } ]; }; NzColDirective.propDecorators = { nzFlex: [{ type: Input }], nzSpan: [{ type: Input }], nzOrder: [{ type: Input }], nzOffset: [{ type: Input }], nzPush: [{ type: Input }], nzPull: [{ type: Input }], nzXs: [{ type: Input }], nzSm: [{ type: Input }], nzMd: [{ type: Input }], nzLg: [{ type: Input }], nzXl: [{ type: Input }], nzXXl: [{ type: Input }] }; return NzColDirective; }()); export { NzColDirective }; if (false) { /** * @type {?} * @private */ NzColDirective.prototype.classMap; /** * @type {?} * @private */ NzColDirective.prototype.destroy$; /** @type {?} */ NzColDirective.prototype.hostFlexStyle; /** @type {?} */ NzColDirective.prototype.nzFlex; /** @type {?} */ NzColDirective.prototype.nzSpan; /** @type {?} */ NzColDirective.prototype.nzOrder; /** @type {?} */ NzColDirective.prototype.nzOffset; /** @type {?} */ NzColDirective.prototype.nzPush; /** @type {?} */ NzColDirective.prototype.nzPull; /** @type {?} */ NzColDirective.prototype.nzXs; /** @type {?} */ NzColDirective.prototype.nzSm; /** @type {?} */ NzColDirective.prototype.nzMd; /** @type {?} */ NzColDirective.prototype.nzLg; /** @type {?} */ NzColDirective.prototype.nzXl; /** @type {?} */ NzColDirective.prototype.nzXXl; /** * @type {?} * @private */ NzColDirective.prototype.elementRef; /** @type {?} */ NzColDirective.prototype.nzRowDirective; /** @type {?} */ NzColDirective.prototype.renderer; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXpvcnJvLWFudGQvZ3JpZC8iLCJzb3VyY2VzIjpbImNvbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQVFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLElBQUksRUFDSixLQUFLLEVBSUwsUUFBUSxFQUNSLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBRWpELHNDQU1DOzs7SUFMQyxnQ0FBYzs7SUFDZCxnQ0FBYzs7SUFDZCxnQ0FBYzs7SUFDZCxrQ0FBZ0I7O0lBQ2hCLGlDQUFlOztBQUdqQjtJQW1GRSx3QkFBb0IsVUFBc0IsRUFBNkIsY0FBOEIsRUFBUyxRQUFtQjtRQUE3RyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQTZCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFTLGFBQVEsR0FBUixRQUFRLENBQVc7UUEzRXpILGFBQVEsR0FBK0IsRUFBRSxDQUFDO1FBQzFDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLGtCQUFhLEdBQWtCLElBQUksQ0FBQztRQUMzQixXQUFNLEdBQTJCLElBQUksQ0FBQztRQUN0QyxXQUFNLEdBQWtCLElBQUksQ0FBQztRQUM3QixZQUFPLEdBQWtCLElBQUksQ0FBQztRQUM5QixhQUFRLEdBQWtCLElBQUksQ0FBQztRQUMvQixXQUFNLEdBQWtCLElBQUksQ0FBQztRQUM3QixXQUFNLEdBQWtCLElBQUksQ0FBQztRQUM3QixTQUFJLEdBQXFDLElBQUksQ0FBQztRQUM5QyxT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QkFDTCxLQUFLO3VCQUNMLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxLQUFLO3VCQUNMLEtBQUs7dUJBQ0wsS0FBSzt3QkFDTCxLQUFLOztJQW1HUixxQkFBQztDQUFBLEFBekhELElBeUhDO1NBbEhZLGNBQWM7Ozs7OztJQUN6QixrQ0FBa0Q7Ozs7O0lBQ2xELGtDQUFpQzs7SUFDakMsdUNBQW9DOztJQUNwQyxnQ0FBK0M7O0lBQy9DLGdDQUFzQzs7SUFDdEMsaUNBQXVDOztJQUN2QyxrQ0FBd0M7O0lBQ3hDLGdDQUFzQzs7SUFDdEMsZ0NBQXNDOztJQUN0Qyw4QkFBdUQ7O0lBQ3ZELDhCQUF1RDs7SUFDdkQsOEJBQXVEOztJQUN2RCw4QkFBdUQ7O0lBQ3ZELDhCQUF1RDs7SUFDdkQsK0JBQXdEOzs7OztJQTZENUMsb0NBQThCOztJQUFFLHdDQUF5RDs7SUFBRSxrQ0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ2xhc3NJbnRlcmZhY2UgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHsgaXNOb3ROaWwgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdXRpbCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBOelJvd0RpcmVjdGl2ZSB9IGZyb20gJy4vcm93LmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW1iZWRkZWRQcm9wZXJ0eSB7XG4gIHNwYW4/OiBudW1iZXI7XG4gIHB1bGw/OiBudW1iZXI7XG4gIHB1c2g/OiBudW1iZXI7XG4gIG9mZnNldD86IG51bWJlcjtcbiAgb3JkZXI/OiBudW1iZXI7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuei1jb2xdLG56LWNvbCxuei1mb3JtLWNvbnRyb2wsbnotZm9ybS1sYWJlbCcsXG4gIGV4cG9ydEFzOiAnbnpDb2wnLFxuICBob3N0OiB7XG4gICAgJ1tzdHlsZS5mbGV4XSc6ICdob3N0RmxleFN0eWxlJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE56Q29sRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgY2xhc3NNYXA6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuICBob3N0RmxleFN0eWxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgbnpGbGV4OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgbnpTcGFuOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgbnpPcmRlcjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIG56T2Zmc2V0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgbnpQdXNoOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgbnpQdWxsOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgbnpYczogbnVtYmVyIHwgRW1iZWRkZWRQcm9wZXJ0eSB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBuelNtOiBudW1iZXIgfCBFbWJlZGRlZFByb3BlcnR5IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIG56TWQ6IG51bWJlciB8IEVtYmVkZGVkUHJvcGVydHkgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgbnpMZzogbnVtYmVyIHwgRW1iZWRkZWRQcm9wZXJ0eSB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBuelhsOiBudW1iZXIgfCBFbWJlZGRlZFByb3BlcnR5IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIG56WFhsOiBudW1iZXIgfCBFbWJlZGRlZFByb3BlcnR5IHwgbnVsbCA9IG51bGw7XG5cbiAgc2V0SG9zdENsYXNzTWFwKCk6IHZvaWQge1xuICAgIGNvbnN0IGhvc3RDbGFzc01hcCA9IHtcbiAgICAgIFsnYW50LWNvbCddOiB0cnVlLFxuICAgICAgW2BhbnQtY29sLSR7dGhpcy5uelNwYW59YF06IGlzTm90TmlsKHRoaXMubnpTcGFuKSxcbiAgICAgIFtgYW50LWNvbC1vcmRlci0ke3RoaXMubnpPcmRlcn1gXTogaXNOb3ROaWwodGhpcy5uek9yZGVyKSxcbiAgICAgIFtgYW50LWNvbC1vZmZzZXQtJHt0aGlzLm56T2Zmc2V0fWBdOiBpc05vdE5pbCh0aGlzLm56T2Zmc2V0KSxcbiAgICAgIFtgYW50LWNvbC1wdWxsLSR7dGhpcy5uelB1bGx9YF06IGlzTm90TmlsKHRoaXMubnpQdWxsKSxcbiAgICAgIFtgYW50LWNvbC1wdXNoLSR7dGhpcy5uelB1c2h9YF06IGlzTm90TmlsKHRoaXMubnpQdXNoKSxcbiAgICAgIC4uLnRoaXMuZ2VuZXJhdGVDbGFzcygpXG4gICAgfTtcbiAgICBmb3IgKGNvbnN0IGkgaW4gdGhpcy5jbGFzc01hcCkge1xuICAgICAgaWYgKHRoaXMuY2xhc3NNYXAuaGFzT3duUHJvcGVydHkoaSkpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgaSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2xhc3NNYXAgPSB7IC4uLmhvc3RDbGFzc01hcCB9O1xuICAgIGZvciAoY29uc3QgaSBpbiB0aGlzLmNsYXNzTWFwKSB7XG4gICAgICBpZiAodGhpcy5jbGFzc01hcC5oYXNPd25Qcm9wZXJ0eShpKSAmJiB0aGlzLmNsYXNzTWFwW2ldKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNldEhvc3RGbGV4U3R5bGUoKTogdm9pZCB7XG4gICAgdGhpcy5ob3N0RmxleFN0eWxlID0gdGhpcy5wYXJzZUZsZXgodGhpcy5uekZsZXgpO1xuICB9XG5cbiAgcGFyc2VGbGV4KGZsZXg6IG51bWJlciB8IHN0cmluZyB8IG51bGwpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIGZsZXggPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gYCR7ZmxleH0gJHtmbGV4fSBhdXRvYDtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBmbGV4ID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKC9eXFxkKyhcXC5cXGQrKT8ocHh8ZW18cmVtfCUpJC8udGVzdChmbGV4KSkge1xuICAgICAgICByZXR1cm4gYDAgMCAke2ZsZXh9YDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZsZXg7XG4gIH1cblxuICBnZW5lcmF0ZUNsYXNzKCk6IG9iamVjdCB7XG4gICAgY29uc3QgbGlzdE9mU2l6ZUlucHV0TmFtZTogQXJyYXk8a2V5b2YgTnpDb2xEaXJlY3RpdmU+ID0gWyduelhzJywgJ256U20nLCAnbnpNZCcsICduekxnJywgJ256WGwnLCAnbnpYWGwnXTtcbiAgICBjb25zdCBsaXN0Q2xhc3NNYXA6IE5nQ2xhc3NJbnRlcmZhY2UgPSB7fTtcbiAgICBsaXN0T2ZTaXplSW5wdXROYW1lLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICBjb25zdCBzaXplTmFtZSA9IG5hbWUucmVwbGFjZSgnbnonLCAnJykudG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmIChpc05vdE5pbCh0aGlzW25hbWVdKSkge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXNbbmFtZV0gPT09ICdudW1iZXInIHx8IHR5cGVvZiB0aGlzW25hbWVdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGxpc3RDbGFzc01hcFtgYW50LWNvbC0ke3NpemVOYW1lfS0ke3RoaXNbbmFtZV19YF0gPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGVtYmVkZGVkID0gdGhpc1tuYW1lXSBhcyBFbWJlZGRlZFByb3BlcnR5O1xuICAgICAgICAgIGNvbnN0IHByZWZpeEFycmF5OiBBcnJheTxrZXlvZiBFbWJlZGRlZFByb3BlcnR5PiA9IFsnc3BhbicsICdwdWxsJywgJ3B1c2gnLCAnb2Zmc2V0JywgJ29yZGVyJ107XG4gICAgICAgICAgcHJlZml4QXJyYXkuZm9yRWFjaChwcmVmaXggPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJlZml4Q2xhc3MgPSBwcmVmaXggPT09ICdzcGFuJyA/ICctJyA6IGAtJHtwcmVmaXh9LWA7XG4gICAgICAgICAgICBsaXN0Q2xhc3NNYXBbYGFudC1jb2wtJHtzaXplTmFtZX0ke3ByZWZpeENsYXNzfSR7ZW1iZWRkZWRbcHJlZml4XX1gXSA9IGVtYmVkZGVkICYmIGlzTm90TmlsKGVtYmVkZGVkW3ByZWZpeF0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGxpc3RDbGFzc01hcDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgQE9wdGlvbmFsKCkgQEhvc3QoKSBwdWJsaWMgbnpSb3dEaXJlY3RpdmU6IE56Um93RGlyZWN0aXZlLCBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEhvc3RDbGFzc01hcCgpO1xuICAgIHRoaXMuc2V0SG9zdEZsZXhTdHlsZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuc2V0SG9zdENsYXNzTWFwKCk7XG4gICAgY29uc3QgeyBuekZsZXggfSA9IGNoYW5nZXM7XG4gICAgaWYgKG56RmxleCkge1xuICAgICAgdGhpcy5zZXRIb3N0RmxleFN0eWxlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm56Um93RGlyZWN0aXZlKSB7XG4gICAgICB0aGlzLm56Um93RGlyZWN0aXZlLmFjdHVhbEd1dHRlciQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoW2hvcml6b250YWxHdXR0ZXIsIHZlcnRpY2FsR3V0dGVyXSkgPT4ge1xuICAgICAgICBjb25zdCByZW5kZXJHdXR0ZXIgPSAobmFtZTogc3RyaW5nLCBndXR0ZXI6IG51bWJlcikgPT4ge1xuICAgICAgICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKG5hdGl2ZUVsZW1lbnQsIG5hbWUsIGAke2d1dHRlciAvIDJ9cHhgKTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGhvcml6b250YWxHdXR0ZXIgPiAwKSB7XG4gICAgICAgICAgcmVuZGVyR3V0dGVyKCdwYWRkaW5nLWxlZnQnLCBob3Jpem9udGFsR3V0dGVyKTtcbiAgICAgICAgICByZW5kZXJHdXR0ZXIoJ3BhZGRpbmctcmlnaHQnLCBob3Jpem9udGFsR3V0dGVyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmVydGljYWxHdXR0ZXIgPiAwKSB7XG4gICAgICAgICAgcmVuZGVyR3V0dGVyKCdwYWRkaW5nLXRvcCcsIHZlcnRpY2FsR3V0dGVyKTtcbiAgICAgICAgICByZW5kZXJHdXR0ZXIoJ3BhZGRpbmctYm90dG9tJywgdmVydGljYWxHdXR0ZXIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==