cps-ui-kit 0.50.0 → 0.52.0
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/README.md +1 -0
- package/esm2020/lib/base_components/cps-tree-dropdown-base.component.mjs +72 -45
- package/esm2020/lib/components/cps-autocomplete/cps-autocomplete.component.mjs +62 -42
- package/esm2020/lib/components/cps-datepicker/cps-datepicker.component.mjs +47 -26
- package/esm2020/lib/components/cps-input/cps-input.component.mjs +20 -6
- package/esm2020/lib/components/cps-menu/cps-menu.component.mjs +35 -9
- package/esm2020/lib/components/cps-paginator/cps-paginator.component.mjs +3 -3
- package/esm2020/lib/components/cps-select/cps-select.component.mjs +85 -55
- package/esm2020/lib/components/cps-tab-group/cps-tab/cps-tab.component.mjs +37 -0
- package/esm2020/lib/components/cps-tab-group/cps-tab-group.component.mjs +137 -0
- package/esm2020/lib/components/cps-table/cps-table.component.mjs +3 -3
- package/esm2020/lib/components/cps-table/directives/cps-table-column-filter.directive.mjs +16 -2
- package/esm2020/lib/components/cps-table/table-column-filter/table-column-filter-constraint/table-column-filter-constraint.component.mjs +4 -4
- package/esm2020/lib/components/cps-table/table-column-filter/table-column-filter.component.mjs +3 -3
- package/esm2020/lib/components/cps-table/table-row-menu/table-row-menu.component.mjs +1 -1
- package/esm2020/lib/components/cps-tree-autocomplete/cps-tree-autocomplete.component.mjs +27 -37
- package/esm2020/lib/components/cps-tree-select/cps-tree-select.component.mjs +14 -22
- package/esm2020/public-api.mjs +3 -1
- package/fesm2015/cps-ui-kit.mjs +2021 -1772
- package/fesm2015/cps-ui-kit.mjs.map +1 -1
- package/fesm2020/cps-ui-kit.mjs +2027 -1782
- package/fesm2020/cps-ui-kit.mjs.map +1 -1
- package/lib/base_components/cps-tree-dropdown-base.component.d.ts +16 -7
- package/lib/components/cps-autocomplete/cps-autocomplete.component.d.ts +14 -7
- package/lib/components/cps-datepicker/cps-datepicker.component.d.ts +10 -4
- package/lib/components/cps-input/cps-input.component.d.ts +7 -3
- package/lib/components/cps-menu/cps-menu.component.d.ts +7 -3
- package/lib/components/cps-select/cps-select.component.d.ts +16 -8
- package/lib/components/cps-tab-group/cps-tab/cps-tab.component.d.ts +14 -0
- package/lib/components/cps-tab-group/cps-tab-group.component.d.ts +25 -0
- package/lib/components/cps-table/directives/cps-table-column-filter.directive.d.ts +1 -0
- package/lib/components/cps-table/table-column-filter/table-column-filter-constraint/table-column-filter-constraint.component.d.ts +1 -1
- package/lib/components/cps-tree-autocomplete/cps-tree-autocomplete.component.d.ts +5 -8
- package/lib/components/cps-tree-select/cps-tree-select.component.d.ts +4 -7
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
- package/styles/cps-tooltip-style.scss +1 -1
- package/esm2020/lib/directives/internal/click-outside.directive.mjs +0 -45
- package/esm2020/lib/utils/internal/position-utils.mjs +0 -12
- package/lib/directives/internal/click-outside.directive.d.ts +0 -11
- package/lib/utils/internal/position-utils.d.ts +0 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, Input, TemplateRef, ViewChild } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
export class CpsTabComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.label = '';
|
|
8
|
+
this.icon = '';
|
|
9
|
+
this.tooltipText = '';
|
|
10
|
+
this.tooltipContentClass = 'cps-tooltip-content';
|
|
11
|
+
this.tooltipMaxWidth = '100%';
|
|
12
|
+
this.tooltipPersistent = false;
|
|
13
|
+
this.active = false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
CpsTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
+
CpsTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CpsTabComponent, isStandalone: true, selector: "cps-tab", inputs: { label: "label", icon: "icon", tooltipText: "tooltipText", tooltipContentClass: "tooltipContentClass", tooltipMaxWidth: "tooltipMaxWidth", tooltipPersistent: "tooltipPersistent" }, viewQueries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsTabComponent, decorators: [{
|
|
19
|
+
type: Component,
|
|
20
|
+
args: [{ standalone: true, imports: [CommonModule], selector: 'cps-tab', template: "<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n" }]
|
|
21
|
+
}], propDecorators: { label: [{
|
|
22
|
+
type: Input
|
|
23
|
+
}], icon: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}], tooltipText: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], tooltipContentClass: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}], tooltipMaxWidth: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], tooltipPersistent: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], content: [{
|
|
34
|
+
type: ViewChild,
|
|
35
|
+
args: [TemplateRef]
|
|
36
|
+
}] } });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtdGFiLWdyb3VwL2Nwcy10YWIvY3BzLXRhYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtdGFiLWdyb3VwL2Nwcy10YWIvY3BzLXRhYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBU3pFLE1BQU0sT0FBTyxlQUFlO0lBUDVCO1FBUVcsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQix3QkFBbUIsR0FBRyxxQkFBcUIsQ0FBQztRQUM1QyxvQkFBZSxHQUFvQixNQUFNLENBQUM7UUFDMUMsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRW5DLFdBQU0sR0FBRyxLQUFLLENBQUM7S0FDaEI7OzRHQVRZLGVBQWU7Z0dBQWYsZUFBZSwwU0FPZixXQUFXLGdEQ2pCeEIsc0lBS0EseUREQVksWUFBWTsyRkFLWCxlQUFlO2tCQVAzQixTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiLFNBQVM7OEJBS1YsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDa0IsT0FBTztzQkFBOUIsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBzZWxlY3RvcjogJ2Nwcy10YWInLFxuICB0ZW1wbGF0ZVVybDogJy4vY3BzLXRhYi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nwcy10YWIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDcHNUYWJDb21wb25lbnQge1xuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuICBASW5wdXQoKSBpY29uID0gJyc7XG4gIEBJbnB1dCgpIHRvb2x0aXBUZXh0ID0gJyc7XG4gIEBJbnB1dCgpIHRvb2x0aXBDb250ZW50Q2xhc3MgPSAnY3BzLXRvb2x0aXAtY29udGVudCc7XG4gIEBJbnB1dCgpIHRvb2x0aXBNYXhXaWR0aDogbnVtYmVyIHwgc3RyaW5nID0gJzEwMCUnO1xuICBASW5wdXQoKSB0b29sdGlwUGVyc2lzdGVudCA9IGZhbHNlO1xuICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmKSBjb250ZW50ITogVGVtcGxhdGVSZWY8YW55PjtcbiAgYWN0aXZlID0gZmFsc2U7XG59XG4iLCI8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { animate, state, style, transition, trigger } from '@angular/animations';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { Component, ContentChildren, EventEmitter, Input, Output } from '@angular/core';
|
|
4
|
+
import { CpsIconComponent } from '../cps-icon/cps-icon.component';
|
|
5
|
+
import { CpsTabComponent } from './cps-tab/cps-tab.component';
|
|
6
|
+
import { CpsTooltipDirective } from '../../directives/cps-tooltip.directive';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
export class CpsTabGroupComponent {
|
|
10
|
+
// eslint-disable-next-line no-useless-constructor
|
|
11
|
+
constructor(cdRef) {
|
|
12
|
+
this.cdRef = cdRef;
|
|
13
|
+
this.selectedIndex = 0;
|
|
14
|
+
this.isSubTabs = false; // applies an alternative styling to tabs
|
|
15
|
+
this.animationType = 'slide';
|
|
16
|
+
this.initAllTabsContent = false;
|
|
17
|
+
this.animationState = 'slideLeft';
|
|
18
|
+
this.beforeTabChanged = new EventEmitter();
|
|
19
|
+
this.afterTabChanged = new EventEmitter();
|
|
20
|
+
}
|
|
21
|
+
ngAfterContentInit() {
|
|
22
|
+
this.selectTab(this.selectedIndex);
|
|
23
|
+
}
|
|
24
|
+
ngAfterViewInit() {
|
|
25
|
+
this.cdRef.detectChanges();
|
|
26
|
+
}
|
|
27
|
+
selectTab(newSelectedIndex) {
|
|
28
|
+
const _tabs = this.tabs.toArray();
|
|
29
|
+
const currentSelectedTab = _tabs && _tabs[this.selectedIndex];
|
|
30
|
+
this.beforeTabChanged.emit({
|
|
31
|
+
currentTabIndex: this.selectedIndex,
|
|
32
|
+
newTabIndex: newSelectedIndex
|
|
33
|
+
});
|
|
34
|
+
currentSelectedTab && (currentSelectedTab.active = false);
|
|
35
|
+
const newSelectedTab = _tabs && _tabs[newSelectedIndex];
|
|
36
|
+
newSelectedTab && (newSelectedTab.active = true);
|
|
37
|
+
if (newSelectedIndex === this.selectedIndex) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (this.animationType === 'slide') {
|
|
41
|
+
this.animationState =
|
|
42
|
+
newSelectedIndex < this.selectedIndex ? 'slideLeft' : 'slideRight';
|
|
43
|
+
this.selectedIndex = newSelectedIndex;
|
|
44
|
+
this.afterTabChanged.emit({
|
|
45
|
+
currentTabIndex: newSelectedIndex
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
else if (this.animationType === 'fade') {
|
|
49
|
+
this.animationState = 'fadeOut';
|
|
50
|
+
setTimeout(() => {
|
|
51
|
+
this.animationState = 'fadeIn';
|
|
52
|
+
this.selectedIndex = newSelectedIndex;
|
|
53
|
+
this.afterTabChanged.emit({
|
|
54
|
+
currentTabIndex: newSelectedIndex
|
|
55
|
+
});
|
|
56
|
+
}, 100);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
get selectedTab() {
|
|
60
|
+
return this.tabs.find((t) => t.active);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
CpsTabGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsTabGroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
64
|
+
CpsTabGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CpsTabGroupComponent, isStandalone: true, selector: "cps-tab-group", inputs: { selectedIndex: "selectedIndex", isSubTabs: "isSubTabs", animationType: "animationType", initAllTabsContent: "initAllTabsContent" }, outputs: { beforeTabChanged: "beforeTabChanged", afterTabChanged: "afterTabChanged" }, queries: [{ propertyName: "tabs", predicate: CpsTabComponent }], ngImport: i0, template: "<ul class=\"cps-tabs\" [ngClass]=\"{ 'cps-tabs-subtabs': isSubTabs }\">\n <ng-container *ngFor=\"let tab of tabs; let tabIndex = index\">\n <li\n *ngIf=\"tab.tooltipText\"\n class=\"cps-tab\"\n (click)=\"selectTab(tabIndex)\"\n [ngClass]=\"{ active: tab.active }\"\n [cpsTooltip]=\"tab.tooltipText\"\n tooltipOpenDelay=\"1000\"\n tooltipCloseDelay=\"0\"\n tooltipPosition=\"bottom\"\n [tooltipMaxWidth]=\"tab.tooltipMaxWidth\"\n [tooltipPersistent]=\"tab.tooltipPersistent\"\n [tooltipContentClass]=\"tab.tooltipContentClass\">\n <cps-icon *ngIf=\"tab.icon\" class=\"cps-tab-icon\" [icon]=\"tab.icon\">\n </cps-icon>\n <a class=\"cps-tab-link\">{{ tab.label }}</a>\n </li>\n <li\n *ngIf=\"!tab.tooltipText\"\n class=\"cps-tab\"\n (click)=\"selectTab(tabIndex)\"\n [ngClass]=\"{ active: tab.active }\">\n <cps-icon *ngIf=\"tab.icon\" class=\"cps-tab-icon\" [icon]=\"tab.icon\">\n </cps-icon>\n <a class=\"cps-tab-link\">{{ tab.label }}</a>\n </li>\n </ng-container>\n</ul>\n<div\n class=\"cps-tab-content\"\n [ngClass]=\"{ 'cps-tab-content-subtabs': isSubTabs }\">\n <ng-container *ngFor=\"let tab of tabs\">\n <div\n [@slideInOut]=\"animationState\"\n *ngIf=\"tab.active && !initAllTabsContent && animationType === 'slide'\">\n <ng-container [ngTemplateOutlet]=\"tab.content\"></ng-container>\n </div>\n <div\n [@fadeInOut]=\"animationState\"\n *ngIf=\"tab.active && !initAllTabsContent && animationType === 'fade'\">\n <ng-container [ngTemplateOutlet]=\"tab.content\"></ng-container>\n </div>\n <div\n *ngIf=\"initAllTabsContent && animationType === 'slide'\"\n [@slideInOut]=\"animationState\"\n [ngStyle]=\"{ display: tab.active ? null : 'none' }\">\n <ng-container [ngTemplateOutlet]=\"tab.content\"></ng-container>\n </div>\n <div\n *ngIf=\"initAllTabsContent && animationType === 'fade'\"\n [@fadeInOut]=\"animationState\"\n [ngStyle]=\"{ display: tab.active ? null : 'none' }\">\n <ng-container [ngTemplateOutlet]=\"tab.content\"></ng-container>\n </div>\n </ng-container>\n</div>\n", styles: [":host .cps-tab-content{position:relative;min-height:100px;padding:10px}:host .cps-tabs{display:flex;list-style:none;padding:0;margin:0}:host .cps-tabs .cps-tab{display:inline-flex;align-items:center;justify-content:center;min-width:150px;padding:0 24px;font-family:Source Sans Pro,sans-serif;font-style:normal;font-weight:500;font-size:15px;line-height:20px;color:var(--cps-color-text-dark);opacity:1;cursor:pointer;border-bottom:3px solid transparent}:host .cps-tabs .cps-tab.active{color:var(--cps-color-calm)}:host .cps-tabs .cps-tab-link{text-decoration:none;padding:10px;color:inherit;transition:border-bottom-color .3s}:host .cps-tabs:not(.cps-tabs-subtabs){border-bottom:1px solid rgba(0,0,0,.12)}:host .cps-tabs:not(.cps-tabs-subtabs) .cps-tab.active{color:var(--cps-color-calm);border-bottom:3px solid var(--cps-color-surprise)}:host .cps-tabs:not(.cps-tabs-subtabs) .cps-tab:hover:not(.active){border-bottom:3px solid var(--cps-color-line-light)}:host .cps-tabs.cps-tabs-subtabs .cps-tab{height:33px;background-color:#d7d7d759}:host .cps-tabs.cps-tabs-subtabs .cps-tab.active{background-color:#fff}:host .cps-tabs.cps-tabs-subtabs .cps-tab:hover{color:var(--cps-color-calm)}:host .cps-tab-content.cps-tab-content-subtabs{background-color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "directive", type: CpsTooltipDirective, selector: "[cpsTooltip]", inputs: ["cpsTooltip", "tooltipOpenDelay", "tooltipCloseDelay", "tooltipOpenOn", "tooltipPosition", "tooltipPersistent", "tooltipDisabled", "tooltipMaxWidth", "tooltipContentClass"] }], animations: [
|
|
65
|
+
trigger('slideInOut', [
|
|
66
|
+
state('slideLeft', style({ transform: 'translateX(0)' })),
|
|
67
|
+
state('slideRight', style({ transform: 'translateX(0)' })),
|
|
68
|
+
transition('* => slideLeft', [
|
|
69
|
+
style({ transform: 'translateX(-100%)' }),
|
|
70
|
+
animate('200ms ease-in')
|
|
71
|
+
]),
|
|
72
|
+
transition('* => slideRight', [
|
|
73
|
+
style({ transform: 'translateX(100%)' }),
|
|
74
|
+
animate('200ms ease-in')
|
|
75
|
+
])
|
|
76
|
+
]),
|
|
77
|
+
trigger('fadeInOut', [
|
|
78
|
+
state('fadeIn', style({ opacity: 1 })),
|
|
79
|
+
state('fadeOut', style({ opacity: 0 })),
|
|
80
|
+
transition('fadeOut => fadeIn', [
|
|
81
|
+
style({ opacity: 0 }),
|
|
82
|
+
animate('100ms ease-in')
|
|
83
|
+
]),
|
|
84
|
+
transition('fadeIn => fadeOut', [
|
|
85
|
+
animate('0ms ease-out', style({ opacity: 0 }))
|
|
86
|
+
])
|
|
87
|
+
])
|
|
88
|
+
] });
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsTabGroupComponent, decorators: [{
|
|
90
|
+
type: Component,
|
|
91
|
+
args: [{ standalone: true, imports: [
|
|
92
|
+
CommonModule,
|
|
93
|
+
CpsIconComponent,
|
|
94
|
+
CpsTabComponent,
|
|
95
|
+
CpsTooltipDirective
|
|
96
|
+
], selector: 'cps-tab-group', animations: [
|
|
97
|
+
trigger('slideInOut', [
|
|
98
|
+
state('slideLeft', style({ transform: 'translateX(0)' })),
|
|
99
|
+
state('slideRight', style({ transform: 'translateX(0)' })),
|
|
100
|
+
transition('* => slideLeft', [
|
|
101
|
+
style({ transform: 'translateX(-100%)' }),
|
|
102
|
+
animate('200ms ease-in')
|
|
103
|
+
]),
|
|
104
|
+
transition('* => slideRight', [
|
|
105
|
+
style({ transform: 'translateX(100%)' }),
|
|
106
|
+
animate('200ms ease-in')
|
|
107
|
+
])
|
|
108
|
+
]),
|
|
109
|
+
trigger('fadeInOut', [
|
|
110
|
+
state('fadeIn', style({ opacity: 1 })),
|
|
111
|
+
state('fadeOut', style({ opacity: 0 })),
|
|
112
|
+
transition('fadeOut => fadeIn', [
|
|
113
|
+
style({ opacity: 0 }),
|
|
114
|
+
animate('100ms ease-in')
|
|
115
|
+
]),
|
|
116
|
+
transition('fadeIn => fadeOut', [
|
|
117
|
+
animate('0ms ease-out', style({ opacity: 0 }))
|
|
118
|
+
])
|
|
119
|
+
])
|
|
120
|
+
], template: "<ul class=\"cps-tabs\" [ngClass]=\"{ 'cps-tabs-subtabs': isSubTabs }\">\n <ng-container *ngFor=\"let tab of tabs; let tabIndex = index\">\n <li\n *ngIf=\"tab.tooltipText\"\n class=\"cps-tab\"\n (click)=\"selectTab(tabIndex)\"\n [ngClass]=\"{ active: tab.active }\"\n [cpsTooltip]=\"tab.tooltipText\"\n tooltipOpenDelay=\"1000\"\n tooltipCloseDelay=\"0\"\n tooltipPosition=\"bottom\"\n [tooltipMaxWidth]=\"tab.tooltipMaxWidth\"\n [tooltipPersistent]=\"tab.tooltipPersistent\"\n [tooltipContentClass]=\"tab.tooltipContentClass\">\n <cps-icon *ngIf=\"tab.icon\" class=\"cps-tab-icon\" [icon]=\"tab.icon\">\n </cps-icon>\n <a class=\"cps-tab-link\">{{ tab.label }}</a>\n </li>\n <li\n *ngIf=\"!tab.tooltipText\"\n class=\"cps-tab\"\n (click)=\"selectTab(tabIndex)\"\n [ngClass]=\"{ active: tab.active }\">\n <cps-icon *ngIf=\"tab.icon\" class=\"cps-tab-icon\" [icon]=\"tab.icon\">\n </cps-icon>\n <a class=\"cps-tab-link\">{{ tab.label }}</a>\n </li>\n </ng-container>\n</ul>\n<div\n class=\"cps-tab-content\"\n [ngClass]=\"{ 'cps-tab-content-subtabs': isSubTabs }\">\n <ng-container *ngFor=\"let tab of tabs\">\n <div\n [@slideInOut]=\"animationState\"\n *ngIf=\"tab.active && !initAllTabsContent && animationType === 'slide'\">\n <ng-container [ngTemplateOutlet]=\"tab.content\"></ng-container>\n </div>\n <div\n [@fadeInOut]=\"animationState\"\n *ngIf=\"tab.active && !initAllTabsContent && animationType === 'fade'\">\n <ng-container [ngTemplateOutlet]=\"tab.content\"></ng-container>\n </div>\n <div\n *ngIf=\"initAllTabsContent && animationType === 'slide'\"\n [@slideInOut]=\"animationState\"\n [ngStyle]=\"{ display: tab.active ? null : 'none' }\">\n <ng-container [ngTemplateOutlet]=\"tab.content\"></ng-container>\n </div>\n <div\n *ngIf=\"initAllTabsContent && animationType === 'fade'\"\n [@fadeInOut]=\"animationState\"\n [ngStyle]=\"{ display: tab.active ? null : 'none' }\">\n <ng-container [ngTemplateOutlet]=\"tab.content\"></ng-container>\n </div>\n </ng-container>\n</div>\n", styles: [":host .cps-tab-content{position:relative;min-height:100px;padding:10px}:host .cps-tabs{display:flex;list-style:none;padding:0;margin:0}:host .cps-tabs .cps-tab{display:inline-flex;align-items:center;justify-content:center;min-width:150px;padding:0 24px;font-family:Source Sans Pro,sans-serif;font-style:normal;font-weight:500;font-size:15px;line-height:20px;color:var(--cps-color-text-dark);opacity:1;cursor:pointer;border-bottom:3px solid transparent}:host .cps-tabs .cps-tab.active{color:var(--cps-color-calm)}:host .cps-tabs .cps-tab-link{text-decoration:none;padding:10px;color:inherit;transition:border-bottom-color .3s}:host .cps-tabs:not(.cps-tabs-subtabs){border-bottom:1px solid rgba(0,0,0,.12)}:host .cps-tabs:not(.cps-tabs-subtabs) .cps-tab.active{color:var(--cps-color-calm);border-bottom:3px solid var(--cps-color-surprise)}:host .cps-tabs:not(.cps-tabs-subtabs) .cps-tab:hover:not(.active){border-bottom:3px solid var(--cps-color-line-light)}:host .cps-tabs.cps-tabs-subtabs .cps-tab{height:33px;background-color:#d7d7d759}:host .cps-tabs.cps-tabs-subtabs .cps-tab.active{background-color:#fff}:host .cps-tabs.cps-tabs-subtabs .cps-tab:hover{color:var(--cps-color-calm)}:host .cps-tab-content.cps-tab-content-subtabs{background-color:#fff}\n"] }]
|
|
121
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { tabs: [{
|
|
122
|
+
type: ContentChildren,
|
|
123
|
+
args: [CpsTabComponent]
|
|
124
|
+
}], selectedIndex: [{
|
|
125
|
+
type: Input
|
|
126
|
+
}], isSubTabs: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], animationType: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}], initAllTabsContent: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], beforeTabChanged: [{
|
|
133
|
+
type: Output
|
|
134
|
+
}], afterTabChanged: [{
|
|
135
|
+
type: Output
|
|
136
|
+
}] } });
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRhYi1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtdGFiLWdyb3VwL2Nwcy10YWItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYi1ncm91cC9jcHMtdGFiLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNSLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFJTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7O0FBNEM3RSxNQUFNLE9BQU8sb0JBQW9CO0lBYy9CLGtEQUFrRDtJQUNsRCxZQUFvQixLQUF3QjtRQUF4QixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQVpuQyxrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixjQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMseUNBQXlDO1FBQzVELGtCQUFhLEdBQXFCLE9BQU8sQ0FBQztRQUMxQyx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFFcEMsbUJBQWMsR0FDWixXQUFXLENBQUM7UUFFSixxQkFBZ0IsR0FBRyxJQUFJLFlBQVks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Q0FDNUIsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUM7Z0NBQ3hDLE9BQU8sQ0FBQyxlQUFlLENBQUM7NkJBQ3pCLENBQUM7eUJBQ0gsQ0FBQzt3QkFDRixPQUFPLENBQUMsV0FBVyxFQUFFOzRCQUNuQixLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzRCQUN0QyxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzRCQUN2QyxVQUFVLENBQUMsbUJBQW1CLEVBQUU7Z0NBQzlCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztnQ0FDckIsT0FBTyxDQUFDLGVBQWUsQ0FBQzs2QkFDekIsQ0FBQzs0QkFDRixVQUFVLENBQUMsbUJBQW1CLEVBQUU7Z0NBQzlCLE9BQU8sQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7NkJBQy9DLENBQUM7eUJBQ0gsQ0FBQztxQkFDSDt3R0FHaUMsSUFBSTtzQkFBckMsZUFBZTt1QkFBQyxlQUFlO2dCQUV2QixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBS0ksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhbmltYXRlLFxuICBzdGF0ZSxcbiAgc3R5bGUsXG4gIHRyYW5zaXRpb24sXG4gIHRyaWdnZXJcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENwc0ljb25Db21wb25lbnQgfSBmcm9tICcuLi9jcHMtaWNvbi9jcHMtaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BzVGFiQ29tcG9uZW50IH0gZnJvbSAnLi9jcHMtdGFiL2Nwcy10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IENwc1Rvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2Nwcy10b29sdGlwLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFiQ2hhbmdlRXZlbnQge1xuICBjdXJyZW50VGFiSW5kZXg6IG51bWJlcjtcbiAgbmV3VGFiSW5kZXg/OiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIENwc0ljb25Db21wb25lbnQsXG4gICAgQ3BzVGFiQ29tcG9uZW50LFxuICAgIENwc1Rvb2x0aXBEaXJlY3RpdmVcbiAgXSxcbiAgc2VsZWN0b3I6ICdjcHMtdGFiLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nwcy10YWItZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jcHMtdGFiLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdzbGlkZUluT3V0JywgW1xuICAgICAgc3RhdGUoJ3NsaWRlTGVmdCcsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwKScgfSkpLFxuICAgICAgc3RhdGUoJ3NsaWRlUmlnaHQnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCknIH0pKSxcbiAgICAgIHRyYW5zaXRpb24oJyogPT4gc2xpZGVMZWZ0JywgW1xuICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLTEwMCUpJyB9KSxcbiAgICAgICAgYW5pbWF0ZSgnMjAwbXMgZWFzZS1pbicpXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJyogPT4gc2xpZGVSaWdodCcsIFtcbiAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDEwMCUpJyB9KSxcbiAgICAgICAgYW5pbWF0ZSgnMjAwbXMgZWFzZS1pbicpXG4gICAgICBdKVxuICAgIF0pLFxuICAgIHRyaWdnZXIoJ2ZhZGVJbk91dCcsIFtcbiAgICAgIHN0YXRlKCdmYWRlSW4nLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpLFxuICAgICAgc3RhdGUoJ2ZhZGVPdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDAgfSkpLFxuICAgICAgdHJhbnNpdGlvbignZmFkZU91dCA9PiBmYWRlSW4nLCBbXG4gICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCB9KSxcbiAgICAgICAgYW5pbWF0ZSgnMTAwbXMgZWFzZS1pbicpXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJ2ZhZGVJbiA9PiBmYWRlT3V0JywgW1xuICAgICAgICBhbmltYXRlKCcwbXMgZWFzZS1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDAgfSkpXG4gICAgICBdKVxuICAgIF0pXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ3BzVGFiR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQENvbnRlbnRDaGlsZHJlbihDcHNUYWJDb21wb25lbnQpIHRhYnMhOiBRdWVyeUxpc3Q8Q3BzVGFiQ29tcG9uZW50PjtcblxuICBASW5wdXQoKSBzZWxlY3RlZEluZGV4ID0gMDtcbiAgQElucHV0KCkgaXNTdWJUYWJzID0gZmFsc2U7IC8vIGFwcGxpZXMgYW4gYWx0ZXJuYXRpdmUgc3R5bGluZyB0byB0YWJzXG4gIEBJbnB1dCgpIGFuaW1hdGlvblR5cGU6ICdzbGlkZScgfCAnZmFkZScgPSAnc2xpZGUnO1xuICBASW5wdXQoKSBpbml0QWxsVGFic0NvbnRlbnQgPSBmYWxzZTtcblxuICBhbmltYXRpb25TdGF0ZTogJ3NsaWRlTGVmdCcgfCAnc2xpZGVSaWdodCcgfCAnZmFkZUluJyB8ICdmYWRlT3V0JyA9XG4gICAgJ3NsaWRlTGVmdCc7XG5cbiAgQE91dHB1dCgpIGJlZm9yZVRhYkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFRhYkNoYW5nZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgYWZ0ZXJUYWJDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJDaGFuZ2VFdmVudD4oKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1jb25zdHJ1Y3RvclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5zZWxlY3RUYWIodGhpcy5zZWxlY3RlZEluZGV4KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHNlbGVjdFRhYihuZXdTZWxlY3RlZEluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBfdGFicyA9IHRoaXMudGFicy50b0FycmF5KCk7XG4gICAgY29uc3QgY3VycmVudFNlbGVjdGVkVGFiID0gX3RhYnMgJiYgX3RhYnNbdGhpcy5zZWxlY3RlZEluZGV4XTtcblxuICAgIHRoaXMuYmVmb3JlVGFiQ2hhbmdlZC5lbWl0KHtcbiAgICAgIGN1cnJlbnRUYWJJbmRleDogdGhpcy5zZWxlY3RlZEluZGV4LFxuICAgICAgbmV3VGFiSW5kZXg6IG5ld1NlbGVjdGVkSW5kZXhcbiAgICB9KTtcblxuICAgIGN1cnJlbnRTZWxlY3RlZFRhYiAmJiAoY3VycmVudFNlbGVjdGVkVGFiLmFjdGl2ZSA9IGZhbHNlKTtcbiAgICBjb25zdCBuZXdTZWxlY3RlZFRhYiA9IF90YWJzICYmIF90YWJzW25ld1NlbGVjdGVkSW5kZXhdO1xuICAgIG5ld1NlbGVjdGVkVGFiICYmIChuZXdTZWxlY3RlZFRhYi5hY3RpdmUgPSB0cnVlKTtcbiAgICBpZiAobmV3U2VsZWN0ZWRJbmRleCA9PT0gdGhpcy5zZWxlY3RlZEluZGV4KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYW5pbWF0aW9uVHlwZSA9PT0gJ3NsaWRlJykge1xuICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZSA9XG4gICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPCB0aGlzLnNlbGVjdGVkSW5kZXggPyAnc2xpZGVMZWZ0JyA6ICdzbGlkZVJpZ2h0JztcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IG5ld1NlbGVjdGVkSW5kZXg7XG5cbiAgICAgIHRoaXMuYWZ0ZXJUYWJDaGFuZ2VkLmVtaXQoe1xuICAgICAgICBjdXJyZW50VGFiSW5kZXg6IG5ld1NlbGVjdGVkSW5kZXhcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hbmltYXRpb25UeXBlID09PSAnZmFkZScpIHtcbiAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSAnZmFkZU91dCc7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZSA9ICdmYWRlSW4nO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4O1xuICAgICAgICB0aGlzLmFmdGVyVGFiQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICBjdXJyZW50VGFiSW5kZXg6IG5ld1NlbGVjdGVkSW5kZXhcbiAgICAgICAgfSk7XG4gICAgICB9LCAxMDApO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzZWxlY3RlZFRhYigpOiBDcHNUYWJDb21wb25lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnRhYnMuZmluZCgodCkgPT4gdC5hY3RpdmUpO1xuICB9XG59XG4iLCI8dWwgY2xhc3M9XCJjcHMtdGFic1wiIFtuZ0NsYXNzXT1cInsgJ2Nwcy10YWJzLXN1YnRhYnMnOiBpc1N1YlRhYnMgfVwiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiczsgbGV0IHRhYkluZGV4ID0gaW5kZXhcIj5cbiAgICA8bGlcbiAgICAgICpuZ0lmPVwidGFiLnRvb2x0aXBUZXh0XCJcbiAgICAgIGNsYXNzPVwiY3BzLXRhYlwiXG4gICAgICAoY2xpY2spPVwic2VsZWN0VGFiKHRhYkluZGV4KVwiXG4gICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogdGFiLmFjdGl2ZSB9XCJcbiAgICAgIFtjcHNUb29sdGlwXT1cInRhYi50b29sdGlwVGV4dFwiXG4gICAgICB0b29sdGlwT3BlbkRlbGF5PVwiMTAwMFwiXG4gICAgICB0b29sdGlwQ2xvc2VEZWxheT1cIjBcIlxuICAgICAgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgIFt0b29sdGlwTWF4V2lkdGhdPVwidGFiLnRvb2x0aXBNYXhXaWR0aFwiXG4gICAgICBbdG9vbHRpcFBlcnNpc3RlbnRdPVwidGFiLnRvb2x0aXBQZXJzaXN0ZW50XCJcbiAgICAgIFt0b29sdGlwQ29udGVudENsYXNzXT1cInRhYi50b29sdGlwQ29udGVudENsYXNzXCI+XG4gICAgICA8Y3BzLWljb24gKm5nSWY9XCJ0YWIuaWNvblwiIGNsYXNzPVwiY3BzLXRhYi1pY29uXCIgW2ljb25dPVwidGFiLmljb25cIj5cbiAgICAgIDwvY3BzLWljb24+XG4gICAgICA8YSBjbGFzcz1cImNwcy10YWItbGlua1wiPnt7IHRhYi5sYWJlbCB9fTwvYT5cbiAgICA8L2xpPlxuICAgIDxsaVxuICAgICAgKm5nSWY9XCIhdGFiLnRvb2x0aXBUZXh0XCJcbiAgICAgIGNsYXNzPVwiY3BzLXRhYlwiXG4gICAgICAoY2xpY2spPVwic2VsZWN0VGFiKHRhYkluZGV4KVwiXG4gICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogdGFiLmFjdGl2ZSB9XCI+XG4gICAgICA8Y3BzLWljb24gKm5nSWY9XCJ0YWIuaWNvblwiIGNsYXNzPVwiY3BzLXRhYi1pY29uXCIgW2ljb25dPVwidGFiLmljb25cIj5cbiAgICAgIDwvY3BzLWljb24+XG4gICAgICA8YSBjbGFzcz1cImNwcy10YWItbGlua1wiPnt7IHRhYi5sYWJlbCB9fTwvYT5cbiAgICA8L2xpPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvdWw+XG48ZGl2XG4gIGNsYXNzPVwiY3BzLXRhYi1jb250ZW50XCJcbiAgW25nQ2xhc3NdPVwieyAnY3BzLXRhYi1jb250ZW50LXN1YnRhYnMnOiBpc1N1YlRhYnMgfVwiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFic1wiPlxuICAgIDxkaXZcbiAgICAgIFtAc2xpZGVJbk91dF09XCJhbmltYXRpb25TdGF0ZVwiXG4gICAgICAqbmdJZj1cInRhYi5hY3RpdmUgJiYgIWluaXRBbGxUYWJzQ29udGVudCAmJiBhbmltYXRpb25UeXBlID09PSAnc2xpZGUnXCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYi5jb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgW0BmYWRlSW5PdXRdPVwiYW5pbWF0aW9uU3RhdGVcIlxuICAgICAgKm5nSWY9XCJ0YWIuYWN0aXZlICYmICFpbml0QWxsVGFic0NvbnRlbnQgJiYgYW5pbWF0aW9uVHlwZSA9PT0gJ2ZhZGUnXCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYi5jb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJpbml0QWxsVGFic0NvbnRlbnQgJiYgYW5pbWF0aW9uVHlwZSA9PT0gJ3NsaWRlJ1wiXG4gICAgICBbQHNsaWRlSW5PdXRdPVwiYW5pbWF0aW9uU3RhdGVcIlxuICAgICAgW25nU3R5bGVdPVwieyBkaXNwbGF5OiB0YWIuYWN0aXZlID8gbnVsbCA6ICdub25lJyB9XCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYi5jb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJpbml0QWxsVGFic0NvbnRlbnQgJiYgYW5pbWF0aW9uVHlwZSA9PT0gJ2ZhZGUnXCJcbiAgICAgIFtAZmFkZUluT3V0XT1cImFuaW1hdGlvblN0YXRlXCJcbiAgICAgIFtuZ1N0eWxlXT1cInsgZGlzcGxheTogdGFiLmFjdGl2ZSA/IG51bGwgOiAnbm9uZScgfVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWIuY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|