@sarasanalytics-com/design-system 0.0.138 → 0.0.140
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/interfaces/form-layout.interface.mjs +1 -1
- package/esm2022/interfaces/icon-interface.mjs +1 -1
- package/esm2022/lib/accordion/accordion.component.mjs +2 -2
- package/esm2022/lib/button/button.component.mjs +1 -1
- package/esm2022/lib/card/card.component.mjs +2 -2
- package/esm2022/lib/card/checkbox-card/checkbox-card.component.mjs +2 -2
- package/esm2022/lib/card/guide-card/guide-card.component.mjs +1 -1
- package/esm2022/lib/card/menu-card/menu-card.component.mjs +2 -2
- package/esm2022/lib/card-carousel/card-carousel.component.mjs +2 -2
- package/esm2022/lib/categories-nav/categories-nav.component.mjs +22 -5
- package/esm2022/lib/data-grid/data-grid.component.mjs +24 -3
- package/esm2022/lib/dialog/dialog.component.mjs +3 -3
- package/esm2022/lib/filter/filter.component.mjs +2 -2
- package/esm2022/lib/form-input/form-input.component.mjs +13 -3
- package/esm2022/lib/form-select/form-select.component.mjs +3 -3
- package/esm2022/lib/grid-cell/grid-cell.component.mjs +8 -3
- package/esm2022/lib/header/header.component.mjs +3 -3
- package/esm2022/lib/icon/icon.component.mjs +4 -2
- package/esm2022/lib/layout-section/layout-section.component.mjs +2 -2
- package/esm2022/lib/left-nav/left-nav.component.mjs +2 -2
- package/esm2022/lib/list/list.component.mjs +2 -2
- package/esm2022/lib/menu/menu-list/menu-item.component.mjs +2 -2
- package/esm2022/lib/menu/menu.component.mjs +2 -2
- package/esm2022/lib/message-banner/message-banner.component.mjs +2 -2
- package/esm2022/lib/message-banner-v2/message-banner-v2.component.mjs +46 -29
- package/esm2022/lib/mini-card/mini-card.component.mjs +2 -2
- package/esm2022/lib/query-builder/query-builder.component.mjs +6 -5
- package/esm2022/lib/toast/toast.component.mjs +1 -1
- package/esm2022/lib/tool-tip/tool-tip.component.mjs +3 -3
- package/fesm2022/sarasanalytics-com-design-system.mjs +138 -67
- package/fesm2022/sarasanalytics-com-design-system.mjs.map +1 -1
- package/interfaces/form-layout.interface.d.ts +2 -7
- package/interfaces/icon-interface.d.ts +1 -0
- package/lib/categories-nav/categories-nav.component.d.ts +36 -3
- package/lib/data-grid/data-grid.component.d.ts +6 -1
- package/lib/form-input/form-input.component.d.ts +3 -0
- package/lib/icon/icon.component.d.ts +2 -1
- package/lib/message-banner-v2/message-banner-v2.component.d.ts +6 -3
- package/package.json +1 -1
|
@@ -64,7 +64,7 @@ export class MiniCardComponent {
|
|
|
64
64
|
this.onCardClickEvent.emit({ source, button, event });
|
|
65
65
|
}
|
|
66
66
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MiniCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
67
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: MiniCardComponent, isStandalone: true, selector: "sa-mini-card", inputs: { cardData: "cardData" }, outputs: { onCardClickEvent: "onCardClickEvent" }, providers: [IconService], usesOnChanges: true, ngImport: i0, template: "<sa-card [column]=\"false\" [showCardHeader]=\"true\" [showCardBody]=\"false\"\r\n [width]=\"card?.width || '471px'\" [height]=\"card?.height || '100px'\" [showHeaderBodyDivider]=\"false\"\r\n [customWrapperClass]=\"card?.customWrapperClass || customClassWrapper\"\r\n class=\"{{card?.disabled ? 'disabled-card': 'enabled-card'}}\">\r\n <sa-card-title-header>\r\n <div class=\"sa-card-accordion-title-container\">\r\n <div class=\"sa-mini-card-title-icon-container\">\r\n <div class=\"sa-mini-card-custom-title\">\r\n @if(card?.source?.logoUrl){\r\n <sa-icon [img]=\"card?.source?.logoUrl\" [size]=\"'20'\" class=\"d-flex\" [customClass]=\"'auto-dimensions'\"></sa-icon>\r\n }\r\n <span [matTooltip]=\"card?.source?.tooltip\">\r\n {{card?.source?.name}}\r\n @if(card?.source?.count){\r\n <ng-container>\r\n <span>({{card?.source?.count}})</span>\r\n </ng-container>\r\n }\r\n </span>\r\n @if(card?.statusDot){\r\n <span>\r\n <sa-status-dot [config]=\"card.statusDot\">\r\n </sa-status-dot>\r\n </span>\r\n }\r\n @if(card?.chipData){\r\n <span>\r\n <sa-chip [type]=\"card?.chipData.type\" [state]=\"card?.chipData.state\"\r\n [filling]=\"card?.chipData.filling\" [text]=\"card?.chipData.text\"\r\n [iconPosition]='card?.chipData.iconPosition'\r\n [iconPath]=\"card?.chipData.iconPath\" [tooltip]=\"card?.chipData.tooltip\">\r\n </sa-chip>\r\n </span>\r\n }\r\n </div>\r\n </div>\r\n @if(!card?.disabled && (card?.actionButton && (card?.showActionActionButton ? card?.actionButton : null))){\r\n <div class=\"sa-card-titleIcon no-margin\">\r\n <sa-card-title-actions>\r\n <sa-button [text]=\"card?.actionButton?.text\" [type]=\"card?.actionButton?.type\" [size]=\"card?.actionButton?.size\"\r\n [state]=\"card?.actionButton?.state\" [iconPosition]=\"card?.actionButton?.iconPosition\" [icon]=\"card?.actionButton?.icon\"\r\n [buttonIconSize]=\"card?.actionButton?.buttonIconSize\" (onClickEvent)=\"onCardClick(card?.source, card?.actionButton, $event)\">\r\n </sa-button>\r\n </sa-card-title-actions>\r\n </div>\r\n }\r\n </div>\r\n </sa-card-title-header>\r\n </sa-card>", styles: [".sa-mini-card-title-icon-container .sa-mini-card-custom-title{display:flex;align-items:center;gap:var(--small-8px, 8px)}.sa-mini-card-title-icon-container .sa-mini-card-custom-title sa-icon{display:flex}.sa-mini-card-custom-title{color:var(--text-highemphasis);font-family:var(--font);font-size:var(--small-14px);font-style:normal;font-weight:500;line-height:var(--medium-20px);letter-spacing:.1px}::ng-deep sa-mini-card .sa-card-titleIcon sa-card-title-actions .sa-card-title-actions{margin-bottom:0}::ng-deep sa-mini-card .disabled-card .sa-card-wrapper{border:1px solid var(--grey-50);background:var(--structural-neutral3, #FAFAFA)}::ng-deep .enabled-card .sa-card-titleIcon{opacity:0;transition:opacity .3s ease}::ng-deep .enabled-card:hover .sa-card-titleIcon{opacity:1}::ng-deep .disabled-card .sa-card-titleIcon{opacity:0}\n"], dependencies: [{ kind: "component", type: CardComponent, selector: "sa-card", inputs: ["title", "showCardHeader", "showCardBody", "showHeaderBodyDivider", "showCustomCardBody", "customWrapperClass", "chip", "body", "avatar", "image", "imageWidth", "avatarSize", "href", "hrefTarget", "icon", "iconSize", "subtitle", "logoIcon", "width", "height", "column"] }, { kind: "component", type: CardCustomHeaderComponent, selector: "sa-card-title-header" }, { kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget"], outputs: ["onClickEvent"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: ChipsComponent, selector: "sa-chip", inputs: ["id", "iconPath", "text", "type", "state", "filling", "iconPosition", "largeStateIcon", "largeStateText", "tooltip", "className"], outputs: ["onClickEvent"] }, { kind: "component", type: CardTitleActionsComponent, selector: "sa-card-title-actions" }, { kind: "component", type: ButtonComponent, selector: "sa-button", inputs: ["id", "type", "state", "size", "text", "ImagePath", "icon", "iconPosition", "href", "hrefTarget", "width", "isSubmit", "buttonIconSize", "showSpinner"], outputs: ["onClickEvent", "onMouseInEvent", "onMouseOutEvent"] }, { kind: "component", type: StatusDotComponent, selector: "sa-status-dot", inputs: ["config"] }] }); }
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: MiniCardComponent, isStandalone: true, selector: "sa-mini-card", inputs: { cardData: "cardData" }, outputs: { onCardClickEvent: "onCardClickEvent" }, providers: [IconService], usesOnChanges: true, ngImport: i0, template: "<sa-card [column]=\"false\" [showCardHeader]=\"true\" [showCardBody]=\"false\"\r\n [width]=\"card?.width || '471px'\" [height]=\"card?.height || '100px'\" [showHeaderBodyDivider]=\"false\"\r\n [customWrapperClass]=\"card?.customWrapperClass || customClassWrapper\"\r\n class=\"{{card?.disabled ? 'disabled-card': 'enabled-card'}}\">\r\n <sa-card-title-header>\r\n <div class=\"sa-card-accordion-title-container\">\r\n <div class=\"sa-mini-card-title-icon-container\">\r\n <div class=\"sa-mini-card-custom-title\">\r\n @if(card?.source?.logoUrl){\r\n <sa-icon [img]=\"card?.source?.logoUrl\" [size]=\"'20'\" class=\"d-flex\" [customClass]=\"'auto-dimensions'\"></sa-icon>\r\n }\r\n <span [matTooltip]=\"card?.source?.tooltip\">\r\n {{card?.source?.name}}\r\n @if(card?.source?.count){\r\n <ng-container>\r\n <span>({{card?.source?.count}})</span>\r\n </ng-container>\r\n }\r\n </span>\r\n @if(card?.statusDot){\r\n <span>\r\n <sa-status-dot [config]=\"card.statusDot\">\r\n </sa-status-dot>\r\n </span>\r\n }\r\n @if(card?.chipData){\r\n <span>\r\n <sa-chip [type]=\"card?.chipData.type\" [state]=\"card?.chipData.state\"\r\n [filling]=\"card?.chipData.filling\" [text]=\"card?.chipData.text\"\r\n [iconPosition]='card?.chipData.iconPosition'\r\n [iconPath]=\"card?.chipData.iconPath\" [tooltip]=\"card?.chipData.tooltip\">\r\n </sa-chip>\r\n </span>\r\n }\r\n </div>\r\n </div>\r\n @if(!card?.disabled && (card?.actionButton && (card?.showActionActionButton ? card?.actionButton : null))){\r\n <div class=\"sa-card-titleIcon no-margin\">\r\n <sa-card-title-actions>\r\n <sa-button [text]=\"card?.actionButton?.text\" [type]=\"card?.actionButton?.type\" [size]=\"card?.actionButton?.size\"\r\n [state]=\"card?.actionButton?.state\" [iconPosition]=\"card?.actionButton?.iconPosition\" [icon]=\"card?.actionButton?.icon\"\r\n [buttonIconSize]=\"card?.actionButton?.buttonIconSize\" (onClickEvent)=\"onCardClick(card?.source, card?.actionButton, $event)\">\r\n </sa-button>\r\n </sa-card-title-actions>\r\n </div>\r\n }\r\n </div>\r\n </sa-card-title-header>\r\n </sa-card>", styles: [".sa-mini-card-title-icon-container .sa-mini-card-custom-title{display:flex;align-items:center;gap:var(--small-8px, 8px)}.sa-mini-card-title-icon-container .sa-mini-card-custom-title sa-icon{display:flex}.sa-mini-card-custom-title{color:var(--text-highemphasis);font-family:var(--font);font-size:var(--small-14px);font-style:normal;font-weight:500;line-height:var(--medium-20px);letter-spacing:.1px}::ng-deep sa-mini-card .sa-card-titleIcon sa-card-title-actions .sa-card-title-actions{margin-bottom:0}::ng-deep sa-mini-card .disabled-card .sa-card-wrapper{border:1px solid var(--grey-50);background:var(--structural-neutral3, #FAFAFA)}::ng-deep .enabled-card .sa-card-titleIcon{opacity:0;transition:opacity .3s ease}::ng-deep .enabled-card:hover .sa-card-titleIcon{opacity:1}::ng-deep .disabled-card .sa-card-titleIcon{opacity:0}\n"], dependencies: [{ kind: "component", type: CardComponent, selector: "sa-card", inputs: ["title", "showCardHeader", "showCardBody", "showHeaderBodyDivider", "showCustomCardBody", "customWrapperClass", "chip", "body", "avatar", "image", "imageWidth", "avatarSize", "href", "hrefTarget", "icon", "iconSize", "subtitle", "logoIcon", "width", "height", "column"] }, { kind: "component", type: CardCustomHeaderComponent, selector: "sa-card-title-header" }, { kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget", "iconPosition"], outputs: ["onClickEvent"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: ChipsComponent, selector: "sa-chip", inputs: ["id", "iconPath", "text", "type", "state", "filling", "iconPosition", "largeStateIcon", "largeStateText", "tooltip", "className"], outputs: ["onClickEvent"] }, { kind: "component", type: CardTitleActionsComponent, selector: "sa-card-title-actions" }, { kind: "component", type: ButtonComponent, selector: "sa-button", inputs: ["id", "type", "state", "size", "text", "ImagePath", "icon", "iconPosition", "href", "hrefTarget", "width", "isSubmit", "buttonIconSize", "showSpinner"], outputs: ["onClickEvent", "onMouseInEvent", "onMouseOutEvent"] }, { kind: "component", type: StatusDotComponent, selector: "sa-status-dot", inputs: ["config"] }] }); }
|
|
68
68
|
}
|
|
69
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MiniCardComponent, decorators: [{
|
|
70
70
|
type: Component,
|
|
@@ -76,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
76
76
|
}], onCardClickEvent: [{
|
|
77
77
|
type: Output
|
|
78
78
|
}] } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaS1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvbWluaS1jYXJkL21pbmktY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL21pbmktY2FyZC9taW5pLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQVluRCxNQUFNLE9BQU8saUJBQWlCO0lBVjlCO1FBWVkscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUdyRCx1QkFBa0IsR0FBRyxxQkFBcUIsQ0FBQTtRQUUxQyxTQUFJLEdBQVE7WUFDVixPQUFPLEVBQUUsT0FBTztZQUNoQixRQUFRLEVBQUUsTUFBTTtZQUNoQixvQkFBb0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzdDLFFBQVEsRUFDTjtnQkFDSSxJQUFJLEVBQUUsR0FBRztnQkFDVCxTQUFTLEVBQUUsYUFBYTtnQkFDeEIsU0FBUyxFQUFFLGFBQWE7Z0JBQ3hCLGFBQWEsRUFBRSxTQUFTO2dCQUN4QixpQkFBaUIsRUFBRSxFQUFFO2dCQUNyQixTQUFTLEVBQUUsa0NBQWtDO2dCQUM3QyxNQUFNLEVBQUUsU0FBUztnQkFDakIsV0FBVyxFQUFFLFFBQVE7Z0JBQ3JCLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixvQkFBb0IsRUFBRSxVQUFVO2dCQUNoQyxNQUFNLEVBQUUsU0FBUzthQUN0QjtZQUNELHdCQUF3QixFQUFFLElBQUk7WUFDOUIsVUFBVSxFQUFFLElBQUk7WUFDaEIsY0FBYyxFQUFFO2dCQUNaLE1BQU0sRUFBRSxZQUFZO2dCQUNwQixNQUFNLEVBQUUsU0FBUztnQkFDakIsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsT0FBTyxFQUFFLFNBQVM7Z0JBQ2xCLElBQUksRUFBRSxZQUFZO2FBQ3JCO1lBQ0QsVUFBVSxFQUFFO2dCQUNWLE1BQU0sRUFBRSxPQUFPO2dCQUNmLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixTQUFTLEVBQUUsUUFBUTtnQkFDbkIsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLFNBQVMsRUFBRSw4Q0FBOEM7YUFDMUQ7WUFDRCxXQUFXLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLE1BQU0sRUFBRSxFQUFFO2dCQUNWLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixTQUFTLEVBQUUsU0FBUzthQUNyQjtZQUNELFFBQVEsRUFBRSxTQUFTO1NBQ3BCLENBQUM7S0FZSDtJQVZDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDL0MsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsTUFBVyxFQUFFLE1BQVcsRUFBRSxLQUFVO1FBQzlDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQzs4R0ExRFUsaUJBQWlCO2tHQUFqQixpQkFBaUIsZ0pBSmpCLENBQUMsV0FBVyxDQUFDLCtDQ2pCMUIsb2xHQWdEYyx5M0JEbENGLGFBQWEsNFVBQUUseUJBQXlCLGlFQUFFLGFBQWEscUxBQUUsVUFBVSxpUkFBRSxjQUFjLDJOQUMzRix5QkFBeUIsa0VBQUUsZUFBZSx3UkFBRSxrQkFBa0I7OzJGQU1yRCxpQkFBaUI7a0JBVjdCLFNBQVM7K0JBQ0UsY0FBYyxjQUNaLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSx5QkFBeUIsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLGNBQWM7d0JBQzNGLHlCQUF5QixFQUFFLGVBQWUsRUFBRSxrQkFBa0I7cUJBQy9ELGFBQ1UsQ0FBQyxXQUFXLENBQUM7OEJBS2YsUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uL2NhcmQvY2FyZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDYXJkQ3VzdG9tSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FyZC9jYXJkLWN1c3RvbS1oZWFkZXIvY2FyZC1jdXN0b20taGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBDaGlwc0NvbXBvbmVudCB9IGZyb20gJy4uL2NoaXBzL2NoaXBzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENhcmRUaXRsZUFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi9jYXJkL2NhcmQtdGl0bGUtYWN0aW9ucy9jYXJkLXRpdGxlLWFjdGlvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdGF0dXNEb3RDb21wb25lbnQgfSBmcm9tICcuLi9zdGF0dXMtZG90L3N0YXR1cy1kb3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSWNvblNlcnZpY2UgfSBmcm9tICcuLi9pY29uL2ljb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhLW1pbmktY2FyZCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ2FyZENvbXBvbmVudCwgQ2FyZEN1c3RvbUhlYWRlckNvbXBvbmVudCwgSWNvbkNvbXBvbmVudCwgTWF0VG9vbHRpcCwgQ2hpcHNDb21wb25lbnQsIFxyXG4gICAgQ2FyZFRpdGxlQWN0aW9uc0NvbXBvbmVudCwgQnV0dG9uQ29tcG9uZW50LCBTdGF0dXNEb3RDb21wb25lbnRcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW0ljb25TZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbWluaS1jYXJkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vbWluaS1jYXJkLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNaW5pQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgY2FyZERhdGE6IGFueTtcclxuICBAT3V0cHV0KCkgb25DYXJkQ2xpY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIFxyXG5cclxuICBjdXN0b21DbGFzc1dyYXBwZXIgPSAnbWluaS1jYXJkLWNvbnRhaW5lcidcclxuXHJcbiAgY2FyZDogYW55ID0ge1xyXG4gICAgXCJ3aWR0aFwiOiBcIjUwMHB4XCIsXHJcbiAgICBcImhlaWdodFwiOiBcImF1dG9cIixcclxuICAgIFwiY3VzdG9tV3JhcHBlckNsYXNzXCI6IHRoaXMuY3VzdG9tQ2xhc3NXcmFwcGVyLFxyXG4gICAgXCJzb3VyY2VcIjogXHJcbiAgICAgIHtcclxuICAgICAgICAgIFwiaWRcIjogMzQyLFxyXG4gICAgICAgICAgXCJjcmVhdGVkXCI6IDE2NDg4MDc3MTA5NzAsXHJcbiAgICAgICAgICBcInVwZGF0ZWRcIjogMTY4ODAxNjAwNTIxMyxcclxuICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogXCJYZXJvIFYyXCIsXHJcbiAgICAgICAgICBcImRpc3BsYXlDYXRlZ29yeVwiOiAxMyxcclxuICAgICAgICAgIFwibG9nb1VybFwiOiBcImFzc2V0cy9pbWFnZXMvcG5nL0FtYXpvbi1BZHMucG5nXCIsXHJcbiAgICAgICAgICBcInR5cGVcIjogXCJYRVJPX1YyXCIsXHJcbiAgICAgICAgICBcImxvZ2luVHlwZVwiOiBcIkNVU1RPTVwiLFxyXG4gICAgICAgICAgXCJjZGtTb3VyY2VcIjogdHJ1ZSxcclxuICAgICAgICAgIFwiZGF0YXNvdXJjZUNhdGVnb3J5XCI6IFwiU1RBTkRBUkRcIixcclxuICAgICAgICAgIFwibmFtZVwiOiBcIlhlcm8gVjJcIlxyXG4gICAgfSxcclxuICAgIFwic2hvd0FjdGlvbkFjdGlvbkJ1dHRvblwiOiB0cnVlLFxyXG4gICAgXCJkaXNhYmxlZFwiOiB0cnVlLFxyXG4gICAgXCJhY3Rpb25CdXR0b25cIjoge1xyXG4gICAgICAgIFwidGV4dFwiOiBcIkFkZCBTb3VyY2VcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwcmltYXJ5XCIsXHJcbiAgICAgICAgXCJzaXplXCI6IFwic21hbGxcIixcclxuICAgICAgICBcInN0YXRlXCI6IFwiZGVmYXVsdFwiLFxyXG4gICAgICAgIFwiaWRcIjogXCJhZGQtc291cmNlXCJcclxuICAgIH0sXHJcbiAgICBcImNoaXBEYXRhXCI6IHtcclxuICAgICAgXCJ0eXBlXCI6IFwic21hbGxcIixcclxuICAgICAgXCJzdGF0ZVwiOiBcImVycm9yXCIsXHJcbiAgICAgIFwiZmlsbGluZ1wiOiBcImZpbGxlZFwiLFxyXG4gICAgICBcInRleHRcIjogXCJDb25uZWN0ZWRcIixcclxuICAgICAgXCJ0b29sdGlwXCI6IFwiU29tZSBiaWcgdGV4dCBoZXJlIHRvIHNob3cgdG9vbHRpcCB0ZXh0IGhlcmVcIlxyXG4gICAgfSxcclxuICAgIFwic3RhdHVzRG90XCI6IHtcclxuICAgICAgXCJzdGF0dXNcIjogXCJzdWNjZXNzXCIsXHJcbiAgICAgIFwic2l6ZVwiOiAxMCxcclxuICAgICAgXCJ0aGVtZVwiOiBcImZpbGxlZFwiLFxyXG4gICAgICBcInRvb2x0aXBcIjogXCJzdWNjZXNzXCJcclxuICAgIH0sXHJcbiAgICBcImFjdGlvblwiOiBcImNvbm5lY3RcIlxyXG4gIH07XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydjYXJkRGF0YSddIHx8IGNoYW5nZXNbJ2NhcmREYXRhJ10pIHtcclxuICAgICAgdGhpcy5jYXJkID0gY2hhbmdlc1snY2FyZERhdGEnXS5jdXJyZW50VmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNhcmRDbGljayhzb3VyY2U6IGFueSwgYnV0dG9uOiBhbnksIGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMub25DYXJkQ2xpY2tFdmVudC5lbWl0KHsgc291cmNlLCBidXR0b24sIGV2ZW50IH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPHNhLWNhcmQgW2NvbHVtbl09XCJmYWxzZVwiIFtzaG93Q2FyZEhlYWRlcl09XCJ0cnVlXCIgW3Nob3dDYXJkQm9keV09XCJmYWxzZVwiXHJcbiAgICAgICAgW3dpZHRoXT1cImNhcmQ/LndpZHRoIHx8ICc0NzFweCdcIiBbaGVpZ2h0XT1cImNhcmQ/LmhlaWdodCB8fCAnMTAwcHgnXCIgW3Nob3dIZWFkZXJCb2R5RGl2aWRlcl09XCJmYWxzZVwiXHJcbiAgICAgICAgW2N1c3RvbVdyYXBwZXJDbGFzc109XCJjYXJkPy5jdXN0b21XcmFwcGVyQ2xhc3MgfHwgY3VzdG9tQ2xhc3NXcmFwcGVyXCJcclxuICAgICAgICBjbGFzcz1cInt7Y2FyZD8uZGlzYWJsZWQgPyAnZGlzYWJsZWQtY2FyZCc6ICdlbmFibGVkLWNhcmQnfX1cIj5cclxuICAgICAgICA8c2EtY2FyZC10aXRsZS1oZWFkZXI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYS1jYXJkLWFjY29yZGlvbi10aXRsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYS1taW5pLWNhcmQtdGl0bGUtaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbWluaS1jYXJkLWN1c3RvbS10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYoY2FyZD8uc291cmNlPy5sb2dvVXJsKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzYS1pY29uIFtpbWddPVwiY2FyZD8uc291cmNlPy5sb2dvVXJsXCIgW3NpemVdPVwiJzIwJ1wiIGNsYXNzPVwiZC1mbGV4XCIgW2N1c3RvbUNsYXNzXT1cIidhdXRvLWRpbWVuc2lvbnMnXCI+PC9zYS1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFttYXRUb29sdGlwXT1cImNhcmQ/LnNvdXJjZT8udG9vbHRpcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjYXJkPy5zb3VyY2U/Lm5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGNhcmQ/LnNvdXJjZT8uY291bnQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPih7e2NhcmQ/LnNvdXJjZT8uY291bnR9fSk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGNhcmQ/LnN0YXR1c0RvdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2Etc3RhdHVzLWRvdCBbY29uZmlnXT1cImNhcmQuc3RhdHVzRG90XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zYS1zdGF0dXMtZG90PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZihjYXJkPy5jaGlwRGF0YSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2EtY2hpcCBbdHlwZV09XCJjYXJkPy5jaGlwRGF0YS50eXBlXCIgW3N0YXRlXT1cImNhcmQ/LmNoaXBEYXRhLnN0YXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGxpbmddPVwiY2FyZD8uY2hpcERhdGEuZmlsbGluZ1wiIFt0ZXh0XT1cImNhcmQ/LmNoaXBEYXRhLnRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvblBvc2l0aW9uXT0nY2FyZD8uY2hpcERhdGEuaWNvblBvc2l0aW9uJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvblBhdGhdPVwiY2FyZD8uY2hpcERhdGEuaWNvblBhdGhcIiBbdG9vbHRpcF09XCJjYXJkPy5jaGlwRGF0YS50b29sdGlwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zYS1jaGlwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIEBpZighY2FyZD8uZGlzYWJsZWQgJiYgKGNhcmQ/LmFjdGlvbkJ1dHRvbiAmJiAoY2FyZD8uc2hvd0FjdGlvbkFjdGlvbkJ1dHRvbiA/IGNhcmQ/LmFjdGlvbkJ1dHRvbiAgOiBudWxsKSkpe1xyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYS1jYXJkLXRpdGxlSWNvbiBuby1tYXJnaW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNhLWNhcmQtdGl0bGUtYWN0aW9ucz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzYS1idXR0b24gW3RleHRdPVwiY2FyZD8uYWN0aW9uQnV0dG9uPy50ZXh0XCIgW3R5cGVdPVwiY2FyZD8uYWN0aW9uQnV0dG9uPy50eXBlXCIgW3NpemVdPVwiY2FyZD8uYWN0aW9uQnV0dG9uPy5zaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwiY2FyZD8uYWN0aW9uQnV0dG9uPy5zdGF0ZVwiIFtpY29uUG9zaXRpb25dPVwiY2FyZD8uYWN0aW9uQnV0dG9uPy5pY29uUG9zaXRpb25cIiBbaWNvbl09XCJjYXJkPy5hY3Rpb25CdXR0b24/Lmljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtidXR0b25JY29uU2l6ZV09XCJjYXJkPy5hY3Rpb25CdXR0b24/LmJ1dHRvbkljb25TaXplXCIgKG9uQ2xpY2tFdmVudCk9XCJvbkNhcmRDbGljayhjYXJkPy5zb3VyY2UsIGNhcmQ/LmFjdGlvbkJ1dHRvbiwgJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zYS1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2EtY2FyZC10aXRsZS1hY3Rpb25zPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NhLWNhcmQtdGl0bGUtaGVhZGVyPlxyXG4gICAgPC9zYS1jYXJkPiJdfQ==
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaS1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvbWluaS1jYXJkL21pbmktY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL21pbmktY2FyZC9taW5pLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQVluRCxNQUFNLE9BQU8saUJBQWlCO0lBVjlCO1FBWVkscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUdyRCx1QkFBa0IsR0FBRyxxQkFBcUIsQ0FBQTtRQUUxQyxTQUFJLEdBQVE7WUFDVixPQUFPLEVBQUUsT0FBTztZQUNoQixRQUFRLEVBQUUsTUFBTTtZQUNoQixvQkFBb0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzdDLFFBQVEsRUFDTjtnQkFDSSxJQUFJLEVBQUUsR0FBRztnQkFDVCxTQUFTLEVBQUUsYUFBYTtnQkFDeEIsU0FBUyxFQUFFLGFBQWE7Z0JBQ3hCLGFBQWEsRUFBRSxTQUFTO2dCQUN4QixpQkFBaUIsRUFBRSxFQUFFO2dCQUNyQixTQUFTLEVBQUUsa0NBQWtDO2dCQUM3QyxNQUFNLEVBQUUsU0FBUztnQkFDakIsV0FBVyxFQUFFLFFBQVE7Z0JBQ3JCLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixvQkFBb0IsRUFBRSxVQUFVO2dCQUNoQyxNQUFNLEVBQUUsU0FBUzthQUN0QjtZQUNELHdCQUF3QixFQUFFLElBQUk7WUFDOUIsVUFBVSxFQUFFLElBQUk7WUFDaEIsY0FBYyxFQUFFO2dCQUNaLE1BQU0sRUFBRSxZQUFZO2dCQUNwQixNQUFNLEVBQUUsU0FBUztnQkFDakIsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsT0FBTyxFQUFFLFNBQVM7Z0JBQ2xCLElBQUksRUFBRSxZQUFZO2FBQ3JCO1lBQ0QsVUFBVSxFQUFFO2dCQUNWLE1BQU0sRUFBRSxPQUFPO2dCQUNmLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixTQUFTLEVBQUUsUUFBUTtnQkFDbkIsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLFNBQVMsRUFBRSw4Q0FBOEM7YUFDMUQ7WUFDRCxXQUFXLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLE1BQU0sRUFBRSxFQUFFO2dCQUNWLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixTQUFTLEVBQUUsU0FBUzthQUNyQjtZQUNELFFBQVEsRUFBRSxTQUFTO1NBQ3BCLENBQUM7S0FZSDtJQVZDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDL0MsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsTUFBVyxFQUFFLE1BQVcsRUFBRSxLQUFVO1FBQzlDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQzs4R0ExRFUsaUJBQWlCO2tHQUFqQixpQkFBaUIsZ0pBSmpCLENBQUMsV0FBVyxDQUFDLCtDQ2pCMUIsb2xHQWdEYyx5M0JEbENGLGFBQWEsNFVBQUUseUJBQXlCLGlFQUFFLGFBQWEscU1BQUUsVUFBVSxpUkFBRSxjQUFjLDJOQUMzRix5QkFBeUIsa0VBQUUsZUFBZSx3UkFBRSxrQkFBa0I7OzJGQU1yRCxpQkFBaUI7a0JBVjdCLFNBQVM7K0JBQ0UsY0FBYyxjQUNaLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSx5QkFBeUIsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLGNBQWM7d0JBQzNGLHlCQUF5QixFQUFFLGVBQWUsRUFBRSxrQkFBa0I7cUJBQy9ELGFBQ1UsQ0FBQyxXQUFXLENBQUM7OEJBS2YsUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uL2NhcmQvY2FyZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDYXJkQ3VzdG9tSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FyZC9jYXJkLWN1c3RvbS1oZWFkZXIvY2FyZC1jdXN0b20taGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBDaGlwc0NvbXBvbmVudCB9IGZyb20gJy4uL2NoaXBzL2NoaXBzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENhcmRUaXRsZUFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi9jYXJkL2NhcmQtdGl0bGUtYWN0aW9ucy9jYXJkLXRpdGxlLWFjdGlvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdGF0dXNEb3RDb21wb25lbnQgfSBmcm9tICcuLi9zdGF0dXMtZG90L3N0YXR1cy1kb3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSWNvblNlcnZpY2UgfSBmcm9tICcuLi9pY29uL2ljb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhLW1pbmktY2FyZCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ2FyZENvbXBvbmVudCwgQ2FyZEN1c3RvbUhlYWRlckNvbXBvbmVudCwgSWNvbkNvbXBvbmVudCwgTWF0VG9vbHRpcCwgQ2hpcHNDb21wb25lbnQsIFxyXG4gICAgQ2FyZFRpdGxlQWN0aW9uc0NvbXBvbmVudCwgQnV0dG9uQ29tcG9uZW50LCBTdGF0dXNEb3RDb21wb25lbnRcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW0ljb25TZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbWluaS1jYXJkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vbWluaS1jYXJkLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNaW5pQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgY2FyZERhdGE6IGFueTtcclxuICBAT3V0cHV0KCkgb25DYXJkQ2xpY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIFxyXG5cclxuICBjdXN0b21DbGFzc1dyYXBwZXIgPSAnbWluaS1jYXJkLWNvbnRhaW5lcidcclxuXHJcbiAgY2FyZDogYW55ID0ge1xyXG4gICAgXCJ3aWR0aFwiOiBcIjUwMHB4XCIsXHJcbiAgICBcImhlaWdodFwiOiBcImF1dG9cIixcclxuICAgIFwiY3VzdG9tV3JhcHBlckNsYXNzXCI6IHRoaXMuY3VzdG9tQ2xhc3NXcmFwcGVyLFxyXG4gICAgXCJzb3VyY2VcIjogXHJcbiAgICAgIHtcclxuICAgICAgICAgIFwiaWRcIjogMzQyLFxyXG4gICAgICAgICAgXCJjcmVhdGVkXCI6IDE2NDg4MDc3MTA5NzAsXHJcbiAgICAgICAgICBcInVwZGF0ZWRcIjogMTY4ODAxNjAwNTIxMyxcclxuICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogXCJYZXJvIFYyXCIsXHJcbiAgICAgICAgICBcImRpc3BsYXlDYXRlZ29yeVwiOiAxMyxcclxuICAgICAgICAgIFwibG9nb1VybFwiOiBcImFzc2V0cy9pbWFnZXMvcG5nL0FtYXpvbi1BZHMucG5nXCIsXHJcbiAgICAgICAgICBcInR5cGVcIjogXCJYRVJPX1YyXCIsXHJcbiAgICAgICAgICBcImxvZ2luVHlwZVwiOiBcIkNVU1RPTVwiLFxyXG4gICAgICAgICAgXCJjZGtTb3VyY2VcIjogdHJ1ZSxcclxuICAgICAgICAgIFwiZGF0YXNvdXJjZUNhdGVnb3J5XCI6IFwiU1RBTkRBUkRcIixcclxuICAgICAgICAgIFwibmFtZVwiOiBcIlhlcm8gVjJcIlxyXG4gICAgfSxcclxuICAgIFwic2hvd0FjdGlvbkFjdGlvbkJ1dHRvblwiOiB0cnVlLFxyXG4gICAgXCJkaXNhYmxlZFwiOiB0cnVlLFxyXG4gICAgXCJhY3Rpb25CdXR0b25cIjoge1xyXG4gICAgICAgIFwidGV4dFwiOiBcIkFkZCBTb3VyY2VcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwcmltYXJ5XCIsXHJcbiAgICAgICAgXCJzaXplXCI6IFwic21hbGxcIixcclxuICAgICAgICBcInN0YXRlXCI6IFwiZGVmYXVsdFwiLFxyXG4gICAgICAgIFwiaWRcIjogXCJhZGQtc291cmNlXCJcclxuICAgIH0sXHJcbiAgICBcImNoaXBEYXRhXCI6IHtcclxuICAgICAgXCJ0eXBlXCI6IFwic21hbGxcIixcclxuICAgICAgXCJzdGF0ZVwiOiBcImVycm9yXCIsXHJcbiAgICAgIFwiZmlsbGluZ1wiOiBcImZpbGxlZFwiLFxyXG4gICAgICBcInRleHRcIjogXCJDb25uZWN0ZWRcIixcclxuICAgICAgXCJ0b29sdGlwXCI6IFwiU29tZSBiaWcgdGV4dCBoZXJlIHRvIHNob3cgdG9vbHRpcCB0ZXh0IGhlcmVcIlxyXG4gICAgfSxcclxuICAgIFwic3RhdHVzRG90XCI6IHtcclxuICAgICAgXCJzdGF0dXNcIjogXCJzdWNjZXNzXCIsXHJcbiAgICAgIFwic2l6ZVwiOiAxMCxcclxuICAgICAgXCJ0aGVtZVwiOiBcImZpbGxlZFwiLFxyXG4gICAgICBcInRvb2x0aXBcIjogXCJzdWNjZXNzXCJcclxuICAgIH0sXHJcbiAgICBcImFjdGlvblwiOiBcImNvbm5lY3RcIlxyXG4gIH07XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydjYXJkRGF0YSddIHx8IGNoYW5nZXNbJ2NhcmREYXRhJ10pIHtcclxuICAgICAgdGhpcy5jYXJkID0gY2hhbmdlc1snY2FyZERhdGEnXS5jdXJyZW50VmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNhcmRDbGljayhzb3VyY2U6IGFueSwgYnV0dG9uOiBhbnksIGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMub25DYXJkQ2xpY2tFdmVudC5lbWl0KHsgc291cmNlLCBidXR0b24sIGV2ZW50IH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPHNhLWNhcmQgW2NvbHVtbl09XCJmYWxzZVwiIFtzaG93Q2FyZEhlYWRlcl09XCJ0cnVlXCIgW3Nob3dDYXJkQm9keV09XCJmYWxzZVwiXHJcbiAgICAgICAgW3dpZHRoXT1cImNhcmQ/LndpZHRoIHx8ICc0NzFweCdcIiBbaGVpZ2h0XT1cImNhcmQ/LmhlaWdodCB8fCAnMTAwcHgnXCIgW3Nob3dIZWFkZXJCb2R5RGl2aWRlcl09XCJmYWxzZVwiXHJcbiAgICAgICAgW2N1c3RvbVdyYXBwZXJDbGFzc109XCJjYXJkPy5jdXN0b21XcmFwcGVyQ2xhc3MgfHwgY3VzdG9tQ2xhc3NXcmFwcGVyXCJcclxuICAgICAgICBjbGFzcz1cInt7Y2FyZD8uZGlzYWJsZWQgPyAnZGlzYWJsZWQtY2FyZCc6ICdlbmFibGVkLWNhcmQnfX1cIj5cclxuICAgICAgICA8c2EtY2FyZC10aXRsZS1oZWFkZXI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYS1jYXJkLWFjY29yZGlvbi10aXRsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYS1taW5pLWNhcmQtdGl0bGUtaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbWluaS1jYXJkLWN1c3RvbS10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYoY2FyZD8uc291cmNlPy5sb2dvVXJsKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzYS1pY29uIFtpbWddPVwiY2FyZD8uc291cmNlPy5sb2dvVXJsXCIgW3NpemVdPVwiJzIwJ1wiIGNsYXNzPVwiZC1mbGV4XCIgW2N1c3RvbUNsYXNzXT1cIidhdXRvLWRpbWVuc2lvbnMnXCI+PC9zYS1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFttYXRUb29sdGlwXT1cImNhcmQ/LnNvdXJjZT8udG9vbHRpcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjYXJkPy5zb3VyY2U/Lm5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGNhcmQ/LnNvdXJjZT8uY291bnQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPih7e2NhcmQ/LnNvdXJjZT8uY291bnR9fSk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGNhcmQ/LnN0YXR1c0RvdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2Etc3RhdHVzLWRvdCBbY29uZmlnXT1cImNhcmQuc3RhdHVzRG90XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zYS1zdGF0dXMtZG90PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZihjYXJkPy5jaGlwRGF0YSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2EtY2hpcCBbdHlwZV09XCJjYXJkPy5jaGlwRGF0YS50eXBlXCIgW3N0YXRlXT1cImNhcmQ/LmNoaXBEYXRhLnN0YXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGxpbmddPVwiY2FyZD8uY2hpcERhdGEuZmlsbGluZ1wiIFt0ZXh0XT1cImNhcmQ/LmNoaXBEYXRhLnRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvblBvc2l0aW9uXT0nY2FyZD8uY2hpcERhdGEuaWNvblBvc2l0aW9uJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvblBhdGhdPVwiY2FyZD8uY2hpcERhdGEuaWNvblBhdGhcIiBbdG9vbHRpcF09XCJjYXJkPy5jaGlwRGF0YS50b29sdGlwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zYS1jaGlwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIEBpZighY2FyZD8uZGlzYWJsZWQgJiYgKGNhcmQ/LmFjdGlvbkJ1dHRvbiAmJiAoY2FyZD8uc2hvd0FjdGlvbkFjdGlvbkJ1dHRvbiA/IGNhcmQ/LmFjdGlvbkJ1dHRvbiAgOiBudWxsKSkpe1xyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYS1jYXJkLXRpdGxlSWNvbiBuby1tYXJnaW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNhLWNhcmQtdGl0bGUtYWN0aW9ucz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzYS1idXR0b24gW3RleHRdPVwiY2FyZD8uYWN0aW9uQnV0dG9uPy50ZXh0XCIgW3R5cGVdPVwiY2FyZD8uYWN0aW9uQnV0dG9uPy50eXBlXCIgW3NpemVdPVwiY2FyZD8uYWN0aW9uQnV0dG9uPy5zaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwiY2FyZD8uYWN0aW9uQnV0dG9uPy5zdGF0ZVwiIFtpY29uUG9zaXRpb25dPVwiY2FyZD8uYWN0aW9uQnV0dG9uPy5pY29uUG9zaXRpb25cIiBbaWNvbl09XCJjYXJkPy5hY3Rpb25CdXR0b24/Lmljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtidXR0b25JY29uU2l6ZV09XCJjYXJkPy5hY3Rpb25CdXR0b24/LmJ1dHRvbkljb25TaXplXCIgKG9uQ2xpY2tFdmVudCk9XCJvbkNhcmRDbGljayhjYXJkPy5zb3VyY2UsIGNhcmQ/LmFjdGlvbkJ1dHRvbiwgJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zYS1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2EtY2FyZC10aXRsZS1hY3Rpb25zPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NhLWNhcmQtdGl0bGUtaGVhZGVyPlxyXG4gICAgPC9zYS1jYXJkPiJdfQ==
|
|
@@ -10,7 +10,7 @@ import { MatInputModule } from '@angular/material/input';
|
|
|
10
10
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
11
11
|
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
12
12
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
13
|
-
import {
|
|
13
|
+
import { MatNativeDateModule } from '@angular/material/core';
|
|
14
14
|
import * as i0 from "@angular/core";
|
|
15
15
|
import * as i1 from "@angular/forms";
|
|
16
16
|
import * as i2 from "@angular/material/button";
|
|
@@ -250,11 +250,11 @@ export class QueryBuilderComponent {
|
|
|
250
250
|
this.queryChange.emit(this.model);
|
|
251
251
|
}
|
|
252
252
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: QueryBuilderComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
253
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: QueryBuilderComponent, isStandalone: true, selector: "sa-query-builder", inputs: { config: "config" }, outputs: { queryChange: "queryChange" }, providers: [provideNativeDateAdapter()], ngImport: i0, template: "<div class=\"sa-query-builder\">\r\n <form [formGroup]=\"form\">\r\n <div class=\"query-builder-header\">\r\n <div class=\"where-label\">Where</div>\r\n </div>\r\n\r\n <div class=\"query-builder-body\">\r\n <div class=\"rules-container\" formArrayName=\"rules\">\r\n @for (rule of rulesArray.controls; track $index) {\r\n <div class=\"rule-row\" [formGroupName]=\"$index\">\r\n <!-- Condition selector (And/Or) -->\r\n @if ($index > 0) {\r\n <div class=\"condition-selector\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-select [value]=\"getRowCondition($index)\" (selectionChange)=\"setRowCondition($index, $event.value)\">\r\n <mat-option value=\"and\">And</mat-option>\r\n <mat-option value=\"or\">Or</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n } @else {\r\n <div class=\"condition-placeholder\"></div>\r\n }\r\n \r\n <!-- Field selection -->\r\n <mat-form-field class=\"field-select\">\r\n <mat-label>Select a filter</mat-label>\r\n <mat-select formControlName=\"field\" (selectionChange)=\"onFieldChange($index, $event.value)\">\r\n @for (field of config.fields; track field.key) {\r\n <mat-option [value]=\"field.key\">\r\n {{ field.label }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <!-- Operator selection -->\r\n <mat-form-field class=\"operator-select\">\r\n <mat-select formControlName=\"operator\" (selectionChange)=\"onOperatorChange($index, $event.value, rule.value.field)\">\r\n @for (op of getOperatorsForField(rule.value.field); track op.value) {\r\n <mat-option [value]=\"op.value\">\r\n {{ op.label }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <!-- Value input based on field type -->\r\n @switch (getFieldType(rule.value.field)) {\r\n @case ('string') {\r\n <mat-form-field class=\"value-input\">\r\n <input matInput formControlName=\"value\" placeholder=\"Enter a value...\">\r\n </mat-form-field>\r\n }\r\n @case ('number') {\r\n <mat-form-field class=\"value-input\">\r\n <input matInput type=\"number\" formControlName=\"value\" placeholder=\"Enter a value...\">\r\n </mat-form-field>\r\n }\r\n @case ('date') {\r\n @if (!isOperatorBetween($index)) {\r\n <mat-form-field class=\"value-input\">\r\n <input matInput type=\"date\" [matDatepicker]=\"picker\" formControlName=\"value\" (click)=\"picker.open()\">\r\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n </mat-form-field>\r\n } @else {\r\n <div class=\"date-range-container\">\r\n <mat-form-field class=\"value-input start-date\">\r\n <mat-label>Start date</mat-label>\r\n <input matInput [matDatepicker]=\"startPicker\" formControlName=\"valueStart\" (click)=\"startPicker.open()\" (dateChange)=\"onStartDateChange($index, $event)\">\r\n <mat-datepicker-toggle matIconSuffix [for]=\"startPicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #startPicker></mat-datepicker>\r\n </mat-form-field>\r\n <mat-form-field class=\"value-input end-date\">\r\n <mat-label>End date</mat-label>\r\n <input matInput [matDatepicker]=\"endPicker\" formControlName=\"valueEnd\" (click)=\"endPicker.open()\" [min]=\"getMinEndDate($index)\">\r\n <mat-datepicker-toggle matIconSuffix [for]=\"endPicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #endPicker [startAt]=\"getMinEndDate($index)\"></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n }\r\n }\r\n @case ('boolean') {\r\n <mat-form-field class=\"value-input\">\r\n <mat-select formControlName=\"value\">\r\n <mat-option [value]=\"true\">True</mat-option>\r\n <mat-option [value]=\"false\">False</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n @case ('select') {\r\n <mat-form-field class=\"value-input\">\r\n <mat-select formControlName=\"value\">\r\n @for (option of getFieldOptions(rule.value.field); track option.value) {\r\n <mat-option [value]=\"option.value\">\r\n {{ option.label }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n @default {\r\n <mat-form-field class=\"value-input\">\r\n <input matInput formControlName=\"value\" placeholder=\"Enter a value...\">\r\n </mat-form-field>\r\n }\r\n }\r\n\r\n <!-- Remove rule button -->\r\n <button mat-icon-button class=\"remove-rule-btn\" \r\n (click)=\"removeRule($index)\" \r\n [disabled]=\"rulesArray.length === 1\"\r\n matTooltip=\"Remove filter\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n\r\n <!-- Add rule button -->\r\n <div class=\"add-rule-container\">\r\n <button mat-button color=\"primary\" class=\"add-rule-btn\" (click)=\"addRule()\">\r\n <mat-icon>add</mat-icon> Add a filter\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"query-builder-footer\">\r\n <button mat-button class=\"reset-btn\" (click)=\"resetQuery()\">Reset</button>\r\n <button mat-raised-button color=\"primary\" class=\"apply-btn\" (click)=\"applyQuery()\">Apply filters</button>\r\n </div>\r\n </form>\r\n</div>\r\n", styles: [".sa-query-builder{display:flex;flex-direction:column;width:100%;background-color:#fff;border-radius:8px;padding:16px;box-sizing:border-box}.sa-query-builder .query-builder-header{display:flex;align-items:center;margin-bottom:16px;height:36px;padding-left:128px}.sa-query-builder .query-builder-header .where-label{font-size:16px;font-weight:500;color:#000000de;margin-right:16px;line-height:36px}.sa-query-builder .query-builder-body .rules-container{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.sa-query-builder .query-builder-body .rules-container .rule-row{display:flex;align-items:center;gap:12px;width:100%}.sa-query-builder .query-builder-body .rules-container .rule-row .condition-selector{width:120px;min-width:120px;margin-right:8px}.sa-query-builder .query-builder-body .rules-container .rule-row .condition-selector .mat-form-field{width:100%}.sa-query-builder .query-builder-body .rules-container .rule-row .condition-selector ::ng-deep .mat-form-field-wrapper{padding-bottom:0;margin:0}.sa-query-builder .query-builder-body .rules-container .rule-row .condition-selector ::ng-deep .mat-form-field-infix{padding:.5em 0;border-top:0}.sa-query-builder .query-builder-body .rules-container .rule-row .condition-placeholder{width:120px;min-width:120px;margin-right:8px}.sa-query-builder .query-builder-body .rules-container .rule-row .field-select{flex:2;min-width:180px}.sa-query-builder .query-builder-body .rules-container .rule-row .operator-select{flex:1;min-width:100px}.sa-query-builder .query-builder-body .rules-container .rule-row .value-input{flex:2;min-width:180px}.sa-query-builder .query-builder-body .rules-container .rule-row .date-range-container{display:flex;flex:2;gap:8px}.sa-query-builder .query-builder-body .rules-container .rule-row .date-range-container .start-date,.sa-query-builder .query-builder-body .rules-container .rule-row .date-range-container .end-date{flex:1;min-width:140px}.sa-query-builder .query-builder-body .rules-container .rule-row .remove-rule-btn{color:#0000008a}.sa-query-builder .query-builder-body .add-rule-container{margin-bottom:16px}.sa-query-builder .query-builder-body .add-rule-container .add-rule-btn{display:flex;align-items:center;gap:4px;color:#673ab7;font-weight:500}.sa-query-builder .query-builder-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:16px}.sa-query-builder .query-builder-footer .reset-btn{color:#0000008a}.sa-query-builder .query-builder-footer .apply-btn{background-color:#673ab7;color:#fff}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}::ng-deep .mat-mdc-form-field-infix{min-height:40px}::ng-deep .mat-mdc-select-panel{max-height:300px}::ng-deep .mat-mdc-option{font-size:14px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i9.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i9.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i9.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }] }); }
|
|
253
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: QueryBuilderComponent, isStandalone: true, selector: "sa-query-builder", inputs: { config: "config" }, outputs: { queryChange: "queryChange" }, providers: [MatNativeDateModule], ngImport: i0, template: "<div class=\"sa-query-builder\">\r\n <form [formGroup]=\"form\">\r\n <div class=\"query-builder-header\">\r\n <div class=\"where-label\">Where</div>\r\n </div>\r\n\r\n <div class=\"query-builder-body\">\r\n <div class=\"rules-container\" formArrayName=\"rules\">\r\n @for (rule of rulesArray.controls; track $index) {\r\n <div class=\"rule-row\" [formGroupName]=\"$index\">\r\n <!-- Condition selector (And/Or) -->\r\n @if ($index > 0) {\r\n <div class=\"condition-selector\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-select [value]=\"getRowCondition($index)\" (selectionChange)=\"setRowCondition($index, $event.value)\">\r\n <mat-option value=\"and\">And</mat-option>\r\n <mat-option value=\"or\">Or</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n } @else {\r\n <div class=\"condition-placeholder\"></div>\r\n }\r\n \r\n <!-- Field selection -->\r\n <mat-form-field class=\"field-select\">\r\n <mat-label>Select a filter</mat-label>\r\n <mat-select formControlName=\"field\" (selectionChange)=\"onFieldChange($index, $event.value)\">\r\n @for (field of config.fields; track field.key) {\r\n <mat-option [value]=\"field.key\">\r\n {{ field.label }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <!-- Operator selection -->\r\n <mat-form-field class=\"operator-select\">\r\n <mat-select formControlName=\"operator\" (selectionChange)=\"onOperatorChange($index, $event.value, rule.value.field)\">\r\n @for (op of getOperatorsForField(rule.value.field); track op.value) {\r\n <mat-option [value]=\"op.value\">\r\n {{ op.label }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <!-- Value input based on field type -->\r\n @switch (getFieldType(rule.value.field)) {\r\n @case ('string') {\r\n <mat-form-field class=\"value-input\">\r\n <input matInput formControlName=\"value\" placeholder=\"Enter a value...\">\r\n </mat-form-field>\r\n }\r\n @case ('number') {\r\n <mat-form-field class=\"value-input\">\r\n <input matInput type=\"number\" formControlName=\"value\" placeholder=\"Enter a value...\">\r\n </mat-form-field>\r\n }\r\n @case ('date') {\r\n @if (!isOperatorBetween($index)) {\r\n <mat-form-field class=\"value-input\">\r\n <input matInput type=\"date\" [matDatepicker]=\"picker\" formControlName=\"value\" (click)=\"picker.open()\">\r\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n </mat-form-field>\r\n } @else {\r\n <div class=\"date-range-container\">\r\n <mat-form-field class=\"value-input start-date\">\r\n <mat-label>Start date</mat-label>\r\n <input matInput [matDatepicker]=\"startPicker\" formControlName=\"valueStart\" (click)=\"startPicker.open()\" (dateChange)=\"onStartDateChange($index, $event)\">\r\n <mat-datepicker-toggle matIconSuffix [for]=\"startPicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #startPicker></mat-datepicker>\r\n </mat-form-field>\r\n <mat-form-field class=\"value-input end-date\">\r\n <mat-label>End date</mat-label>\r\n <input matInput [matDatepicker]=\"endPicker\" formControlName=\"valueEnd\" (click)=\"endPicker.open()\" [min]=\"getMinEndDate($index)\">\r\n <mat-datepicker-toggle matIconSuffix [for]=\"endPicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #endPicker [startAt]=\"getMinEndDate($index)\"></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n }\r\n }\r\n @case ('boolean') {\r\n <mat-form-field class=\"value-input\">\r\n <mat-select formControlName=\"value\">\r\n <mat-option [value]=\"true\">True</mat-option>\r\n <mat-option [value]=\"false\">False</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n @case ('select') {\r\n <mat-form-field class=\"value-input\">\r\n <mat-select formControlName=\"value\">\r\n @for (option of getFieldOptions(rule.value.field); track option.value) {\r\n <mat-option [value]=\"option.value\">\r\n {{ option.label }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n @default {\r\n <mat-form-field class=\"value-input\">\r\n <input matInput formControlName=\"value\" placeholder=\"Enter a value...\">\r\n </mat-form-field>\r\n }\r\n }\r\n\r\n <!-- Remove rule button -->\r\n <button mat-icon-button class=\"remove-rule-btn\" \r\n (click)=\"removeRule($index)\" \r\n [disabled]=\"rulesArray.length === 1\"\r\n matTooltip=\"Remove filter\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n\r\n <!-- Add rule button -->\r\n <div class=\"add-rule-container\">\r\n <button mat-button color=\"primary\" class=\"add-rule-btn\" (click)=\"addRule()\">\r\n <mat-icon>add</mat-icon> Add a filter\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"query-builder-footer\">\r\n <button mat-button class=\"reset-btn\" (click)=\"resetQuery()\">Reset</button>\r\n <button mat-raised-button color=\"primary\" class=\"apply-btn\" (click)=\"applyQuery()\">Apply filters</button>\r\n </div>\r\n </form>\r\n</div>\r\n", styles: [".sa-query-builder{display:flex;flex-direction:column;width:100%;background-color:#fff;border-radius:8px;padding:16px;box-sizing:border-box}.sa-query-builder .query-builder-header{display:flex;align-items:center;margin-bottom:16px;height:36px;padding-left:128px}.sa-query-builder .query-builder-header .where-label{font-size:16px;font-weight:500;color:#000000de;margin-right:16px;line-height:36px}.sa-query-builder .query-builder-body .rules-container{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.sa-query-builder .query-builder-body .rules-container .rule-row{display:flex;align-items:center;gap:12px;width:100%}.sa-query-builder .query-builder-body .rules-container .rule-row .condition-selector{width:120px;min-width:120px;margin-right:8px}.sa-query-builder .query-builder-body .rules-container .rule-row .condition-selector .mat-form-field{width:100%}.sa-query-builder .query-builder-body .rules-container .rule-row .condition-selector ::ng-deep .mat-form-field-wrapper{padding-bottom:0;margin:0}.sa-query-builder .query-builder-body .rules-container .rule-row .condition-selector ::ng-deep .mat-form-field-infix{padding:.5em 0;border-top:0}.sa-query-builder .query-builder-body .rules-container .rule-row .condition-placeholder{width:120px;min-width:120px;margin-right:8px}.sa-query-builder .query-builder-body .rules-container .rule-row .field-select{flex:2;min-width:180px}.sa-query-builder .query-builder-body .rules-container .rule-row .operator-select{flex:1;min-width:100px}.sa-query-builder .query-builder-body .rules-container .rule-row .value-input{flex:2;min-width:180px}.sa-query-builder .query-builder-body .rules-container .rule-row .date-range-container{display:flex;flex:2;gap:8px}.sa-query-builder .query-builder-body .rules-container .rule-row .date-range-container .start-date,.sa-query-builder .query-builder-body .rules-container .rule-row .date-range-container .end-date{flex:1;min-width:140px}.sa-query-builder .query-builder-body .rules-container .rule-row .remove-rule-btn{color:#0000008a}.sa-query-builder .query-builder-body .add-rule-container{margin-bottom:16px}.sa-query-builder .query-builder-body .add-rule-container .add-rule-btn{display:flex;align-items:center;gap:4px;color:#673ab7;font-weight:500}.sa-query-builder .query-builder-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:16px}.sa-query-builder .query-builder-footer .reset-btn{color:#0000008a}.sa-query-builder .query-builder-footer .apply-btn{background-color:#673ab7;color:#fff}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}::ng-deep .mat-mdc-form-field-infix{min-height:40px}::ng-deep .mat-mdc-select-panel{max-height:300px}::ng-deep .mat-mdc-option{font-size:14px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i9.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i9.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i9.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatNativeDateModule }] }); }
|
|
254
254
|
}
|
|
255
255
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: QueryBuilderComponent, decorators: [{
|
|
256
256
|
type: Component,
|
|
257
|
-
args: [{ selector: 'sa-query-builder', standalone: true, providers: [
|
|
257
|
+
args: [{ selector: 'sa-query-builder', standalone: true, providers: [MatNativeDateModule], imports: [
|
|
258
258
|
CommonModule,
|
|
259
259
|
ReactiveFormsModule,
|
|
260
260
|
FormlyModule,
|
|
@@ -265,11 +265,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
265
265
|
MatInputModule,
|
|
266
266
|
MatTooltipModule,
|
|
267
267
|
MatButtonToggleModule,
|
|
268
|
-
MatDatepickerModule
|
|
268
|
+
MatDatepickerModule,
|
|
269
|
+
MatNativeDateModule
|
|
269
270
|
], template: "<div class=\"sa-query-builder\">\r\n <form [formGroup]=\"form\">\r\n <div class=\"query-builder-header\">\r\n <div class=\"where-label\">Where</div>\r\n </div>\r\n\r\n <div class=\"query-builder-body\">\r\n <div class=\"rules-container\" formArrayName=\"rules\">\r\n @for (rule of rulesArray.controls; track $index) {\r\n <div class=\"rule-row\" [formGroupName]=\"$index\">\r\n <!-- Condition selector (And/Or) -->\r\n @if ($index > 0) {\r\n <div class=\"condition-selector\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-select [value]=\"getRowCondition($index)\" (selectionChange)=\"setRowCondition($index, $event.value)\">\r\n <mat-option value=\"and\">And</mat-option>\r\n <mat-option value=\"or\">Or</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n } @else {\r\n <div class=\"condition-placeholder\"></div>\r\n }\r\n \r\n <!-- Field selection -->\r\n <mat-form-field class=\"field-select\">\r\n <mat-label>Select a filter</mat-label>\r\n <mat-select formControlName=\"field\" (selectionChange)=\"onFieldChange($index, $event.value)\">\r\n @for (field of config.fields; track field.key) {\r\n <mat-option [value]=\"field.key\">\r\n {{ field.label }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <!-- Operator selection -->\r\n <mat-form-field class=\"operator-select\">\r\n <mat-select formControlName=\"operator\" (selectionChange)=\"onOperatorChange($index, $event.value, rule.value.field)\">\r\n @for (op of getOperatorsForField(rule.value.field); track op.value) {\r\n <mat-option [value]=\"op.value\">\r\n {{ op.label }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <!-- Value input based on field type -->\r\n @switch (getFieldType(rule.value.field)) {\r\n @case ('string') {\r\n <mat-form-field class=\"value-input\">\r\n <input matInput formControlName=\"value\" placeholder=\"Enter a value...\">\r\n </mat-form-field>\r\n }\r\n @case ('number') {\r\n <mat-form-field class=\"value-input\">\r\n <input matInput type=\"number\" formControlName=\"value\" placeholder=\"Enter a value...\">\r\n </mat-form-field>\r\n }\r\n @case ('date') {\r\n @if (!isOperatorBetween($index)) {\r\n <mat-form-field class=\"value-input\">\r\n <input matInput type=\"date\" [matDatepicker]=\"picker\" formControlName=\"value\" (click)=\"picker.open()\">\r\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n </mat-form-field>\r\n } @else {\r\n <div class=\"date-range-container\">\r\n <mat-form-field class=\"value-input start-date\">\r\n <mat-label>Start date</mat-label>\r\n <input matInput [matDatepicker]=\"startPicker\" formControlName=\"valueStart\" (click)=\"startPicker.open()\" (dateChange)=\"onStartDateChange($index, $event)\">\r\n <mat-datepicker-toggle matIconSuffix [for]=\"startPicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #startPicker></mat-datepicker>\r\n </mat-form-field>\r\n <mat-form-field class=\"value-input end-date\">\r\n <mat-label>End date</mat-label>\r\n <input matInput [matDatepicker]=\"endPicker\" formControlName=\"valueEnd\" (click)=\"endPicker.open()\" [min]=\"getMinEndDate($index)\">\r\n <mat-datepicker-toggle matIconSuffix [for]=\"endPicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #endPicker [startAt]=\"getMinEndDate($index)\"></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n }\r\n }\r\n @case ('boolean') {\r\n <mat-form-field class=\"value-input\">\r\n <mat-select formControlName=\"value\">\r\n <mat-option [value]=\"true\">True</mat-option>\r\n <mat-option [value]=\"false\">False</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n @case ('select') {\r\n <mat-form-field class=\"value-input\">\r\n <mat-select formControlName=\"value\">\r\n @for (option of getFieldOptions(rule.value.field); track option.value) {\r\n <mat-option [value]=\"option.value\">\r\n {{ option.label }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n @default {\r\n <mat-form-field class=\"value-input\">\r\n <input matInput formControlName=\"value\" placeholder=\"Enter a value...\">\r\n </mat-form-field>\r\n }\r\n }\r\n\r\n <!-- Remove rule button -->\r\n <button mat-icon-button class=\"remove-rule-btn\" \r\n (click)=\"removeRule($index)\" \r\n [disabled]=\"rulesArray.length === 1\"\r\n matTooltip=\"Remove filter\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n\r\n <!-- Add rule button -->\r\n <div class=\"add-rule-container\">\r\n <button mat-button color=\"primary\" class=\"add-rule-btn\" (click)=\"addRule()\">\r\n <mat-icon>add</mat-icon> Add a filter\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"query-builder-footer\">\r\n <button mat-button class=\"reset-btn\" (click)=\"resetQuery()\">Reset</button>\r\n <button mat-raised-button color=\"primary\" class=\"apply-btn\" (click)=\"applyQuery()\">Apply filters</button>\r\n </div>\r\n </form>\r\n</div>\r\n", styles: [".sa-query-builder{display:flex;flex-direction:column;width:100%;background-color:#fff;border-radius:8px;padding:16px;box-sizing:border-box}.sa-query-builder .query-builder-header{display:flex;align-items:center;margin-bottom:16px;height:36px;padding-left:128px}.sa-query-builder .query-builder-header .where-label{font-size:16px;font-weight:500;color:#000000de;margin-right:16px;line-height:36px}.sa-query-builder .query-builder-body .rules-container{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.sa-query-builder .query-builder-body .rules-container .rule-row{display:flex;align-items:center;gap:12px;width:100%}.sa-query-builder .query-builder-body .rules-container .rule-row .condition-selector{width:120px;min-width:120px;margin-right:8px}.sa-query-builder .query-builder-body .rules-container .rule-row .condition-selector .mat-form-field{width:100%}.sa-query-builder .query-builder-body .rules-container .rule-row .condition-selector ::ng-deep .mat-form-field-wrapper{padding-bottom:0;margin:0}.sa-query-builder .query-builder-body .rules-container .rule-row .condition-selector ::ng-deep .mat-form-field-infix{padding:.5em 0;border-top:0}.sa-query-builder .query-builder-body .rules-container .rule-row .condition-placeholder{width:120px;min-width:120px;margin-right:8px}.sa-query-builder .query-builder-body .rules-container .rule-row .field-select{flex:2;min-width:180px}.sa-query-builder .query-builder-body .rules-container .rule-row .operator-select{flex:1;min-width:100px}.sa-query-builder .query-builder-body .rules-container .rule-row .value-input{flex:2;min-width:180px}.sa-query-builder .query-builder-body .rules-container .rule-row .date-range-container{display:flex;flex:2;gap:8px}.sa-query-builder .query-builder-body .rules-container .rule-row .date-range-container .start-date,.sa-query-builder .query-builder-body .rules-container .rule-row .date-range-container .end-date{flex:1;min-width:140px}.sa-query-builder .query-builder-body .rules-container .rule-row .remove-rule-btn{color:#0000008a}.sa-query-builder .query-builder-body .add-rule-container{margin-bottom:16px}.sa-query-builder .query-builder-body .add-rule-container .add-rule-btn{display:flex;align-items:center;gap:4px;color:#673ab7;font-weight:500}.sa-query-builder .query-builder-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:16px}.sa-query-builder .query-builder-footer .reset-btn{color:#0000008a}.sa-query-builder .query-builder-footer .apply-btn{background-color:#673ab7;color:#fff}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}::ng-deep .mat-mdc-form-field-infix{min-height:40px}::ng-deep .mat-mdc-select-panel{max-height:300px}::ng-deep .mat-mdc-option{font-size:14px}\n"] }]
|
|
270
271
|
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { config: [{
|
|
271
272
|
type: Input
|
|
272
273
|
}], queryChange: [{
|
|
273
274
|
type: Output
|
|
274
275
|
}] } });
|
|
275
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWtELG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckcsT0FBTyxFQUFxQixZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7O0FB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QUFDLFdBQzlCO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3FCQUNwQjtnRkFHUSxNQUFNO3NCQUFkLEtBQUs7Z0JBZUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seU1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcclxuaW1wb3J0IHtNYXREYXRlcGlja2VyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcclxuaW1wb3J0IHsgcHJvdmlkZU5hdGl2ZURhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBRdWVyeUZpZWxkIHtcclxuICBrZXk6IHN0cmluZztcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHR5cGU6IHN0cmluZztcclxuICBvcHRpb25zPzogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogYW55IH1bXTtcclxuICBvcGVyYXRvcnM/OiBzdHJpbmdbXTtcclxuICBkZWZhdWx0T3BlcmF0b3I/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlPcGVyYXRvciB7XHJcbiAgdmFsdWU6IHN0cmluZztcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHR5cGVzPzogc3RyaW5nW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlDb25maWcge1xyXG4gIGZpZWxkczogUXVlcnlGaWVsZFtdO1xyXG4gIG9wZXJhdG9yczogUXVlcnlPcGVyYXRvcltdO1xyXG4gIGRlZmF1bHRDb25kaXRpb24/OiAnYW5kJyB8ICdvcic7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlSdWxlIHtcclxuICBmaWVsZDogc3RyaW5nO1xyXG4gIG9wZXJhdG9yOiBzdHJpbmc7XHJcbiAgdmFsdWU6IGFueTtcclxuICBjb25kaXRpb24/OiAnYW5kJyB8ICdvcic7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlHcm91cCB7XHJcbiAgY29uZGl0aW9uOiAnYW5kJyB8ICdvcic7XHJcbiAgcnVsZXM6IChRdWVyeVJ1bGUgfCBRdWVyeUdyb3VwKVtdO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhLXF1ZXJ5LWJ1aWxkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVyeS1idWlsZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9xdWVyeS1idWlsZGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBwcm92aWRlcnM6IFtwcm92aWRlTmF0aXZlRGF0ZUFkYXB0ZXIoKV0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEZvcm1seU1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Ub2dnbGVNb2R1bGUsXHJcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUXVlcnlCdWlsZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBjb25maWc6IFF1ZXJ5Q29uZmlnID0ge1xyXG4gICAgZmllbGRzOiBbXSxcclxuICAgIG9wZXJhdG9yczogW1xyXG4gICAgICB7IHZhbHVlOiAnPScsIGxhYmVsOiAnPScgfSxcclxuICAgICAgeyB2YWx1ZTogJyE9JywgbGFiZWw6ICchPScgfSxcclxuICAgICAgeyB2YWx1ZTogJz4nLCBsYWJlbDogJz4nIH0sXHJcbiAgICAgIHsgdmFsdWU6ICc8JywgbGFiZWw6ICc8JyB9LFxyXG4gICAgICB7IHZhbHVlOiAnPj0nLCBsYWJlbDogJz49JyB9LFxyXG4gICAgICB7IHZhbHVlOiAnPD0nLCBsYWJlbDogJzw9JyB9LFxyXG4gICAgICB7IHZhbHVlOiAnY29udGFpbnMnLCBsYWJlbDogJ2NvbnRhaW5zJyB9LFxyXG4gICAgICB7IHZhbHVlOiAnYmV0d2VlbicsIGxhYmVsOiAnYmV0d2VlbicgfVxyXG4gICAgXSxcclxuICAgIGRlZmF1bHRDb25kaXRpb246ICdhbmQnXHJcbiAgfTtcclxuXHJcbiAgQE91dHB1dCgpIHF1ZXJ5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxRdWVyeUdyb3VwPigpO1xyXG5cclxuICBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgbW9kZWw6IFF1ZXJ5R3JvdXA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgY29uZGl0aW9uOiBbJ2FuZCddLFxyXG4gICAgICBydWxlczogdGhpcy5mYi5hcnJheShbXSlcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubW9kZWwgPSB7XHJcbiAgICAgIGNvbmRpdGlvbjogJ2FuZCcsXHJcbiAgICAgIHJ1bGVzOiBbXVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0aWFsaXplRm9ybSgpO1xyXG4gICAgdGhpcy5hZGRSdWxlKCk7XHJcblxyXG4gICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICB0aGlzLm1vZGVsID0gdGhpcy50cmFuc2Zvcm1Gb3JtVG9Nb2RlbCh2YWx1ZSk7XHJcbiAgICAgIHRoaXMucXVlcnlDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJ1bGVzQXJyYXkoKTogRm9ybUFycmF5IHtcclxuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdydWxlcycpIGFzIEZvcm1BcnJheTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVGb3JtKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGNvbmRpdGlvbjogW3RoaXMuY29uZmlnLmRlZmF1bHRDb25kaXRpb24gfHwgJ2FuZCddLFxyXG4gICAgICBydWxlczogdGhpcy5mYi5hcnJheShbXSlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkUnVsZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZy5maWVsZHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBkZWZhdWx0RmllbGQgPSB0aGlzLmNvbmZpZy5maWVsZHNbMF07XHJcbiAgICBjb25zdCBkZWZhdWx0T3BlcmF0b3IgPSBkZWZhdWx0RmllbGQuZGVmYXVsdE9wZXJhdG9yIHx8IHRoaXMuZ2V0T3BlcmF0b3JzRm9yVHlwZShkZWZhdWx0RmllbGQudHlwZSlbMF0/LnZhbHVlIHx8ICc9JztcclxuXHJcbiAgICBjb25zdCBydWxlR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgZmllbGQ6IFtkZWZhdWx0RmllbGQua2V5XSxcclxuICAgICAgb3BlcmF0b3I6IFtkZWZhdWx0T3BlcmF0b3JdLFxyXG4gICAgICB2YWx1ZTogW251bGxdLFxyXG4gICAgICBjb25kaXRpb246IFsnYW5kJ11cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucnVsZXNBcnJheS5wdXNoKHJ1bGVHcm91cCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVSdWxlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMucnVsZXNBcnJheS5yZW1vdmVBdChpbmRleCk7XHJcbiAgfVxyXG5cclxuICBnZXRGaWVsZEJ5S2V5KGtleTogc3RyaW5nKTogUXVlcnlGaWVsZCB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcuZmllbGRzLmZpbmQoZmllbGQgPT4gZmllbGQua2V5ID09PSBrZXkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3BlcmF0b3JzRm9yVHlwZSh0eXBlOiBzdHJpbmcpOiBRdWVyeU9wZXJhdG9yW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLm9wZXJhdG9ycy5maWx0ZXIob3AgPT4gIW9wLnR5cGVzIHx8IG9wLnR5cGVzLmluY2x1ZGVzKHR5cGUpKTtcclxuICB9XHJcblxyXG4gIGdldE9wZXJhdG9yc0ZvckZpZWxkKGZpZWxkS2V5OiBzdHJpbmcpOiBRdWVyeU9wZXJhdG9yW10ge1xyXG4gICAgY29uc3QgZmllbGQgPSB0aGlzLmdldEZpZWxkQnlLZXkoZmllbGRLZXkpO1xyXG4gICAgaWYgKCFmaWVsZCkgcmV0dXJuIFtdO1xyXG5cclxuICAgIGlmIChmaWVsZC5vcGVyYXRvcnMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLm9wZXJhdG9ycy5maWx0ZXIob3AgPT4gZmllbGQub3BlcmF0b3JzPy5pbmNsdWRlcyhvcC52YWx1ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmdldE9wZXJhdG9yc0ZvclR5cGUoZmllbGQudHlwZSk7XHJcbiAgfVxyXG5cclxuICBnZXRGaWVsZFR5cGUoZmllbGRLZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBmaWVsZCA9IHRoaXMuZ2V0RmllbGRCeUtleShmaWVsZEtleSk7XHJcbiAgICByZXR1cm4gZmllbGQgPyBmaWVsZC50eXBlIDogJ3N0cmluZyc7XHJcbiAgfVxyXG4gIFxyXG4gIGlzT3BlcmF0b3JCZXR3ZWVuKGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHJ1bGVHcm91cCA9IHRoaXMucnVsZXNBcnJheS5hdChpbmRleCkgYXMgRm9ybUdyb3VwO1xyXG4gICAgcmV0dXJuIHJ1bGVHcm91cD8uZ2V0KCdvcGVyYXRvcicpPy52YWx1ZSA9PT0gJ2JldHdlZW4nO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmllbGRPcHRpb25zKGZpZWxkS2V5OiBzdHJpbmcpOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdIHtcclxuICAgIGNvbnN0IGZpZWxkID0gdGhpcy5nZXRGaWVsZEJ5S2V5KGZpZWxkS2V5KTtcclxuICAgIHJldHVybiBmaWVsZD8ub3B0aW9ucyB8fCBbXTtcclxuICB9XHJcblxyXG4gIG9uRmllbGRDaGFuZ2UoaW5kZXg6IG51bWJlciwgZmllbGRLZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgcnVsZUdyb3VwID0gdGhpcy5ydWxlc0FycmF5LmF0KGluZGV4KSBhcyBGb3JtR3JvdXA7XHJcbiAgICBjb25zdCBmaWVsZCA9IHRoaXMuZ2V0RmllbGRCeUtleShmaWVsZEtleSk7XHJcbiAgICBcclxuICAgIGlmIChmaWVsZCkge1xyXG4gICAgICBjb25zdCBvcGVyYXRvcnMgPSB0aGlzLmdldE9wZXJhdG9yc0ZvckZpZWxkKGZpZWxkS2V5KTtcclxuICAgICAgY29uc3QgZGVmYXVsdE9wZXJhdG9yID0gZmllbGQuZGVmYXVsdE9wZXJhdG9yIHx8IChvcGVyYXRvcnMubGVuZ3RoID4gMCA/IG9wZXJhdG9yc1swXS52YWx1ZSA6ICc9Jyk7XHJcbiAgICAgIFxyXG4gICAgICBydWxlR3JvdXAuZ2V0KCdvcGVyYXRvcicpPy5zZXRWYWx1ZShkZWZhdWx0T3BlcmF0b3IpO1xyXG4gICAgICBydWxlR3JvdXAuZ2V0KCd2YWx1ZScpPy5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgXHJcbiAgICAgIC8vIFJlc2V0IHJhbmdlIHZhbHVlcyBpZiB0aGV5IGV4aXN0XHJcbiAgICAgIGlmIChydWxlR3JvdXAuZ2V0KCd2YWx1ZVN0YXJ0JykpIHtcclxuICAgICAgICBydWxlR3JvdXAuZ2V0KCd2YWx1ZVN0YXJ0Jyk/LnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChydWxlR3JvdXAuZ2V0KCd2YWx1ZUVuZCcpKSB7XHJcbiAgICAgICAgcnVsZUdyb3VwLmdldCgndmFsdWVFbmQnKT8uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIC8vIEFkZCByYW5nZSBmb3JtIGNvbnRyb2xzIGlmIG5lZWRlZFxyXG4gICAgICB0aGlzLnVwZGF0ZUZvcm1Db250cm9sc0Zvck9wZXJhdG9yKGluZGV4LCBkZWZhdWx0T3BlcmF0b3IsIGZpZWxkLnR5cGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25PcGVyYXRvckNoYW5nZShpbmRleDogbnVtYmVyLCBvcGVyYXRvcjogc3RyaW5nLCBmaWVsZEtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBmaWVsZFR5cGUgPSB0aGlzLmdldEZpZWxkVHlwZShmaWVsZEtleSk7XHJcbiAgICB0aGlzLnVwZGF0ZUZvcm1Db250cm9sc0Zvck9wZXJhdG9yKGluZGV4LCBvcGVyYXRvciwgZmllbGRUeXBlKTtcclxuICAgIFxyXG4gICAgLy8gUmVzZXQgdmFsdWVzIHdoZW4gb3BlcmF0b3IgY2hhbmdlc1xyXG4gICAgY29uc3QgcnVsZUdyb3VwID0gdGhpcy5ydWxlc0FycmF5LmF0KGluZGV4KSBhcyBGb3JtR3JvdXA7XHJcbiAgICBydWxlR3JvdXAuZ2V0KCd2YWx1ZScpPy5zZXRWYWx1ZShudWxsKTtcclxuICAgIGlmIChydWxlR3JvdXAuZ2V0KCd2YWx1ZVN0YXJ0JykpIHtcclxuICAgICAgcnVsZUdyb3VwLmdldCgndmFsdWVTdGFydCcpPy5zZXRWYWx1ZShudWxsKTtcclxuICAgIH1cclxuICAgIGlmIChydWxlR3JvdXAuZ2V0KCd2YWx1ZUVuZCcpKSB7XHJcbiAgICAgIHJ1bGVHcm91cC5nZXQoJ3ZhbHVlRW5kJyk/LnNldFZhbHVlKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBtaW5pbXVtIGFsbG93ZWQgZGF0ZSBmb3IgdGhlIGVuZCBkYXRlIHBpY2tlciBiYXNlZCBvbiB0aGUgc2VsZWN0ZWQgc3RhcnQgZGF0ZVxyXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIHJ1bGUgcm93XHJcbiAgICogQHJldHVybnMgVGhlIG1pbmltdW0gZGF0ZSBmb3IgdGhlIGVuZCBkYXRlIHBpY2tlciAodGhlIHN0YXJ0IGRhdGUgb3IgdG9kYXkgaWYgbm8gc3RhcnQgZGF0ZSlcclxuICAgKi9cclxuICBnZXRNaW5FbmREYXRlKGluZGV4OiBudW1iZXIpOiBEYXRlIHwgbnVsbCB7XHJcbiAgICBjb25zdCBydWxlR3JvdXAgPSB0aGlzLnJ1bGVzQXJyYXkuYXQoaW5kZXgpIGFzIEZvcm1Hcm91cDtcclxuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHJ1bGVHcm91cC5nZXQoJ3ZhbHVlU3RhcnQnKT8udmFsdWU7XHJcbiAgICBcclxuICAgIC8vIElmIHN0YXJ0IGRhdGUgaXMgc2VsZWN0ZWQsIHVzZSBpdCBhcyBtaW5pbXVtIGZvciBlbmQgZGF0ZVxyXG4gICAgLy8gT3RoZXJ3aXNlIHVzZSB0b2RheSdzIGRhdGVcclxuICAgIHJldHVybiBzdGFydERhdGUgPyBuZXcgRGF0ZShzdGFydERhdGUpIDogbmV3IERhdGUoKTtcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBjaGFuZ2VzIHRvIHRoZSBzdGFydCBkYXRlXHJcbiAgICogQHBhcmFtIGluZGV4IFRoZSBpbmRleCBvZiB0aGUgcnVsZSByb3dcclxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIGRhdGUgY2hhbmdlIGV2ZW50XHJcbiAgICovXHJcbiAgb25TdGFydERhdGVDaGFuZ2UoaW5kZXg6IG51bWJlciwgZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgcnVsZUdyb3VwID0gdGhpcy5ydWxlc0FycmF5LmF0KGluZGV4KSBhcyBGb3JtR3JvdXA7XHJcbiAgICBjb25zdCBlbmREYXRlID0gcnVsZUdyb3VwLmdldCgndmFsdWVFbmQnKT8udmFsdWU7XHJcbiAgICBjb25zdCBzdGFydERhdGUgPSBldmVudC52YWx1ZTtcclxuICAgIFxyXG4gICAgLy8gSWYgZW5kIGRhdGUgaXMgYmVmb3JlIHN0YXJ0IGRhdGUsIHJlc2V0IGl0XHJcbiAgICBpZiAoZW5kRGF0ZSAmJiBzdGFydERhdGUgJiYgbmV3IERhdGUoZW5kRGF0ZSkgPCBuZXcgRGF0ZShzdGFydERhdGUpKSB7XHJcbiAgICAgIHJ1bGVHcm91cC5nZXQoJ3ZhbHVlRW5kJyk/LnNldFZhbHVlKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICB1cGRhdGVGb3JtQ29udHJvbHNGb3JPcGVyYXRvcihpbmRleDogbnVtYmVyLCBvcGVyYXRvcjogc3RyaW5nLCBmaWVsZFR5cGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgcnVsZUdyb3VwID0gdGhpcy5ydWxlc0FycmF5LmF0KGluZGV4KSBhcyBGb3JtR3JvdXA7XHJcbiAgICBcclxuICAgIC8vIEhhbmRsZSBkYXRlIHJhbmdlIGZvciAnYmV0d2Vlbicgb3BlcmF0b3JcclxuICAgIGlmIChvcGVyYXRvciA9PT0gJ2JldHdlZW4nICYmIGZpZWxkVHlwZSA9PT0gJ2RhdGUnKSB7XHJcbiAgICAgIC8vIEFkZCBzdGFydCBhbmQgZW5kIGRhdGUgY29udHJvbHMgaWYgdGhleSBkb24ndCBleGlzdFxyXG4gICAgICBpZiAoIXJ1bGVHcm91cC5jb250YWlucygndmFsdWVTdGFydCcpKSB7XHJcbiAgICAgICAgcnVsZUdyb3VwLmFkZENvbnRyb2woJ3ZhbHVlU3RhcnQnLCB0aGlzLmZiLmNvbnRyb2wobnVsbCkpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghcnVsZUdyb3VwLmNvbnRhaW5zKCd2YWx1ZUVuZCcpKSB7XHJcbiAgICAgICAgcnVsZUdyb3VwLmFkZENvbnRyb2woJ3ZhbHVlRW5kJywgdGhpcy5mYi5jb250cm9sKG51bGwpKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gUmVtb3ZlIHJhbmdlIGNvbnRyb2xzIGlmIHRoZXkgZXhpc3QgYW5kIGFyZW4ndCBuZWVkZWRcclxuICAgICAgaWYgKHJ1bGVHcm91cC5jb250YWlucygndmFsdWVTdGFydCcpKSB7XHJcbiAgICAgICAgcnVsZUdyb3VwLnJlbW92ZUNvbnRyb2woJ3ZhbHVlU3RhcnQnKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocnVsZUdyb3VwLmNvbnRhaW5zKCd2YWx1ZUVuZCcpKSB7XHJcbiAgICAgICAgcnVsZUdyb3VwLnJlbW92ZUNvbnRyb2woJ3ZhbHVlRW5kJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgdHJhbnNmb3JtRm9ybVRvTW9kZWwoZm9ybVZhbHVlOiBhbnkpOiBRdWVyeUdyb3VwIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNvbmRpdGlvbjogZm9ybVZhbHVlLmNvbmRpdGlvbixcclxuICAgICAgcnVsZXM6IGZvcm1WYWx1ZS5ydWxlcy5tYXAoKHJ1bGU6IGFueSkgPT4ge1xyXG4gICAgICAgIC8vIEhhbmRsZSBkYXRlIHJhbmdlIGZvciAnYmV0d2Vlbicgb3BlcmF0b3JcclxuICAgICAgICBpZiAocnVsZS5vcGVyYXRvciA9PT0gJ2JldHdlZW4nICYmIHRoaXMuZ2V0RmllbGRUeXBlKHJ1bGUuZmllbGQpID09PSAnZGF0ZScpIHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGZpZWxkOiBydWxlLmZpZWxkLFxyXG4gICAgICAgICAgICBvcGVyYXRvcjogcnVsZS5vcGVyYXRvcixcclxuICAgICAgICAgICAgdmFsdWU6IHsgc3RhcnQ6IHJ1bGUudmFsdWVTdGFydCwgZW5kOiBydWxlLnZhbHVlRW5kIH0sXHJcbiAgICAgICAgICAgIGNvbmRpdGlvbjogcnVsZS5jb25kaXRpb25cclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIC8vIFN0YW5kYXJkIGNhc2VcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgZmllbGQ6IHJ1bGUuZmllbGQsXHJcbiAgICAgICAgICBvcGVyYXRvcjogcnVsZS5vcGVyYXRvcixcclxuICAgICAgICAgIHZhbHVlOiBydWxlLnZhbHVlLFxyXG4gICAgICAgICAgY29uZGl0aW9uOiBydWxlLmNvbmRpdGlvblxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pXHJcbiAgICB9O1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBjb25kaXRpb24gZm9yIGEgc3BlY2lmaWMgcm93XHJcbiAgICogQHBhcmFtIGluZGV4IFRoZSBpbmRleCBvZiB0aGUgcm93XHJcbiAgICogQHJldHVybnMgVGhlIGNvbmRpdGlvbiAoYW5kL29yKSBmb3IgdGhlIHJvd1xyXG4gICAqL1xyXG4gIGdldFJvd0NvbmRpdGlvbihpbmRleDogbnVtYmVyKTogJ2FuZCcgfCAnb3InIHtcclxuICAgIGlmIChpbmRleCA9PT0gMCkgcmV0dXJuICdhbmQnOyAvLyBGaXJzdCByb3cgZG9lc24ndCBoYXZlIGEgY29uZGl0aW9uXHJcbiAgICBcclxuICAgIGNvbnN0IHJ1bGVHcm91cCA9IHRoaXMucnVsZXNBcnJheS5hdChpbmRleCkgYXMgRm9ybUdyb3VwO1xyXG4gICAgcmV0dXJuIHJ1bGVHcm91cC5nZXQoJ2NvbmRpdGlvbicpPy52YWx1ZSB8fCAnYW5kJztcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgY29uZGl0aW9uIGZvciBhIHNwZWNpZmljIHJvd1xyXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIHJvd1xyXG4gICAqIEBwYXJhbSBjb25kaXRpb24gVGhlIGNvbmRpdGlvbiB0byBzZXQgKGFuZC9vcilcclxuICAgKi9cclxuICBzZXRSb3dDb25kaXRpb24oaW5kZXg6IG51bWJlciwgY29uZGl0aW9uOiAnYW5kJyB8ICdvcicpOiB2b2lkIHtcclxuICAgIGlmIChpbmRleCA9PT0gMCkgcmV0dXJuOyAvLyBGaXJzdCByb3cgZG9lc24ndCBoYXZlIGEgY29uZGl0aW9uXHJcbiAgICBcclxuICAgIGNvbnN0IHJ1bGVHcm91cCA9IHRoaXMucnVsZXNBcnJheS5hdChpbmRleCkgYXMgRm9ybUdyb3VwO1xyXG4gICAgcnVsZUdyb3VwLmdldCgnY29uZGl0aW9uJyk/LnNldFZhbHVlKGNvbmRpdGlvbik7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVDb25kaXRpb24oKTogdm9pZCB7XHJcbiAgICBjb25zdCBjdXJyZW50Q29uZGl0aW9uID0gdGhpcy5mb3JtLmdldCgnY29uZGl0aW9uJyk/LnZhbHVlO1xyXG4gICAgY29uc3QgbmV3Q29uZGl0aW9uID0gY3VycmVudENvbmRpdGlvbiA9PT0gJ2FuZCcgPyAnb3InIDogJ2FuZCc7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdjb25kaXRpb24nKT8uc2V0VmFsdWUobmV3Q29uZGl0aW9uKTtcclxuICB9XHJcblxyXG4gIGdldENvbmRpdGlvbkxhYmVsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnY29uZGl0aW9uJyk/LnZhbHVlID09PSAnYW5kJyA/ICdBTkQnIDogJ09SJztcclxuICB9XHJcblxyXG4gIHJlc2V0UXVlcnkoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJ1bGVzQXJyYXkuY2xlYXIoKTtcclxuICAgIHRoaXMuYWRkUnVsZSgpO1xyXG4gIH1cclxuXHJcbiAgYXBwbHlRdWVyeSgpOiB2b2lkIHtcclxuICAgIHRoaXMucXVlcnlDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInNhLXF1ZXJ5LWJ1aWxkZXJcIj5cclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJxdWVyeS1idWlsZGVyLWhlYWRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwid2hlcmUtbGFiZWxcIj5XaGVyZTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInF1ZXJ5LWJ1aWxkZXItYm9keVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicnVsZXMtY29udGFpbmVyXCIgZm9ybUFycmF5TmFtZT1cInJ1bGVzXCI+XHJcbiAgICAgICAgQGZvciAocnVsZSBvZiBydWxlc0FycmF5LmNvbnRyb2xzOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJydWxlLXJvd1wiIFtmb3JtR3JvdXBOYW1lXT1cIiRpbmRleFwiPlxyXG4gICAgICAgICAgICA8IS0tIENvbmRpdGlvbiBzZWxlY3RvciAoQW5kL09yKSAtLT5cclxuICAgICAgICAgICAgQGlmICgkaW5kZXggPiAwKSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmRpdGlvbi1zZWxlY3RvclwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IFt2YWx1ZV09XCJnZXRSb3dDb25kaXRpb24oJGluZGV4KVwiIChzZWxlY3Rpb25DaGFuZ2UpPVwic2V0Um93Q29uZGl0aW9uKCRpbmRleCwgJGV2ZW50LnZhbHVlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiYW5kXCI+QW5kPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwib3JcIj5PcjwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmRpdGlvbi1wbGFjZWhvbGRlclwiPjwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8IS0tIEZpZWxkIHNlbGVjdGlvbiAtLT5cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmllbGQtc2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1sYWJlbD5TZWxlY3QgYSBmaWx0ZXI8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJmaWVsZFwiIChzZWxlY3Rpb25DaGFuZ2UpPVwib25GaWVsZENoYW5nZSgkaW5kZXgsICRldmVudC52YWx1ZSlcIj5cclxuICAgICAgICAgICAgICAgIEBmb3IgKGZpZWxkIG9mIGNvbmZpZy5maWVsZHM7IHRyYWNrIGZpZWxkLmtleSkge1xyXG4gICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiZmllbGQua2V5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgZmllbGQubGFiZWwgfX1cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gT3BlcmF0b3Igc2VsZWN0aW9uIC0tPlxyXG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJvcGVyYXRvci1zZWxlY3RcIj5cclxuICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJvcGVyYXRvclwiIChzZWxlY3Rpb25DaGFuZ2UpPVwib25PcGVyYXRvckNoYW5nZSgkaW5kZXgsICRldmVudC52YWx1ZSwgcnVsZS52YWx1ZS5maWVsZClcIj5cclxuICAgICAgICAgICAgICAgIEBmb3IgKG9wIG9mIGdldE9wZXJhdG9yc0ZvckZpZWxkKHJ1bGUudmFsdWUuZmllbGQpOyB0cmFjayBvcC52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwib3AudmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBvcC5sYWJlbCB9fVxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBWYWx1ZSBpbnB1dCBiYXNlZCBvbiBmaWVsZCB0eXBlIC0tPlxyXG4gICAgICAgICAgICBAc3dpdGNoIChnZXRGaWVsZFR5cGUocnVsZS52YWx1ZS5maWVsZCkpIHtcclxuICAgICAgICAgICAgICBAY2FzZSAoJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInZhbHVlLWlucHV0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgYSB2YWx1ZS4uLlwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgQGNhc2UgKCdudW1iZXInKSB7XHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ2YWx1ZS1pbnB1dFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBhIHZhbHVlLi4uXCI+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBAY2FzZSAoJ2RhdGUnKSB7XHJcbiAgICAgICAgICAgICAgICBAaWYgKCFpc09wZXJhdG9yQmV0d2VlbigkaW5kZXgpKSB7XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInZhbHVlLWlucHV0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJkYXRlXCIgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCIgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIiAoY2xpY2spPVwicGlja2VyLm9wZW4oKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0SWNvblN1ZmZpeCBbZm9yXT1cInBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtcmFuZ2UtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidmFsdWUtaW5wdXQgc3RhcnQtZGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5TdGFydCBkYXRlPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW21hdERhdGVwaWNrZXJdPVwic3RhcnRQaWNrZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVN0YXJ0XCIgKGNsaWNrKT1cInN0YXJ0UGlja2VyLm9wZW4oKVwiIChkYXRlQ2hhbmdlKT1cIm9uU3RhcnREYXRlQ2hhbmdlKCRpbmRleCwgJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRJY29uU3VmZml4IFtmb3JdPVwic3RhcnRQaWNrZXJcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjc3RhcnRQaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInZhbHVlLWlucHV0IGVuZC1kYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkVuZCBkYXRlPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW21hdERhdGVwaWNrZXJdPVwiZW5kUGlja2VyXCIgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVFbmRcIiAoY2xpY2spPVwiZW5kUGlja2VyLm9wZW4oKVwiIFttaW5dPVwiZ2V0TWluRW5kRGF0ZSgkaW5kZXgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdEljb25TdWZmaXggW2Zvcl09XCJlbmRQaWNrZXJcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjZW5kUGlja2VyIFtzdGFydEF0XT1cImdldE1pbkVuZERhdGUoJGluZGV4KVwiPjwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIEBjYXNlICgnYm9vbGVhbicpIHtcclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInZhbHVlLWlucHV0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInRydWVcIj5UcnVlPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJmYWxzZVwiPkZhbHNlPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBAY2FzZSAoJ3NlbGVjdCcpIHtcclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInZhbHVlLWlucHV0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQGZvciAob3B0aW9uIG9mIGdldEZpZWxkT3B0aW9ucyhydWxlLnZhbHVlLmZpZWxkKTsgdHJhY2sgb3B0aW9uLnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5sYWJlbCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgQGRlZmF1bHQge1xyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidmFsdWUtaW5wdXRcIj5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBhIHZhbHVlLi4uXCI+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPCEtLSBSZW1vdmUgcnVsZSBidXR0b24gLS0+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNsYXNzPVwicmVtb3ZlLXJ1bGUtYnRuXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZVJ1bGUoJGluZGV4KVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJydWxlc0FycmF5Lmxlbmd0aCA9PT0gMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIlJlbW92ZSBmaWx0ZXJcIj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIEFkZCBydWxlIGJ1dHRvbiAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImFkZC1ydWxlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cImFkZC1ydWxlLWJ0blwiIChjbGljayk9XCJhZGRSdWxlKClcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPiBBZGQgYSBmaWx0ZXJcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicXVlcnktYnVpbGRlci1mb290ZXJcIj5cclxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwicmVzZXQtYnRuXCIgKGNsaWNrKT1cInJlc2V0UXVlcnkoKVwiPlJlc2V0PC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJhcHBseS1idG5cIiAoY2xpY2spPVwiYXBwbHlRdWVyeSgpXCI+QXBwbHkgZmlsdGVyczwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9mb3JtPlxyXG48L2Rpdj5cclxuIl19
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWtELG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckcsT0FBTyxFQUFxQixZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7O0FB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QUFtQixDQUFDLFdBQ3ZCO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixtQkFBbUI7cUJBQ3BCO2dGQUdRLE1BQU07c0JBQWQsS0FBSztnQkFlSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5TW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xyXG5pbXBvcnQge01hdERhdGVwaWNrZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5pbXBvcnQgeyBNYXROYXRpdmVEYXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5RmllbGQge1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIG9wdGlvbnM/OiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdO1xyXG4gIG9wZXJhdG9ycz86IHN0cmluZ1tdO1xyXG4gIGRlZmF1bHRPcGVyYXRvcj86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBRdWVyeU9wZXJhdG9yIHtcclxuICB2YWx1ZTogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgdHlwZXM/OiBzdHJpbmdbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBRdWVyeUNvbmZpZyB7XHJcbiAgZmllbGRzOiBRdWVyeUZpZWxkW107XHJcbiAgb3BlcmF0b3JzOiBRdWVyeU9wZXJhdG9yW107XHJcbiAgZGVmYXVsdENvbmRpdGlvbj86ICdhbmQnIHwgJ29yJztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBRdWVyeVJ1bGUge1xyXG4gIGZpZWxkOiBzdHJpbmc7XHJcbiAgb3BlcmF0b3I6IHN0cmluZztcclxuICB2YWx1ZTogYW55O1xyXG4gIGNvbmRpdGlvbj86ICdhbmQnIHwgJ29yJztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBRdWVyeUdyb3VwIHtcclxuICBjb25kaXRpb246ICdhbmQnIHwgJ29yJztcclxuICBydWxlczogKFF1ZXJ5UnVsZSB8IFF1ZXJ5R3JvdXApW107XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2EtcXVlcnktYnVpbGRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3F1ZXJ5LWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3F1ZXJ5LWJ1aWxkZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHByb3ZpZGVyczogW01hdE5hdGl2ZURhdGVNb2R1bGVdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3JtbHlNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlLFxyXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcclxuICAgIE1hdE5hdGl2ZURhdGVNb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRdWVyeUJ1aWxkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGNvbmZpZzogUXVlcnlDb25maWcgPSB7XHJcbiAgICBmaWVsZHM6IFtdLFxyXG4gICAgb3BlcmF0b3JzOiBbXHJcbiAgICAgIHsgdmFsdWU6ICc9JywgbGFiZWw6ICc9JyB9LFxyXG4gICAgICB7IHZhbHVlOiAnIT0nLCBsYWJlbDogJyE9JyB9LFxyXG4gICAgICB7IHZhbHVlOiAnPicsIGxhYmVsOiAnPicgfSxcclxuICAgICAgeyB2YWx1ZTogJzwnLCBsYWJlbDogJzwnIH0sXHJcbiAgICAgIHsgdmFsdWU6ICc+PScsIGxhYmVsOiAnPj0nIH0sXHJcbiAgICAgIHsgdmFsdWU6ICc8PScsIGxhYmVsOiAnPD0nIH0sXHJcbiAgICAgIHsgdmFsdWU6ICdjb250YWlucycsIGxhYmVsOiAnY29udGFpbnMnIH0sXHJcbiAgICAgIHsgdmFsdWU6ICdiZXR3ZWVuJywgbGFiZWw6ICdiZXR3ZWVuJyB9XHJcbiAgICBdLFxyXG4gICAgZGVmYXVsdENvbmRpdGlvbjogJ2FuZCdcclxuICB9O1xyXG5cclxuICBAT3V0cHV0KCkgcXVlcnlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFF1ZXJ5R3JvdXA+KCk7XHJcblxyXG4gIGZvcm06IEZvcm1Hcm91cDtcclxuICBtb2RlbDogUXVlcnlHcm91cDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBjb25kaXRpb246IFsnYW5kJ10sXHJcbiAgICAgIHJ1bGVzOiB0aGlzLmZiLmFycmF5KFtdKVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5tb2RlbCA9IHtcclxuICAgICAgY29uZGl0aW9uOiAnYW5kJyxcclxuICAgICAgcnVsZXM6IFtdXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVGb3JtKCk7XHJcbiAgICB0aGlzLmFkZFJ1bGUoKTtcclxuXHJcbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSB0aGlzLnRyYW5zZm9ybUZvcm1Ub01vZGVsKHZhbHVlKTtcclxuICAgICAgdGhpcy5xdWVyeUNoYW5nZS5lbWl0KHRoaXMubW9kZWwpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXQgcnVsZXNBcnJheSgpOiBGb3JtQXJyYXkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ3J1bGVzJykgYXMgRm9ybUFycmF5O1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZUZvcm0oKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgY29uZGl0aW9uOiBbdGhpcy5jb25maWcuZGVmYXVsdENvbmRpdGlvbiB8fCAnYW5kJ10sXHJcbiAgICAgIHJ1bGVzOiB0aGlzLmZiLmFycmF5KFtdKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRSdWxlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnLmZpZWxkcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGRlZmF1bHRGaWVsZCA9IHRoaXMuY29uZmlnLmZpZWxkc1swXTtcclxuICAgIGNvbnN0IGRlZmF1bHRPcGVyYXRvciA9IGRlZmF1bHRGaWVsZC5kZWZhdWx0T3BlcmF0b3IgfHwgdGhpcy5nZXRPcGVyYXRvcnNGb3JUeXBlKGRlZmF1bHRGaWVsZC50eXBlKVswXT8udmFsdWUgfHwgJz0nO1xyXG5cclxuICAgIGNvbnN0IHJ1bGVHcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBmaWVsZDogW2RlZmF1bHRGaWVsZC5rZXldLFxyXG4gICAgICBvcGVyYXRvcjogW2RlZmF1bHRPcGVyYXRvcl0sXHJcbiAgICAgIHZhbHVlOiBbbnVsbF0sXHJcbiAgICAgIGNvbmRpdGlvbjogWydhbmQnXVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5ydWxlc0FycmF5LnB1c2gocnVsZUdyb3VwKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZVJ1bGUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5ydWxlc0FycmF5LnJlbW92ZUF0KGluZGV4KTtcclxuICB9XHJcblxyXG4gIGdldEZpZWxkQnlLZXkoa2V5OiBzdHJpbmcpOiBRdWVyeUZpZWxkIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5maWVsZHMuZmluZChmaWVsZCA9PiBmaWVsZC5rZXkgPT09IGtleSk7XHJcbiAgfVxyXG5cclxuICBnZXRPcGVyYXRvcnNGb3JUeXBlKHR5cGU6IHN0cmluZyk6IFF1ZXJ5T3BlcmF0b3JbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcub3BlcmF0b3JzLmZpbHRlcihvcCA9PiAhb3AudHlwZXMgfHwgb3AudHlwZXMuaW5jbHVkZXModHlwZSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3BlcmF0b3JzRm9yRmllbGQoZmllbGRLZXk6IHN0cmluZyk6IFF1ZXJ5T3BlcmF0b3JbXSB7XHJcbiAgICBjb25zdCBmaWVsZCA9IHRoaXMuZ2V0RmllbGRCeUtleShmaWVsZEtleSk7XHJcbiAgICBpZiAoIWZpZWxkKSByZXR1cm4gW107XHJcblxyXG4gICAgaWYgKGZpZWxkLm9wZXJhdG9ycykge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25maWcub3BlcmF0b3JzLmZpbHRlcihvcCA9PiBmaWVsZC5vcGVyYXRvcnM/LmluY2x1ZGVzKG9wLnZhbHVlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZ2V0T3BlcmF0b3JzRm9yVHlwZShmaWVsZC50eXBlKTtcclxuICB9XHJcblxyXG4gIGdldEZpZWxkVHlwZShmaWVsZEtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGZpZWxkID0gdGhpcy5nZXRGaWVsZEJ5S2V5KGZpZWxkS2V5KTtcclxuICAgIHJldHVybiBmaWVsZCA/IGZpZWxkLnR5cGUgOiAnc3RyaW5nJztcclxuICB9XHJcbiAgXHJcbiAgaXNPcGVyYXRvckJldHdlZW4oaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcnVsZUdyb3VwID0gdGhpcy5ydWxlc0FycmF5LmF0KGluZGV4KSBhcyBGb3JtR3JvdXA7XHJcbiAgICByZXR1cm4gcnVsZUdyb3VwPy5nZXQoJ29wZXJhdG9yJyk/LnZhbHVlID09PSAnYmV0d2Vlbic7XHJcbiAgfVxyXG5cclxuICBnZXRGaWVsZE9wdGlvbnMoZmllbGRLZXk6IHN0cmluZyk6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IGFueSB9W10ge1xyXG4gICAgY29uc3QgZmllbGQgPSB0aGlzLmdldEZpZWxkQnlLZXkoZmllbGRLZXkpO1xyXG4gICAgcmV0dXJuIGZpZWxkPy5vcHRpb25zIHx8IFtdO1xyXG4gIH1cclxuXHJcbiAgb25GaWVsZENoYW5nZShpbmRleDogbnVtYmVyLCBmaWVsZEtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBydWxlR3JvdXAgPSB0aGlzLnJ1bGVzQXJyYXkuYXQoaW5kZXgpIGFzIEZvcm1Hcm91cDtcclxuICAgIGNvbnN0IGZpZWxkID0gdGhpcy5nZXRGaWVsZEJ5S2V5KGZpZWxkS2V5KTtcclxuICAgIFxyXG4gICAgaWYgKGZpZWxkKSB7XHJcbiAgICAgIGNvbnN0IG9wZXJhdG9ycyA9IHRoaXMuZ2V0T3BlcmF0b3JzRm9yRmllbGQoZmllbGRLZXkpO1xyXG4gICAgICBjb25zdCBkZWZhdWx0T3BlcmF0b3IgPSBmaWVsZC5kZWZhdWx0T3BlcmF0b3IgfHwgKG9wZXJhdG9ycy5sZW5ndGggPiAwID8gb3BlcmF0b3JzWzBdLnZhbHVlIDogJz0nKTtcclxuICAgICAgXHJcbiAgICAgIHJ1bGVHcm91cC5nZXQoJ29wZXJhdG9yJyk/LnNldFZhbHVlKGRlZmF1bHRPcGVyYXRvcik7XHJcbiAgICAgIHJ1bGVHcm91cC5nZXQoJ3ZhbHVlJyk/LnNldFZhbHVlKG51bGwpO1xyXG4gICAgICBcclxuICAgICAgLy8gUmVzZXQgcmFuZ2UgdmFsdWVzIGlmIHRoZXkgZXhpc3RcclxuICAgICAgaWYgKHJ1bGVHcm91cC5nZXQoJ3ZhbHVlU3RhcnQnKSkge1xyXG4gICAgICAgIHJ1bGVHcm91cC5nZXQoJ3ZhbHVlU3RhcnQnKT8uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHJ1bGVHcm91cC5nZXQoJ3ZhbHVlRW5kJykpIHtcclxuICAgICAgICBydWxlR3JvdXAuZ2V0KCd2YWx1ZUVuZCcpPy5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgLy8gQWRkIHJhbmdlIGZvcm0gY29udHJvbHMgaWYgbmVlZGVkXHJcbiAgICAgIHRoaXMudXBkYXRlRm9ybUNvbnRyb2xzRm9yT3BlcmF0b3IoaW5kZXgsIGRlZmF1bHRPcGVyYXRvciwgZmllbGQudHlwZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbk9wZXJhdG9yQ2hhbmdlKGluZGV4OiBudW1iZXIsIG9wZXJhdG9yOiBzdHJpbmcsIGZpZWxkS2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZpZWxkVHlwZSA9IHRoaXMuZ2V0RmllbGRUeXBlKGZpZWxkS2V5KTtcclxuICAgIHRoaXMudXBkYXRlRm9ybUNvbnRyb2xzRm9yT3BlcmF0b3IoaW5kZXgsIG9wZXJhdG9yLCBmaWVsZFR5cGUpO1xyXG4gICAgXHJcbiAgICAvLyBSZXNldCB2YWx1ZXMgd2hlbiBvcGVyYXRvciBjaGFuZ2VzXHJcbiAgICBjb25zdCBydWxlR3JvdXAgPSB0aGlzLnJ1bGVzQXJyYXkuYXQoaW5kZXgpIGFzIEZvcm1Hcm91cDtcclxuICAgIHJ1bGVHcm91cC5nZXQoJ3ZhbHVlJyk/LnNldFZhbHVlKG51bGwpO1xyXG4gICAgaWYgKHJ1bGVHcm91cC5nZXQoJ3ZhbHVlU3RhcnQnKSkge1xyXG4gICAgICBydWxlR3JvdXAuZ2V0KCd2YWx1ZVN0YXJ0Jyk/LnNldFZhbHVlKG51bGwpO1xyXG4gICAgfVxyXG4gICAgaWYgKHJ1bGVHcm91cC5nZXQoJ3ZhbHVlRW5kJykpIHtcclxuICAgICAgcnVsZUdyb3VwLmdldCgndmFsdWVFbmQnKT8uc2V0VmFsdWUobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIG1pbmltdW0gYWxsb3dlZCBkYXRlIGZvciB0aGUgZW5kIGRhdGUgcGlja2VyIGJhc2VkIG9uIHRoZSBzZWxlY3RlZCBzdGFydCBkYXRlXHJcbiAgICogQHBhcmFtIGluZGV4IFRoZSBpbmRleCBvZiB0aGUgcnVsZSByb3dcclxuICAgKiBAcmV0dXJucyBUaGUgbWluaW11bSBkYXRlIGZvciB0aGUgZW5kIGRhdGUgcGlja2VyICh0aGUgc3RhcnQgZGF0ZSBvciB0b2RheSBpZiBubyBzdGFydCBkYXRlKVxyXG4gICAqL1xyXG4gIGdldE1pbkVuZERhdGUoaW5kZXg6IG51bWJlcik6IERhdGUgfCBudWxsIHtcclxuICAgIGNvbnN0IHJ1bGVHcm91cCA9IHRoaXMucnVsZXNBcnJheS5hdChpbmRleCkgYXMgRm9ybUdyb3VwO1xyXG4gICAgY29uc3Qgc3RhcnREYXRlID0gcnVsZUdyb3VwLmdldCgndmFsdWVTdGFydCcpPy52YWx1ZTtcclxuICAgIFxyXG4gICAgLy8gSWYgc3RhcnQgZGF0ZSBpcyBzZWxlY3RlZCwgdXNlIGl0IGFzIG1pbmltdW0gZm9yIGVuZCBkYXRlXHJcbiAgICAvLyBPdGhlcndpc2UgdXNlIHRvZGF5J3MgZGF0ZVxyXG4gICAgcmV0dXJuIHN0YXJ0RGF0ZSA/IG5ldyBEYXRlKHN0YXJ0RGF0ZSkgOiBuZXcgRGF0ZSgpO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBIYW5kbGVzIGNoYW5nZXMgdG8gdGhlIHN0YXJ0IGRhdGVcclxuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSBydWxlIHJvd1xyXG4gICAqIEBwYXJhbSBldmVudCBUaGUgZGF0ZSBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBvblN0YXJ0RGF0ZUNoYW5nZShpbmRleDogbnVtYmVyLCBldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBydWxlR3JvdXAgPSB0aGlzLnJ1bGVzQXJyYXkuYXQoaW5kZXgpIGFzIEZvcm1Hcm91cDtcclxuICAgIGNvbnN0IGVuZERhdGUgPSBydWxlR3JvdXAuZ2V0KCd2YWx1ZUVuZCcpPy52YWx1ZTtcclxuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IGV2ZW50LnZhbHVlO1xyXG4gICAgXHJcbiAgICAvLyBJZiBlbmQgZGF0ZSBpcyBiZWZvcmUgc3RhcnQgZGF0ZSwgcmVzZXQgaXRcclxuICAgIGlmIChlbmREYXRlICYmIHN0YXJ0RGF0ZSAmJiBuZXcgRGF0ZShlbmREYXRlKSA8IG5ldyBEYXRlKHN0YXJ0RGF0ZSkpIHtcclxuICAgICAgcnVsZUdyb3VwLmdldCgndmFsdWVFbmQnKT8uc2V0VmFsdWUobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIHVwZGF0ZUZvcm1Db250cm9sc0Zvck9wZXJhdG9yKGluZGV4OiBudW1iZXIsIG9wZXJhdG9yOiBzdHJpbmcsIGZpZWxkVHlwZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBydWxlR3JvdXAgPSB0aGlzLnJ1bGVzQXJyYXkuYXQoaW5kZXgpIGFzIEZvcm1Hcm91cDtcclxuICAgIFxyXG4gICAgLy8gSGFuZGxlIGRhdGUgcmFuZ2UgZm9yICdiZXR3ZWVuJyBvcGVyYXRvclxyXG4gICAgaWYgKG9wZXJhdG9yID09PSAnYmV0d2VlbicgJiYgZmllbGRUeXBlID09PSAnZGF0ZScpIHtcclxuICAgICAgLy8gQWRkIHN0YXJ0IGFuZCBlbmQgZGF0ZSBjb250cm9scyBpZiB0aGV5IGRvbid0IGV4aXN0XHJcbiAgICAgIGlmICghcnVsZUdyb3VwLmNvbnRhaW5zKCd2YWx1ZVN0YXJ0JykpIHtcclxuICAgICAgICBydWxlR3JvdXAuYWRkQ29udHJvbCgndmFsdWVTdGFydCcsIHRoaXMuZmIuY29udHJvbChudWxsKSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFydWxlR3JvdXAuY29udGFpbnMoJ3ZhbHVlRW5kJykpIHtcclxuICAgICAgICBydWxlR3JvdXAuYWRkQ29udHJvbCgndmFsdWVFbmQnLCB0aGlzLmZiLmNvbnRyb2wobnVsbCkpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBSZW1vdmUgcmFuZ2UgY29udHJvbHMgaWYgdGhleSBleGlzdCBhbmQgYXJlbid0IG5lZWRlZFxyXG4gICAgICBpZiAocnVsZUdyb3VwLmNvbnRhaW5zKCd2YWx1ZVN0YXJ0JykpIHtcclxuICAgICAgICBydWxlR3JvdXAucmVtb3ZlQ29udHJvbCgndmFsdWVTdGFydCcpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChydWxlR3JvdXAuY29udGFpbnMoJ3ZhbHVlRW5kJykpIHtcclxuICAgICAgICBydWxlR3JvdXAucmVtb3ZlQ29udHJvbCgndmFsdWVFbmQnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICB0cmFuc2Zvcm1Gb3JtVG9Nb2RlbChmb3JtVmFsdWU6IGFueSk6IFF1ZXJ5R3JvdXAge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY29uZGl0aW9uOiBmb3JtVmFsdWUuY29uZGl0aW9uLFxyXG4gICAgICBydWxlczogZm9ybVZhbHVlLnJ1bGVzLm1hcCgocnVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgLy8gSGFuZGxlIGRhdGUgcmFuZ2UgZm9yICdiZXR3ZWVuJyBvcGVyYXRvclxyXG4gICAgICAgIGlmIChydWxlLm9wZXJhdG9yID09PSAnYmV0d2VlbicgJiYgdGhpcy5nZXRGaWVsZFR5cGUocnVsZS5maWVsZCkgPT09ICdkYXRlJykge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgZmllbGQ6IHJ1bGUuZmllbGQsXHJcbiAgICAgICAgICAgIG9wZXJhdG9yOiBydWxlLm9wZXJhdG9yLFxyXG4gICAgICAgICAgICB2YWx1ZTogeyBzdGFydDogcnVsZS52YWx1ZVN0YXJ0LCBlbmQ6IHJ1bGUudmFsdWVFbmQgfSxcclxuICAgICAgICAgICAgY29uZGl0aW9uOiBydWxlLmNvbmRpdGlvblxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gU3RhbmRhcmQgY2FzZVxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBmaWVsZDogcnVsZS5maWVsZCxcclxuICAgICAgICAgIG9wZXJhdG9yOiBydWxlLm9wZXJhdG9yLFxyXG4gICAgICAgICAgdmFsdWU6IHJ1bGUudmFsdWUsXHJcbiAgICAgICAgICBjb25kaXRpb246IHJ1bGUuY29uZGl0aW9uXHJcbiAgICAgICAgfTtcclxuICAgICAgfSlcclxuICAgIH07XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGNvbmRpdGlvbiBmb3IgYSBzcGVjaWZpYyByb3dcclxuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSByb3dcclxuICAgKiBAcmV0dXJucyBUaGUgY29uZGl0aW9uIChhbmQvb3IpIGZvciB0aGUgcm93XHJcbiAgICovXHJcbiAgZ2V0Um93Q29uZGl0aW9uKGluZGV4OiBudW1iZXIpOiAnYW5kJyB8ICdvcicge1xyXG4gICAgaWYgKGluZGV4ID09PSAwKSByZXR1cm4gJ2FuZCc7IC8vIEZpcnN0IHJvdyBkb2Vzbid0IGhhdmUgYSBjb25kaXRpb25cclxuICAgIFxyXG4gICAgY29uc3QgcnVsZUdyb3VwID0gdGhpcy5ydWxlc0FycmF5LmF0KGluZGV4KSBhcyBGb3JtR3JvdXA7XHJcbiAgICByZXR1cm4gcnVsZUdyb3VwLmdldCgnY29uZGl0aW9uJyk/LnZhbHVlIHx8ICdhbmQnO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBjb25kaXRpb24gZm9yIGEgc3BlY2lmaWMgcm93XHJcbiAgICogQHBhcmFtIGluZGV4IFRoZSBpbmRleCBvZiB0aGUgcm93XHJcbiAgICogQHBhcmFtIGNvbmRpdGlvbiBUaGUgY29uZGl0aW9uIHRvIHNldCAoYW5kL29yKVxyXG4gICAqL1xyXG4gIHNldFJvd0NvbmRpdGlvbihpbmRleDogbnVtYmVyLCBjb25kaXRpb246ICdhbmQnIHwgJ29yJyk6IHZvaWQge1xyXG4gICAgaWYgKGluZGV4ID09PSAwKSByZXR1cm47IC8vIEZpcnN0IHJvdyBkb2Vzbid0IGhhdmUgYSBjb25kaXRpb25cclxuICAgIFxyXG4gICAgY29uc3QgcnVsZUdyb3VwID0gdGhpcy5ydWxlc0FycmF5LmF0KGluZGV4KSBhcyBGb3JtR3JvdXA7XHJcbiAgICBydWxlR3JvdXAuZ2V0KCdjb25kaXRpb24nKT8uc2V0VmFsdWUoY29uZGl0aW9uKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUNvbmRpdGlvbigpOiB2b2lkIHtcclxuICAgIGNvbnN0IGN1cnJlbnRDb25kaXRpb24gPSB0aGlzLmZvcm0uZ2V0KCdjb25kaXRpb24nKT8udmFsdWU7XHJcbiAgICBjb25zdCBuZXdDb25kaXRpb24gPSBjdXJyZW50Q29uZGl0aW9uID09PSAnYW5kJyA/ICdvcicgOiAnYW5kJztcclxuICAgIHRoaXMuZm9ybS5nZXQoJ2NvbmRpdGlvbicpPy5zZXRWYWx1ZShuZXdDb25kaXRpb24pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29uZGl0aW9uTGFiZWwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdjb25kaXRpb24nKT8udmFsdWUgPT09ICdhbmQnID8gJ0FORCcgOiAnT1InO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRRdWVyeSgpOiB2b2lkIHtcclxuICAgIHRoaXMucnVsZXNBcnJheS5jbGVhcigpO1xyXG4gICAgdGhpcy5hZGRSdWxlKCk7XHJcbiAgfVxyXG5cclxuICBhcHBseVF1ZXJ5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5xdWVyeUNoYW5nZS5lbWl0KHRoaXMubW9kZWwpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic2EtcXVlcnktYnVpbGRlclwiPlxyXG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInF1ZXJ5LWJ1aWxkZXItaGVhZGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ3aGVyZS1sYWJlbFwiPldoZXJlPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicXVlcnktYnVpbGRlci1ib2R5XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJydWxlcy1jb250YWluZXJcIiBmb3JtQXJyYXlOYW1lPVwicnVsZXNcIj5cclxuICAgICAgICBAZm9yIChydWxlIG9mIHJ1bGVzQXJyYXkuY29udHJvbHM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJ1bGUtcm93XCIgW2Zvcm1Hcm91cE5hbWVdPVwiJGluZGV4XCI+XHJcbiAgICAgICAgICAgIDwhLS0gQ29uZGl0aW9uIHNlbGVjdG9yIChBbmQvT3IpIC0tPlxyXG4gICAgICAgICAgICBAaWYgKCRpbmRleCA+IDApIHtcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZGl0aW9uLXNlbGVjdG9yXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgW3ZhbHVlXT1cImdldFJvd0NvbmRpdGlvbigkaW5kZXgpXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJzZXRSb3dDb25kaXRpb24oJGluZGV4LCAkZXZlbnQudmFsdWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJhbmRcIj5BbmQ8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJvclwiPk9yPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZGl0aW9uLXBsYWNlaG9sZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwhLS0gRmllbGQgc2VsZWN0aW9uIC0tPlxyXG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmaWVsZC1zZWxlY3RcIj5cclxuICAgICAgICAgICAgICA8bWF0LWxhYmVsPlNlbGVjdCBhIGZpbHRlcjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImZpZWxkXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkZpZWxkQ2hhbmdlKCRpbmRleCwgJGV2ZW50LnZhbHVlKVwiPlxyXG4gICAgICAgICAgICAgICAgQGZvciAoZmllbGQgb2YgY29uZmlnLmZpZWxkczsgdHJhY2sgZmllbGQua2V5KSB7XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJmaWVsZC5rZXlcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBmaWVsZC5sYWJlbCB9fVxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBPcGVyYXRvciBzZWxlY3Rpb24gLS0+XHJcbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm9wZXJhdG9yLXNlbGVjdFwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cIm9wZXJhdG9yXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbk9wZXJhdG9yQ2hhbmdlKCRpbmRleCwgJGV2ZW50LnZhbHVlLCBydWxlLnZhbHVlLmZpZWxkKVwiPlxyXG4gICAgICAgICAgICAgICAgQGZvciAob3Agb2YgZ2V0T3BlcmF0b3JzRm9yRmllbGQocnVsZS52YWx1ZS5maWVsZCk7IHRyYWNrIG9wLnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJvcC52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IG9wLmxhYmVsIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICA8IS0tIFZhbHVlIGlucHV0IGJhc2VkIG9uIGZpZWxkIHR5cGUgLS0+XHJcbiAgICAgICAgICAgIEBzd2l0Y2ggKGdldEZpZWxkVHlwZShydWxlLnZhbHVlLmZpZWxkKSkge1xyXG4gICAgICAgICAgICAgIEBjYXNlICgnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidmFsdWUtaW5wdXRcIj5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBhIHZhbHVlLi4uXCI+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBAY2FzZSAoJ251bWJlcicpIHtcclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInZhbHVlLWlucHV0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwibnVtYmVyXCIgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIiBwbGFjZWhvbGRlcj1cIkVudGVyIGEgdmFsdWUuLi5cIj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIEBjYXNlICgnZGF0ZScpIHtcclxuICAgICAgICAgICAgICAgIEBpZiAoIWlzT3BlcmF0b3JCZXR3ZWVuKCRpbmRleCkpIHtcclxuICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidmFsdWUtaW5wdXRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cImRhdGVcIiBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiIChjbGljayk9XCJwaWNrZXIub3BlbigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRJY29uU3VmZml4IFtmb3JdPVwicGlja2VyXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1yYW5nZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ2YWx1ZS1pbnB1dCBzdGFydC1kYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlN0YXJ0IGRhdGU8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbbWF0RGF0ZXBpY2tlcl09XCJzdGFydFBpY2tlclwiIGZvcm1Db250cm9sTmFtZT1cInZhbHVlU3RhcnRcIiAoY2xpY2spPVwic3RhcnRQaWNrZXIub3BlbigpXCIgKGRhdGVDaGFuZ2UpPVwib25TdGFydERhdGVDaGFuZ2UoJGluZGV4LCAkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdEljb25TdWZmaXggW2Zvcl09XCJzdGFydFBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNzdGFydFBpY2tlcj48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidmFsdWUtaW5wdXQgZW5kLWRhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+RW5kIGRhdGU8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbbWF0RGF0ZXBpY2tlcl09XCJlbmRQaWNrZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZUVuZFwiIChjbGljayk9XCJlbmRQaWNrZXIub3BlbigpXCIgW21pbl09XCJnZXRNaW5FbmREYXRlKCRpbmRleClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0SWNvblN1ZmZpeCBbZm9yXT1cImVuZFBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNlbmRQaWNrZXIgW3N0YXJ0QXRdPVwiZ2V0TWluRW5kRGF0ZSgkaW5kZXgpXCI+PC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgQGNhc2UgKCdib29sZWFuJykge1xyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidmFsdWUtaW5wdXRcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwidHJ1ZVwiPlRydWU8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImZhbHNlXCI+RmFsc2U8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIEBjYXNlICgnc2VsZWN0Jykge1xyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidmFsdWUtaW5wdXRcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICBAZm9yIChvcHRpb24gb2YgZ2V0RmllbGRPcHRpb25zKHJ1bGUudmFsdWUuZmllbGQpOyB0cmFjayBvcHRpb24udmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBAZGVmYXVsdCB7XHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ2YWx1ZS1pbnB1dFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIiBwbGFjZWhvbGRlcj1cIkVudGVyIGEgdmFsdWUuLi5cIj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICA8IS0tIFJlbW92ZSBydWxlIGJ1dHRvbiAtLT5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJyZW1vdmUtcnVsZS1idG5cIiBcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlUnVsZSgkaW5kZXgpXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJ1bGVzQXJyYXkubGVuZ3RoID09PSAxXCJcclxuICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiUmVtb3ZlIGZpbHRlclwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gQWRkIHJ1bGUgYnV0dG9uIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWRkLXJ1bGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwiYWRkLXJ1bGUtYnRuXCIgKGNsaWNrKT1cImFkZFJ1bGUoKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+IEFkZCBhIGZpbHRlclxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJxdWVyeS1idWlsZGVyLWZvb3RlclwiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJyZXNldC1idG5cIiAoY2xpY2spPVwicmVzZXRRdWVyeSgpXCI+UmVzZXQ8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cImFwcGx5LWJ0blwiIChjbGljayk9XCJhcHBseVF1ZXJ5KClcIj5BcHBseSBmaWx0ZXJzPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Zvcm0+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -49,7 +49,7 @@ export class ToastComponent {
|
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
52
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: ToastComponent, isStandalone: true, selector: "sa-toast", inputs: { finishPercentage: "finishPercentage", heading: "heading", subHeading: "subHeading", statusIcon: "statusIcon", toastCloseIcon: "toastCloseIcon", status: "status", firstButtonName: "firstButtonName", secondButtonName: "secondButtonName", closable: "closable", filled: "filled", width: "width", toastIconSize: "toastIconSize", toastCloseIconSize: "toastCloseIconSize" }, outputs: { toastEvent: "toastEvent", firstButton: "firstButton", secondButton: "secondButton", closed: "closed" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"toast\" [ngStyle]=\"toastStyles\">\r\n <div class=\"content\">\r\n <div class=\"toast-icon {{status}}\">\r\n <sa-icon [icon]=\"statusIcon\" [size]=\"toastIconSize\"></sa-icon>\r\n <!-- <img [src]=\"statusIcon\" alt=\"\"> -->\r\n </div>\r\n <div class=\"head-subhead\">\r\n <p class=\"heading\">{{heading}}</p>\r\n <p class=\"subheading\">{{subHeading}}</p>\r\n </div>\r\n @if(closable){\r\n <!-- <img class=\"cross\" (click)=\"closeToast()\" [src]=\"crossmark\" alt=\"\"> -->\r\n <sa-icon class=\"cross\" [icon]=\"toastCloseIcon\" [size]=\"toastCloseIconSize\" (click)=\"closeToast()\"></sa-icon>\r\n }\r\n </div>\r\n <!-- <div class=\"controls\">\r\n <sa-button *ngIf=\"firstButtonName\" (onClickEvent)=\"clicked(0)\" [text]=\"firstButtonName\" type=\"transparent\"\r\n size=\"medium\" state=\"default\">\r\n </sa-button>\r\n <sa-button *ngIf=\"secondButtonName\" (onClickEvent)=\"clicked(1)\" [text]=\"secondButtonName\" type=\"outline\"\r\n size=\"medium\" state=\"default\">\r\n </sa-button>\r\n </div> -->\r\n\r\n <div *ngIf=\"finishPercentage >= 0\" class=\"progress-bar\">\r\n <div class=\"progress-done\" [style.width]=\"finishPercentage+'%'\"></div>\r\n <div class=\"progress-left\" [style.width]=\"100-finishPercentage+'%'\"></div>\r\n </div>\r\n</div>", styles: [".toast{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--small-12px, 12px);gap:var(--small-16px, 16px);border-radius:var(--small-8px, 8px);border:1px solid var(--grey-50, #E9EAEB);background:var(--structural-white, #FFF);box-shadow:0 0 12px #0000000d;font-family:var(--font);box-sizing:border-box}.cross{cursor:pointer}.heading{font-size:16px;font-style:normal;font-weight:600;line-height:24px;letter-spacing:.15px}.toast-icon{display:flex;justify-content:center;border-radius:50%;flex:.5}.positive{box-shadow:0 0 0 var(--small-4px, 4px) var(--semantic-success-50);background-color:var(--semantic-success-50)}.negative{box-shadow:0 0 0 var(--small-4px, 4px) var(--semantic-error-50);background-color:var(--semantic-error-50)}.tentative{box-shadow:0 0 0 var(--small-4px, 4px) var(--semantic-yellow-50);background-color:var(--semantic-yellow-50)}.toast-icon img{width:24px;height:24px}.subheading{font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.5px}.heading,.subheading{margin:0}.content{display:flex;justify-content:center;align-items:center;width:100%;gap:var(--small-12px, 12px)}.head-subhead{justify-content:space-between;display:flex;flex:5;flex-direction:column;gap:var(--small-4px, 4px)}.controls{width:100%;display:flex;justify-content:flex-end;align-items:center;gap:var(--small-12px, 12px)}.progress-bar{display:flex;width:100%}.progress-done{height:3px;background-color:var(--primary-500);border-radius:2px}.progress-left{height:3px;background-color:#c5c5c5;border-top-right-radius:2px;border-bottom-right-radius:2px}sa-icon{display:flex}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget"], outputs: ["onClickEvent"] }] }); }
|
|
52
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: ToastComponent, isStandalone: true, selector: "sa-toast", inputs: { finishPercentage: "finishPercentage", heading: "heading", subHeading: "subHeading", statusIcon: "statusIcon", toastCloseIcon: "toastCloseIcon", status: "status", firstButtonName: "firstButtonName", secondButtonName: "secondButtonName", closable: "closable", filled: "filled", width: "width", toastIconSize: "toastIconSize", toastCloseIconSize: "toastCloseIconSize" }, outputs: { toastEvent: "toastEvent", firstButton: "firstButton", secondButton: "secondButton", closed: "closed" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"toast\" [ngStyle]=\"toastStyles\">\r\n <div class=\"content\">\r\n <div class=\"toast-icon {{status}}\">\r\n <sa-icon [icon]=\"statusIcon\" [size]=\"toastIconSize\"></sa-icon>\r\n <!-- <img [src]=\"statusIcon\" alt=\"\"> -->\r\n </div>\r\n <div class=\"head-subhead\">\r\n <p class=\"heading\">{{heading}}</p>\r\n <p class=\"subheading\">{{subHeading}}</p>\r\n </div>\r\n @if(closable){\r\n <!-- <img class=\"cross\" (click)=\"closeToast()\" [src]=\"crossmark\" alt=\"\"> -->\r\n <sa-icon class=\"cross\" [icon]=\"toastCloseIcon\" [size]=\"toastCloseIconSize\" (click)=\"closeToast()\"></sa-icon>\r\n }\r\n </div>\r\n <!-- <div class=\"controls\">\r\n <sa-button *ngIf=\"firstButtonName\" (onClickEvent)=\"clicked(0)\" [text]=\"firstButtonName\" type=\"transparent\"\r\n size=\"medium\" state=\"default\">\r\n </sa-button>\r\n <sa-button *ngIf=\"secondButtonName\" (onClickEvent)=\"clicked(1)\" [text]=\"secondButtonName\" type=\"outline\"\r\n size=\"medium\" state=\"default\">\r\n </sa-button>\r\n </div> -->\r\n\r\n <div *ngIf=\"finishPercentage >= 0\" class=\"progress-bar\">\r\n <div class=\"progress-done\" [style.width]=\"finishPercentage+'%'\"></div>\r\n <div class=\"progress-left\" [style.width]=\"100-finishPercentage+'%'\"></div>\r\n </div>\r\n</div>", styles: [".toast{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--small-12px, 12px);gap:var(--small-16px, 16px);border-radius:var(--small-8px, 8px);border:1px solid var(--grey-50, #E9EAEB);background:var(--structural-white, #FFF);box-shadow:0 0 12px #0000000d;font-family:var(--font);box-sizing:border-box}.cross{cursor:pointer}.heading{font-size:16px;font-style:normal;font-weight:600;line-height:24px;letter-spacing:.15px}.toast-icon{display:flex;justify-content:center;border-radius:50%;flex:.5}.positive{box-shadow:0 0 0 var(--small-4px, 4px) var(--semantic-success-50);background-color:var(--semantic-success-50)}.negative{box-shadow:0 0 0 var(--small-4px, 4px) var(--semantic-error-50);background-color:var(--semantic-error-50)}.tentative{box-shadow:0 0 0 var(--small-4px, 4px) var(--semantic-yellow-50);background-color:var(--semantic-yellow-50)}.toast-icon img{width:24px;height:24px}.subheading{font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.5px}.heading,.subheading{margin:0}.content{display:flex;justify-content:center;align-items:center;width:100%;gap:var(--small-12px, 12px)}.head-subhead{justify-content:space-between;display:flex;flex:5;flex-direction:column;gap:var(--small-4px, 4px)}.controls{width:100%;display:flex;justify-content:flex-end;align-items:center;gap:var(--small-12px, 12px)}.progress-bar{display:flex;width:100%}.progress-done{height:3px;background-color:var(--primary-500);border-radius:2px}.progress-left{height:3px;background-color:#c5c5c5;border-top-right-radius:2px;border-bottom-right-radius:2px}sa-icon{display:flex}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget", "iconPosition"], outputs: ["onClickEvent"] }] }); }
|
|
53
53
|
}
|
|
54
54
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ToastComponent, decorators: [{
|
|
55
55
|
type: Component,
|
|
@@ -27,11 +27,11 @@ export class ToolTipComponent {
|
|
|
27
27
|
this.toolTipSkipped.emit();
|
|
28
28
|
}
|
|
29
29
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ToolTipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: ToolTipComponent, isStandalone: true, selector: "sa-tool-tip", inputs: { messages: "messages", pointerPosition: "pointerPosition", simpleMode: "simpleMode" }, outputs: { toolTipSkipped: "toolTipSkipped", toolTipSeen: "toolTipSeen" }, ngImport: i0, template: "<div class=\"tool-tip-vertical\">\r\n <div class=\"tool-tip-pointer-icon pointer-top\" *ngIf=\"pointerPosition == 'top'\"></div>\r\n <div class=\"tool-tip-horizontal\">\r\n <div class=\"tool-tip-pointer-icon pointer-left\" *ngIf=\"pointerPosition == 'left'\"></div> \r\n <div class=\"tool-tip simple-tooltip\" *ngIf=\"simpleMode\">\r\n <div class=\"simple-tooltip-content\">\r\n <
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: ToolTipComponent, isStandalone: true, selector: "sa-tool-tip", inputs: { messages: "messages", pointerPosition: "pointerPosition", simpleMode: "simpleMode" }, outputs: { toolTipSkipped: "toolTipSkipped", toolTipSeen: "toolTipSeen" }, ngImport: i0, template: "<div class=\"tool-tip-vertical\">\r\n <div class=\"tool-tip-pointer-icon pointer-top\" *ngIf=\"pointerPosition == 'top'\"></div>\r\n <div class=\"tool-tip-horizontal\">\r\n <div class=\"tool-tip-pointer-icon pointer-left\" *ngIf=\"pointerPosition == 'left'\"></div> \r\n <div class=\"tool-tip simple-tooltip\" *ngIf=\"simpleMode\">\r\n <div class=\"simple-tooltip-content\" \r\n [class]=\"{ 'vertical-stack': messages.length <= 5, 'grid-stack': messages.length > 5, 'single-item': messages.length === 1 }\">\r\n <span class=\"simple-tooltip-message\" *ngFor=\"let message of messages\">\r\n {{message}}\r\n </span>\r\n </div>\r\n \r\n </div>\r\n <div class=\"tool-tip\" *ngIf=\"!simpleMode\">\r\n <div class=\"tool-tip-content\">\r\n <div class=\"tool-tip-heading\">Heading</div>\r\n <div *ngFor=\"let msg of messages, let i = index\" class=\"tool-tip-message {{msgInd != i ? 'hidden-msg': ''}}\">\r\n {{msg}}\r\n </div>\r\n </div>\r\n <div class=\"tool-tip-break\">\r\n </div>\r\n <div class=\"tool-tip-controls\">\r\n <div class=\"tool-tip-navigate\">\r\n <img class=\"left-icon tool-tip-navigate-icon\" (click)=\"updateMsgInd(-1)\" [src]=\"arrowIcon\" alt=\"\">\r\n {{msgInd+1}} of {{messages.length}}\r\n <img class=\"right-icon tool-tip-navigate-icon\" (click)=\"updateMsgInd(1)\" [src]=\"arrowIcon\" alt=\"\">\r\n </div>\r\n <div class=\"tool-tip-control-buttons\">\r\n <sa-button (onClickEvent)=\"skipToolTip()\" class=\"skip-button\" text=\"Skip\" type=\"transparent\" size=\"medium\"\r\n state=\"default\"></sa-button>\r\n <sa-button (onClickEvent)=\"updateMsgInd(1)\" text=\"Next\" type=\"primary\" size=\"medium\" state=\"default\">\r\n </sa-button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"tool-tip-pointer-icon pointer-right\" *ngIf=\"pointerPosition == 'right'\"></div>\r\n </div>\r\n <div class=\"tool-tip-pointer-icon pointer-bottom\" *ngIf=\"pointerPosition == 'bottom'\"></div>\r\n</div>\r\n", styles: [".tool-tip-horizontal{display:flex;width:max-content;justify-content:center;align-items:center}.tool-tip-vertical{display:flex;flex-direction:column;width:max-content;justify-content:center;align-items:center}.tool-tip{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--small-16px, 16px);width:375px;height:auto;box-sizing:border-box;padding:var(--medium-20px, 20px) var(--medium-24px, 24px);border-radius:var(--small-4px, 4px);background:var(--grey-700, #161E27);font-family:var(--font)}.tool-tip-content{display:flex;width:100%;flex-direction:column;gap:var(--small-8px, 8px)}.tool-tip-heading{font-size:16px;font-style:normal;color:var(--text-white, #FFF);font-weight:600;line-height:24px;letter-spacing:.15px}.tool-tip-message{font-size:14px;color:var(--grey-50, #E9EAEB);font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px}.tool-tip-controls{display:flex;width:100%;justify-content:space-between;font-size:11px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.5px}.tool-tip-navigate{color:var(--text-lowemphasis, #989DA3);display:flex;justify-content:center;align-items:center}.skip-button ::ng-deep .sa-button{color:var(--grey-100, #BABDC1)!important}.skip-button ::ng-deep .sa-button:hover{background-color:transparent}.tool-tip-navigate-icon{cursor:pointer}.left-icon{transform:rotate(180deg)}.tool-tip-control-buttons{display:flex;gap:4px}.tool-tip-break{width:100%;height:.5px;background:var(--grey-50, #E9EAEB)}.hidden-msg{display:none}.tool-tip-pointer-icon{display:flex;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:11px solid var(--grey-700, #161E27)}.pointer-left{transform:rotate(-90deg);margin-right:-3px}.pointer-right{transform:rotate(90deg);margin-left:-3px}.pointer-top{margin-bottom:-3px}.pointer-bottom{transform:rotate(180deg);margin-top:-3px}.left-icon,.right-icon{filter:invert(.6)}.simple-tooltip{display:inline-block;width:auto;height:auto;max-width:500px;max-height:300px;overflow:visible}.simple-tooltip .tool-tip-content{display:flex;width:100%;flex-direction:column;gap:0}.simple-tooltip .tool-tip-message{font-size:var(--small-12px, 12px);font-style:normal;color:var(--structural-white, #FFF);font-weight:400;white-space:nowrap;font-family:var(--font-family, Roboto);letter-spacing:.25px}.simple-tooltip-content{display:grid;gap:6px 12px;padding:var(--small-8px,8px) var(--small-12px,12px);justify-items:flex-start;width:100%;max-width:400px}.simple-tooltip-message{color:var(--structural-white, #FFF);font-size:var(--small-14px, 14px);font-weight:var(--font-weight-regular, 400);line-height:20px;white-space:nowrap;display:block}.simple-tooltip-content.vertical-stack{grid-template-columns:1fr;justify-items:flex-start}.simple-tooltip-content.grid-stack{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.simple-tooltip-content.single-item .simple-tooltip-message{white-space:normal}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "sa-button", inputs: ["id", "type", "state", "size", "text", "ImagePath", "icon", "iconPosition", "href", "hrefTarget", "width", "isSubmit", "buttonIconSize", "showSpinner"], outputs: ["onClickEvent", "onMouseInEvent", "onMouseOutEvent"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
31
31
|
}
|
|
32
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ToolTipComponent, decorators: [{
|
|
33
33
|
type: Component,
|
|
34
|
-
args: [{ selector: 'sa-tool-tip', standalone: true, imports: [ButtonComponent, NgFor, NgIf], template: "<div class=\"tool-tip-vertical\">\r\n <div class=\"tool-tip-pointer-icon pointer-top\" *ngIf=\"pointerPosition == 'top'\"></div>\r\n <div class=\"tool-tip-horizontal\">\r\n <div class=\"tool-tip-pointer-icon pointer-left\" *ngIf=\"pointerPosition == 'left'\"></div> \r\n <div class=\"tool-tip simple-tooltip\" *ngIf=\"simpleMode\">\r\n <div class=\"simple-tooltip-content\">\r\n <
|
|
34
|
+
args: [{ selector: 'sa-tool-tip', standalone: true, imports: [ButtonComponent, NgFor, NgIf], template: "<div class=\"tool-tip-vertical\">\r\n <div class=\"tool-tip-pointer-icon pointer-top\" *ngIf=\"pointerPosition == 'top'\"></div>\r\n <div class=\"tool-tip-horizontal\">\r\n <div class=\"tool-tip-pointer-icon pointer-left\" *ngIf=\"pointerPosition == 'left'\"></div> \r\n <div class=\"tool-tip simple-tooltip\" *ngIf=\"simpleMode\">\r\n <div class=\"simple-tooltip-content\" \r\n [class]=\"{ 'vertical-stack': messages.length <= 5, 'grid-stack': messages.length > 5, 'single-item': messages.length === 1 }\">\r\n <span class=\"simple-tooltip-message\" *ngFor=\"let message of messages\">\r\n {{message}}\r\n </span>\r\n </div>\r\n \r\n </div>\r\n <div class=\"tool-tip\" *ngIf=\"!simpleMode\">\r\n <div class=\"tool-tip-content\">\r\n <div class=\"tool-tip-heading\">Heading</div>\r\n <div *ngFor=\"let msg of messages, let i = index\" class=\"tool-tip-message {{msgInd != i ? 'hidden-msg': ''}}\">\r\n {{msg}}\r\n </div>\r\n </div>\r\n <div class=\"tool-tip-break\">\r\n </div>\r\n <div class=\"tool-tip-controls\">\r\n <div class=\"tool-tip-navigate\">\r\n <img class=\"left-icon tool-tip-navigate-icon\" (click)=\"updateMsgInd(-1)\" [src]=\"arrowIcon\" alt=\"\">\r\n {{msgInd+1}} of {{messages.length}}\r\n <img class=\"right-icon tool-tip-navigate-icon\" (click)=\"updateMsgInd(1)\" [src]=\"arrowIcon\" alt=\"\">\r\n </div>\r\n <div class=\"tool-tip-control-buttons\">\r\n <sa-button (onClickEvent)=\"skipToolTip()\" class=\"skip-button\" text=\"Skip\" type=\"transparent\" size=\"medium\"\r\n state=\"default\"></sa-button>\r\n <sa-button (onClickEvent)=\"updateMsgInd(1)\" text=\"Next\" type=\"primary\" size=\"medium\" state=\"default\">\r\n </sa-button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"tool-tip-pointer-icon pointer-right\" *ngIf=\"pointerPosition == 'right'\"></div>\r\n </div>\r\n <div class=\"tool-tip-pointer-icon pointer-bottom\" *ngIf=\"pointerPosition == 'bottom'\"></div>\r\n</div>\r\n", styles: [".tool-tip-horizontal{display:flex;width:max-content;justify-content:center;align-items:center}.tool-tip-vertical{display:flex;flex-direction:column;width:max-content;justify-content:center;align-items:center}.tool-tip{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--small-16px, 16px);width:375px;height:auto;box-sizing:border-box;padding:var(--medium-20px, 20px) var(--medium-24px, 24px);border-radius:var(--small-4px, 4px);background:var(--grey-700, #161E27);font-family:var(--font)}.tool-tip-content{display:flex;width:100%;flex-direction:column;gap:var(--small-8px, 8px)}.tool-tip-heading{font-size:16px;font-style:normal;color:var(--text-white, #FFF);font-weight:600;line-height:24px;letter-spacing:.15px}.tool-tip-message{font-size:14px;color:var(--grey-50, #E9EAEB);font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px}.tool-tip-controls{display:flex;width:100%;justify-content:space-between;font-size:11px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.5px}.tool-tip-navigate{color:var(--text-lowemphasis, #989DA3);display:flex;justify-content:center;align-items:center}.skip-button ::ng-deep .sa-button{color:var(--grey-100, #BABDC1)!important}.skip-button ::ng-deep .sa-button:hover{background-color:transparent}.tool-tip-navigate-icon{cursor:pointer}.left-icon{transform:rotate(180deg)}.tool-tip-control-buttons{display:flex;gap:4px}.tool-tip-break{width:100%;height:.5px;background:var(--grey-50, #E9EAEB)}.hidden-msg{display:none}.tool-tip-pointer-icon{display:flex;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:11px solid var(--grey-700, #161E27)}.pointer-left{transform:rotate(-90deg);margin-right:-3px}.pointer-right{transform:rotate(90deg);margin-left:-3px}.pointer-top{margin-bottom:-3px}.pointer-bottom{transform:rotate(180deg);margin-top:-3px}.left-icon,.right-icon{filter:invert(.6)}.simple-tooltip{display:inline-block;width:auto;height:auto;max-width:500px;max-height:300px;overflow:visible}.simple-tooltip .tool-tip-content{display:flex;width:100%;flex-direction:column;gap:0}.simple-tooltip .tool-tip-message{font-size:var(--small-12px, 12px);font-style:normal;color:var(--structural-white, #FFF);font-weight:400;white-space:nowrap;font-family:var(--font-family, Roboto);letter-spacing:.25px}.simple-tooltip-content{display:grid;gap:6px 12px;padding:var(--small-8px,8px) var(--small-12px,12px);justify-items:flex-start;width:100%;max-width:400px}.simple-tooltip-message{color:var(--structural-white, #FFF);font-size:var(--small-14px, 14px);font-weight:var(--font-weight-regular, 400);line-height:20px;white-space:nowrap;display:block}.simple-tooltip-content.vertical-stack{grid-template-columns:1fr;justify-items:flex-start}.simple-tooltip-content.grid-stack{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.simple-tooltip-content.single-item .simple-tooltip-message{white-space:normal}\n"] }]
|
|
35
35
|
}], propDecorators: { messages: [{
|
|
36
36
|
type: Input
|
|
37
37
|
}], pointerPosition: [{
|
|
@@ -43,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
43
43
|
}], toolTipSeen: [{
|
|
44
44
|
type: Output
|
|
45
45
|
}] } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC10aXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi90b29sLXRpcC90b29sLXRpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL3Rvb2wtdGlwL3Rvb2wtdGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBU3ZDLE1BQU0sT0FBTyxnQkFBZ0I7SUFQN0I7UUFRVyxhQUFRLEdBQWEsRUFBRSxDQUFDO1FBQ3hCLG9CQUFlLEdBQVcsUUFBUSxDQUFDO1FBQ25DLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFM0IsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQyxjQUFTLEdBQUcsb0NBQW9DLENBQUM7UUFDakQsWUFBTyxHQUFHLG9DQUFvQyxDQUFDO1FBRS9DLFdBQU0sR0FBVyxDQUFDLENBQUMsQ0FBRyxrREFBa0Q7S0FlekU7SUFiQyxZQUFZLENBQUMsQ0FBUztRQUNwQixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs4R0F2QlUsZ0JBQWdCO2tHQUFoQixnQkFBZ0Isa1BDWjdCLDRsRUF3Q0EsbzhGRGhDWSxlQUFlLHdSQUFFLEtBQUssbUhBQUUsSUFBSTs7MkZBSTNCLGdCQUFnQjtrQkFQNUIsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUM7OEJBSzlCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2EtdG9vbC10aXAnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0J1dHRvbkNvbXBvbmVudCwgTmdGb3IsIE5nSWZdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90b29sLXRpcC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3Rvb2wtdGlwLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb29sVGlwQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBtZXNzYWdlczogc3RyaW5nW10gPSBbXTtcclxuICBASW5wdXQoKSBwb2ludGVyUG9zaXRpb246IHN0cmluZyA9ICdib3R0b20nO1xyXG4gIEBJbnB1dCgpIHNpbXBsZU1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIHRvb2xUaXBTa2lwcGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSB0b29sVGlwU2VlbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBhcnJvd0ljb24gPSBcIi4uL2Fzc2V0cy9yaWdodENoZXZyb25PdXRsaW5lZC5zdmdcIjtcclxuICBwb2ludGVyID0gXCIuLi9hc3NldHMvdXB3YXJkVHJpYW5nbGVGaWxsZWQuc3ZnXCI7XHJcblxyXG4gIG1zZ0luZDogbnVtYmVyID0gMDsgICAvLyBpcyB0aGUgaW5kZXggb2YgY3VycmVudCBtZXNzYWdlIGJlaW5nIGRpc3BsYXllZFxyXG5cclxuICB1cGRhdGVNc2dJbmQoazogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm1zZ0luZCArPSBrO1xyXG4gICAgaWYgKHRoaXMubXNnSW5kIDwgMCkgdGhpcy5tc2dJbmQgPSAwO1xyXG4gICAgaWYgKHRoaXMubXNnSW5kID4gdGhpcy5tZXNzYWdlcy5sZW5ndGggLSAxKSB7XHJcbiAgICAgIHRoaXMubXNnSW5kID0gdGhpcy5tZXNzYWdlcy5sZW5ndGggLSAxO1xyXG4gICAgICB0aGlzLnRvb2xUaXBTZWVuLmVtaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNraXBUb29sVGlwKCkge1xyXG4gICAgdGhpcy50b29sVGlwU2tpcHBlZC5lbWl0KCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidG9vbC10aXAtdmVydGljYWxcIj5cclxuICA8ZGl2IGNsYXNzPVwidG9vbC10aXAtcG9pbnRlci1pY29uIHBvaW50ZXItdG9wXCIgKm5nSWY9XCJwb2ludGVyUG9zaXRpb24gPT0gJ3RvcCdcIj48L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwidG9vbC10aXAtaG9yaXpvbnRhbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInRvb2wtdGlwLXBvaW50ZXItaWNvbiBwb2ludGVyLWxlZnRcIiAqbmdJZj1cInBvaW50ZXJQb3NpdGlvbiA9PSAnbGVmdCdcIj48L2Rpdj4gICBcclxuICAgIDxkaXYgY2xhc3M9XCJ0b29sLXRpcCBzaW1wbGUtdG9vbHRpcFwiICpuZ0lmPVwic2ltcGxlTW9kZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2ltcGxlLXRvb2x0aXAtY29udGVudFwiIFxyXG4gICAgICAgICAgIFtjbGFzc109XCJ7ICd2ZXJ0aWNhbC1zdGFjayc6IG1lc3NhZ2VzLmxlbmd0aCA8PSA1LCAnZ3JpZC1zdGFjayc6IG1lc3NhZ2VzLmxlbmd0aCA+IDUsICdzaW5nbGUtaXRlbSc6IG1lc3NhZ2VzLmxlbmd0aCA9PT0gMSB9XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzaW1wbGUtdG9vbHRpcC1tZXNzYWdlXCIgKm5nRm9yPVwibGV0IG1lc3NhZ2Ugb2YgbWVzc2FnZXNcIj5cclxuICAgICAgICAgIHt7bWVzc2FnZX19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuIFxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidG9vbC10aXBcIiAqbmdJZj1cIiFzaW1wbGVNb2RlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0b29sLXRpcC1jb250ZW50XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRvb2wtdGlwLWhlYWRpbmdcIj5IZWFkaW5nPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbXNnIG9mIG1lc3NhZ2VzLCBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJ0b29sLXRpcC1tZXNzYWdlIHt7bXNnSW5kICE9IGkgPyAnaGlkZGVuLW1zZyc6ICcnfX1cIj5cclxuICAgICAgICAgIHt7bXNnfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0b29sLXRpcC1icmVha1wiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRvb2wtdGlwLWNvbnRyb2xzXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRvb2wtdGlwLW5hdmlnYXRlXCI+XHJcbiAgICAgICAgICA8aW1nIGNsYXNzPVwibGVmdC1pY29uIHRvb2wtdGlwLW5hdmlnYXRlLWljb25cIiAoY2xpY2spPVwidXBkYXRlTXNnSW5kKC0xKVwiIFtzcmNdPVwiYXJyb3dJY29uXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICB7e21zZ0luZCsxfX0gb2Yge3ttZXNzYWdlcy5sZW5ndGh9fVxyXG4gICAgICAgICAgPGltZyBjbGFzcz1cInJpZ2h0LWljb24gdG9vbC10aXAtbmF2aWdhdGUtaWNvblwiIChjbGljayk9XCJ1cGRhdGVNc2dJbmQoMSlcIiBbc3JjXT1cImFycm93SWNvblwiIGFsdD1cIlwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sLXRpcC1jb250cm9sLWJ1dHRvbnNcIj5cclxuICAgICAgICAgIDxzYS1idXR0b24gKG9uQ2xpY2tFdmVudCk9XCJza2lwVG9vbFRpcCgpXCIgY2xhc3M9XCJza2lwLWJ1dHRvblwiIHRleHQ9XCJTa2lwXCIgdHlwZT1cInRyYW5zcGFyZW50XCIgc2l6ZT1cIm1lZGl1bVwiXHJcbiAgICAgICAgICAgIHN0YXRlPVwiZGVmYXVsdFwiPjwvc2EtYnV0dG9uPlxyXG4gICAgICAgICAgPHNhLWJ1dHRvbiAob25DbGlja0V2ZW50KT1cInVwZGF0ZU1zZ0luZCgxKVwiIHRleHQ9XCJOZXh0XCIgdHlwZT1cInByaW1hcnlcIiBzaXplPVwibWVkaXVtXCIgc3RhdGU9XCJkZWZhdWx0XCI+XHJcbiAgICAgICAgICA8L3NhLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b29sLXRpcC1wb2ludGVyLWljb24gcG9pbnRlci1yaWdodFwiICpuZ0lmPVwicG9pbnRlclBvc2l0aW9uID09ICdyaWdodCdcIj48L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwidG9vbC10aXAtcG9pbnRlci1pY29uIHBvaW50ZXItYm90dG9tXCIgKm5nSWY9XCJwb2ludGVyUG9zaXRpb24gPT0gJ2JvdHRvbSdcIj48L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|