UNPKG

ng-zorro-antd

Version:

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

279 lines 25 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 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 { DOCUMENT } from '@angular/common'; import { HttpBackend } from '@angular/common/http'; import { Inject, Injectable, InjectionToken, Optional, RendererFactory2 } from '@angular/core'; import { DomSanitizer } from '@angular/platform-browser'; import { IconService } from '@ant-design/icons-angular'; import { BarsOutline, CalendarOutline, CaretDownFill, CaretDownOutline, CaretUpFill, CaretUpOutline, CheckCircleFill, CheckCircleOutline, CheckOutline, ClockCircleOutline, CloseCircleFill, CloseCircleOutline, CloseOutline, CopyOutline, DoubleLeftOutline, DoubleRightOutline, DownOutline, EditOutline, EllipsisOutline, ExclamationCircleFill, ExclamationCircleOutline, EyeOutline, FileFill, FileOutline, FilterFill, InfoCircleFill, InfoCircleOutline, LeftOutline, LoadingOutline, PaperClipOutline, QuestionCircleOutline, RightOutline, SearchOutline, StarFill, UploadOutline, UpOutline } from '@ant-design/icons-angular/icons'; import { trimComponentName, warn, warnDeprecation, NzConfigService } from 'ng-zorro-antd/core'; import { Subject } from 'rxjs'; import * as i0 from "@angular/core"; import * as i1 from "@angular/platform-browser"; import * as i2 from "ng-zorro-antd/core"; import * as i3 from "@angular/common/http"; import * as i4 from "@angular/common"; /** * @record */ export function NzIconfontOption() { } if (false) { /** @type {?} */ NzIconfontOption.prototype.scriptUrl; } /** @type {?} */ export var NZ_ICONS = new InjectionToken('nz_icons'); /** @type {?} */ export var NZ_ICON_DEFAULT_TWOTONE_COLOR = new InjectionToken('nz_icon_default_twotone_color'); /** @type {?} */ export var DEFAULT_TWOTONE_COLOR = '#1890ff'; /** @type {?} */ export var NZ_ICONS_USED_BY_ZORRO = [ BarsOutline, CalendarOutline, CaretUpFill, CaretUpOutline, CaretDownFill, CaretDownOutline, CheckCircleFill, CheckCircleOutline, CheckOutline, ClockCircleOutline, CloseCircleOutline, CloseCircleFill, CloseOutline, CopyOutline, DoubleLeftOutline, DoubleRightOutline, DownOutline, EditOutline, EllipsisOutline, ExclamationCircleFill, ExclamationCircleOutline, EyeOutline, FileFill, FileOutline, FilterFill, InfoCircleFill, InfoCircleOutline, LeftOutline, LoadingOutline, PaperClipOutline, QuestionCircleOutline, RightOutline, StarFill, SearchOutline, StarFill, UploadOutline, UpOutline ]; /** * It should be a global singleton, otherwise registered icons could not be found. */ var NzIconService = /** @class */ (function (_super) { tslib_1.__extends(NzIconService, _super); function NzIconService(rendererFactory, sanitizer, nzConfigService, handler, // tslint:disable-next-line:no-any _document, icons, legacyDefaultTwotoneColor) { var _this = _super.call(this, rendererFactory, handler, _document, sanitizer) || this; _this.nzConfigService = nzConfigService; _this.legacyDefaultTwotoneColor = legacyDefaultTwotoneColor; _this.configUpdated$ = new Subject(); _this.iconfontCache = new Set(); _this.onConfigChange(); _this.addIcon.apply(_this, tslib_1.__spread(NZ_ICONS_USED_BY_ZORRO, (icons || []))); if (legacyDefaultTwotoneColor) { warnDeprecation("'NZ_ICON_DEFAULT_TWOTONE_COLOR' is deprecated and will be removed in 9.0.0. Please use 'NZ_CONFIG' instead!"); } _this.configDefaultTwotoneColor(); _this.configDefaultTheme(); return _this; } /** * @param {?} type * @return {?} */ NzIconService.prototype.warnAPI = /** * @param {?} type * @return {?} */ function (type) { if (type === 'old') { warnDeprecation("'<i class=\"anticon\"></i>' would be deprecated in 9.0.0. Please use '<i nz-icon nzType=\"\"></i>' API. Please refer https://ng.ant.design/components/icon/en."); } if (type === 'cross') { warnDeprecation("'cross' icon is replaced by 'close' icon. This auto correction would be removed in 9.0.0."); } if (type === 'vertical') { warnDeprecation("'verticle' is misspelled. Please use 'vertical'. This misspell would be fixed in 9.0.0."); } }; /** * @param {?} svg * @return {?} */ NzIconService.prototype.normalizeSvgElement = /** * @param {?} svg * @return {?} */ function (svg) { if (!svg.getAttribute('viewBox')) { this._renderer.setAttribute(svg, 'viewBox', '0 0 1024 1024'); } if (!svg.getAttribute('width') || !svg.getAttribute('height')) { this._renderer.setAttribute(svg, 'width', '1em'); this._renderer.setAttribute(svg, 'height', '1em'); } if (!svg.getAttribute('fill')) { this._renderer.setAttribute(svg, 'fill', 'currentColor'); } }; /** * @param {?} opt * @return {?} */ NzIconService.prototype.fetchFromIconfont = /** * @param {?} opt * @return {?} */ function (opt) { var scriptUrl = opt.scriptUrl; if (this._document && !this.iconfontCache.has(scriptUrl)) { /** @type {?} */ var script = this._renderer.createElement('script'); this._renderer.setAttribute(script, 'src', scriptUrl); this._renderer.setAttribute(script, 'data-namespace', scriptUrl.replace(/^(https?|http):/g, '')); this._renderer.appendChild(this._document.body, script); this.iconfontCache.add(scriptUrl); } }; /** * @param {?} type * @return {?} */ NzIconService.prototype.createIconfontIcon = /** * @param {?} type * @return {?} */ function (type) { return this._createSVGElementFromString("<svg><use xlink:href=\"" + type + "\"></svg>"); }; /** * @private * @return {?} */ NzIconService.prototype.onConfigChange = /** * @private * @return {?} */ function () { var _this = this; this.nzConfigService.getConfigChangeEventForComponent(trimComponentName(this.constructor.name)).subscribe((/** * @return {?} */ function () { _this.configDefaultTwotoneColor(); _this.configDefaultTheme(); _this.configUpdated$.next(); })); }; /** * @private * @return {?} */ NzIconService.prototype.configDefaultTheme = /** * @private * @return {?} */ function () { /** @type {?} */ var iconConfig = this.getConfig(); this.defaultTheme = iconConfig.nzTheme || 'outline'; }; /** * @private * @return {?} */ NzIconService.prototype.configDefaultTwotoneColor = /** * @private * @return {?} */ function () { /** @type {?} */ var iconConfig = this.getConfig(); /** @type {?} */ var defaultTwotoneColor = iconConfig.nzTwotoneColor || this.legacyDefaultTwotoneColor; /** @type {?} */ var primaryColor = DEFAULT_TWOTONE_COLOR; if (defaultTwotoneColor) { if (defaultTwotoneColor.startsWith('#')) { primaryColor = defaultTwotoneColor; } else { warn('Twotone color must be a hex color!'); } } this.twoToneColor = { primaryColor: primaryColor }; }; /** * @private * @return {?} */ NzIconService.prototype.getConfig = /** * @private * @return {?} */ function () { return ((/** @type {?} */ (this.nzConfigService.getConfigForComponent(trimComponentName(this.constructor.name))))) || {}; }; NzIconService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ NzIconService.ctorParameters = function () { return [ { type: RendererFactory2 }, { type: DomSanitizer }, { type: NzConfigService }, { type: HttpBackend, decorators: [{ type: Optional }] }, { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] }] }, { type: Array, decorators: [{ type: Optional }, { type: Inject, args: [NZ_ICONS,] }] }, { type: String, decorators: [{ type: Optional }, { type: Inject, args: [NZ_ICON_DEFAULT_TWOTONE_COLOR,] }] } ]; }; /** @nocollapse */ NzIconService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function NzIconService_Factory() { return new NzIconService(i0.ɵɵinject(i0.RendererFactory2), i0.ɵɵinject(i1.DomSanitizer), i0.ɵɵinject(i2.NzConfigService), i0.ɵɵinject(i3.HttpBackend, 8), i0.ɵɵinject(i4.DOCUMENT, 8), i0.ɵɵinject(NZ_ICONS, 8), i0.ɵɵinject(NZ_ICON_DEFAULT_TWOTONE_COLOR, 8)); }, token: NzIconService, providedIn: "root" }); return NzIconService; }(IconService)); export { NzIconService }; if (false) { /** @type {?} */ NzIconService.prototype.configUpdated$; /** * @type {?} * @private */ NzIconService.prototype.iconfontCache; /** * @type {?} * @protected */ NzIconService.prototype.nzConfigService; /** * @deprecated * \@inner * @type {?} * @private */ NzIconService.prototype.legacyDefaultTwotoneColor; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnotaWNvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctem9ycm8tYW50ZC9pY29uLyIsInNvdXJjZXMiOlsibnotaWNvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQVFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGVBQWUsRUFDZixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxjQUFjLEVBQ2QsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxXQUFXLEVBQ1gsZUFBZSxFQUNmLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsVUFBVSxFQUNWLFFBQVEsRUFDUixXQUFXLEVBQ1gsVUFBVSxFQUNWLGNBQWMsRUFDZCxpQkFBaUIsRUFDakIsV0FBVyxFQUNYLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLFlBQVksRUFDWixhQUFhLEVBQ2IsUUFBUSxFQUNSLGFBQWEsRUFDYixTQUFTLEVBQ1YsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBYyxlQUFlLEVBQUUsTUFBTSxvQkFBb0Is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RUFBRSxNQUFNO2lCQUNuQjs7OztnQkFuR3NELGdCQUFnQjtnQkFDOUQsWUFBWTtnQkF3QzBDLGVBQWU7Z0JBMUNyRSxXQUFXLHVCQXdKZixRQUFRO2dEQUVSLFFBQVEsWUFBSSxNQUFNLFNBQUMsUUFBUTs0Q0FDM0IsUUFBUSxZQUFJLE1BQU0sU0FBQyxRQUFROzZDQUszQixRQUFRLFlBQUksTUFBTSxTQUFDLDZCQUE2Qjs7O3dCQXpLckQ7Q0E0TkMsQUFqSEQsQ0FHbUMsV0FBVyxHQThHN0M7U0E5R1ksYUFBYTs7O0lBQ3hCLHVDQUFxQzs7Ozs7SUFFckMsc0NBQTBDOzs7OztJQStDeEMsd0NBQTBDOzs7Ozs7O0lBUzFDLGtEQUE2RiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwQmFja2VuZCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEljb25EZWZpbml0aW9uLCBJY29uU2VydmljZSB9IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQmFyc091dGxpbmUsXG4gIENhbGVuZGFyT3V0bGluZSxcbiAgQ2FyZXREb3duRmlsbCxcbiAgQ2FyZXREb3duT3V0bGluZSxcbiAgQ2FyZXRVcEZpbGwsXG4gIENhcmV0VXBPdXRsaW5lLFxuICBDaGVja0NpcmNsZUZpbGwsXG4gIENoZWNrQ2lyY2xlT3V0bGluZSxcbiAgQ2hlY2tPdXRsaW5lLFxuICBDbG9ja0NpcmNsZU91dGxpbmUsXG4gIENsb3NlQ2lyY2xlRmlsbCxcbiAgQ2xvc2VDaXJjbGVPdXRsaW5lLFxuICBDbG9zZU91dGxpbmUsXG4gIENvcHlPdXRsaW5lLFxuICBEb3VibGVMZWZ0T3V0bGluZSxcbiAgRG91YmxlUmlnaHRPdXRsaW5lLFxuICBEb3duT3V0bGluZSxcbiAgRWRpdE91dGxpbmUsXG4gIEVsbGlwc2lzT3V0bGluZSxcbiAgRXhjbGFtYXRpb25DaXJjbGVGaWxsLFxuICBFeGNsYW1hdGlvbkNpcmNsZU91dGxpbmUsXG4gIEV5ZU91dGxpbmUsXG4gIEZpbGVGaWxsLFxuICBGaWxlT3V0bGluZSxcbiAgRmlsdGVyRmlsbCxcbiAgSW5mb0NpcmNsZUZpbGwsXG4gIEluZm9DaXJjbGVPdXRsaW5lLFxuICBMZWZ0T3V0bGluZSxcbiAgTG9hZGluZ091dGxpbmUsXG4gIFBhcGVyQ2xpcE91dGxpbmUsXG4gIFF1ZXN0aW9uQ2lyY2xlT3V0bGluZSxcbiAgUmlnaHRPdXRsaW5lLFxuICBTZWFyY2hPdXRsaW5lLFxuICBTdGFyRmlsbCxcbiAgVXBsb2FkT3V0bGluZSxcbiAgVXBPdXRsaW5lXG59IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zLWFuZ3VsYXIvaWNvbnMnO1xuaW1wb3J0IHsgdHJpbUNvbXBvbmVudE5hbWUsIHdhcm4sIHdhcm5EZXByZWNhdGlvbiwgSWNvbkNvbmZpZywgTnpDb25maWdTZXJ2aWNlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBOekljb25mb250T3B0aW9uIHtcbiAgc2NyaXB0VXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBOWl9JQ09OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbignbnpfaWNvbnMnKTtcblxuZXhwb3J0IGNvbnN0IE5aX0lDT05fREVGQVVMVF9UV09UT05FX0NPTE9SID0gbmV3IEluamVjdGlvblRva2VuKCduel9pY29uX2RlZmF1bHRfdHdvdG9uZV9jb2xvcicpO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9UV09UT05FX0NPTE9SID0gJyMxODkwZmYnO1xuXG5leHBvcnQgY29uc3QgTlpfSUNPTlNfVVNFRF9CWV9aT1JSTzogSWNvbkRlZmluaXRpb25bXSA9IFtcbiAgQmFyc091dGxpbmUsXG4gIENhbGVuZGFyT3V0bGluZSxcbiAgQ2FyZXRVcEZpbGwsXG4gIENhcmV0VXBPdXRsaW5lLFxuICBDYXJldERvd25GaWxsLFxuICBDYXJldERvd25PdXRsaW5lLFxuICBDaGVja0NpcmNsZUZpbGwsXG4gIENoZWNrQ2lyY2xlT3V0bGluZSxcbiAgQ2hlY2tPdXRsaW5lLFxuICBDbG9ja0NpcmNsZU91dGxpbmUsXG4gIENsb3NlQ2lyY2xlT3V0bGluZSxcbiAgQ2xvc2VDaXJjbGVGaWxsLFxuICBDbG9zZU91dGxpbmUsXG4gIENvcHlPdXRsaW5lLFxuICBEb3VibGVMZWZ0T3V0bGluZSxcbiAgRG91YmxlUmlnaHRPdXRsaW5lLFxuICBEb3duT3V0bGluZSxcbiAgRWRpdE91dGxpbmUsXG4gIEVsbGlwc2lzT3V0bGluZSxcbiAgRXhjbGFtYXRpb25DaXJjbGVGaWxsLFxuICBFeGNsYW1hdGlvbkNpcmNsZU91dGxpbmUsXG4gIEV5ZU91dGxpbmUsXG4gIEZpbGVGaWxsLFxuICBGaWxlT3V0bGluZSxcbiAgRmlsdGVyRmlsbCxcbiAgSW5mb0NpcmNsZUZpbGwsXG4gIEluZm9DaXJjbGVPdXRsaW5lLFxuICBMZWZ0T3V0bGluZSxcbiAgTG9hZGluZ091dGxpbmUsXG4gIFBhcGVyQ2xpcE91dGxpbmUsXG4gIFF1ZXN0aW9uQ2lyY2xlT3V0bGluZSxcbiAgUmlnaHRPdXRsaW5lLFxuICBTdGFyRmlsbCxcbiAgU2VhcmNoT3V0bGluZSxcbiAgU3RhckZpbGwsXG4gIFVwbG9hZE91dGxpbmUsXG4gIFVwT3V0bGluZVxuXTtcblxuLyoqXG4gKiBJdCBzaG91bGQgYmUgYSBnbG9iYWwgc2luZ2xldG9uLCBvdGhlcndpc2UgcmVnaXN0ZXJlZCBpY29ucyBjb3VsZCBub3QgYmUgZm91bmQuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE56SWNvblNlcnZpY2UgZXh0ZW5kcyBJY29uU2VydmljZSB7XG4gIGNvbmZpZ1VwZGF0ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIGljb25mb250Q2FjaGUgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICB3YXJuQVBJKHR5cGU6ICdvbGQnIHwgJ2Nyb3NzJyB8ICd2ZXJ0aWNhbCcpOiB2b2lkIHtcbiAgICBpZiAodHlwZSA9PT0gJ29sZCcpIHtcbiAgICAgIHdhcm5EZXByZWNhdGlvbihcbiAgICAgICAgYCc8aSBjbGFzcz1cImFudGljb25cIj48L2k+JyB3b3VsZCBiZSBkZXByZWNhdGVkIGluIDkuMC4wLiBQbGVhc2UgdXNlICc8aSBuei1pY29uIG56VHlwZT1cIlwiPjwvaT4nIEFQSS4gUGxlYXNlIHJlZmVyIGh0dHBzOi8vbmcuYW50LmRlc2lnbi9jb21wb25lbnRzL2ljb24vZW4uYFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09ICdjcm9zcycpIHtcbiAgICAgIHdhcm5EZXByZWNhdGlvbihgJ2Nyb3NzJyBpY29uIGlzIHJlcGxhY2VkIGJ5ICdjbG9zZScgaWNvbi4gVGhpcyBhdXRvIGNvcnJlY3Rpb24gd291bGQgYmUgcmVtb3ZlZCBpbiA5LjAuMC5gKTtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgIHdhcm5EZXByZWNhdGlvbihgJ3ZlcnRpY2xlJyBpcyBtaXNzcGVsbGVkLiBQbGVhc2UgdXNlICd2ZXJ0aWNhbCcuIFRoaXMgbWlzc3BlbGwgd291bGQgYmUgZml4ZWQgaW4gOS4wLjAuYCk7XG4gICAgfVxuICB9XG5cbiAgbm9ybWFsaXplU3ZnRWxlbWVudChzdmc6IFNWR0VsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAoIXN2Zy5nZXRBdHRyaWJ1dGUoJ3ZpZXdCb3gnKSkge1xuICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0QXR0cmlidXRlKHN2ZywgJ3ZpZXdCb3gnLCAnMCAwIDEwMjQgMTAyNCcpO1xuICAgIH1cbiAgICBpZiAoIXN2Zy5nZXRBdHRyaWJ1dGUoJ3dpZHRoJykgfHwgIXN2Zy5nZXRBdHRyaWJ1dGUoJ2hlaWdodCcpKSB7XG4gICAgICB0aGlzLl9yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc3ZnLCAnd2lkdGgnLCAnMWVtJyk7XG4gICAgICB0aGlzLl9yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc3ZnLCAnaGVpZ2h0JywgJzFlbScpO1xuICAgIH1cbiAgICBpZiAoIXN2Zy5nZXRBdHRyaWJ1dGUoJ2ZpbGwnKSkge1xuICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0QXR0cmlidXRlKHN2ZywgJ2ZpbGwnLCAnY3VycmVudENvbG9yJyk7XG4gICAgfVxuICB9XG5cbiAgZmV0Y2hGcm9tSWNvbmZvbnQob3B0OiBOekljb25mb250T3B0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgeyBzY3JpcHRVcmwgfSA9IG9wdDtcbiAgICBpZiAodGhpcy5fZG9jdW1lbnQgJiYgIXRoaXMuaWNvbmZvbnRDYWNoZS5oYXMoc2NyaXB0VXJsKSkge1xuICAgICAgY29uc3Qgc2NyaXB0ID0gdGhpcy5fcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICB0aGlzLl9yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc2NyaXB0LCAnc3JjJywgc2NyaXB0VXJsKTtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZShzY3JpcHQsICdkYXRhLW5hbWVzcGFjZScsIHNjcmlwdFVybC5yZXBsYWNlKC9eKGh0dHBzP3xodHRwKTovZywgJycpKTtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuX2RvY3VtZW50LmJvZHksIHNjcmlwdCk7XG4gICAgICB0aGlzLmljb25mb250Q2FjaGUuYWRkKHNjcmlwdFVybCk7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlSWNvbmZvbnRJY29uKHR5cGU6IHN0cmluZyk6IFNWR0VsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLl9jcmVhdGVTVkdFbGVtZW50RnJvbVN0cmluZyhgPHN2Zz48dXNlIHhsaW5rOmhyZWY9XCIke3R5cGV9XCI+PC9zdmc+YCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIsXG4gICAgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgcHJvdGVjdGVkIG56Q29uZmlnU2VydmljZTogTnpDb25maWdTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIGhhbmRsZXI6IEh0dHBCYWNrZW5kLFxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERPQ1VNRU5UKSBfZG9jdW1lbnQ6IGFueSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5aX0lDT05TKSBpY29ucz86IEljb25EZWZpbml0aW9uW10sXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBAaW5uZXJcbiAgICAgKi9cbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5aX0lDT05fREVGQVVMVF9UV09UT05FX0NPTE9SKSBwcml2YXRlIGxlZ2FjeURlZmF1bHRUd290b25lQ29sb3I/OiBzdHJpbmdcbiAgKSB7XG4gICAgc3VwZXIocmVuZGVyZXJGYWN0b3J5LCBoYW5kbGVyLCBfZG9jdW1lbnQsIHNhbml0aXplcik7XG5cbiAgICB0aGlzLm9uQ29uZmlnQ2hhbmdlKCk7XG5cbiAgICB0aGlzLmFkZEljb24oLi4uTlpfSUNPTlNfVVNFRF9CWV9aT1JSTywgLi4uKGljb25zIHx8IFtdKSk7XG5cbiAgICBpZiAobGVnYWN5RGVmYXVsdFR3b3RvbmVDb2xvcikge1xuICAgICAgd2FybkRlcHJlY2F0aW9uKFxuICAgICAgICBgJ05aX0lDT05fREVGQVVMVF9UV09UT05FX0NPTE9SJyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gOS4wLjAuIFBsZWFzZSB1c2UgJ05aX0NPTkZJRycgaW5zdGVhZCFgXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmNvbmZpZ0RlZmF1bHRUd290b25lQ29sb3IoKTtcblxuICAgIHRoaXMuY29uZmlnRGVmYXVsdFRoZW1lKCk7XG4gIH1cblxuICBwcml2YXRlIG9uQ29uZmlnQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMubnpDb25maWdTZXJ2aWNlLmdldENvbmZpZ0NoYW5nZUV2ZW50Rm9yQ29tcG9uZW50KHRyaW1Db21wb25lbnROYW1lKHRoaXMuY29uc3RydWN0b3IubmFtZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNvbmZpZ0RlZmF1bHRUd290b25lQ29sb3IoKTtcbiAgICAgIHRoaXMuY29uZmlnRGVmYXVsdFRoZW1lKCk7XG4gICAgICB0aGlzLmNvbmZpZ1VwZGF0ZWQkLm5leHQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29uZmlnRGVmYXVsdFRoZW1lKCk6IHZvaWQge1xuICAgIGNvbnN0IGljb25Db25maWcgPSB0aGlzLmdldENvbmZpZygpO1xuICAgIHRoaXMuZGVmYXVsdFRoZW1lID0gaWNvbkNvbmZpZy5uelRoZW1lIHx8ICdvdXRsaW5lJztcbiAgfVxuXG4gIHByaXZhdGUgY29uZmlnRGVmYXVsdFR3b3RvbmVDb2xvcigpOiB2b2lkIHtcbiAgICBjb25zdCBpY29uQ29uZmlnID0gdGhpcy5nZXRDb25maWcoKTtcbiAgICBjb25zdCBkZWZhdWx0VHdvdG9uZUNvbG9yID0gaWNvbkNvbmZpZy5uelR3b3RvbmVDb2xvciB8fCB0aGlzLmxlZ2FjeURlZmF1bHRUd290b25lQ29sb3I7XG5cbiAgICBsZXQgcHJpbWFyeUNvbG9yID0gREVGQVVMVF9UV09UT05FX0NPTE9SO1xuXG4gICAgaWYgKGRlZmF1bHRUd290b25lQ29sb3IpIHtcbiAgICAgIGlmIChkZWZhdWx0VHdvdG9uZUNvbG9yLnN0YXJ0c1dpdGgoJyMnKSkge1xuICAgICAgICBwcmltYXJ5Q29sb3IgPSBkZWZhdWx0VHdvdG9uZUNvbG9yO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2FybignVHdvdG9uZSBjb2xvciBtdXN0IGJlIGEgaGV4IGNvbG9yIScpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudHdvVG9uZUNvbG9yID0geyBwcmltYXJ5Q29sb3IgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZmlnKCk6IEljb25Db25maWcge1xuICAgIHJldHVybiAodGhpcy5uekNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnRm9yQ29tcG9uZW50KHRyaW1Db21wb25lbnROYW1lKHRoaXMuY29uc3RydWN0b3IubmFtZSkpIGFzIEljb25Db25maWcpIHx8IHt9O1xuICB9XG59XG4iXX0=