@design-system-rte/angular 1.1.0 → 1.2.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/esm2022/lib/components/breadcrumbs/breadcrumbs.component.mjs +2 -2
- package/esm2022/lib/components/dropdown/dropdown-menu/dropdown-menu-footer.directive.mjs +17 -0
- package/esm2022/lib/components/dropdown/dropdown-menu/dropdown-menu-header.directive.mjs +17 -0
- package/esm2022/lib/components/dropdown/dropdown-menu/dropdown-menu.component.mjs +24 -5
- package/esm2022/lib/components/dropdown/dropdown.directive.mjs +33 -12
- package/esm2022/lib/components/dropdown/dropdown.module.mjs +32 -5
- package/esm2022/lib/components/select/select.component.mjs +2 -2
- package/esm2022/lib/components/split-button/split-button.component.mjs +2 -2
- package/esm2022/lib/components/tab/tab-item/tab-item.component.mjs +112 -0
- package/esm2022/lib/components/tab/tab.component.mjs +242 -0
- package/esm2022/lib/components/toast/toast.component.mjs +44 -5
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/design-system-rte-angular.mjs +491 -25
- package/fesm2022/design-system-rte-angular.mjs.map +1 -1
- package/lib/components/assistive-text/assistive-text.component.d.ts +1 -1
- package/lib/components/badge/badge.directive.d.ts +1 -1
- package/lib/components/dropdown/dropdown-menu/dropdown-menu-footer.directive.d.ts +7 -0
- package/lib/components/dropdown/dropdown-menu/dropdown-menu-header.directive.d.ts +7 -0
- package/lib/components/dropdown/dropdown-menu/dropdown-menu.component.d.ts +14 -1
- package/lib/components/dropdown/dropdown.directive.d.ts +7 -1
- package/lib/components/dropdown/dropdown.module.d.ts +3 -1
- package/lib/components/icon-button/icon-button.component.d.ts +2 -2
- package/lib/components/icon-button-toggle/icon-button-toggle.component.d.ts +1 -1
- package/lib/components/popover/popover.component.d.ts +1 -1
- package/lib/components/split-button/split-button.component.d.ts +2 -2
- package/lib/components/tab/tab-item/tab-item.component.d.ts +35 -0
- package/lib/components/tab/tab.component.d.ts +70 -0
- package/lib/components/tag/tag.component.d.ts +2 -2
- package/lib/components/text-input/base-text-input/base-text-input.component.d.ts +3 -3
- package/lib/components/toast/toast.component.d.ts +9 -1
- package/lib/components/tooltip/tooltip.component.d.ts +1 -1
- package/package.json +2 -2
- package/public-api.d.ts +1 -0
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { CommonModule } from "@angular/common";
|
|
2
|
+
import { ChangeDetectionStrategy, Component, input, computed, signal, viewChildren, output, viewChild, } from "@angular/core";
|
|
3
|
+
import { scrollToSelectedTab } from "@design-system-rte/core/components/tab/tab.utils";
|
|
4
|
+
import { ARROW_DOWN_KEY, ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, } from "@design-system-rte/core/constants/keyboard/keyboard.constants";
|
|
5
|
+
import { BadgeComponent } from "../badge/badge.component";
|
|
6
|
+
import { DropdownModule } from "../dropdown";
|
|
7
|
+
import { IconComponent } from "../icon/icon.component";
|
|
8
|
+
import { IconButtonComponent } from "../icon-button/icon-button.component";
|
|
9
|
+
import { TabItemComponent } from "./tab-item/tab-item.component";
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/common";
|
|
12
|
+
import * as i2 from "../dropdown/dropdown.directive";
|
|
13
|
+
import * as i3 from "../dropdown/dropdown-trigger/dropdown-trigger.directive";
|
|
14
|
+
import * as i4 from "../dropdown/dropdown-menu/dropdown-menu.component";
|
|
15
|
+
export class TabComponent {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.alignment = input("start");
|
|
18
|
+
this.direction = input("horizontal");
|
|
19
|
+
this.options = input([]);
|
|
20
|
+
this.selectedTabId = input();
|
|
21
|
+
this.compactSpacing = input(false);
|
|
22
|
+
this.overflowType = input("scrollable");
|
|
23
|
+
this.inverted = input(false);
|
|
24
|
+
this.sliderLeft = signal(0);
|
|
25
|
+
this.sliderWidth = signal(0);
|
|
26
|
+
this.sliderTop = signal(0);
|
|
27
|
+
this.sliderHeight = signal(0);
|
|
28
|
+
this.tabItemRefs = viewChildren("tabItem");
|
|
29
|
+
this.containerRef = viewChild("tabList");
|
|
30
|
+
this.hoverIndicatorRefs = viewChildren("hoverIndicator");
|
|
31
|
+
this.selectedTabRef = computed(() => {
|
|
32
|
+
const idx = this.options().findIndex((opt) => opt.id === this.selectedTabId());
|
|
33
|
+
const tabItem = this.tabItemRefs()[idx];
|
|
34
|
+
return tabItem;
|
|
35
|
+
});
|
|
36
|
+
this.hoverIndicatorStyle = signal(null);
|
|
37
|
+
this.change = output();
|
|
38
|
+
this.isScrollable = signal(false);
|
|
39
|
+
this.isOverflowingLeft = signal(false);
|
|
40
|
+
this.isOverflowingRight = signal(false);
|
|
41
|
+
this.isOverflowingTop = signal(false);
|
|
42
|
+
this.isOverflowingBottom = signal(false);
|
|
43
|
+
this.canScrollBackward = computed(() => {
|
|
44
|
+
return this.isOverflowingLeft() || this.isOverflowingTop();
|
|
45
|
+
});
|
|
46
|
+
this.canScrollForward = computed(() => {
|
|
47
|
+
return this.isOverflowingRight() || this.isOverflowingBottom();
|
|
48
|
+
});
|
|
49
|
+
this.isHorizontal = computed(() => this.direction() === "horizontal" && (this.isOverflowingRight() || this.isOverflowingLeft()));
|
|
50
|
+
this.shouldDisplayDropdown = computed(() => this.overflowType() === "dropdown" && this.isHorizontal());
|
|
51
|
+
this.selectedTab = computed(() => {
|
|
52
|
+
return this.options().find((option) => option.id === this.selectedTabId());
|
|
53
|
+
});
|
|
54
|
+
this.dropdownFilteredOptions = computed(() => {
|
|
55
|
+
return this.options().filter((option) => option.id !== this.selectedTabId());
|
|
56
|
+
});
|
|
57
|
+
this.displayBadge = (option) => {
|
|
58
|
+
return (!!option.showBadge ||
|
|
59
|
+
(option.badgeCount !== undefined && option.badgeCount > 0 && option.badgeContent === "number") ||
|
|
60
|
+
(option.badgeContent === "icon" && !!option.badgeIcon));
|
|
61
|
+
};
|
|
62
|
+
this.tabItemSelectedIndicatorStyle = computed(() => ({
|
|
63
|
+
left: `${this.shouldDisplayDropdown() ? 0 : this.sliderLeft()}px`,
|
|
64
|
+
top: `${this.sliderTop()}px`,
|
|
65
|
+
width: `${this.sliderWidth() + (this.shouldDisplayDropdown() ? 32 : 0)}px`,
|
|
66
|
+
height: `${this.sliderHeight()}px`,
|
|
67
|
+
}));
|
|
68
|
+
this.onKeydownTabItem = (event) => {
|
|
69
|
+
const isVertical = this.direction() === "vertical";
|
|
70
|
+
const isDownKeyPressed = isVertical && event.key === ARROW_DOWN_KEY;
|
|
71
|
+
const isUpKeyPressed = isVertical && event.key === ARROW_UP_KEY;
|
|
72
|
+
const isRightKeyPressed = !isVertical && event.key === ARROW_RIGHT_KEY;
|
|
73
|
+
const isLeftKeyPressed = !isVertical && event.key === ARROW_LEFT_KEY;
|
|
74
|
+
const isArrowNext = isDownKeyPressed || isRightKeyPressed;
|
|
75
|
+
const isArrowPrev = isUpKeyPressed || isLeftKeyPressed;
|
|
76
|
+
if (isArrowNext || isArrowPrev) {
|
|
77
|
+
event.preventDefault();
|
|
78
|
+
this.focusItem(isArrowNext ? "next" : "previous");
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
this.onClickTabItem = (id) => {
|
|
82
|
+
if (id !== this.selectedTabId()) {
|
|
83
|
+
this.change.emit(id);
|
|
84
|
+
if (!this.shouldDisplayDropdown()) {
|
|
85
|
+
const newTab = this.getTabItem(id)?.tabItemRef()?.nativeElement;
|
|
86
|
+
if (newTab) {
|
|
87
|
+
const container = this.containerRef()?.nativeElement;
|
|
88
|
+
if (container) {
|
|
89
|
+
scrollToSelectedTab(newTab, container, this.direction());
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
this.getTabItem = (id) => {
|
|
96
|
+
return this.tabItemRefs().find((tab) => tab.option()?.id === id);
|
|
97
|
+
};
|
|
98
|
+
this.focusItem = (direction) => {
|
|
99
|
+
const currentIndex = this.tabItemRefs().findIndex((tab) => tab === this.selectedTabRef());
|
|
100
|
+
const maxIterations = this.tabItemRefs().length;
|
|
101
|
+
let newIndex = this.computeNextItemIndex(currentIndex, maxIterations, direction);
|
|
102
|
+
let counter = 0;
|
|
103
|
+
while (this.tabItemRefs()[newIndex].tabItemRef()?.nativeElement.getAttribute("data-disabled") === "true" &&
|
|
104
|
+
counter < maxIterations) {
|
|
105
|
+
newIndex = this.computeNextItemIndex(newIndex, maxIterations, direction);
|
|
106
|
+
counter++;
|
|
107
|
+
}
|
|
108
|
+
this.tabItemRefs()[newIndex].tabItemRef()?.nativeElement.focus();
|
|
109
|
+
this.tabItemRefs()[newIndex].tabItemRef()?.nativeElement.click();
|
|
110
|
+
};
|
|
111
|
+
this.computeScrollableSignals = () => {
|
|
112
|
+
this.computeIsScrollable();
|
|
113
|
+
this.computeIsOverflowingLeft();
|
|
114
|
+
this.computeIsOverflowingRight();
|
|
115
|
+
this.computeIsOverflowingTop();
|
|
116
|
+
this.computeIsOverflowingBottom();
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
isSelected(id) {
|
|
120
|
+
return this.selectedTabId() === id;
|
|
121
|
+
}
|
|
122
|
+
ngAfterViewInit() {
|
|
123
|
+
this.updateSelectedTabItemIndicator();
|
|
124
|
+
this.computeScrollableSignals();
|
|
125
|
+
window.addEventListener("resize", this.updateSelectedTabItemIndicator.bind(this));
|
|
126
|
+
window.addEventListener("resize", this.computeScrollableSignals.bind(this));
|
|
127
|
+
if (this.containerRef()) {
|
|
128
|
+
this.containerRef()?.nativeElement.addEventListener("scroll", this.computeScrollableSignals.bind(this));
|
|
129
|
+
}
|
|
130
|
+
this.hoverIndicatorRefs().forEach((hoverIndicator) => {
|
|
131
|
+
hoverIndicator.nativeElement.style.opacity = "0";
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
ngOnDestroy() {
|
|
135
|
+
window.removeEventListener("resize", this.updateSelectedTabItemIndicator.bind(this));
|
|
136
|
+
window.removeEventListener("resize", this.computeScrollableSignals.bind(this));
|
|
137
|
+
if (this.containerRef()) {
|
|
138
|
+
this.containerRef()?.nativeElement.removeEventListener("scroll", this.computeScrollableSignals.bind(this));
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
ngOnChanges(changes) {
|
|
142
|
+
if (changes["selectedTabId"]) {
|
|
143
|
+
this.updateSelectedTabItemIndicator();
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
scrollBackward() {
|
|
147
|
+
if (this.containerRef()?.nativeElement) {
|
|
148
|
+
const scrollObject = this.direction() === "horizontal" ? { left: -300 } : { top: -300 };
|
|
149
|
+
this.containerRef()?.nativeElement.scrollBy({ ...scrollObject, behavior: "smooth" });
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
scrollForward() {
|
|
153
|
+
if (this.containerRef() && this.containerRef()?.nativeElement) {
|
|
154
|
+
const scrollObject = this.direction() === "horizontal" ? { left: 300 } : { top: 300 };
|
|
155
|
+
this.containerRef()?.nativeElement.scrollBy({ ...scrollObject, behavior: "smooth" });
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
computeNextItemIndex(currentIndex, totalItems, direction) {
|
|
159
|
+
return direction === "next" ? (currentIndex + 1) % totalItems : (currentIndex - 1 + totalItems) % totalItems;
|
|
160
|
+
}
|
|
161
|
+
computeIndicatorStyle(tabItem) {
|
|
162
|
+
if (this.direction() === "horizontal") {
|
|
163
|
+
return {
|
|
164
|
+
width: tabItem.offsetWidth,
|
|
165
|
+
left: tabItem.offsetLeft,
|
|
166
|
+
top: tabItem.offsetTop + tabItem.offsetHeight,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
return {
|
|
171
|
+
left: 0,
|
|
172
|
+
top: tabItem.offsetTop,
|
|
173
|
+
height: tabItem.offsetHeight,
|
|
174
|
+
width: 2,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
updateSelectedTabItemIndicator() {
|
|
179
|
+
const idx = this.options().findIndex((opt) => opt.id === this.selectedTabId());
|
|
180
|
+
const tabItem = this.tabItemRefs()[idx];
|
|
181
|
+
if (tabItem?.tabItemRef) {
|
|
182
|
+
if (tabItem.option()?.disabled) {
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
const tabItemRef = tabItem.tabItemRef?.();
|
|
186
|
+
if (tabItemRef && tabItemRef.nativeElement) {
|
|
187
|
+
const tabItemElement = tabItemRef.nativeElement;
|
|
188
|
+
const indicatorStyle = this.computeIndicatorStyle(tabItemElement);
|
|
189
|
+
this.sliderHeight.set(indicatorStyle.height ?? 2);
|
|
190
|
+
this.sliderTop.set(indicatorStyle.top);
|
|
191
|
+
this.sliderWidth.set(indicatorStyle.width ?? 2);
|
|
192
|
+
this.sliderLeft.set(indicatorStyle.left);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
computeIsScrollable() {
|
|
197
|
+
if (this.containerRef()?.nativeElement) {
|
|
198
|
+
const containerNativeElement = this.containerRef()?.nativeElement;
|
|
199
|
+
if (containerNativeElement) {
|
|
200
|
+
this.isScrollable.set(containerNativeElement.offsetWidth < containerNativeElement.scrollWidth ||
|
|
201
|
+
containerNativeElement.offsetHeight < containerNativeElement.scrollHeight);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return false;
|
|
205
|
+
}
|
|
206
|
+
computeIsOverflowingLeft() {
|
|
207
|
+
const containerNativeElement = this.containerRef()?.nativeElement;
|
|
208
|
+
if (containerNativeElement) {
|
|
209
|
+
const isOverFlowingLeft = containerNativeElement.scrollLeft > 0;
|
|
210
|
+
this.isOverflowingLeft.set(this.isScrollable() && isOverFlowingLeft);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
computeIsOverflowingRight() {
|
|
214
|
+
const containerNativeElement = this.containerRef()?.nativeElement;
|
|
215
|
+
if (containerNativeElement) {
|
|
216
|
+
const isOverflowingRight = containerNativeElement.scrollWidth - containerNativeElement.clientWidth - containerNativeElement.scrollLeft > 0;
|
|
217
|
+
this.isOverflowingRight.set(this.isScrollable() && isOverflowingRight);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
computeIsOverflowingTop() {
|
|
221
|
+
const containerNativeElement = this.containerRef()?.nativeElement;
|
|
222
|
+
if (containerNativeElement) {
|
|
223
|
+
const isOverFlowingTop = containerNativeElement.scrollTop > 0;
|
|
224
|
+
this.isOverflowingTop.set(this.isScrollable() && isOverFlowingTop);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
computeIsOverflowingBottom() {
|
|
228
|
+
const containerNativeElement = this.containerRef()?.nativeElement;
|
|
229
|
+
if (containerNativeElement) {
|
|
230
|
+
const isOverflowingBottom = containerNativeElement.scrollHeight - containerNativeElement.clientHeight - containerNativeElement.scrollTop >
|
|
231
|
+
0;
|
|
232
|
+
this.isOverflowingBottom.set(this.isScrollable() && isOverflowingBottom);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
236
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: TabComponent, isStandalone: true, selector: "rte-tab", inputs: { alignment: { classPropertyName: "alignment", publicName: "alignment", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, selectedTabId: { classPropertyName: "selectedTabId", publicName: "selectedTabId", isSignal: true, isRequired: false, transformFunction: null }, compactSpacing: { classPropertyName: "compactSpacing", publicName: "compactSpacing", isSignal: true, isRequired: false, transformFunction: null }, overflowType: { classPropertyName: "overflowType", publicName: "overflowType", isSignal: true, isRequired: false, transformFunction: null }, inverted: { classPropertyName: "inverted", publicName: "inverted", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, viewQueries: [{ propertyName: "tabItemRefs", predicate: ["tabItem"], descendants: true, isSignal: true }, { propertyName: "containerRef", first: true, predicate: ["tabList"], descendants: true, isSignal: true }, { propertyName: "hoverIndicatorRefs", predicate: ["hoverIndicator"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"rte-tab-container\" [attr.data-direction]=\"direction()\">\n <div class=\"rte-tab-border-vertical\" aria-hidden=\"true\" role=\"presentation\" [attr.data-direction]=\"direction()\"></div>\n <div\n [ngStyle]=\"{\n position: 'relative',\n display: 'flex',\n 'align-items': 'center',\n 'flex-direction': direction() === 'horizontal' ? 'row' : 'column',\n }\"\n >\n <rte-icon-button\n *ngIf=\"isScrollable() && !shouldDisplayDropdown()\"\n aria-label=\"Previous tabs\"\n variant=\"transparent\"\n [name]=\"direction() === 'horizontal' ? 'arrow-chevron-left' : 'arrow-chevron-up'\"\n [ngStyle]=\"{\n opacity: canScrollBackward() ? '1' : '0',\n 'pointer-events': canScrollBackward() ? 'auto' : 'none',\n }\"\n (clickEvent)=\"scrollBackward()\"\n />\n <div\n #tabList\n role=\"tablist\"\n aria-label=\"Sample Tabs\"\n class=\"rte-tab\"\n [attr.data-alignment]=\"shouldDisplayDropdown() ? 'start' : alignment()\"\n [attr.data-direction]=\"direction()\"\n [attr.data-overflow-type]=\"overflowType()\"\n >\n <span class=\"rte-tab-selected-indicator\" [ngStyle]=\"tabItemSelectedIndicatorStyle()\"></span>\n <div\n *ngIf=\"shouldDisplayDropdown() && options().length\"\n rteDropdown\n [rteDropdownOffset]=\"10\"\n (menuEvent)=\"onClickTabItem($event.id)\"\n >\n <button\n rteDropdownTrigger\n class=\"rte-tab-dropdown-button\"\n [attr.data-inverted]=\"inverted()\"\n [attr.data-overflow-type]=\"overflowType()\"\n >\n <rte-icon *ngIf=\"selectedTab()?.icon\" appearance=\"filled\" [name]=\"selectedTab()?.icon!\"></rte-icon>\n <span *ngIf=\"selectedTab()?.label\">{{ selectedTab()?.label }}</span>\n <rte-badge\n *ngIf=\"selectedTab()?.badgeCount && selectedTab()?.badgeContent === 'number'\"\n [badgeType]=\"selectedTab()?.badgeType!\"\n [badgeContent]=\"selectedTab()?.badgeContent!\"\n [count]=\"selectedTab()?.badgeCount\"\n [simpleBadge]=\"true\"\n ></rte-badge>\n <rte-icon name=\"arrow-chevron-down\" appearance=\"outlined\"></rte-icon>\n </button>\n <rte-dropdown-menu [items]=\"dropdownFilteredOptions()\" />\n </div>\n <ng-container *ngFor=\"let option of options(); let idx = index\">\n <rte-tab-item\n #tabItem\n [option]=\"option\"\n [direction]=\"direction()\"\n [compactSpacing]=\"compactSpacing()\"\n [isSelected]=\"isSelected(option.id)\"\n [inverted]=\"inverted()\"\n [attr.data-hidden]=\"shouldDisplayDropdown()\"\n [isHidden]=\"shouldDisplayDropdown()\"\n (keydown)=\"onKeydownTabItem($event)\"\n (click)=\"onClickTabItem(option.id)\"\n ></rte-tab-item>\n </ng-container>\n </div>\n <rte-icon-button\n *ngIf=\"isScrollable() && !shouldDisplayDropdown()\"\n aria-label=\"Next tabs\"\n variant=\"transparent\"\n [name]=\"direction() === 'horizontal' ? 'arrow-chevron-right' : 'arrow-chevron-down'\"\n [ngStyle]=\"{\n opacity: canScrollForward() ? '1' : '0',\n 'pointer-events': canScrollForward() ? 'auto' : 'none',\n }\"\n (clickEvent)=\"scrollForward()\"\n />\n </div>\n <div\n class=\"rte-tab-border-horizontal\"\n aria-hidden=\"true\"\n role=\"presentation\"\n [attr.data-direction]=\"direction()\"\n [attr.data-compact-spacing]=\"compactSpacing()\"\n [attr.data-scrollable]=\"isScrollable() && overflowType() === 'scrollable'\"\n ></div>\n</div>\n", styles: [".rte-tab-container{position:relative;display:flex;flex-direction:column}.rte-tab-container[data-direction=vertical]{flex-direction:row;height:100%}.rte-tab{position:relative;display:flex;height:100%;gap:24px;justify-content:flex-start;padding-bottom:2px;margin-bottom:-2px;margin-left:-2px;scrollbar-width:none;width:100%;padding-top:2px;padding-left:2px;align-items:center}.rte-tab[data-direction=horizontal]{overflow-x:scroll}.rte-tab[data-direction=horizontal][data-overflow-type=dropdown]{overflow:hidden;margin-left:0}.rte-tab[data-direction=vertical]{flex-direction:column;border-bottom:none;gap:4px;height:100%;padding-right:2px;margin-left:-2px;width:max-content;align-items:start;margin-bottom:0}.rte-tab[data-direction=vertical] .rte-tab-selected-indicator{width:2px;transition:top .2s ease,height .2s ease}.rte-tab[data-alignment=center]{justify-content:center}.rte-tab .rte-tab-selected-indicator{position:absolute;bottom:0;height:2px;background:var(--background-brand-selected-default);transition:left .2s ease,width .2s ease;pointer-events:none;z-index:1}.rte-tab .rte-tab-separator{width:24px;flex-shrink:0}.rte-tab-border-horizontal{background-color:var(--background-neutral-regular-default);position:relative;height:2px}.rte-tab-border-horizontal[data-compact-spacing=true][data-scrollable=true]{bottom:5px}.rte-tab-border-horizontal[data-direction=vertical]{display:none}.rte-tab-border-vertical{background-color:var(--background-neutral-regular-default);position:relative;width:2px}.rte-tab-border-vertical[data-direction=horizontal]{display:none}.rte-tab-dropdown-button{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:14px;line-height:20px;letter-spacing:0px;color:var(--content-secondary);width:max-content;display:flex;align-items:center;gap:12px;background-color:transparent;border:none;cursor:pointer;padding:0;margin:12px}.rte-tab-dropdown-button:focus-visible{outline:2px solid var(--border-brand-focused);outline-offset:12px;z-index:1}.rte-tab-dropdown-button[data-inverted=true]{color:var(--content-primary-inverse)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: TabItemComponent, selector: "rte-tab-item", inputs: ["direction", "option", "compactSpacing", "isSelected", "handleKeydown", "inverted", "isHidden"], outputs: ["click"] }, { kind: "component", type: IconButtonComponent, selector: "rte-icon-button", inputs: ["disabled", "name", "size", "variant", "type", "appearance", "compactSpacing", "ariaLabel", "ariaLabelledBy", "badgeCount", "badgeContent", "badgeType", "badgeIcon", "customStyle"], outputs: ["clickEvent"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: i2.DropdownDirective, selector: "[rteDropdown]", inputs: ["rteDropdownId", "rteDropdownPosition", "rteDropdownAlignment", "rteDropdownIsOpen", "rteDropdownOffset", "rteDropdownAutofocus", "rteDropdownAutoOpen", "rteDropdownWidth"], outputs: ["menuEvent", "clickedOutside", "closedDropdown"] }, { kind: "directive", type: i3.DropdownTriggerDirective, selector: "[rteDropdownTrigger]", inputs: ["rteDropdownTriggerActivateWithArrowDown"], outputs: ["dropdownKeyDown", "dropdownTriggered", "dropdownTriggerFocus", "dropdownTriggerClearContent", "dropdownTriggerOpenDropdown", "dropdownTriggerCloseDropdown"] }, { kind: "component", type: i4.DropdownMenuComponent, selector: "rte-dropdown-menu", inputs: ["items", "menuId", "isOpen", "width", "headerTemplate", "footerTemplate"], outputs: ["itemEvent", "closingMenu"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
237
|
+
}
|
|
238
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabComponent, decorators: [{
|
|
239
|
+
type: Component,
|
|
240
|
+
args: [{ selector: "rte-tab", imports: [CommonModule, TabItemComponent, IconButtonComponent, DropdownModule, IconComponent, BadgeComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"rte-tab-container\" [attr.data-direction]=\"direction()\">\n <div class=\"rte-tab-border-vertical\" aria-hidden=\"true\" role=\"presentation\" [attr.data-direction]=\"direction()\"></div>\n <div\n [ngStyle]=\"{\n position: 'relative',\n display: 'flex',\n 'align-items': 'center',\n 'flex-direction': direction() === 'horizontal' ? 'row' : 'column',\n }\"\n >\n <rte-icon-button\n *ngIf=\"isScrollable() && !shouldDisplayDropdown()\"\n aria-label=\"Previous tabs\"\n variant=\"transparent\"\n [name]=\"direction() === 'horizontal' ? 'arrow-chevron-left' : 'arrow-chevron-up'\"\n [ngStyle]=\"{\n opacity: canScrollBackward() ? '1' : '0',\n 'pointer-events': canScrollBackward() ? 'auto' : 'none',\n }\"\n (clickEvent)=\"scrollBackward()\"\n />\n <div\n #tabList\n role=\"tablist\"\n aria-label=\"Sample Tabs\"\n class=\"rte-tab\"\n [attr.data-alignment]=\"shouldDisplayDropdown() ? 'start' : alignment()\"\n [attr.data-direction]=\"direction()\"\n [attr.data-overflow-type]=\"overflowType()\"\n >\n <span class=\"rte-tab-selected-indicator\" [ngStyle]=\"tabItemSelectedIndicatorStyle()\"></span>\n <div\n *ngIf=\"shouldDisplayDropdown() && options().length\"\n rteDropdown\n [rteDropdownOffset]=\"10\"\n (menuEvent)=\"onClickTabItem($event.id)\"\n >\n <button\n rteDropdownTrigger\n class=\"rte-tab-dropdown-button\"\n [attr.data-inverted]=\"inverted()\"\n [attr.data-overflow-type]=\"overflowType()\"\n >\n <rte-icon *ngIf=\"selectedTab()?.icon\" appearance=\"filled\" [name]=\"selectedTab()?.icon!\"></rte-icon>\n <span *ngIf=\"selectedTab()?.label\">{{ selectedTab()?.label }}</span>\n <rte-badge\n *ngIf=\"selectedTab()?.badgeCount && selectedTab()?.badgeContent === 'number'\"\n [badgeType]=\"selectedTab()?.badgeType!\"\n [badgeContent]=\"selectedTab()?.badgeContent!\"\n [count]=\"selectedTab()?.badgeCount\"\n [simpleBadge]=\"true\"\n ></rte-badge>\n <rte-icon name=\"arrow-chevron-down\" appearance=\"outlined\"></rte-icon>\n </button>\n <rte-dropdown-menu [items]=\"dropdownFilteredOptions()\" />\n </div>\n <ng-container *ngFor=\"let option of options(); let idx = index\">\n <rte-tab-item\n #tabItem\n [option]=\"option\"\n [direction]=\"direction()\"\n [compactSpacing]=\"compactSpacing()\"\n [isSelected]=\"isSelected(option.id)\"\n [inverted]=\"inverted()\"\n [attr.data-hidden]=\"shouldDisplayDropdown()\"\n [isHidden]=\"shouldDisplayDropdown()\"\n (keydown)=\"onKeydownTabItem($event)\"\n (click)=\"onClickTabItem(option.id)\"\n ></rte-tab-item>\n </ng-container>\n </div>\n <rte-icon-button\n *ngIf=\"isScrollable() && !shouldDisplayDropdown()\"\n aria-label=\"Next tabs\"\n variant=\"transparent\"\n [name]=\"direction() === 'horizontal' ? 'arrow-chevron-right' : 'arrow-chevron-down'\"\n [ngStyle]=\"{\n opacity: canScrollForward() ? '1' : '0',\n 'pointer-events': canScrollForward() ? 'auto' : 'none',\n }\"\n (clickEvent)=\"scrollForward()\"\n />\n </div>\n <div\n class=\"rte-tab-border-horizontal\"\n aria-hidden=\"true\"\n role=\"presentation\"\n [attr.data-direction]=\"direction()\"\n [attr.data-compact-spacing]=\"compactSpacing()\"\n [attr.data-scrollable]=\"isScrollable() && overflowType() === 'scrollable'\"\n ></div>\n</div>\n", styles: [".rte-tab-container{position:relative;display:flex;flex-direction:column}.rte-tab-container[data-direction=vertical]{flex-direction:row;height:100%}.rte-tab{position:relative;display:flex;height:100%;gap:24px;justify-content:flex-start;padding-bottom:2px;margin-bottom:-2px;margin-left:-2px;scrollbar-width:none;width:100%;padding-top:2px;padding-left:2px;align-items:center}.rte-tab[data-direction=horizontal]{overflow-x:scroll}.rte-tab[data-direction=horizontal][data-overflow-type=dropdown]{overflow:hidden;margin-left:0}.rte-tab[data-direction=vertical]{flex-direction:column;border-bottom:none;gap:4px;height:100%;padding-right:2px;margin-left:-2px;width:max-content;align-items:start;margin-bottom:0}.rte-tab[data-direction=vertical] .rte-tab-selected-indicator{width:2px;transition:top .2s ease,height .2s ease}.rte-tab[data-alignment=center]{justify-content:center}.rte-tab .rte-tab-selected-indicator{position:absolute;bottom:0;height:2px;background:var(--background-brand-selected-default);transition:left .2s ease,width .2s ease;pointer-events:none;z-index:1}.rte-tab .rte-tab-separator{width:24px;flex-shrink:0}.rte-tab-border-horizontal{background-color:var(--background-neutral-regular-default);position:relative;height:2px}.rte-tab-border-horizontal[data-compact-spacing=true][data-scrollable=true]{bottom:5px}.rte-tab-border-horizontal[data-direction=vertical]{display:none}.rte-tab-border-vertical{background-color:var(--background-neutral-regular-default);position:relative;width:2px}.rte-tab-border-vertical[data-direction=horizontal]{display:none}.rte-tab-dropdown-button{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:14px;line-height:20px;letter-spacing:0px;color:var(--content-secondary);width:max-content;display:flex;align-items:center;gap:12px;background-color:transparent;border:none;cursor:pointer;padding:0;margin:12px}.rte-tab-dropdown-button:focus-visible{outline:2px solid var(--border-brand-focused);outline-offset:12px;z-index:1}.rte-tab-dropdown-button[data-inverted=true]{color:var(--content-primary-inverse)}\n"] }]
|
|
241
|
+
}] });
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLXJ0ZS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3RhYi90YWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdGFiL3RhYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sWUFBWSxFQUdaLE1BQU0sRUFHTixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUNMLGNBQWMsRUFDZCxjQUFjLEVBQ2QsZUFBZSxFQUNmLFlBQVksR0FDYixNQUFNLCtEQUErRCxDQUFDO0FBRXZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUUzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7O0FBVWpFLE1BQU0sT0FBTyxZQUFZO0lBUnpCO1FBU1csY0FBUyxHQUFHLEtBQUssQ0FBZSxPQUFPLENBQUMsQ0FBQztRQUN6QyxjQUFTLEdBQUcsS0FBSyxDQUFZLFlBQVksQ0FBQyxDQUFDO1FBQzNDLFlBQU8sR0FBRyxLQUFLLENBQXNCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLGtCQUFhLEdBQUcsS0FBSyxFQUE2QixDQUFDO1FBQ25ELG1CQUFjLEdBQUcsS0FBSyxDQUE2QixLQUFLLENBQUMsQ0FBQztRQUMxRCxpQkFBWSxHQUFHLEtBQUssQ0FBMkIsWUFBWSxDQUFDLENBQUM7UUFDN0QsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVqQyxlQUFVLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsaUJBQVksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekIsZ0JBQVcsR0FBRyxZQUFZLENBQW1CLFNBQVMsQ0FBQyxDQUFDO1FBQ3hELGlCQUFZLEdBQUcsU0FBUyxDQUE2QixTQUFTLENBQUMsQ0FBQztRQUNoRSx1QkFBa0IsR0FBRyxZQUFZLENBQTZCLGdCQUFnQixDQUFDLENBQUM7UUFFaEYsbUJBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3RDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDL0UsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hDLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO1FBRU0sd0JBQW1CLEdBQUcsTUFBTSxDQU0zQixJQUFJLENBQUMsQ0FBQztRQUVQLFdBQU0sR0FBRyxNQUFNLEVBQVUsQ0FBQztRQUUxQixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixzQkFBaUIsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyx3QkFBbUIsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFNUMsc0JBQWlCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN6QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFDO1FBRU0scUJBQWdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN4QyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO1FBRU0saUJBQVksR0FBRyxRQUFRLENBQzlCLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUNuRyxDQUFDO1FBRU8sMEJBQXFCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxVQUFVLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFFbEcsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUM3RSxDQUFDLENBQUMsQ0FBQztRQUNNLDRCQUF1QixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDL0MsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBeUIsQ0FBQztRQUN2RyxDQUFDLENBQUMsQ0FBQztRQUVILGlCQUFZLEdBQUcsQ0FBQyxNQUFvQixFQUFXLEVBQUU7WUFDL0MsT0FBTyxDQUNMLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUztnQkFDbEIsQ0FBQyxNQUFNLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsWUFBWSxLQUFLLFFBQVEsQ0FBQztnQkFDOUYsQ0FBQyxNQUFNLENBQUMsWUFBWSxLQUFLLE1BQU0sSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUN2RCxDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBTU8sa0NBQTZCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDdkQsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJO1lBQ2pFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSTtZQUM1QixLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUMxRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUk7U0FDbkMsQ0FBQyxDQUFDLENBQUM7UUE2QkoscUJBQWdCLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEVBQUU7WUFDMUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLFVBQVUsQ0FBQztZQUVuRCxNQUFNLGdCQUFnQixHQUFHLFVBQVUsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLGNBQWMsQ0FBQztZQUNwRSxNQUFNLGNBQWMsR0FBRyxVQUFVLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxZQUFZLENBQUM7WUFDaEUsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLGVBQWUsQ0FBQztZQUN2RSxNQUFNLGdCQUFnQixHQUFHLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssY0FBYyxDQUFDO1lBRXJFLE1BQU0sV0FBVyxHQUFHLGdCQUFnQixJQUFJLGlCQUFpQixDQUFDO1lBQzFELE1BQU0sV0FBVyxHQUFHLGNBQWMsSUFBSSxnQkFBZ0IsQ0FBQztZQUV2RCxJQUFJLFdBQVcsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDL0IsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNwRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsbUJBQWMsR0FBRyxDQUFDLEVBQVUsRUFBRSxFQUFFO1lBQzlCLElBQUksRUFBRSxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLENBQUM7b0JBQ2xDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsYUFBYSxDQUFDO29CQUNoRSxJQUFJLE1BQU0sRUFBRSxDQUFDO3dCQUNYLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxhQUFhLENBQUM7d0JBQ3JELElBQUksU0FBUyxFQUFFLENBQUM7NEJBQ2QsbUJBQW1CLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQzt3QkFDM0QsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDO1FBZ0JNLGVBQVUsR0FBRyxDQUFDLEVBQVUsRUFBRSxFQUFFO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNuRSxDQUFDLENBQUM7UUFFTSxjQUFTLEdBQUcsQ0FBQyxTQUE4QixFQUFFLEVBQUU7WUFDckQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBQzFGLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDaEQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDakYsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO1lBQ2hCLE9BQ0UsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLGFBQWEsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLEtBQUssTUFBTTtnQkFDakcsT0FBTyxHQUFHLGFBQWEsRUFDdkIsQ0FBQztnQkFDRCxRQUFRLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3pFLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUNELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuRSxDQUFDLENBQUM7UUEwQ00sNkJBQXdCLEdBQUcsR0FBRyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ3BDLENBQUMsQ0FBQztLQWdESDtJQXRNQyxVQUFVLENBQUMsRUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQVNELGVBQWU7UUFDYixJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNoQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNsRixNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM1RSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxhQUFhLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMxRyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDbkQsY0FBYyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDckYsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0UsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0csQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQWtDRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsYUFBYSxFQUFFLENBQUM7WUFDdkMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN4RixJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZGLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxhQUFhLEVBQUUsQ0FBQztZQUM5RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDdEYsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2RixDQUFDO0lBQ0gsQ0FBQztJQXNCTyxvQkFBb0IsQ0FBQyxZQUFvQixFQUFFLFVBQWtCLEVBQUUsU0FBOEI7UUFDbkcsT0FBTyxTQUFTLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsR0FBRyxVQUFVLENBQUM7SUFDL0csQ0FBQztJQUVPLHFCQUFxQixDQUFDLE9BQW9CO1FBQ2hELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLFlBQVksRUFBRSxDQUFDO1lBQ3RDLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXO2dCQUMxQixJQUFJLEVBQUUsT0FBTyxDQUFDLFVBQVU7Z0JBQ3hCLEdBQUcsRUFBRSxPQUFPLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxZQUFZO2FBQzlDLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLENBQUM7Z0JBQ1AsR0FBRyxFQUFFLE9BQU8sQ0FBQyxTQUFTO2dCQUN0QixNQUFNLEVBQUUsT0FBTyxDQUFDLFlBQVk7Z0JBQzVCLEtBQUssRUFBRSxDQUFDO2FBQ1QsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU8sOEJBQThCO1FBQ3BDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDL0UsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLElBQUksT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO1lBQ3hCLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDO2dCQUMvQixPQUFPO1lBQ1QsQ0FBQztZQUNELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQzFDLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDM0MsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQztnQkFDaEQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNsRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNsRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFVTyxtQkFBbUI7UUFDekIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsYUFBYSxFQUFFLENBQUM7WUFDdkMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsYUFBYSxDQUFDO1lBQ2xFLElBQUksc0JBQXNCLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLHNCQUFzQixDQUFDLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQyxXQUFXO29CQUNyRSxzQkFBc0IsQ0FBQyxZQUFZLEdBQUcsc0JBQXNCLENBQUMsWUFBWSxDQUM1RSxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyx3QkFBd0I7UUFDOUIsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsYUFBYSxDQUFDO1FBQ2xFLElBQUksc0JBQXNCLEVBQUUsQ0FBQztZQUMzQixNQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksaUJBQWlCLENBQUMsQ0FBQztRQUN2RSxDQUFDO0lBQ0gsQ0FBQztJQUVPLHlCQUF5QjtRQUMvQixNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxhQUFhLENBQUM7UUFDbEUsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1lBQzNCLE1BQU0sa0JBQWtCLEdBQ3RCLHNCQUFzQixDQUFDLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQyxXQUFXLEdBQUcsc0JBQXNCLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNsSCxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7SUFDSCxDQUFDO0lBRU8sdUJBQXVCO1FBQzdCLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLGFBQWEsQ0FBQztRQUNsRSxJQUFJLHNCQUFzQixFQUFFLENBQUM7WUFDM0IsTUFBTSxnQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLGdCQUFnQixDQUFDLENBQUM7UUFDckUsQ0FBQztJQUNILENBQUM7SUFDTywwQkFBMEI7UUFDaEMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsYUFBYSxDQUFDO1FBQ2xFLElBQUksc0JBQXNCLEVBQUUsQ0FBQztZQUMzQixNQUFNLG1CQUFtQixHQUN2QixzQkFBc0IsQ0FBQyxZQUFZLEdBQUcsc0JBQXNCLENBQUMsWUFBWSxHQUFHLHNCQUFzQixDQUFDLFNBQVM7Z0JBQzVHLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLG1CQUFtQixDQUFDLENBQUM7UUFDM0UsQ0FBQztJQUNILENBQUM7K0dBMVFVLFlBQVk7bUdBQVosWUFBWSx5M0NDMUN6Qix1bkhBNEZBLHNuRUR4RFksWUFBWSxxVkFBRSxnQkFBZ0IsdUxBQUUsbUJBQW1CLG1SQUFFLGNBQWMsMjJCQUFFLGFBQWEsaUhBQUUsY0FBYzs7NEZBTWpHLFlBQVk7a0JBUnhCLFNBQVM7K0JBQ0UsU0FBUyxXQUNWLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsY0FBYyxDQUFDLGNBQ2pHLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGlucHV0LFxuICBjb21wdXRlZCxcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIG91dHB1dCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgT25DaGFuZ2VzLFxuICB2aWV3Q2hpbGQsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERpcmVjdGlvbiB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL2NvbW1vbi9jb21tb24tdHlwZXNcIjtcbmltcG9ydCB7IFRhYkFsaWdubWVudCwgVGFiSXRlbVByb3BzLCBUYWJQcm9wcyB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL3RhYi90YWIuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBzY3JvbGxUb1NlbGVjdGVkVGFiIH0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbXBvbmVudHMvdGFiL3RhYi51dGlsc1wiO1xuaW1wb3J0IHtcbiAgQVJST1dfRE9XTl9LRVksXG4gIEFSUk9XX0xFRlRfS0VZLFxuICBBUlJPV19SSUdIVF9LRVksXG4gIEFSUk9XX1VQX0tFWSxcbn0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbnN0YW50cy9rZXlib2FyZC9rZXlib2FyZC5jb25zdGFudHNcIjtcblxuaW1wb3J0IHsgQmFkZ2VDb21wb25lbnQgfSBmcm9tIFwiLi4vYmFkZ2UvYmFkZ2UuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEcm9wZG93bk1vZHVsZSB9IGZyb20gXCIuLi9kcm9wZG93blwiO1xuaW1wb3J0IHsgRHJvcGRvd25JdGVtQ29uZmlnIH0gZnJvbSBcIi4uL2Ryb3Bkb3duL2Ryb3Bkb3duLWl0ZW0vZHJvcGRvd24taXRlbS5jb21wb25lbnRcIjtcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tIFwiLi4vaWNvbi9pY29uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgSWNvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnRcIjtcblxuaW1wb3J0IHsgVGFiSXRlbUNvbXBvbmVudCB9IGZyb20gXCIuL3RhYi1pdGVtL3RhYi1pdGVtLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwicnRlLXRhYlwiLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUYWJJdGVtQ29tcG9uZW50LCBJY29uQnV0dG9uQ29tcG9uZW50LCBEcm9wZG93bk1vZHVsZSwgSWNvbkNvbXBvbmVudCwgQmFkZ2VDb21wb25lbnRdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogXCIuL3RhYi5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybDogXCIuL3RhYi5jb21wb25lbnQuc2Nzc1wiLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGFiQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICByZWFkb25seSBhbGlnbm1lbnQgPSBpbnB1dDxUYWJBbGlnbm1lbnQ+KFwic3RhcnRcIik7XG4gIHJlYWRvbmx5IGRpcmVjdGlvbiA9IGlucHV0PERpcmVjdGlvbj4oXCJob3Jpem9udGFsXCIpO1xuICByZWFkb25seSBvcHRpb25zID0gaW5wdXQ8VGFiUHJvcHNbXCJvcHRpb25zXCJdPihbXSk7XG4gIHJlYWRvbmx5IHNlbGVjdGVkVGFiSWQgPSBpbnB1dDxUYWJQcm9wc1tcInNlbGVjdGVkVGFiSWRcIl0+KCk7XG4gIHJlYWRvbmx5IGNvbXBhY3RTcGFjaW5nID0gaW5wdXQ8VGFiUHJvcHNbXCJjb21wYWN0U3BhY2luZ1wiXT4oZmFsc2UpO1xuICByZWFkb25seSBvdmVyZmxvd1R5cGUgPSBpbnB1dDxUYWJQcm9wc1tcIm92ZXJmbG93VHlwZVwiXT4oXCJzY3JvbGxhYmxlXCIpO1xuICByZWFkb25seSBpbnZlcnRlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICByZWFkb25seSBzbGlkZXJMZWZ0ID0gc2lnbmFsKDApO1xuICByZWFkb25seSBzbGlkZXJXaWR0aCA9IHNpZ25hbCgwKTtcbiAgcmVhZG9ubHkgc2xpZGVyVG9wID0gc2lnbmFsKDApO1xuICByZWFkb25seSBzbGlkZXJIZWlnaHQgPSBzaWduYWwoMCk7XG5cbiAgcmVhZG9ubHkgdGFiSXRlbVJlZnMgPSB2aWV3Q2hpbGRyZW48VGFiSXRlbUNvbXBvbmVudD4oXCJ0YWJJdGVtXCIpO1xuICByZWFkb25seSBjb250YWluZXJSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4+KFwidGFiTGlzdFwiKTtcbiAgcmVhZG9ubHkgaG92ZXJJbmRpY2F0b3JSZWZzID0gdmlld0NoaWxkcmVuPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PihcImhvdmVySW5kaWNhdG9yXCIpO1xuXG4gIHJlYWRvbmx5IHNlbGVjdGVkVGFiUmVmID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGlkeCA9IHRoaXMub3B0aW9ucygpLmZpbmRJbmRleCgob3B0KSA9PiBvcHQuaWQgPT09IHRoaXMuc2VsZWN0ZWRUYWJJZCgpKTtcbiAgICBjb25zdCB0YWJJdGVtID0gdGhpcy50YWJJdGVtUmVmcygpW2lkeF07XG4gICAgcmV0dXJuIHRhYkl0ZW07XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGhvdmVySW5kaWNhdG9yU3R5bGUgPSBzaWduYWw8e1xuICAgIHdpZHRoPzogbnVtYmVyO1xuICAgIGxlZnQ/OiBudW1iZXI7XG4gICAgdG9wPzogbnVtYmVyO1xuICAgIGhlaWdodD86IG51bWJlcjtcbiAgICBvcGFjaXR5PzogbnVtYmVyO1xuICB9IHwgbnVsbD4obnVsbCk7XG5cbiAgcmVhZG9ubHkgY2hhbmdlID0gb3V0cHV0PHN0cmluZz4oKTtcblxuICByZWFkb25seSBpc1Njcm9sbGFibGUgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGlzT3ZlcmZsb3dpbmdMZWZ0ID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpc092ZXJmbG93aW5nUmlnaHQgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGlzT3ZlcmZsb3dpbmdUb3AgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGlzT3ZlcmZsb3dpbmdCb3R0b20gPSBzaWduYWwoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IGNhblNjcm9sbEJhY2t3YXJkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmlzT3ZlcmZsb3dpbmdMZWZ0KCkgfHwgdGhpcy5pc092ZXJmbG93aW5nVG9wKCk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGNhblNjcm9sbEZvcndhcmQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuaXNPdmVyZmxvd2luZ1JpZ2h0KCkgfHwgdGhpcy5pc092ZXJmbG93aW5nQm90dG9tKCk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGlzSG9yaXpvbnRhbCA9IGNvbXB1dGVkKFxuICAgICgpID0+IHRoaXMuZGlyZWN0aW9uKCkgPT09IFwiaG9yaXpvbnRhbFwiICYmICh0aGlzLmlzT3ZlcmZsb3dpbmdSaWdodCgpIHx8IHRoaXMuaXNPdmVyZmxvd2luZ0xlZnQoKSksXG4gICk7XG5cbiAgcmVhZG9ubHkgc2hvdWxkRGlzcGxheURyb3Bkb3duID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vdmVyZmxvd1R5cGUoKSA9PT0gXCJkcm9wZG93blwiICYmIHRoaXMuaXNIb3Jpem9udGFsKCkpO1xuXG4gIHJlYWRvbmx5IHNlbGVjdGVkVGFiID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMoKS5maW5kKChvcHRpb24pID0+IG9wdGlvbi5pZCA9PT0gdGhpcy5zZWxlY3RlZFRhYklkKCkpO1xuICB9KTtcbiAgcmVhZG9ubHkgZHJvcGRvd25GaWx0ZXJlZE9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucygpLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24uaWQgIT09IHRoaXMuc2VsZWN0ZWRUYWJJZCgpKSBhcyBEcm9wZG93bkl0ZW1Db25maWdbXTtcbiAgfSk7XG5cbiAgZGlzcGxheUJhZGdlID0gKG9wdGlvbjogVGFiSXRlbVByb3BzKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhb3B0aW9uLnNob3dCYWRnZSB8fFxuICAgICAgKG9wdGlvbi5iYWRnZUNvdW50ICE9PSB1bmRlZmluZWQgJiYgb3B0aW9uLmJhZGdlQ291bnQgPiAwICYmIG9wdGlvbi5iYWRnZUNvbnRlbnQgPT09IFwibnVtYmVyXCIpIHx8XG4gICAgICAob3B0aW9uLmJhZGdlQ29udGVudCA9PT0gXCJpY29uXCIgJiYgISFvcHRpb24uYmFkZ2VJY29uKVxuICAgICk7XG4gIH07XG5cbiAgaXNTZWxlY3RlZChpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRUYWJJZCgpID09PSBpZDtcbiAgfVxuXG4gIHJlYWRvbmx5IHRhYkl0ZW1TZWxlY3RlZEluZGljYXRvclN0eWxlID0gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICBsZWZ0OiBgJHt0aGlzLnNob3VsZERpc3BsYXlEcm9wZG93bigpID8gMCA6IHRoaXMuc2xpZGVyTGVmdCgpfXB4YCxcbiAgICB0b3A6IGAke3RoaXMuc2xpZGVyVG9wKCl9cHhgLFxuICAgIHdpZHRoOiBgJHt0aGlzLnNsaWRlcldpZHRoKCkgKyAodGhpcy5zaG91bGREaXNwbGF5RHJvcGRvd24oKSA/IDMyIDogMCl9cHhgLFxuICAgIGhlaWdodDogYCR7dGhpcy5zbGlkZXJIZWlnaHQoKX1weGAsXG4gIH0pKTtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy51cGRhdGVTZWxlY3RlZFRhYkl0ZW1JbmRpY2F0b3IoKTtcbiAgICB0aGlzLmNvbXB1dGVTY3JvbGxhYmxlU2lnbmFscygpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIHRoaXMudXBkYXRlU2VsZWN0ZWRUYWJJdGVtSW5kaWNhdG9yLmJpbmQodGhpcykpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIHRoaXMuY29tcHV0ZVNjcm9sbGFibGVTaWduYWxzLmJpbmQodGhpcykpO1xuICAgIGlmICh0aGlzLmNvbnRhaW5lclJlZigpKSB7XG4gICAgICB0aGlzLmNvbnRhaW5lclJlZigpPy5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgdGhpcy5jb21wdXRlU2Nyb2xsYWJsZVNpZ25hbHMuYmluZCh0aGlzKSk7XG4gICAgfVxuICAgIHRoaXMuaG92ZXJJbmRpY2F0b3JSZWZzKCkuZm9yRWFjaCgoaG92ZXJJbmRpY2F0b3IpID0+IHtcbiAgICAgIGhvdmVySW5kaWNhdG9yLm5hdGl2ZUVsZW1lbnQuc3R5bGUub3BhY2l0eSA9IFwiMFwiO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhpcy51cGRhdGVTZWxlY3RlZFRhYkl0ZW1JbmRpY2F0b3IuYmluZCh0aGlzKSk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhpcy5jb21wdXRlU2Nyb2xsYWJsZVNpZ25hbHMuYmluZCh0aGlzKSk7XG4gICAgaWYgKHRoaXMuY29udGFpbmVyUmVmKCkpIHtcbiAgICAgIHRoaXMuY29udGFpbmVyUmVmKCk/Lm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCB0aGlzLmNvbXB1dGVTY3JvbGxhYmxlU2lnbmFscy5iaW5kKHRoaXMpKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbXCJzZWxlY3RlZFRhYklkXCJdKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkVGFiSXRlbUluZGljYXRvcigpO1xuICAgIH1cbiAgfVxuXG4gIG9uS2V5ZG93blRhYkl0ZW0gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICBjb25zdCBpc1ZlcnRpY2FsID0gdGhpcy5kaXJlY3Rpb24oKSA9PT0gXCJ2ZXJ0aWNhbFwiO1xuXG4gICAgY29uc3QgaXNEb3duS2V5UHJlc3NlZCA9IGlzVmVydGljYWwgJiYgZXZlbnQua2V5ID09PSBBUlJPV19ET1dOX0tFWTtcbiAgICBjb25zdCBpc1VwS2V5UHJlc3NlZCA9IGlzVmVydGljYWwgJiYgZXZlbnQua2V5ID09PSBBUlJPV19VUF9LRVk7XG4gICAgY29uc3QgaXNSaWdodEtleVByZXNzZWQgPSAhaXNWZXJ0aWNhbCAmJiBldmVudC5rZXkgPT09IEFSUk9XX1JJR0hUX0tFWTtcbiAgICBjb25zdCBpc0xlZnRLZXlQcmVzc2VkID0gIWlzVmVydGljYWwgJiYgZXZlbnQua2V5ID09PSBBUlJPV19MRUZUX0tFWTtcblxuICAgIGNvbnN0IGlzQXJyb3dOZXh0ID0gaXNEb3duS2V5UHJlc3NlZCB8fCBpc1JpZ2h0S2V5UHJlc3NlZDtcbiAgICBjb25zdCBpc0Fycm93UHJldiA9IGlzVXBLZXlQcmVzc2VkIHx8IGlzTGVmdEtleVByZXNzZWQ7XG5cbiAgICBpZiAoaXNBcnJvd05leHQgfHwgaXNBcnJvd1ByZXYpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmZvY3VzSXRlbShpc0Fycm93TmV4dCA/IFwibmV4dFwiIDogXCJwcmV2aW91c1wiKTtcbiAgICB9XG4gIH07XG5cbiAgb25DbGlja1RhYkl0ZW0gPSAoaWQ6IHN0cmluZykgPT4ge1xuICAgIGlmIChpZCAhPT0gdGhpcy5zZWxlY3RlZFRhYklkKCkpIHtcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQoaWQpO1xuICAgICAgaWYgKCF0aGlzLnNob3VsZERpc3BsYXlEcm9wZG93bigpKSB7XG4gICAgICAgIGNvbnN0IG5ld1RhYiA9IHRoaXMuZ2V0VGFiSXRlbShpZCk/LnRhYkl0ZW1SZWYoKT8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKG5ld1RhYikge1xuICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyUmVmKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgICAgc2Nyb2xsVG9TZWxlY3RlZFRhYihuZXdUYWIsIGNvbnRhaW5lciwgdGhpcy5kaXJlY3Rpb24oKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHNjcm9sbEJhY2t3YXJkKCkge1xuICAgIGlmICh0aGlzLmNvbnRhaW5lclJlZigpPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICBjb25zdCBzY3JvbGxPYmplY3QgPSB0aGlzLmRpcmVjdGlvbigpID09PSBcImhvcml6b250YWxcIiA/IHsgbGVmdDogLTMwMCB9IDogeyB0b3A6IC0zMDAgfTtcbiAgICAgIHRoaXMuY29udGFpbmVyUmVmKCk/Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsQnkoeyAuLi5zY3JvbGxPYmplY3QsIGJlaGF2aW9yOiBcInNtb290aFwiIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNjcm9sbEZvcndhcmQoKSB7XG4gICAgaWYgKHRoaXMuY29udGFpbmVyUmVmKCkgJiYgdGhpcy5jb250YWluZXJSZWYoKT8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgY29uc3Qgc2Nyb2xsT2JqZWN0ID0gdGhpcy5kaXJlY3Rpb24oKSA9PT0gXCJob3Jpem9udGFsXCIgPyB7IGxlZnQ6IDMwMCB9IDogeyB0b3A6IDMwMCB9O1xuICAgICAgdGhpcy5jb250YWluZXJSZWYoKT8ubmF0aXZlRWxlbWVudC5zY3JvbGxCeSh7IC4uLnNjcm9sbE9iamVjdCwgYmVoYXZpb3I6IFwic21vb3RoXCIgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRUYWJJdGVtID0gKGlkOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gdGhpcy50YWJJdGVtUmVmcygpLmZpbmQoKHRhYikgPT4gdGFiLm9wdGlvbigpPy5pZCA9PT0gaWQpO1xuICB9O1xuXG4gIHByaXZhdGUgZm9jdXNJdGVtID0gKGRpcmVjdGlvbjogXCJuZXh0XCIgfCBcInByZXZpb3VzXCIpID0+IHtcbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLnRhYkl0ZW1SZWZzKCkuZmluZEluZGV4KCh0YWIpID0+IHRhYiA9PT0gdGhpcy5zZWxlY3RlZFRhYlJlZigpKTtcbiAgICBjb25zdCBtYXhJdGVyYXRpb25zID0gdGhpcy50YWJJdGVtUmVmcygpLmxlbmd0aDtcbiAgICBsZXQgbmV3SW5kZXggPSB0aGlzLmNvbXB1dGVOZXh0SXRlbUluZGV4KGN1cnJlbnRJbmRleCwgbWF4SXRlcmF0aW9ucywgZGlyZWN0aW9uKTtcbiAgICBsZXQgY291bnRlciA9IDA7XG4gICAgd2hpbGUgKFxuICAgICAgdGhpcy50YWJJdGVtUmVmcygpW25ld0luZGV4XS50YWJJdGVtUmVmKCk/Lm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiZGF0YS1kaXNhYmxlZFwiKSA9PT0gXCJ0cnVlXCIgJiZcbiAgICAgIGNvdW50ZXIgPCBtYXhJdGVyYXRpb25zXG4gICAgKSB7XG4gICAgICBuZXdJbmRleCA9IHRoaXMuY29tcHV0ZU5leHRJdGVtSW5kZXgobmV3SW5kZXgsIG1heEl0ZXJhdGlvbnMsIGRpcmVjdGlvbik7XG4gICAgICBjb3VudGVyKys7XG4gICAgfVxuICAgIHRoaXMudGFiSXRlbVJlZnMoKVtuZXdJbmRleF0udGFiSXRlbVJlZigpPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgdGhpcy50YWJJdGVtUmVmcygpW25ld0luZGV4XS50YWJJdGVtUmVmKCk/Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgfTtcblxuICBwcml2YXRlIGNvbXB1dGVOZXh0SXRlbUluZGV4KGN1cnJlbnRJbmRleDogbnVtYmVyLCB0b3RhbEl0ZW1zOiBudW1iZXIsIGRpcmVjdGlvbjogXCJuZXh0XCIgfCBcInByZXZpb3VzXCIpIHtcbiAgICByZXR1cm4gZGlyZWN0aW9uID09PSBcIm5leHRcIiA/IChjdXJyZW50SW5kZXggKyAxKSAlIHRvdGFsSXRlbXMgOiAoY3VycmVudEluZGV4IC0gMSArIHRvdGFsSXRlbXMpICUgdG90YWxJdGVtcztcbiAgfVxuXG4gIHByaXZhdGUgY29tcHV0ZUluZGljYXRvclN0eWxlKHRhYkl0ZW06IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKHRoaXMuZGlyZWN0aW9uKCkgPT09IFwiaG9yaXpvbnRhbFwiKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB3aWR0aDogdGFiSXRlbS5vZmZzZXRXaWR0aCxcbiAgICAgICAgbGVmdDogdGFiSXRlbS5vZmZzZXRMZWZ0LFxuICAgICAgICB0b3A6IHRhYkl0ZW0ub2Zmc2V0VG9wICsgdGFiSXRlbS5vZmZzZXRIZWlnaHQsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsZWZ0OiAwLFxuICAgICAgICB0b3A6IHRhYkl0ZW0ub2Zmc2V0VG9wLFxuICAgICAgICBoZWlnaHQ6IHRhYkl0ZW0ub2Zmc2V0SGVpZ2h0LFxuICAgICAgICB3aWR0aDogMixcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZFRhYkl0ZW1JbmRpY2F0b3IoKSB7XG4gICAgY29uc3QgaWR4ID0gdGhpcy5vcHRpb25zKCkuZmluZEluZGV4KChvcHQpID0+IG9wdC5pZCA9PT0gdGhpcy5zZWxlY3RlZFRhYklkKCkpO1xuICAgIGNvbnN0IHRhYkl0ZW0gPSB0aGlzLnRhYkl0ZW1SZWZzKClbaWR4XTtcbiAgICBpZiAodGFiSXRlbT8udGFiSXRlbVJlZikge1xuICAgICAgaWYgKHRhYkl0ZW0ub3B0aW9uKCk/LmRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRhYkl0ZW1SZWYgPSB0YWJJdGVtLnRhYkl0ZW1SZWY/LigpO1xuICAgICAgaWYgKHRhYkl0ZW1SZWYgJiYgdGFiSXRlbVJlZi5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHRhYkl0ZW1FbGVtZW50ID0gdGFiSXRlbVJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBpbmRpY2F0b3JTdHlsZSA9IHRoaXMuY29tcHV0ZUluZGljYXRvclN0eWxlKHRhYkl0ZW1FbGVtZW50KTtcbiAgICAgICAgdGhpcy5zbGlkZXJIZWlnaHQuc2V0KGluZGljYXRvclN0eWxlLmhlaWdodCA/PyAyKTtcbiAgICAgICAgdGhpcy5zbGlkZXJUb3Auc2V0KGluZGljYXRvclN0eWxlLnRvcCk7XG4gICAgICAgIHRoaXMuc2xpZGVyV2lkdGguc2V0KGluZGljYXRvclN0eWxlLndpZHRoID8/IDIpO1xuICAgICAgICB0aGlzLnNsaWRlckxlZnQuc2V0KGluZGljYXRvclN0eWxlLmxlZnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29tcHV0ZVNjcm9sbGFibGVTaWduYWxzID0gKCkgPT4ge1xuICAgIHRoaXMuY29tcHV0ZUlzU2Nyb2xsYWJsZSgpO1xuICAgIHRoaXMuY29tcHV0ZUlzT3ZlcmZsb3dpbmdMZWZ0KCk7XG4gICAgdGhpcy5jb21wdXRlSXNPdmVyZmxvd2luZ1JpZ2h0KCk7XG4gICAgdGhpcy5jb21wdXRlSXNPdmVyZmxvd2luZ1RvcCgpO1xuICAgIHRoaXMuY29tcHV0ZUlzT3ZlcmZsb3dpbmdCb3R0b20oKTtcbiAgfTtcblxuICBwcml2YXRlIGNvbXB1dGVJc1Njcm9sbGFibGUoKSB7XG4gICAgaWYgKHRoaXMuY29udGFpbmVyUmVmKCk/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lck5hdGl2ZUVsZW1lbnQgPSB0aGlzLmNvbnRhaW5lclJlZigpPy5uYXRpdmVFbGVtZW50O1xuICAgICAgaWYgKGNvbnRhaW5lck5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5pc1Njcm9sbGFibGUuc2V0KFxuICAgICAgICAgIGNvbnRhaW5lck5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggPCBjb250YWluZXJOYXRpdmVFbGVtZW50LnNjcm9sbFdpZHRoIHx8XG4gICAgICAgICAgICBjb250YWluZXJOYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCA8IGNvbnRhaW5lck5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0LFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGNvbXB1dGVJc092ZXJmbG93aW5nTGVmdCgpIHtcbiAgICBjb25zdCBjb250YWluZXJOYXRpdmVFbGVtZW50ID0gdGhpcy5jb250YWluZXJSZWYoKT8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoY29udGFpbmVyTmF0aXZlRWxlbWVudCkge1xuICAgICAgY29uc3QgaXNPdmVyRmxvd2luZ0xlZnQgPSBjb250YWluZXJOYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPiAwO1xuICAgICAgdGhpcy5pc092ZXJmbG93aW5nTGVmdC5zZXQodGhpcy5pc1Njcm9sbGFibGUoKSAmJiBpc092ZXJGbG93aW5nTGVmdCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb21wdXRlSXNPdmVyZmxvd2luZ1JpZ2h0KCkge1xuICAgIGNvbnN0IGNvbnRhaW5lck5hdGl2ZUVsZW1lbnQgPSB0aGlzLmNvbnRhaW5lclJlZigpPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChjb250YWluZXJOYXRpdmVFbGVtZW50KSB7XG4gICAgICBjb25zdCBpc092ZXJmbG93aW5nUmlnaHQgPVxuICAgICAgICBjb250YWluZXJOYXRpdmVFbGVtZW50LnNjcm9sbFdpZHRoIC0gY29udGFpbmVyTmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCAtIGNvbnRhaW5lck5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA+IDA7XG4gICAgICB0aGlzLmlzT3ZlcmZsb3dpbmdSaWdodC5zZXQodGhpcy5pc1Njcm9sbGFibGUoKSAmJiBpc092ZXJmbG93aW5nUmlnaHQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29tcHV0ZUlzT3ZlcmZsb3dpbmdUb3AoKSB7XG4gICAgY29uc3QgY29udGFpbmVyTmF0aXZlRWxlbWVudCA9IHRoaXMuY29udGFpbmVyUmVmKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKGNvbnRhaW5lck5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGlzT3ZlckZsb3dpbmdUb3AgPSBjb250YWluZXJOYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA+IDA7XG4gICAgICB0aGlzLmlzT3ZlcmZsb3dpbmdUb3Auc2V0KHRoaXMuaXNTY3JvbGxhYmxlKCkgJiYgaXNPdmVyRmxvd2luZ1RvcCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgY29tcHV0ZUlzT3ZlcmZsb3dpbmdCb3R0b20oKSB7XG4gICAgY29uc3QgY29udGFpbmVyTmF0aXZlRWxlbWVudCA9IHRoaXMuY29udGFpbmVyUmVmKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKGNvbnRhaW5lck5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGlzT3ZlcmZsb3dpbmdCb3R0b20gPVxuICAgICAgICBjb250YWluZXJOYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodCAtIGNvbnRhaW5lck5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gY29udGFpbmVyTmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPlxuICAgICAgICAwO1xuICAgICAgdGhpcy5pc092ZXJmbG93aW5nQm90dG9tLnNldCh0aGlzLmlzU2Nyb2xsYWJsZSgpICYmIGlzT3ZlcmZsb3dpbmdCb3R0b20pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJ0ZS10YWItY29udGFpbmVyXCIgW2F0dHIuZGF0YS1kaXJlY3Rpb25dPVwiZGlyZWN0aW9uKClcIj5cbiAgPGRpdiBjbGFzcz1cInJ0ZS10YWItYm9yZGVyLXZlcnRpY2FsXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgcm9sZT1cInByZXNlbnRhdGlvblwiIFthdHRyLmRhdGEtZGlyZWN0aW9uXT1cImRpcmVjdGlvbigpXCI+PC9kaXY+XG4gIDxkaXZcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICdhbGlnbi1pdGVtcyc6ICdjZW50ZXInLFxuICAgICAgJ2ZsZXgtZGlyZWN0aW9uJzogZGlyZWN0aW9uKCkgPT09ICdob3Jpem9udGFsJyA/ICdyb3cnIDogJ2NvbHVtbicsXG4gICAgfVwiXG4gID5cbiAgICA8cnRlLWljb24tYnV0dG9uXG4gICAgICAqbmdJZj1cImlzU2Nyb2xsYWJsZSgpICYmICFzaG91bGREaXNwbGF5RHJvcGRvd24oKVwiXG4gICAgICBhcmlhLWxhYmVsPVwiUHJldmlvdXMgdGFic1wiXG4gICAgICB2YXJpYW50PVwidHJhbnNwYXJlbnRcIlxuICAgICAgW25hbWVdPVwiZGlyZWN0aW9uKCkgPT09ICdob3Jpem9udGFsJyA/ICdhcnJvdy1jaGV2cm9uLWxlZnQnIDogJ2Fycm93LWNoZXZyb24tdXAnXCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgb3BhY2l0eTogY2FuU2Nyb2xsQmFja3dhcmQoKSA/ICcxJyA6ICcwJyxcbiAgICAgICAgJ3BvaW50ZXItZXZlbnRzJzogY2FuU2Nyb2xsQmFja3dhcmQoKSA/ICdhdXRvJyA6ICdub25lJyxcbiAgICAgIH1cIlxuICAgICAgKGNsaWNrRXZlbnQpPVwic2Nyb2xsQmFja3dhcmQoKVwiXG4gICAgLz5cbiAgICA8ZGl2XG4gICAgICAjdGFiTGlzdFxuICAgICAgcm9sZT1cInRhYmxpc3RcIlxuICAgICAgYXJpYS1sYWJlbD1cIlNhbXBsZSBUYWJzXCJcbiAgICAgIGNsYXNzPVwicnRlLXRhYlwiXG4gICAgICBbYXR0ci5kYXRhLWFsaWdubWVudF09XCJzaG91bGREaXNwbGF5RHJvcGRvd24oKSA/ICdzdGFydCcgOiBhbGlnbm1lbnQoKVwiXG4gICAgICBbYXR0ci5kYXRhLWRpcmVjdGlvbl09XCJkaXJlY3Rpb24oKVwiXG4gICAgICBbYXR0ci5kYXRhLW92ZXJmbG93LXR5cGVdPVwib3ZlcmZsb3dUeXBlKClcIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwicnRlLXRhYi1zZWxlY3RlZC1pbmRpY2F0b3JcIiBbbmdTdHlsZV09XCJ0YWJJdGVtU2VsZWN0ZWRJbmRpY2F0b3JTdHlsZSgpXCI+PC9zcGFuPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cInNob3VsZERpc3BsYXlEcm9wZG93bigpICYmIG9wdGlvbnMoKS5sZW5ndGhcIlxuICAgICAgICBydGVEcm9wZG93blxuICAgICAgICBbcnRlRHJvcGRvd25PZmZzZXRdPVwiMTBcIlxuICAgICAgICAobWVudUV2ZW50KT1cIm9uQ2xpY2tUYWJJdGVtKCRldmVudC5pZClcIlxuICAgICAgPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgcnRlRHJvcGRvd25UcmlnZ2VyXG4gICAgICAgICAgY2xhc3M9XCJydGUtdGFiLWRyb3Bkb3duLWJ1dHRvblwiXG4gICAgICAgICAgW2F0dHIuZGF0YS1pbnZlcnRlZF09XCJpbnZlcnRlZCgpXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLW92ZXJmbG93LXR5cGVdPVwib3ZlcmZsb3dUeXBlKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHJ0ZS1pY29uICpuZ0lmPVwic2VsZWN0ZWRUYWIoKT8uaWNvblwiIGFwcGVhcmFuY2U9XCJmaWxsZWRcIiBbbmFtZV09XCJzZWxlY3RlZFRhYigpPy5pY29uIVwiPjwvcnRlLWljb24+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZFRhYigpPy5sYWJlbFwiPnt7IHNlbGVjdGVkVGFiKCk/LmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgIDxydGUtYmFkZ2VcbiAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRUYWIoKT8uYmFkZ2VDb3VudCAmJiBzZWxlY3RlZFRhYigpPy5iYWRnZUNvbnRlbnQgPT09ICdudW1iZXInXCJcbiAgICAgICAgICAgIFtiYWRnZVR5cGVdPVwic2VsZWN0ZWRUYWIoKT8uYmFkZ2VUeXBlIVwiXG4gICAgICAgICAgICBbYmFkZ2VDb250ZW50XT1cInNlbGVjdGVkVGFiKCk/LmJhZGdlQ29udGVudCFcIlxuICAgICAgICAgICAgW2NvdW50XT1cInNlbGVjdGVkVGFiKCk/LmJhZGdlQ291bnRcIlxuICAgICAgICAgICAgW3NpbXBsZUJhZGdlXT1cInRydWVcIlxuICAgICAgICAgID48L3J0ZS1iYWRnZT5cbiAgICAgICAgICA8cnRlLWljb24gbmFtZT1cImFycm93LWNoZXZyb24tZG93blwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiPjwvcnRlLWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8cnRlLWRyb3Bkb3duLW1lbnUgW2l0ZW1zXT1cImRyb3Bkb3duRmlsdGVyZWRPcHRpb25zKClcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9ucygpOyBsZXQgaWR4ID0gaW5kZXhcIj5cbiAgICAgICAgPHJ0ZS10YWItaXRlbVxuICAgICAgICAgICN0YWJJdGVtXG4gICAgICAgICAgW29wdGlvbl09XCJvcHRpb25cIlxuICAgICAgICAgIFtkaXJlY3Rpb25dPVwiZGlyZWN0aW9uKClcIlxuICAgICAgICAgIFtjb21wYWN0U3BhY2luZ109XCJjb21wYWN0U3BhY2luZygpXCJcbiAgICAgICAgICBbaXNTZWxlY3RlZF09XCJpc1NlbGVjdGVkKG9wdGlvbi5pZClcIlxuICAgICAgICAgIFtpbnZlcnRlZF09XCJpbnZlcnRlZCgpXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLWhpZGRlbl09XCJzaG91bGREaXNwbGF5RHJvcGRvd24oKVwiXG4gICAgICAgICAgW2lzSGlkZGVuXT1cInNob3VsZERpc3BsYXlEcm9wZG93bigpXCJcbiAgICAgICAgICAoa2V5ZG93bik9XCJvbktleWRvd25UYWJJdGVtKCRldmVudClcIlxuICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrVGFiSXRlbShvcHRpb24uaWQpXCJcbiAgICAgICAgPjwvcnRlLXRhYi1pdGVtPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPHJ0ZS1pY29uLWJ1dHRvblxuICAgICAgKm5nSWY9XCJpc1Njcm9sbGFibGUoKSAmJiAhc2hvdWxkRGlzcGxheURyb3Bkb3duKClcIlxuICAgICAgYXJpYS1sYWJlbD1cIk5leHQgdGFic1wiXG4gICAgICB2YXJpYW50PVwidHJhbnNwYXJlbnRcIlxuICAgICAgW25hbWVdPVwiZGlyZWN0aW9uKCkgPT09ICdob3Jpem9udGFsJyA/ICdhcnJvdy1jaGV2cm9uLXJpZ2h0JyA6ICdhcnJvdy1jaGV2cm9uLWRvd24nXCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgb3BhY2l0eTogY2FuU2Nyb2xsRm9yd2FyZCgpID8gJzEnIDogJzAnLFxuICAgICAgICAncG9pbnRlci1ldmVudHMnOiBjYW5TY3JvbGxGb3J3YXJkKCkgPyAnYXV0bycgOiAnbm9uZScsXG4gICAgICB9XCJcbiAgICAgIChjbGlja0V2ZW50KT1cInNjcm9sbEZvcndhcmQoKVwiXG4gICAgLz5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInJ0ZS10YWItYm9yZGVyLWhvcml6b250YWxcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgW2F0dHIuZGF0YS1kaXJlY3Rpb25dPVwiZGlyZWN0aW9uKClcIlxuICAgIFthdHRyLmRhdGEtY29tcGFjdC1zcGFjaW5nXT1cImNvbXBhY3RTcGFjaW5nKClcIlxuICAgIFthdHRyLmRhdGEtc2Nyb2xsYWJsZV09XCJpc1Njcm9sbGFibGUoKSAmJiBvdmVyZmxvd1R5cGUoKSA9PT0gJ3Njcm9sbGFibGUnXCJcbiAgPjwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { CommonModule } from "@angular/common";
|
|
2
|
-
import { ChangeDetectionStrategy, Component, input, computed, signal, output } from "@angular/core";
|
|
2
|
+
import { ChangeDetectionStrategy, Component, input, computed, signal, output, } from "@angular/core";
|
|
3
3
|
import { IconSize, IconTypeMap } from "@design-system-rte/core/components/icon/icon.constants";
|
|
4
|
+
import { ToastDurationMap } from "@design-system-rte/core/components/toast/toast.constants";
|
|
4
5
|
import { ButtonComponent } from "../button/button.component";
|
|
5
6
|
import { IconComponent } from "../icon/icon.component";
|
|
6
7
|
import { IconButtonComponent } from "../icon-button/icon-button.component";
|
|
@@ -23,7 +24,6 @@ export class ToastComponent {
|
|
|
23
24
|
this.onActionButtonClick = input(() => { });
|
|
24
25
|
this.close = output();
|
|
25
26
|
this.displayCustomIcon = computed(() => {
|
|
26
|
-
console.log("iconName", this.iconName());
|
|
27
27
|
return this.showLeftIcon() && !!this.iconName();
|
|
28
28
|
});
|
|
29
29
|
this.displayLeftIcon = computed(() => {
|
|
@@ -32,26 +32,65 @@ export class ToastComponent {
|
|
|
32
32
|
this.displayActionButton = computed(() => {
|
|
33
33
|
return this.showActionButton() && this.actionButtonLabel() && !!this.onActionButtonClick();
|
|
34
34
|
});
|
|
35
|
+
this.shouldAutoDismiss = computed(() => {
|
|
36
|
+
return this.isOpen() && this.autoDismiss() && (!this.actionButtonLabel() || !this.showActionButton());
|
|
37
|
+
});
|
|
38
|
+
this.timer = signal(null);
|
|
35
39
|
this.position = computed(() => this.placement()?.split("-")[0]);
|
|
36
40
|
this.alignment = computed(() => this.placement()?.split("-")[1]);
|
|
37
41
|
this.visible = signal(false);
|
|
38
42
|
this.defaultIconName = computed(() => IconTypeMap[this.type()]);
|
|
39
43
|
this.iconSize = IconSize["xl"];
|
|
40
44
|
}
|
|
45
|
+
ngOnChanges(changes) {
|
|
46
|
+
if (changes["isOpen"]) {
|
|
47
|
+
if (this.shouldAutoDismiss()) {
|
|
48
|
+
this.startTimer();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
41
52
|
onClickActionButton() {
|
|
42
53
|
const action = this.onActionButtonClick();
|
|
43
54
|
if (action) {
|
|
44
55
|
action();
|
|
45
56
|
}
|
|
46
57
|
}
|
|
58
|
+
handleMouseEnter() {
|
|
59
|
+
if (this.timer()) {
|
|
60
|
+
this.stopTimer();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
handleMouseLeave() {
|
|
64
|
+
if (this.shouldAutoDismiss()) {
|
|
65
|
+
this.startTimer();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
47
68
|
clickCloseButton() {
|
|
48
69
|
this.close.emit();
|
|
49
70
|
}
|
|
71
|
+
startTimer() {
|
|
72
|
+
this.stopTimer();
|
|
73
|
+
const duration = this.duration();
|
|
74
|
+
if (duration) {
|
|
75
|
+
const timerId = setTimeout(() => {
|
|
76
|
+
this.close.emit();
|
|
77
|
+
this.stopTimer();
|
|
78
|
+
}, ToastDurationMap[duration]);
|
|
79
|
+
this.timer.set(timerId);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
stopTimer() {
|
|
83
|
+
const timer = this.timer();
|
|
84
|
+
if (timer) {
|
|
85
|
+
clearTimeout(timer);
|
|
86
|
+
this.timer.set(null);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
50
89
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
51
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ToastComponent, isStandalone: true, selector: "rte-toast", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, duration: { classPropertyName: "duration", publicName: "duration", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, autoDismiss: { classPropertyName: "autoDismiss", publicName: "autoDismiss", isSignal: true, isRequired: false, transformFunction: null }, showActionButton: { classPropertyName: "showActionButton", publicName: "showActionButton", isSignal: true, isRequired: false, transformFunction: null }, iconName: { classPropertyName: "iconName", publicName: "iconName", isSignal: true, isRequired: false, transformFunction: null }, showLeftIcon: { classPropertyName: "showLeftIcon", publicName: "showLeftIcon", isSignal: true, isRequired: false, transformFunction: null }, actionButtonLabel: { classPropertyName: "actionButtonLabel", publicName: "actionButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, onActionButtonClick: { classPropertyName: "onActionButtonClick", publicName: "onActionButtonClick", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { close: "close" }, ngImport: i0, template: "<div\n class=\"rte-toast {{ type() }} {{ position() }} {{ alignment() }}\"\n role=\"status\"\n
|
|
90
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ToastComponent, isStandalone: true, selector: "rte-toast", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, duration: { classPropertyName: "duration", publicName: "duration", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, autoDismiss: { classPropertyName: "autoDismiss", publicName: "autoDismiss", isSignal: true, isRequired: false, transformFunction: null }, showActionButton: { classPropertyName: "showActionButton", publicName: "showActionButton", isSignal: true, isRequired: false, transformFunction: null }, iconName: { classPropertyName: "iconName", publicName: "iconName", isSignal: true, isRequired: false, transformFunction: null }, showLeftIcon: { classPropertyName: "showLeftIcon", publicName: "showLeftIcon", isSignal: true, isRequired: false, transformFunction: null }, actionButtonLabel: { classPropertyName: "actionButtonLabel", publicName: "actionButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, onActionButtonClick: { classPropertyName: "onActionButtonClick", publicName: "onActionButtonClick", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { close: "close" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"rte-toast {{ type() }} {{ position() }} {{ alignment() }}\"\n role=\"status\"\n [ngClass]=\"{ open: isOpen() }\"\n (mouseenter)=\"handleMouseEnter()\"\n (mouseleave)=\"handleMouseLeave()\"\n>\n <div class=\"rte-toast-content\">\n @if (displayLeftIcon()) {\n <rte-icon class=\"rte-toast-icon\" aria-hidden=\"true\" [name]=\"defaultIconName()\" [size]=\"iconSize\" />\n } @else {\n @if (displayCustomIcon()) {\n <rte-icon class=\"rte-toast-icon\" aria-hidden=\"true\" [name]=\"iconName()!\" [size]=\"iconSize\" />\n }\n }\n <span class=\"rte-toast-message\">{{ message() }}</span>\n </div>\n @if (displayActionButton()) {\n <button rteButton rteButtonVariant=\"text\" class=\"rte-toast-action-button\" (click)=\"onClickActionButton()\">\n {{ actionButtonLabel() }}\n </button>\n }\n @if (closable()) {\n <rte-icon-button\n name=\"close\"\n [attr.data-testid]=\"'toast-close-button'\"\n [variant]=\"type() === 'neutral' ? 'reverse' : 'neutral'\"\n (clickEvent)=\"clickCloseButton()\"\n />\n }\n</div>\n", styles: [".rte-toast{box-shadow:0 2px 4px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);display:flex;width:400px;min-width:240px;max-width:336px;padding:8px 4px 8px 16px;align-items:center;border-radius:4px;border-bottom:4px solid var(--border-info);color:var(--content-primary);background-color:var(--background-default);z-index:10;position:fixed;inset:auto;opacity:0;transition:opacity .3s ease,transform .2s ease}.rte-toast.top{top:12px}.rte-toast.bottom{bottom:12px}.rte-toast.bottom.center{left:50%;transform:translate(-50%,10px)}.rte-toast.bottom.center.open{opacity:1;transform:translate(-50%)}.rte-toast.left{left:12px;transform:translate(-10px)}.rte-toast.left.open{opacity:1;transform:translate(0)}.rte-toast.right{right:12px;transform:translate(10px)}.rte-toast.right.open{opacity:1;transform:translate(0)}.rte-toast .rte-toast-message{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;width:100%;-webkit-line-clamp:2;line-clamp:2}.rte-toast .rte-toast-icon{flex:1 0 auto}.rte-toast .rte-toast-content{display:flex;align-items:center;gap:12px;flex-grow:1;overflow:hidden;width:100%}.rte-toast.info{border-bottom-color:var(--border-info)}.rte-toast.info .rte-toast-icon{color:var(--content-info-default)}.rte-toast.error{border-bottom-color:var(--border-danger)}.rte-toast.error .rte-toast-icon{color:var(--content-danger-default)}.rte-toast.success{border-bottom-color:var(--border-success)}.rte-toast.success .rte-toast-icon{color:var(--content-success-default)}.rte-toast.warning{border-bottom-color:var(--border-warning)}.rte-toast.warning .rte-toast-icon{color:var(--content-warning-default)}.rte-toast.neutral{background-color:var(--background-inverse);color:var(--content-primary-inverse);border-bottom-color:var(--border-primary)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: IconButtonComponent, selector: "rte-icon-button", inputs: ["disabled", "name", "size", "variant", "type", "appearance", "compactSpacing", "ariaLabel", "ariaLabelledBy", "badgeCount", "badgeContent", "badgeType", "badgeIcon", "customStyle"], outputs: ["clickEvent"] }, { kind: "component", type: ButtonComponent, selector: "button[rteButton]", inputs: ["rteButtonVariant", "rteButtonSize", "rteBadgeCount", "rteBadgeContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
52
91
|
}
|
|
53
92
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastComponent, decorators: [{
|
|
54
93
|
type: Component,
|
|
55
|
-
args: [{ selector: "rte-toast", imports: [CommonModule, IconComponent, IconButtonComponent, ButtonComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"rte-toast {{ type() }} {{ position() }} {{ alignment() }}\"\n role=\"status\"\n
|
|
94
|
+
args: [{ selector: "rte-toast", imports: [CommonModule, IconComponent, IconButtonComponent, ButtonComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"rte-toast {{ type() }} {{ position() }} {{ alignment() }}\"\n role=\"status\"\n [ngClass]=\"{ open: isOpen() }\"\n (mouseenter)=\"handleMouseEnter()\"\n (mouseleave)=\"handleMouseLeave()\"\n>\n <div class=\"rte-toast-content\">\n @if (displayLeftIcon()) {\n <rte-icon class=\"rte-toast-icon\" aria-hidden=\"true\" [name]=\"defaultIconName()\" [size]=\"iconSize\" />\n } @else {\n @if (displayCustomIcon()) {\n <rte-icon class=\"rte-toast-icon\" aria-hidden=\"true\" [name]=\"iconName()!\" [size]=\"iconSize\" />\n }\n }\n <span class=\"rte-toast-message\">{{ message() }}</span>\n </div>\n @if (displayActionButton()) {\n <button rteButton rteButtonVariant=\"text\" class=\"rte-toast-action-button\" (click)=\"onClickActionButton()\">\n {{ actionButtonLabel() }}\n </button>\n }\n @if (closable()) {\n <rte-icon-button\n name=\"close\"\n [attr.data-testid]=\"'toast-close-button'\"\n [variant]=\"type() === 'neutral' ? 'reverse' : 'neutral'\"\n (clickEvent)=\"clickCloseButton()\"\n />\n }\n</div>\n", styles: [".rte-toast{box-shadow:0 2px 4px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);display:flex;width:400px;min-width:240px;max-width:336px;padding:8px 4px 8px 16px;align-items:center;border-radius:4px;border-bottom:4px solid var(--border-info);color:var(--content-primary);background-color:var(--background-default);z-index:10;position:fixed;inset:auto;opacity:0;transition:opacity .3s ease,transform .2s ease}.rte-toast.top{top:12px}.rte-toast.bottom{bottom:12px}.rte-toast.bottom.center{left:50%;transform:translate(-50%,10px)}.rte-toast.bottom.center.open{opacity:1;transform:translate(-50%)}.rte-toast.left{left:12px;transform:translate(-10px)}.rte-toast.left.open{opacity:1;transform:translate(0)}.rte-toast.right{right:12px;transform:translate(10px)}.rte-toast.right.open{opacity:1;transform:translate(0)}.rte-toast .rte-toast-message{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;width:100%;-webkit-line-clamp:2;line-clamp:2}.rte-toast .rte-toast-icon{flex:1 0 auto}.rte-toast .rte-toast-content{display:flex;align-items:center;gap:12px;flex-grow:1;overflow:hidden;width:100%}.rte-toast.info{border-bottom-color:var(--border-info)}.rte-toast.info .rte-toast-icon{color:var(--content-info-default)}.rte-toast.error{border-bottom-color:var(--border-danger)}.rte-toast.error .rte-toast-icon{color:var(--content-danger-default)}.rte-toast.success{border-bottom-color:var(--border-success)}.rte-toast.success .rte-toast-icon{color:var(--content-success-default)}.rte-toast.warning{border-bottom-color:var(--border-warning)}.rte-toast.warning .rte-toast-icon{color:var(--content-warning-default)}.rte-toast.neutral{background-color:var(--background-inverse);color:var(--content-primary-inverse);border-bottom-color:var(--border-primary)}\n"] }]
|
|
56
95
|
}] });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFHL0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7O0FBVTNFLE1BQU0sT0FBTyxjQUFjO0lBUjNCO1FBU1csT0FBRSxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUN2QixZQUFPLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLFNBQUksR0FBRyxLQUFLLENBQVksTUFBTSxDQUFDLENBQUM7UUFDaEMsYUFBUSxHQUFHLEtBQUssQ0FBeUIsUUFBUSxDQUFDLENBQUM7UUFDbkQsV0FBTSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUMvQixjQUFTLEdBQUcsS0FBSyxDQUEwQixjQUFjLENBQUMsQ0FBQztRQUMzRCxhQUFRLEdBQUcsS0FBSyxDQUF5QixJQUFJLENBQUMsQ0FBQztRQUMvQyxnQkFBVyxHQUFHLEtBQUssQ0FBNEIsSUFBSSxDQUFDLENBQUM7UUFDckQscUJBQWdCLEdBQUcsS0FBSyxDQUFpQyxJQUFJLENBQUMsQ0FBQztRQUMvRCxhQUFRLEdBQUcsS0FBSyxDQUF5QixFQUFFLENBQUMsQ0FBQztRQUM3QyxpQkFBWSxHQUFHLEtBQUssQ0FBNkIsSUFBSSxDQUFDLENBQUM7UUFFdkQsc0JBQWlCLEdBQUcsS0FBSyxDQUFrQyxFQUFFLENBQUMsQ0FBQztRQUMvRCx3QkFBbUIsR0FBRyxLQUFLLENBQW9DLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXpFLFVBQUssR0FBRyxNQUFNLEVBQVEsQ0FBQztRQUV2QixzQkFBaUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFFTSxvQkFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDO1FBRU0sd0JBQW1CLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMzQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM3RixDQUFDLENBQUMsQ0FBQztRQWFNLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNELGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTVELFlBQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFeEIsb0JBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0QsYUFBUSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNwQztJQWxCQyxtQkFBbUI7UUFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDMUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLE1BQU0sRUFBRSxDQUFDO1FBQ1gsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BCLENBQUM7K0dBeENVLGNBQWM7bUdBQWQsY0FBYyxnMERDakIzQiw2Z0NBOEJBLGlqRURuQlksWUFBWSw2SEFBRSxhQUFhLGlIQUFFLG1CQUFtQixvUkFBRSxlQUFlOzs0RkFNaEUsY0FBYztrQkFSMUIsU0FBUzsrQkFDRSxXQUFXLFdBQ1osQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLGVBQWUsQ0FBQyxjQUNoRSxJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCwgY29tcHV0ZWQsIHNpZ25hbCwgb3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEljb25TaXplLCBJY29uVHlwZU1hcCB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL2ljb24vaWNvbi5jb25zdGFudHNcIjtcbmltcG9ydCB7IFRvYXN0UHJvcHMsIFRvYXN0VHlwZSB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL3RvYXN0L3RvYXN0LmludGVyZmFjZVwiO1xuXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tIFwiLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tIFwiLi4vaWNvbi9pY29uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgSWNvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInJ0ZS10b2FzdFwiLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJY29uQ29tcG9uZW50LCBJY29uQnV0dG9uQ29tcG9uZW50LCBCdXR0b25Db21wb25lbnRdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogXCIuL3RvYXN0LmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsOiBcIi4vdG9hc3QuY29tcG9uZW50LnNjc3NcIixcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0Q29tcG9uZW50IHtcbiAgcmVhZG9ubHkgaWQgPSBpbnB1dDxzdHJpbmc+KFwiXCIpO1xuICByZWFkb25seSBtZXNzYWdlID0gaW5wdXQ8c3RyaW5nPihcIlwiKTtcbiAgcmVhZG9ubHkgdHlwZSA9IGlucHV0PFRvYXN0VHlwZT4oXCJpbmZvXCIpO1xuICByZWFkb25seSBkdXJhdGlvbiA9IGlucHV0PFRvYXN0UHJvcHNbXCJkdXJhdGlvblwiXT4oXCJtZWRpdW1cIik7XG4gIHJlYWRvbmx5IGlzT3BlbiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgcGxhY2VtZW50ID0gaW5wdXQ8VG9hc3RQcm9wc1tcInBsYWNlbWVudFwiXT4oXCJib3R0b20tcmlnaHRcIik7XG4gIHJlYWRvbmx5IGNsb3NhYmxlID0gaW5wdXQ8VG9hc3RQcm9wc1tcImNsb3NhYmxlXCJdPih0cnVlKTtcbiAgcmVhZG9ubHkgYXV0b0Rpc21pc3MgPSBpbnB1dDxUb2FzdFByb3BzW1wiYXV0b0Rpc21pc3NcIl0+KHRydWUpO1xuICByZWFkb25seSBzaG93QWN0aW9uQnV0dG9uID0gaW5wdXQ8VG9hc3RQcm9wc1tcInNob3dBY3Rpb25CdXR0b25cIl0+KHRydWUpO1xuICByZWFkb25seSBpY29uTmFtZSA9IGlucHV0PFRvYXN0UHJvcHNbXCJpY29uTmFtZVwiXT4oXCJcIik7XG4gIHJlYWRvbmx5IHNob3dMZWZ0SWNvbiA9IGlucHV0PFRvYXN0UHJvcHNbXCJzaG93TGVmdEljb25cIl0+KHRydWUpO1xuXG4gIHJlYWRvbmx5IGFjdGlvbkJ1dHRvbkxhYmVsID0gaW5wdXQ8VG9hc3RQcm9wc1tcImFjdGlvbkJ1dHRvbkxhYmVsXCJdPihcIlwiKTtcbiAgcmVhZG9ubHkgb25BY3Rpb25CdXR0b25DbGljayA9IGlucHV0PFRvYXN0UHJvcHNbXCJvbkFjdGlvbkJ1dHRvbkNsaWNrXCJdPigoKSA9PiB7fSk7XG5cbiAgcmVhZG9ubHkgY2xvc2UgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICByZWFkb25seSBkaXNwbGF5Q3VzdG9tSWNvbiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhcImljb25OYW1lXCIsIHRoaXMuaWNvbk5hbWUoKSk7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0xlZnRJY29uKCkgJiYgISF0aGlzLmljb25OYW1lKCk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGRpc3BsYXlMZWZ0SWNvbiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zaG93TGVmdEljb24oKSAmJiBJY29uVHlwZU1hcFt0aGlzLnR5cGUoKV07XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGRpc3BsYXlBY3Rpb25CdXR0b24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0FjdGlvbkJ1dHRvbigpICYmIHRoaXMuYWN0aW9uQnV0dG9uTGFiZWwoKSAmJiAhIXRoaXMub25BY3Rpb25CdXR0b25DbGljaygpO1xuICB9KTtcblxuICBvbkNsaWNrQWN0aW9uQnV0dG9uKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMub25BY3Rpb25CdXR0b25DbGljaygpO1xuICAgIGlmIChhY3Rpb24pIHtcbiAgICAgIGFjdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIGNsaWNrQ2xvc2VCdXR0b24oKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gIH1cblxuICByZWFkb25seSBwb3NpdGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGxhY2VtZW50KCk/LnNwbGl0KFwiLVwiKVswXSk7XG4gIHJlYWRvbmx5IGFsaWdubWVudCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGxhY2VtZW50KCk/LnNwbGl0KFwiLVwiKVsxXSk7XG5cbiAgcmVhZG9ubHkgdmlzaWJsZSA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgZGVmYXVsdEljb25OYW1lID0gY29tcHV0ZWQoKCkgPT4gSWNvblR5cGVNYXBbdGhpcy50eXBlKCldKTtcbiAgcmVhZG9ubHkgaWNvblNpemUgPSBJY29uU2l6ZVtcInhsXCJdO1xufVxuIiwiPGRpdlxuICBjbGFzcz1cInJ0ZS10b2FzdCB7eyB0eXBlKCkgfX0ge3sgcG9zaXRpb24oKSB9fSB7eyBhbGlnbm1lbnQoKSB9fVwiXG4gIHJvbGU9XCJzdGF0dXNcIlxuICByZWY9XCJ7cmVmfVwiXG4gIFtuZ0NsYXNzXT1cInsgb3BlbjogaXNPcGVuKCkgfVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJydGUtdG9hc3QtY29udGVudFwiPlxuICAgIEBpZiAoZGlzcGxheUxlZnRJY29uKCkpIHtcbiAgICAgIDxydGUtaWNvbiBjbGFzcz1cInJ0ZS10b2FzdC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgW25hbWVdPVwiZGVmYXVsdEljb25OYW1lKClcIiBbc2l6ZV09XCJpY29uU2l6ZVwiIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgKGRpc3BsYXlDdXN0b21JY29uKCkpIHtcbiAgICAgICAgPHJ0ZS1pY29uIGNsYXNzPVwicnRlLXRvYXN0LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIiBbbmFtZV09XCJpY29uTmFtZSgpIVwiIFtzaXplXT1cImljb25TaXplXCIgLz5cbiAgICAgIH1cbiAgICB9XG4gICAgPHNwYW4gY2xhc3M9XCJydGUtdG9hc3QtbWVzc2FnZVwiPnt7IG1lc3NhZ2UoKSB9fTwvc3Bhbj5cbiAgPC9kaXY+XG4gIEBpZiAoZGlzcGxheUFjdGlvbkJ1dHRvbigpKSB7XG4gICAgPGJ1dHRvbiBydGVCdXR0b24gcnRlQnV0dG9uVmFyaWFudD1cInRleHRcIiBjbGFzcz1cInJ0ZS10b2FzdC1hY3Rpb24tYnV0dG9uXCIgKGNsaWNrKT1cIm9uQ2xpY2tBY3Rpb25CdXR0b24oKVwiPlxuICAgICAge3sgYWN0aW9uQnV0dG9uTGFiZWwoKSB9fVxuICAgIDwvYnV0dG9uPlxuICB9XG4gIEBpZiAoY2xvc2FibGUoKSkge1xuICAgIDxydGUtaWNvbi1idXR0b25cbiAgICAgIG5hbWU9XCJjbG9zZVwiXG4gICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCIndG9hc3QtY2xvc2UtYnV0dG9uJ1wiXG4gICAgICBbdmFyaWFudF09XCJ0eXBlKCkgPT09ICduZXV0cmFsJyA/ICdyZXZlcnNlJyA6ICduZXV0cmFsJ1wiXG4gICAgICAoY2xpY2tFdmVudCk9XCJjbGlja0Nsb3NlQnV0dG9uKClcIlxuICAgIC8+XG4gIH1cbjwvZGl2PlxuIl19
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBRzVGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7OztBQVUzRSxNQUFNLE9BQU8sY0FBYztJQVIzQjtRQVNXLE9BQUUsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDdkIsWUFBTyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUM1QixTQUFJLEdBQUcsS0FBSyxDQUFZLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxLQUFLLENBQXlCLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELFdBQU0sR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDL0IsY0FBUyxHQUFHLEtBQUssQ0FBMEIsY0FBYyxDQUFDLENB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QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBpbnB1dCxcbiAgY29tcHV0ZWQsXG4gIHNpZ25hbCxcbiAgb3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBPbkNoYW5nZXMsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJY29uU2l6ZSwgSWNvblR5cGVNYXAgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy9pY29uL2ljb24uY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBUb2FzdER1cmF0aW9uTWFwIH0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBUb2FzdFByb3BzLCBUb2FzdFR5cGUgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy90b2FzdC90b2FzdC5pbnRlcmZhY2VcIjtcblxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ljb24vaWNvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IEljb25CdXR0b25Db21wb25lbnQgfSBmcm9tIFwiLi4vaWNvbi1idXR0b24vaWNvbi1idXR0b24uY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJydGUtdG9hc3RcIixcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvbkNvbXBvbmVudCwgSWNvbkJ1dHRvbkNvbXBvbmVudCwgQnV0dG9uQ29tcG9uZW50XSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi90b2FzdC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybDogXCIuL3RvYXN0LmNvbXBvbmVudC5zY3NzXCIsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUb2FzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIHJlYWRvbmx5IGlkID0gaW5wdXQ8c3RyaW5nPihcIlwiKTtcbiAgcmVhZG9ubHkgbWVzc2FnZSA9IGlucHV0PHN0cmluZz4oXCJcIik7XG4gIHJlYWRvbmx5IHR5cGUgPSBpbnB1dDxUb2FzdFR5cGU+KFwiaW5mb1wiKTtcbiAgcmVhZG9ubHkgZHVyYXRpb24gPSBpbnB1dDxUb2FzdFByb3BzW1wiZHVyYXRpb25cIl0+KFwibWVkaXVtXCIpO1xuICByZWFkb25seSBpc09wZW4gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHBsYWNlbWVudCA9IGlucHV0PFRvYXN0UHJvcHNbXCJwbGFjZW1lbnRcIl0+KFwiYm90dG9tLXJpZ2h0XCIpO1xuICByZWFkb25seSBjbG9zYWJsZSA9IGlucHV0PFRvYXN0UHJvcHNbXCJjbG9zYWJsZVwiXT4odHJ1ZSk7XG4gIHJlYWRvbmx5IGF1dG9EaXNtaXNzID0gaW5wdXQ8VG9hc3RQcm9wc1tcImF1dG9EaXNtaXNzXCJdPih0cnVlKTtcbiAgcmVhZG9ubHkgc2hvd0FjdGlvbkJ1dHRvbiA9IGlucHV0PFRvYXN0UHJvcHNbXCJzaG93QWN0aW9uQnV0dG9uXCJdPih0cnVlKTtcbiAgcmVhZG9ubHkgaWNvbk5hbWUgPSBpbnB1dDxUb2FzdFByb3BzW1wiaWNvbk5hbWVcIl0+KFwiXCIpO1xuICByZWFkb25seSBzaG93TGVmdEljb24gPSBpbnB1dDxUb2FzdFByb3BzW1wic2hvd0xlZnRJY29uXCJdPih0cnVlKTtcblxuICByZWFkb25seSBhY3Rpb25CdXR0b25MYWJlbCA9IGlucHV0PFRvYXN0UHJvcHNbXCJhY3Rpb25CdXR0b25MYWJlbFwiXT4oXCJcIik7XG4gIHJlYWRvbmx5IG9uQWN0aW9uQnV0dG9uQ2xpY2sgPSBpbnB1dDxUb2FzdFByb3BzW1wib25BY3Rpb25CdXR0b25DbGlja1wiXT4oKCkgPT4ge30pO1xuXG4gIHJlYWRvbmx5IGNsb3NlID0gb3V0cHV0PHZvaWQ+KCk7XG5cbiAgcmVhZG9ubHkgZGlzcGxheUN1c3RvbUljb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0xlZnRJY29uKCkgJiYgISF0aGlzLmljb25OYW1lKCk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGRpc3BsYXlMZWZ0SWNvbiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zaG93TGVmdEljb24oKSAmJiBJY29uVHlwZU1hcFt0aGlzLnR5cGUoKV07XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGRpc3BsYXlBY3Rpb25CdXR0b24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0FjdGlvbkJ1dHRvbigpICYmIHRoaXMuYWN0aW9uQnV0dG9uTGFiZWwoKSAmJiAhIXRoaXMub25BY3Rpb25CdXR0b25DbGljaygpO1xuICB9KTtcblxuICByZWFkb25seSBzaG91bGRBdXRvRGlzbWlzcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5pc09wZW4oKSAmJiB0aGlzLmF1dG9EaXNtaXNzKCkgJiYgKCF0aGlzLmFjdGlvbkJ1dHRvbkxhYmVsKCkgfHwgIXRoaXMuc2hvd0FjdGlvbkJ1dHRvbigpKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgdGltZXIgPSBzaWduYWw8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsPihudWxsKTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbXCJpc09wZW5cIl0pIHtcbiAgICAgIGlmICh0aGlzLnNob3VsZEF1dG9EaXNtaXNzKCkpIHtcbiAgICAgICAgdGhpcy5zdGFydFRpbWVyKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25DbGlja0FjdGlvbkJ1dHRvbigpOiB2b2lkIHtcbiAgICBjb25zdCBhY3Rpb24gPSB0aGlzLm9uQWN0aW9uQnV0dG9uQ2xpY2soKTtcbiAgICBpZiAoYWN0aW9uKSB7XG4gICAgICBhY3Rpb24oKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVNb3VzZUVudGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRpbWVyKCkpIHtcbiAgICAgIHRoaXMuc3RvcFRpbWVyKCk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaG91bGRBdXRvRGlzbWlzcygpKSB7XG4gICAgICB0aGlzLnN0YXJ0VGltZXIoKTtcbiAgICB9XG4gIH1cblxuICBjbGlja0Nsb3NlQnV0dG9uKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgc3RhcnRUaW1lcigpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3BUaW1lcigpO1xuICAgIGNvbnN0IGR1cmF0aW9uID0gdGhpcy5kdXJhdGlvbigpO1xuICAgIGlmIChkdXJhdGlvbikge1xuICAgICAgY29uc3QgdGltZXJJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlLmVtaXQoKTtcbiAgICAgICAgdGhpcy5zdG9wVGltZXIoKTtcbiAgICAgIH0sIFRvYXN0RHVyYXRpb25NYXBbZHVyYXRpb25dKTtcbiAgICAgIHRoaXMudGltZXIuc2V0KHRpbWVySWQpO1xuICAgIH1cbiAgfVxuXG4gIHN0b3BUaW1lcigpOiB2b2lkIHtcbiAgICBjb25zdCB0aW1lciA9IHRoaXMudGltZXIoKTtcbiAgICBpZiAodGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICB0aGlzLnRpbWVyLnNldChudWxsKTtcbiAgICB9XG4gIH1cblxuICByZWFkb25seSBwb3NpdGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGxhY2VtZW50KCk/LnNwbGl0KFwiLVwiKVswXSk7XG4gIHJlYWRvbmx5IGFsaWdubWVudCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGxhY2VtZW50KCk/LnNwbGl0KFwiLVwiKVsxXSk7XG5cbiAgcmVhZG9ubHkgdmlzaWJsZSA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgZGVmYXVsdEljb25OYW1lID0gY29tcHV0ZWQoKCkgPT4gSWNvblR5cGVNYXBbdGhpcy50eXBlKCldKTtcbiAgcmVhZG9ubHkgaWNvblNpemUgPSBJY29uU2l6ZVtcInhsXCJdO1xufVxuIiwiPGRpdlxuICBjbGFzcz1cInJ0ZS10b2FzdCB7eyB0eXBlKCkgfX0ge3sgcG9zaXRpb24oKSB9fSB7eyBhbGlnbm1lbnQoKSB9fVwiXG4gIHJvbGU9XCJzdGF0dXNcIlxuICBbbmdDbGFzc109XCJ7IG9wZW46IGlzT3BlbigpIH1cIlxuICAobW91c2VlbnRlcik9XCJoYW5kbGVNb3VzZUVudGVyKClcIlxuICAobW91c2VsZWF2ZSk9XCJoYW5kbGVNb3VzZUxlYXZlKClcIlxuPlxuICA8ZGl2IGNsYXNzPVwicnRlLXRvYXN0LWNvbnRlbnRcIj5cbiAgICBAaWYgKGRpc3BsYXlMZWZ0SWNvbigpKSB7XG4gICAgICA8cnRlLWljb24gY2xhc3M9XCJydGUtdG9hc3QtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtuYW1lXT1cImRlZmF1bHRJY29uTmFtZSgpXCIgW3NpemVdPVwiaWNvblNpemVcIiAvPlxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmIChkaXNwbGF5Q3VzdG9tSWNvbigpKSB7XG4gICAgICAgIDxydGUtaWNvbiBjbGFzcz1cInJ0ZS10b2FzdC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgW25hbWVdPVwiaWNvbk5hbWUoKSFcIiBbc2l6ZV09XCJpY29uU2l6ZVwiIC8+XG4gICAgICB9XG4gICAgfVxuICAgIDxzcGFuIGNsYXNzPVwicnRlLXRvYXN0LW1lc3NhZ2VcIj57eyBtZXNzYWdlKCkgfX08L3NwYW4+XG4gIDwvZGl2PlxuICBAaWYgKGRpc3BsYXlBY3Rpb25CdXR0b24oKSkge1xuICAgIDxidXR0b24gcnRlQnV0dG9uIHJ0ZUJ1dHRvblZhcmlhbnQ9XCJ0ZXh0XCIgY2xhc3M9XCJydGUtdG9hc3QtYWN0aW9uLWJ1dHRvblwiIChjbGljayk9XCJvbkNsaWNrQWN0aW9uQnV0dG9uKClcIj5cbiAgICAgIHt7IGFjdGlvbkJ1dHRvbkxhYmVsKCkgfX1cbiAgICA8L2J1dHRvbj5cbiAgfVxuICBAaWYgKGNsb3NhYmxlKCkpIHtcbiAgICA8cnRlLWljb24tYnV0dG9uXG4gICAgICBuYW1lPVwiY2xvc2VcIlxuICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiJ3RvYXN0LWNsb3NlLWJ1dHRvbidcIlxuICAgICAgW3ZhcmlhbnRdPVwidHlwZSgpID09PSAnbmV1dHJhbCcgPyAncmV2ZXJzZScgOiAnbmV1dHJhbCdcIlxuICAgICAgKGNsaWNrRXZlbnQpPVwiY2xpY2tDbG9zZUJ1dHRvbigpXCJcbiAgICAvPlxuICB9XG48L2Rpdj5cbiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -31,4 +31,5 @@ export * from "./lib/components/toast/toast.component";
|
|
|
31
31
|
export * from "./lib/components/toast/toast.service";
|
|
32
32
|
export * from "./lib/components/tag/tag.component";
|
|
33
33
|
export * from "./lib/components/select/select.component";
|
|
34
|
-
|
|
34
|
+
export * from "./lib/components/tab/tab.component";
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2RzLXJ0ZS1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxvQ0FBb0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9ncmlkL2dyaWQuZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9ncmlkL2NvbC9jb2wuZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9saW5rL2xpbmsuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvcmFkaW8tYnV0dG9uLWdyb3VwL3JhZGlvLWJ1dHRvbi1ncm91cC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hlY2tib3gtZ3JvdXAvY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9zcGxpdC1idXR0b24vc3BsaXQtYnV0dG9uLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvaWNvbi1idXR0b24vaWNvbi1idXR0b24uY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9pY29uLWJ1dHRvbi10b2dnbGUvaWNvbi1idXR0b24tdG9nZ2xlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvdGV4dC1pbnB1dC90ZXh0LWlucHV0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hpcC9jaGlwLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvYmFkZ2UvYmFkZ2UuZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2RpdmlkZXIvZGl2aWRlci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3N3aXRjaC9zd2l0Y2guY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9zZWdtZW50ZWQtY29udHJvbC9zZWdtZW50ZWQtY29udHJvbC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2JyZWFkY3J1bWJzL2JyZWFkY3J1bWJzLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvYmFubmVyL2Jhbm5lci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NhcmQvY2FyZC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3BvcG92ZXIvcG9wb3Zlci5kaXJlY3RpdmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLXRyaWdnZXIvbW9kYWwtdHJpZ2dlci5kaXJlY3RpdmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLmRpcmVjdGl2ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvc2lkZS1uYXYvc2lkZS1uYXYuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy90b2FzdC90b2FzdC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3RvYXN0L3RvYXN0LnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3RhZy90YWcuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvdGFiL3RhYi5jb21wb25lbnRcIjtcbiJdfQ==
|