UNPKG

@duoduo-oba/ng-devui

Version:

DevUI components based on Angular

364 lines 26.3 kB
/** * @fileoverview added by tsickle * Generated from: accordion-list.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { AccordionComponent } from './accordion.component'; import { Component, Input, ViewEncapsulation, ViewChildren, QueryList, Optional, Host, SkipSelf } from '@angular/core'; import { AccordionItemRouterlinkComponent } from './accordion-item-routerlink.component'; import { AccordionMenuComponent } from './accordion-menu.component'; var AccordionListComponent = /** @class */ (function () { function AccordionListComponent(parentComponent, accordion) { var _this = this; this.parentComponent = parentComponent; this.accordion = accordion; this.deepth = 0; this.menuToggleItemFn = (/** * @param {?} item * @param {?=} event * @return {?} */ function (item, event) { _this.accordion.menuToggleFn({ item: item, open: !item[_this.accordion.openKey], parent: _this.parent.parent, event: event }); }); this.itemClickItemFn = (/** * @param {?} item * @param {?=} event * @return {?} */ function (item, event) { _this.accordion.itemClickFn({ item: item, parent: _this.parent, event: event }); }); } /** * @return {?} */ AccordionListComponent.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; if (this.parentComponent) { setTimeout((/** * @return {?} */ function () { _this.parentComponent.accordionListFromView = _this; })); } }; /** * @return {?} */ AccordionListComponent.prototype.ngOnDestroy = /** * @return {?} */ function () { if (this.parentComponent) { this.parentComponent.accordionListFromView = undefined; } }; Object.defineProperty(AccordionListComponent.prototype, "loading", { get: /** * @return {?} */ function () { return this.parent && this.parent[this.accordion.loadingKey]; }, enumerable: true, configurable: true }); Object.defineProperty(AccordionListComponent.prototype, "noContent", { get: /** * @return {?} */ function () { return this.data === undefined || this.data === null || this.data.length === 0; }, enumerable: true, configurable: true }); Object.defineProperty(AccordionListComponent.prototype, "linkTypeKey", { get: /** * @return {?} */ function () { return this.accordion.linkTypeKey; }, enumerable: true, configurable: true }); Object.defineProperty(AccordionListComponent.prototype, "childrenKey", { get: /** * @return {?} */ function () { return this.accordion.childrenKey; }, enumerable: true, configurable: true }); Object.defineProperty(AccordionListComponent.prototype, "activeKey", { get: /** * @return {?} */ function () { return this.accordion.activeKey; }, enumerable: true, configurable: true }); Object.defineProperty(AccordionListComponent.prototype, "itemTemplate", { get: /** * @return {?} */ function () { return this.accordion.itemTemplate; }, enumerable: true, configurable: true }); Object.defineProperty(AccordionListComponent.prototype, "menuItemTemplate", { get: /** * @return {?} */ function () { return this.accordion.menuItemTemplate; }, enumerable: true, configurable: true }); Object.defineProperty(AccordionListComponent.prototype, "innerListTemplate", { get: /** * @return {?} */ function () { return this.accordion.innerListTemplate; }, enumerable: true, configurable: true }); Object.defineProperty(AccordionListComponent.prototype, "loadingTemplate", { get: /** * @return {?} */ function () { return this.accordion.loadingTemplate; }, enumerable: true, configurable: true }); Object.defineProperty(AccordionListComponent.prototype, "noContentTemplate", { get: /** * @return {?} */ function () { return this.accordion.noContentTemplate; }, enumerable: true, configurable: true }); Object.defineProperty(AccordionListComponent.prototype, "linkType", { get: /** * @return {?} */ function () { return this.accordion.linkType; }, enumerable: true, configurable: true }); Object.defineProperty(AccordionListComponent.prototype, "i18nCommonText", { get: /** * @return {?} */ function () { return this.accordion.i18nCommonText; }, enumerable: true, configurable: true }); Object.defineProperty(AccordionListComponent.prototype, "showNoContent", { get: /** * @return {?} */ function () { return this.accordion.showNoContent; }, enumerable: true, configurable: true }); Object.defineProperty(AccordionListComponent.prototype, "linkDefaultTarget", { get: /** * @return {?} */ function () { return this.accordion.linkDefaultTarget; }, enumerable: true, configurable: true }); /** * @private * @param {?} airlc * @return {?} */ AccordionListComponent.prototype.isLinkRouterActive = /** * @private * @param {?} airlc * @return {?} */ function (airlc) { return airlc.routerLinkActived; }; /** * @private * @param {?} amc * @return {?} */ AccordionListComponent.prototype.isMenuRouterActive = /** * @private * @param {?} amc * @return {?} */ function (amc) { return amc.routerLinkActived; }; /** * @private * @param {?} amc * @return {?} */ AccordionListComponent.prototype.isMenuDataActive = /** * @private * @param {?} amc * @return {?} */ function (amc) { return amc.hasActiveChildren; }; /** * @private * @param {?} item * @return {?} */ AccordionListComponent.prototype.isItemDataActive = /** * @private * @param {?} item * @return {?} */ function (item) { return !!item[this.activeKey]; }; /** * @private * @param {?} item * @return {?} */ AccordionListComponent.prototype.isItemData = /** * @private * @param {?} item * @return {?} */ function (item) { return item[this.childrenKey] === undefined; }; Object.defineProperty(AccordionListComponent.prototype, "routerLinkActived", { get: /** * @return {?} */ function () { var _this = this; return (!!this.accordionItemRouterlinkQueryList && this.accordionItemRouterlinkQueryList.some((/** * @param {?} airlc * @return {?} */ function (airlc) { return _this.isLinkRouterActive(airlc); }))) || (!!this.accordionMenuQueryList && this.accordionMenuQueryList.some((/** * @param {?} amc * @return {?} */ function (amc) { return _this.isMenuRouterActive(amc); }))); }, enumerable: true, configurable: true }); Object.defineProperty(AccordionListComponent.prototype, "hasActiveChildren", { get: /** * @return {?} */ function () { var _this = this; return (!!this.accordionMenuQueryList && this.accordionMenuQueryList.some((/** * @param {?} amc * @return {?} */ function (amc) { return _this.isMenuDataActive(amc); }))) || (!!this.data && !!this.data.length && this.data.some((/** * @param {?} item * @return {?} */ function (item) { return _this.isItemData(item) && _this.isItemDataActive(item); }))); }, enumerable: true, configurable: true }); AccordionListComponent.decorators = [ { type: Component, args: [{ selector: 'd-accordion-list', template: "<ul class=\"devui-accordion-list\" *ngIf=\"!innerListTemplate || deepth === 0\">\r\n <li class=\"devui-accordion-item\" *ngFor=\"let item of data\">\r\n <!--\u83DC\u5355\u7C7B\u578B-->\r\n <d-accordion-menu *ngIf=\"item[childrenKey] !== undefined\" [item]=\"item\" [deepth]=\"deepth\" [parent]=\"parent\"></d-accordion-menu>\r\n <!--\u975E\u83DC\u5355\u7C7B\u578B-->\r\n <ng-container *ngIf=\"item[childrenKey] === undefined\">\r\n <!--\u8DEF\u7531\u94FE\u63A5-->\r\n <d-accordion-item-routerlink\r\n *ngIf=\"linkType === 'routerLink'\"\r\n [item]=\"item\"\r\n [deepth]=\"deepth\"\r\n [parent]=\"parent\"\r\n ></d-accordion-item-routerlink>\r\n <!--\u666E\u901A\u94FE\u63A5-->\r\n <d-accordion-item-hreflink\r\n *ngIf=\"linkType === 'hrefLink'\"\r\n [item]=\"item\"\r\n [deepth]=\"deepth\"\r\n [parent]=\"parent\"\r\n ></d-accordion-item-hreflink>\r\n <!--\u52A8\u6001\u94FE\u63A5-->\r\n <ng-container *ngIf=\"linkType === 'dependOnLinkTypeKey'\">\r\n <d-accordion-item-routerlink\r\n *ngIf=\"item[linkTypeKey] === 'routerLink'\"\r\n [item]=\"item\"\r\n [deepth]=\"deepth\"\r\n [parent]=\"parent\"\r\n ></d-accordion-item-routerlink>\r\n <d-accordion-item-hreflink\r\n *ngIf=\"item[linkTypeKey] === 'hrefLink'\"\r\n [item]=\"item\"\r\n [deepth]=\"deepth\"\r\n [parent]=\"parent\"\r\n ></d-accordion-item-hreflink>\r\n <d-accordion-item\r\n *ngIf=\"item[linkTypeKey] !== 'hrefLink' && item[linkTypeKey] !== 'routerLink'\"\r\n [item]=\"item\"\r\n [deepth]=\"deepth\"\r\n [parent]=\"parent\"\r\n ></d-accordion-item>\r\n </ng-container>\r\n <!--\u666E\u901A\u7C7B\u578B-->\r\n <d-accordion-item *ngIf=\"!linkType || linkType === ''\" [item]=\"item\" [deepth]=\"deepth\" [parent]=\"parent\"></d-accordion-item>\r\n </ng-container>\r\n </li>\r\n</ul>\r\n<!--\u5217\u8868\u6A21\u677F-->\r\n<div *ngIf=\"innerListTemplate && deepth !== 0\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"innerListTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n item: parent,\r\n deepth: deepth,\r\n itemClickFn: itemClickItemFn,\r\n menuToggleFn: menuToggleItemFn\r\n }\"\r\n ></ng-template>\r\n</div>\r\n<!--\u65E0\u6570\u636E/\u52A0\u8F7D\u4E2D\u6A21\u677F-->\r\n<ul *ngIf=\"!innerListTemplate && (loading || (noContent && showNoContent))\">\r\n <!--\u52A0\u8F7D\u4E2D-->\r\n <li *ngIf=\"loading && !loadingTemplate\" class=\"devui-accordion-item\">\r\n <div class=\"devui-accordion-item-title devui-over-flow-ellipsis\" [style.textIndent]=\"deepth * 20 + 'px'\">\r\n {{ i18nCommonText?.loading }}\r\n </div>\r\n </li>\r\n <!--\u81EA\u5B9A\u4E49\u52A0\u8F7D\u4E2D-->\r\n <ng-template\r\n *ngIf=\"loading && loadingTemplate\"\r\n [ngTemplateOutlet]=\"loadingTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: parent, deepth: deepth }\"\r\n ></ng-template>\r\n <!--\u65E0\u6570\u636E-->\r\n <li *ngIf=\"showNoContent && !loading && noContent && !noContentTemplate\" class=\"devui-accordion-item\">\r\n <div class=\"devui-accordion-item-title devui-over-flow-ellipsis disabled\" [style.textIndent]=\"deepth * 20 + 'px'\">\r\n {{ i18nCommonText?.noData }}\r\n </div>\r\n </li>\r\n <!--\u81EA\u5B9A\u4E49\u65E0\u6570\u636E-->\r\n <ng-template\r\n *ngIf=\"showNoContent && !loading && noContent && noContentTemplate\"\r\n [ngTemplateOutlet]=\"noContentTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: parent, deepth: deepth }\"\r\n ></ng-template>\r\n</ul>\r\n", encapsulation: ViewEncapsulation.None }] } ]; /** @nocollapse */ AccordionListComponent.ctorParameters = function () { return [ { type: AccordionMenuComponent, decorators: [{ type: Optional }, { type: Host }, { type: SkipSelf }] }, { type: AccordionComponent } ]; }; AccordionListComponent.propDecorators = { data: [{ type: Input }], deepth: [{ type: Input }], parent: [{ type: Input }], accordionMenuQueryList: [{ type: ViewChildren, args: [AccordionMenuComponent,] }], accordionItemRouterlinkQueryList: [{ type: ViewChildren, args: [AccordionItemRouterlinkComponent,] }] }; return AccordionListComponent; }()); export { AccordionListComponent }; if (false) { /** @type {?} */ AccordionListComponent.prototype.data; /** @type {?} */ AccordionListComponent.prototype.deepth; /** @type {?} */ AccordionListComponent.prototype.parent; /** @type {?} */ AccordionListComponent.prototype.accordionMenuQueryList; /** @type {?} */ AccordionListComponent.prototype.accordionItemRouterlinkQueryList; /** @type {?} */ AccordionListComponent.prototype.menuToggleItemFn; /** @type {?} */ AccordionListComponent.prototype.itemClickItemFn; /** * @type {?} * @private */ AccordionListComponent.prototype.parentComponent; /** * @type {?} * @private */ AccordionListComponent.prototype.accordion; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZGV2dWkvYWNjb3JkaW9uLyIsInNvdXJjZXMiOlsiYWNjb3JkaW9uLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFMUksT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFcEU7SUFXRSxnQ0FBb0QsZUFBdUMsRUFDbEYsU0FBNkI7UUFEdEMsaUJBQzBDO1FBRFUsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ2xGLGNBQVMsR0FBVCxTQUFTLENBQW9CO1FBTDdCLFdBQU0sR0FBRyxDQUFDLENBQUM7UUE2RnBCLHFCQUFnQjs7Ozs7UUFBRyxVQUFDLElBQVMsRUFBRyxLQUFXO1lBQ3pDLEtBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO2dCQUMxQixJQUFJLEVBQUUsSUFBSTtnQkFDVixJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7Z0JBQ25DLE1BQU0sRUFBRSxLQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07Z0JBQzFCLEtBQUssRUFBRSxLQUFLO2FBQ2IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFBO1FBQ0Qsb0JBQWU7Ozs7O1FBQUcsVUFBQyxJQUFTLEVBQUUsS0FBVztZQUN2QyxLQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztnQkFDekIsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsTUFBTSxFQUFFLEtBQUksQ0FBQyxNQUFNO2dCQUNuQixLQUFLLEVBQUUsS0FBSzthQUNiLENBQUMsQ0FBQztRQUNMLENBQUMsRUFBQTtJQXRHd0MsQ0FBQzs7OztJQUUxQyx5Q0FBUTs7O0lBQVI7UUFBQSxpQkFJQztRQUhDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixVQUFVOzs7WUFBQyxjQUFPLEtBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLEdBQUcsS0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7U0FDekU7SUFDSCxDQUFDOzs7O0lBQ0QsNENBQVc7OztJQUFYO1FBQ0UsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQUVELHNCQUFJLDJDQUFPOzs7O1FBQVg7WUFDRSxPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUM7OztPQUFBO0lBRUQsc0JBQUksNkNBQVM7Ozs7UUFBYjtZQUNFLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1FBQ2pGLENBQUM7OztPQUFBO0lBRUQsc0JBQUksK0NBQVc7Ozs7UUFBZjtZQUNFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7UUFDcEMsQ0FBQzs7O09BQUE7SUFDRCxzQkFBSSwrQ0FBVzs7OztRQUFmO1lBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztRQUNwQyxDQUFDOzs7T0FBQTtJQUNELHNCQUFJLDZDQUFTOzs7O1FBQWI7WUFDRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQ2xDLENBQUM7OztPQUFBO0lBRUQsc0JBQUksZ0RBQVk7Ozs7UUFBaEI7WUFDRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBQ3JDLENBQUM7OztPQUFBO0lBQ0Qsc0JBQUksb0RBQWdCOzs7O1FBQXBCO1lBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDO1FBQ3pDLENBQUM7OztPQUFBO0lBQ0Qsc0JBQUkscURBQWlCOzs7O1FBQXJCO1lBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDO1FBQzFDLENBQUM7OztPQUFBO0lBQ0Qsc0JBQUksbURBQWU7Ozs7UUFBbkI7WUFDRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDO1FBQ3hDLENBQUM7OztPQUFBO0lBQ0Qsc0JBQUkscURBQWlCOzs7O1FBQXJCO1lBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDO1FBQzFDLENBQUM7OztPQUFBO0lBQ0Qsc0JBQUksNENBQVE7Ozs7UUFBWjtZQUNFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDakMsQ0FBQzs7O09BQUE7SUFDRCxzQkFBSSxrREFBYzs7OztRQUFsQjtZQUNFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUM7UUFDdkMsQ0FBQzs7O09BQUE7SUFDRCxzQkFBSSxpREFBYTs7OztRQUFqQjtZQUNFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7UUFDdEMsQ0FBQzs7O09BQUE7SUFDRCxzQkFBSSxxREFBaUI7Ozs7UUFBckI7WUFDRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUM7UUFDMUMsQ0FBQzs7O09BQUE7Ozs7OztJQUNPLG1EQUFrQjs7Ozs7SUFBMUIsVUFBMkIsS0FBdUM7UUFDaEUsT0FBTyxLQUFLLENBQUMsaUJBQWlCLENBQUM7SUFDakMsQ0FBQzs7Ozs7O0lBQ08sbURBQWtCOzs7OztJQUExQixVQUEyQixHQUEyQjtRQUNwRCxPQUFPLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztJQUMvQixDQUFDOzs7Ozs7SUFDTyxpREFBZ0I7Ozs7O0lBQXhCLFVBQXlCLEdBQTJCO1FBQ2xELE9BQU8sR0FBRyxDQUFDLGlCQUFpQixDQUFDO0lBQy9CLENBQUM7Ozs7OztJQUNPLGlEQUFnQjs7Ozs7SUFBeEIsVUFBeUIsSUFBdUI7UUFDOUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoQyxDQUFDOzs7Ozs7SUFDTywyQ0FBVTs7Ozs7SUFBbEIsVUFBbUIsSUFBdUI7UUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLFNBQVMsQ0FBQztJQUM5QyxDQUFDO0lBQ0Qsc0JBQUkscURBQWlCOzs7O1FBQXJCO1lBQUEsaUJBT0M7WUFOQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQ0FBZ0M7bUJBQ3hDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJOzs7O2dCQUFDLFVBQUEsS0FBSyxJQUFJLE9BQUEsS0FBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUE5QixDQUE4QixFQUFDLENBQ3ZGLElBQUksQ0FDSCxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQjttQkFDMUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUk7Ozs7Z0JBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxLQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQTVCLENBQTRCLEVBQUMsQ0FDekUsQ0FBQztRQUNOLENBQUM7OztPQUFBO0lBQ0Qsc0JBQUkscURBQWlCOzs7O1FBQXJCO1lBQUEsaUJBTUM7WUFMQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0I7bUJBQzlCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJOzs7O2dCQUFDLFVBQUEsR0FBRyxJQUFJLE9BQUEsS0FBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUExQixDQUEwQixFQUFDLENBQUM7bUJBQ3RFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTt1QkFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJOzs7O29CQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsS0FBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQXBELENBQW9ELEVBQUMsQ0FDbEYsQ0FBQztRQUNKLENBQUM7OztPQUFBOztnQkFuR0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLHduSEFBOEM7b0JBQzlDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzs7OztnQkFOUSxzQkFBc0IsdUJBYWhCLFFBQVEsWUFBSSxJQUFJLFlBQUksUUFBUTtnQkFqQmxDLGtCQUFrQjs7O3VCQVl4QixLQUFLO3lCQUNMLEtBQUs7eUJBQ0wsS0FBSzt5Q0FDTCxZQUFZLFNBQUMsc0JBQXNCO21EQUNuQyxZQUFZLFNBQUMsZ0NBQWdDOztJQXlHaEQsNkJBQUM7Q0FBQSxBQW5IRCxJQW1IQztTQTlHWSxzQkFBc0I7OztJQUNqQyxzQ0FBd0M7O0lBQ3hDLHdDQUFvQjs7SUFDcEIsd0NBQW1DOztJQUNuQyx3REFBZ0c7O0lBQ2hHLGtFQUE4SDs7SUEwRjlILGtEQU9DOztJQUNELGlEQU1DOzs7OztJQXZHVyxpREFBK0U7Ozs7O0lBQzFGLDJDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY29yZGlvbkNvbXBvbmVudCB9IGZyb20gJy4vYWNjb3JkaW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgT3B0aW9uYWwsIEhvc3QsIFNraXBTZWxmLCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY2NvcmRpb25NZW51SXRlbSB9IGZyb20gJy4vYWNjb3JkaW9uLnR5cGUnO1xyXG5pbXBvcnQgeyBBY2NvcmRpb25JdGVtUm91dGVybGlua0NvbXBvbmVudCB9IGZyb20gJy4vYWNjb3JkaW9uLWl0ZW0tcm91dGVybGluay5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY2NvcmRpb25NZW51Q29tcG9uZW50IH0gZnJvbSAnLi9hY2NvcmRpb24tbWVudS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkLWFjY29yZGlvbi1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25MaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGRhdGE6IEFycmF5PEFjY29yZGlvbk1lbnVJdGVtPjtcclxuICBASW5wdXQoKSBkZWVwdGggPSAwO1xyXG4gIEBJbnB1dCgpIHBhcmVudDogQWNjb3JkaW9uTWVudUl0ZW07XHJcbiAgQFZpZXdDaGlsZHJlbihBY2NvcmRpb25NZW51Q29tcG9uZW50KSBhY2NvcmRpb25NZW51UXVlcnlMaXN0OiBRdWVyeUxpc3Q8QWNjb3JkaW9uTWVudUNvbXBvbmVudD47XHJcbiAgQFZpZXdDaGlsZHJlbihBY2NvcmRpb25JdGVtUm91dGVybGlua0NvbXBvbmVudCkgYWNjb3JkaW9uSXRlbVJvdXRlcmxpbmtRdWVyeUxpc3Q6IFF1ZXJ5TGlzdDxBY2NvcmRpb25JdGVtUm91dGVybGlua0NvbXBvbmVudD47XHJcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEhvc3QoKSBAU2tpcFNlbGYoKSBwcml2YXRlIHBhcmVudENvbXBvbmVudDogQWNjb3JkaW9uTWVudUNvbXBvbmVudCxcclxuICAgcHJpdmF0ZSBhY2NvcmRpb246IEFjY29yZGlvbkNvbXBvbmVudCkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5wYXJlbnRDb21wb25lbnQpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7dGhpcy5wYXJlbnRDb21wb25lbnQuYWNjb3JkaW9uTGlzdEZyb21WaWV3ID0gdGhpczsgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucGFyZW50Q29tcG9uZW50KSB7XHJcbiAgICAgIHRoaXMucGFyZW50Q29tcG9uZW50LmFjY29yZGlvbkxpc3RGcm9tVmlldyA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBsb2FkaW5nKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucGFyZW50ICYmIHRoaXMucGFyZW50W3RoaXMuYWNjb3JkaW9uLmxvYWRpbmdLZXldO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG5vQ29udGVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGEgPT09IHVuZGVmaW5lZCB8fCB0aGlzLmRhdGEgPT09IG51bGwgfHwgdGhpcy5kYXRhLmxlbmd0aCA9PT0gMDtcclxuICB9XHJcblxyXG4gIGdldCBsaW5rVHlwZUtleSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFjY29yZGlvbi5saW5rVHlwZUtleTtcclxuICB9XHJcbiAgZ2V0IGNoaWxkcmVuS2V5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWNjb3JkaW9uLmNoaWxkcmVuS2V5O1xyXG4gIH1cclxuICBnZXQgYWN0aXZlS2V5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWNjb3JkaW9uLmFjdGl2ZUtleTtcclxuICB9XHJcblxyXG4gIGdldCBpdGVtVGVtcGxhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hY2NvcmRpb24uaXRlbVRlbXBsYXRlO1xyXG4gIH1cclxuICBnZXQgbWVudUl0ZW1UZW1wbGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFjY29yZGlvbi5tZW51SXRlbVRlbXBsYXRlO1xyXG4gIH1cclxuICBnZXQgaW5uZXJMaXN0VGVtcGxhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hY2NvcmRpb24uaW5uZXJMaXN0VGVtcGxhdGU7XHJcbiAgfVxyXG4gIGdldCBsb2FkaW5nVGVtcGxhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hY2NvcmRpb24ubG9hZGluZ1RlbXBsYXRlO1xyXG4gIH1cclxuICBnZXQgbm9Db250ZW50VGVtcGxhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hY2NvcmRpb24ubm9Db250ZW50VGVtcGxhdGU7XHJcbiAgfVxyXG4gIGdldCBsaW5rVHlwZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFjY29yZGlvbi5saW5rVHlwZTtcclxuICB9XHJcbiAgZ2V0IGkxOG5Db21tb25UZXh0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWNjb3JkaW9uLmkxOG5Db21tb25UZXh0O1xyXG4gIH1cclxuICBnZXQgc2hvd05vQ29udGVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFjY29yZGlvbi5zaG93Tm9Db250ZW50O1xyXG4gIH1cclxuICBnZXQgbGlua0RlZmF1bHRUYXJnZXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hY2NvcmRpb24ubGlua0RlZmF1bHRUYXJnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgaXNMaW5rUm91dGVyQWN0aXZlKGFpcmxjOiBBY2NvcmRpb25JdGVtUm91dGVybGlua0NvbXBvbmVudCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGFpcmxjLnJvdXRlckxpbmtBY3RpdmVkO1xyXG4gIH1cclxuICBwcml2YXRlIGlzTWVudVJvdXRlckFjdGl2ZShhbWM6IEFjY29yZGlvbk1lbnVDb21wb25lbnQpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBhbWMucm91dGVyTGlua0FjdGl2ZWQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgaXNNZW51RGF0YUFjdGl2ZShhbWM6IEFjY29yZGlvbk1lbnVDb21wb25lbnQpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBhbWMuaGFzQWN0aXZlQ2hpbGRyZW47XHJcbiAgfVxyXG4gIHByaXZhdGUgaXNJdGVtRGF0YUFjdGl2ZShpdGVtOiBBY2NvcmRpb25NZW51SXRlbSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhaXRlbVt0aGlzLmFjdGl2ZUtleV07XHJcbiAgfVxyXG4gIHByaXZhdGUgaXNJdGVtRGF0YShpdGVtOiBBY2NvcmRpb25NZW51SXRlbSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGl0ZW1bdGhpcy5jaGlsZHJlbktleV0gPT09IHVuZGVmaW5lZDtcclxuICB9XHJcbiAgZ2V0IHJvdXRlckxpbmtBY3RpdmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICghIXRoaXMuYWNjb3JkaW9uSXRlbVJvdXRlcmxpbmtRdWVyeUxpc3RcclxuICAgICAgICAmJiB0aGlzLmFjY29yZGlvbkl0ZW1Sb3V0ZXJsaW5rUXVlcnlMaXN0LnNvbWUoYWlybGMgPT4gdGhpcy5pc0xpbmtSb3V0ZXJBY3RpdmUoYWlybGMpKVxyXG4gICAgICApIHx8IChcclxuICAgICAgICAhIXRoaXMuYWNjb3JkaW9uTWVudVF1ZXJ5TGlzdFxyXG4gICAgICAgICYmIHRoaXMuYWNjb3JkaW9uTWVudVF1ZXJ5TGlzdC5zb21lKGFtYyA9PiB0aGlzLmlzTWVudVJvdXRlckFjdGl2ZShhbWMpKVxyXG4gICAgICApO1xyXG4gIH1cclxuICBnZXQgaGFzQWN0aXZlQ2hpbGRyZW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKCEhdGhpcy5hY2NvcmRpb25NZW51UXVlcnlMaXN0XHJcbiAgICAgICAgJiYgdGhpcy5hY2NvcmRpb25NZW51UXVlcnlMaXN0LnNvbWUoYW1jID0+IHRoaXMuaXNNZW51RGF0YUFjdGl2ZShhbWMpKSlcclxuICAgICAgfHwgKCEhdGhpcy5kYXRhICYmICEhdGhpcy5kYXRhLmxlbmd0aFxyXG4gICAgICAgICYmIHRoaXMuZGF0YS5zb21lKGl0ZW0gPT4gdGhpcy5pc0l0ZW1EYXRhKGl0ZW0pICYmIHRoaXMuaXNJdGVtRGF0YUFjdGl2ZShpdGVtKSlcclxuICAgICk7XHJcbiAgfVxyXG4gIG1lbnVUb2dnbGVJdGVtRm4gPSAoaXRlbTogYW55ICwgZXZlbnQ/OiBhbnkpID0+IHtcclxuICAgIHRoaXMuYWNjb3JkaW9uLm1lbnVUb2dnbGVGbih7XHJcbiAgICAgIGl0ZW06IGl0ZW0sXHJcbiAgICAgIG9wZW46ICFpdGVtW3RoaXMuYWNjb3JkaW9uLm9wZW5LZXldLFxyXG4gICAgICBwYXJlbnQ6IHRoaXMucGFyZW50LnBhcmVudCxcclxuICAgICAgZXZlbnQ6IGV2ZW50XHJcbiAgICB9KTtcclxuICB9XHJcbiAgaXRlbUNsaWNrSXRlbUZuID0gKGl0ZW06IGFueSwgZXZlbnQ/OiBhbnkpID0+IHtcclxuICAgIHRoaXMuYWNjb3JkaW9uLml0ZW1DbGlja0ZuKHtcclxuICAgICAgaXRlbTogaXRlbSxcclxuICAgICAgcGFyZW50OiB0aGlzLnBhcmVudCxcclxuICAgICAgZXZlbnQ6IGV2ZW50XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19