@ngutil/layout 0.0.81 → 0.0.82

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.
@@ -1,11 +0,0 @@
1
- import { Component } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- export class SlidingItemComponent {
4
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SlidingItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: SlidingItemComponent, isStandalone: true, selector: "nu-sliding-item", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [":host{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:stretch;position:relative;overflow:hidden}\n"] }); }
6
- }
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SlidingItemComponent, decorators: [{
8
- type: Component,
9
- args: [{ selector: "nu-sliding-item", standalone: true, template: `<ng-content />`, styles: [":host{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:stretch;position:relative;overflow:hidden}\n"] }]
10
- }] });
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGluZy1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2xheW91dC9zcmMvc2xpZGluZy9zbGlkaW5nLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUE7O0FBaUJ6QyxNQUFNLE9BQU8sb0JBQW9COzhHQUFwQixvQkFBb0I7a0dBQXBCLG9CQUFvQiwyRUFGbkIsZ0JBQWdCOzsyRkFFakIsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNJLGlCQUFpQixjQUNmLElBQUksWUFFTixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmV4cG9ydCBjb25zdCBlbnVtIEl0ZW1BbmltYXRpb25TdGF0ZSB7XG4gICAgTGVmdEluID0gXCJsZWZ0LWluXCIsXG4gICAgTGVmdE91dCA9IFwibGVmdC1vdXRcIixcbiAgICBSaWdodEluID0gXCJyaWdodC1pblwiLFxuICAgIFJpZ2h0T3V0ID0gXCJyaWdodC1vdXRcIixcbiAgICBGYXN0T3V0ID0gXCJmYXN0LW91dFwiLFxuICAgIEZhc3RJbiA9IFwiZmFzdC1pblwiXG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm51LXNsaWRpbmctaXRlbVwiLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc3R5bGVVcmw6IFwiLi9zbGlkaW5nLWl0ZW0uY29tcG9uZW50LnNjc3NcIixcbiAgICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50IC8+YFxufSlcbmV4cG9ydCBjbGFzcyBTbGlkaW5nSXRlbUNvbXBvbmVudCB7fVxuIl19
@@ -1,25 +0,0 @@
1
- import { Directive, effect, inject, output, signal, TemplateRef } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- export class SlidingItemDirective {
4
- constructor() {
5
- this.tpl = inject(TemplateRef);
6
- this.rendered = signal(false);
7
- this.active = signal(false);
8
- this.animation = signal(null);
9
- this.activated = output();
10
- effect(() => {
11
- this.activated.emit(this.active());
12
- }, { allowSignalWrites: true });
13
- }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SlidingItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
15
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: SlidingItemDirective, isStandalone: true, selector: "ng-template[nuSlidingItem]", outputs: { activated: "activated" }, exportAs: ["nuSlidingItem"], ngImport: i0 }); }
16
- }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SlidingItemDirective, decorators: [{
18
- type: Directive,
19
- args: [{
20
- selector: "ng-template[nuSlidingItem]",
21
- exportAs: "nuSlidingItem",
22
- standalone: true
23
- }]
24
- }], ctorParameters: () => [] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGluZy1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2xheW91dC9zcmMvc2xpZGluZy9zbGlkaW5nLWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQTs7QUFTdEYsTUFBTSxPQUFPLG9CQUFvQjtJQVE3QjtRQVBTLFFBQUcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7UUFFekIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN4QixXQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3RCLGNBQVMsR0FBRyxNQUFNLENBQTRCLElBQUksQ0FBQyxDQUFBO1FBQ25ELGNBQVMsR0FBRyxNQUFNLEVBQVcsQ0FBQTtRQUdsQyxNQUFNLENBQ0YsR0FBRyxFQUFFO1lBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFDdEMsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzlCLENBQUE7SUFDTCxDQUFDOzhHQWZRLG9CQUFvQjtrR0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUxoQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGVmZmVjdCwgaW5qZWN0LCBvdXRwdXQsIHNpZ25hbCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB0eXBlIHsgSXRlbUFuaW1hdGlvblN0YXRlIH0gZnJvbSBcIi4vc2xpZGluZy1pdGVtLmNvbXBvbmVudFwiXG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBcIm5nLXRlbXBsYXRlW251U2xpZGluZ0l0ZW1dXCIsXG4gICAgZXhwb3J0QXM6IFwibnVTbGlkaW5nSXRlbVwiLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgU2xpZGluZ0l0ZW1EaXJlY3RpdmUge1xuICAgIHJlYWRvbmx5IHRwbCA9IGluamVjdChUZW1wbGF0ZVJlZilcblxuICAgIHJlYWRvbmx5IHJlbmRlcmVkID0gc2lnbmFsKGZhbHNlKVxuICAgIHJlYWRvbmx5IGFjdGl2ZSA9IHNpZ25hbChmYWxzZSlcbiAgICByZWFkb25seSBhbmltYXRpb24gPSBzaWduYWw8SXRlbUFuaW1hdGlvblN0YXRlIHwgbnVsbD4obnVsbClcbiAgICByZWFkb25seSBhY3RpdmF0ZWQgPSBvdXRwdXQ8Ym9vbGVhbj4oKVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGVmZmVjdChcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2YXRlZC5lbWl0KHRoaXMuYWN0aXZlKCkpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgICAgIClcbiAgICB9XG59XG4iXX0=
@@ -1,183 +0,0 @@
1
- import { animate, state, style, transition, trigger } from "@angular/animations";
2
- import { CommonModule } from "@angular/common";
3
- import { Component, computed, contentChildren, effect, input, output, signal } from "@angular/core";
4
- import { clamp } from "lodash-es";
5
- import { Duration, Ease } from "@ngutil/style";
6
- import { SlidingItemComponent } from "./sliding-item.component";
7
- import { SlidingItemDirective } from "./sliding-item.directive";
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common";
10
- const absolute = { position: "absolute", top: "0px", left: "0px" };
11
- const anim = `${Duration.Fast} ${Ease.Acceleration}`;
12
- export class SlidingComponent {
13
- constructor() {
14
- /**
15
- * List of items
16
- */
17
- this.items = contentChildren(SlidingItemDirective);
18
- /**
19
- * Lazily rendering items
20
- */
21
- this.lazy = input(true);
22
- /**
23
- * Index of the preferred item
24
- */
25
- this.preferred = signal(0);
26
- /**
27
- * Index of the active item
28
- */
29
- this.active = computed(() => {
30
- const items = this.items();
31
- if (items.length === 0) {
32
- return -1;
33
- }
34
- const index = this.preferred();
35
- return clamp(index, 0, items.length - 1);
36
- });
37
- /**
38
- * Changes of the active item
39
- */
40
- this.changes = output();
41
- effect(() => {
42
- const activeIndex = this.active();
43
- const items = this.items();
44
- const lazy = this.lazy();
45
- const preferred = this.preferred();
46
- const currentActiveIndex = items.findIndex(item => item.active());
47
- if (activeIndex === currentActiveIndex) {
48
- if (items[activeIndex]?.active()) {
49
- return;
50
- }
51
- }
52
- let activeItem;
53
- let inAnimation = null;
54
- for (let i = 0; i < items.length; i++) {
55
- const item = items[i];
56
- const isActive = i === activeIndex;
57
- if (isActive) {
58
- activeItem = item;
59
- }
60
- else {
61
- const currentlyActive = item.active();
62
- item.active.set(false);
63
- if (lazy === false && !item.rendered()) {
64
- item.rendered.set(true);
65
- }
66
- if (item.animation() || item.rendered()) {
67
- if (currentlyActive) {
68
- if (activeIndex < currentActiveIndex) {
69
- item.animation.set("right-out" /* ItemAnimationState.RightOut */);
70
- inAnimation = "left-in" /* ItemAnimationState.LeftIn */;
71
- }
72
- else {
73
- item.animation.set("left-out" /* ItemAnimationState.LeftOut */);
74
- inAnimation = "right-in" /* ItemAnimationState.RightIn */;
75
- }
76
- }
77
- else {
78
- item.animation.set("fast-out" /* ItemAnimationState.FastOut */);
79
- }
80
- }
81
- }
82
- }
83
- if (activeItem) {
84
- if (inAnimation) {
85
- activeItem.animation.set(inAnimation);
86
- }
87
- else if (items.length === 1) {
88
- activeItem.animation.set("fast-in" /* ItemAnimationState.FastIn */);
89
- }
90
- else if (activeIndex < currentActiveIndex) {
91
- activeItem.animation.set("left-in" /* ItemAnimationState.LeftIn */);
92
- }
93
- else {
94
- activeItem.animation.set("right-in" /* ItemAnimationState.RightIn */);
95
- }
96
- activeItem.active.set(true);
97
- activeItem.rendered.set(true);
98
- }
99
- const preferredClamp = clamp(preferred, 0, items.length - 1);
100
- if (preferred !== preferredClamp) {
101
- this.preferred.set(preferredClamp);
102
- }
103
- this.changes.emit(this);
104
- }, { allowSignalWrites: true });
105
- }
106
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SlidingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
107
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: SlidingComponent, isStandalone: true, selector: "nu-sliding", inputs: { lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changes: "changes" }, queries: [{ propertyName: "items", predicate: SlidingItemDirective, isSignal: true }], ngImport: i0, template: `
108
- @if (items(); as _items) {
109
- @for (item of _items; track item; let index = $index) {
110
- @if (item.rendered()) {
111
- <nu-sliding-item [@animate]="item.animation()">
112
- <ng-template [ngTemplateOutlet]="item.tpl" />
113
- </nu-sliding-item>
114
- }
115
- }
116
- }
117
- `, isInline: true, styles: [":host{display:grid;grid-template-columns:1fr;grid-template-rows:1fr;overflow:hidden;position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SlidingItemComponent, selector: "nu-sliding-item" }], animations: [
118
- trigger("animate", [
119
- state("fast-out" /* ItemAnimationState.FastOut */, style({ display: "none", ...absolute, transform: "translateX(-100%)" })),
120
- state("left-out" /* ItemAnimationState.LeftOut */, style({ display: "none", ...absolute, transform: "translateX(-100%)" })),
121
- state("right-out" /* ItemAnimationState.RightOut */, style({ display: "none", ...absolute, transform: "translateX(100%)" })),
122
- state("fast-in" /* ItemAnimationState.FastIn */, style({ display: "", position: "relative", transform: "translateX(0)" })),
123
- state("left-in" /* ItemAnimationState.LeftIn */, style({ display: "", position: "relative", transform: "translateX(0)" })),
124
- state("right-in" /* ItemAnimationState.RightIn */, style({ display: "", position: "relative", transform: "translateX(0)" })),
125
- transition(`* => ${"left-out" /* ItemAnimationState.LeftOut */}`, [
126
- style({ width: "*", ...absolute, transform: "translateX(0)" }),
127
- animate(anim, style({ transform: "translateX(-100%)" }))
128
- ]),
129
- transition(`* => ${"right-out" /* ItemAnimationState.RightOut */}`, [
130
- style({ width: "*", ...absolute, transform: "translateX(0)" }),
131
- animate(anim, style({ transform: "translateX(100%)" }))
132
- ]),
133
- transition(`* => ${"left-in" /* ItemAnimationState.LeftIn */}`, [
134
- style({ display: "", position: "relative", transform: "translateX(-100%)" }),
135
- animate(anim, style({ transform: "translateX(0)" }))
136
- ]),
137
- transition(`* => ${"right-in" /* ItemAnimationState.RightIn */}`, [
138
- style({ display: "", position: "relative", transform: "translateX(100%)" }),
139
- animate(anim, style({ transform: "translateX(0%)" }))
140
- ])
141
- ])
142
- ] }); }
143
- }
144
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SlidingComponent, decorators: [{
145
- type: Component,
146
- args: [{ selector: "nu-sliding", standalone: true, imports: [CommonModule, SlidingItemComponent], animations: [
147
- trigger("animate", [
148
- state("fast-out" /* ItemAnimationState.FastOut */, style({ display: "none", ...absolute, transform: "translateX(-100%)" })),
149
- state("left-out" /* ItemAnimationState.LeftOut */, style({ display: "none", ...absolute, transform: "translateX(-100%)" })),
150
- state("right-out" /* ItemAnimationState.RightOut */, style({ display: "none", ...absolute, transform: "translateX(100%)" })),
151
- state("fast-in" /* ItemAnimationState.FastIn */, style({ display: "", position: "relative", transform: "translateX(0)" })),
152
- state("left-in" /* ItemAnimationState.LeftIn */, style({ display: "", position: "relative", transform: "translateX(0)" })),
153
- state("right-in" /* ItemAnimationState.RightIn */, style({ display: "", position: "relative", transform: "translateX(0)" })),
154
- transition(`* => ${"left-out" /* ItemAnimationState.LeftOut */}`, [
155
- style({ width: "*", ...absolute, transform: "translateX(0)" }),
156
- animate(anim, style({ transform: "translateX(-100%)" }))
157
- ]),
158
- transition(`* => ${"right-out" /* ItemAnimationState.RightOut */}`, [
159
- style({ width: "*", ...absolute, transform: "translateX(0)" }),
160
- animate(anim, style({ transform: "translateX(100%)" }))
161
- ]),
162
- transition(`* => ${"left-in" /* ItemAnimationState.LeftIn */}`, [
163
- style({ display: "", position: "relative", transform: "translateX(-100%)" }),
164
- animate(anim, style({ transform: "translateX(0)" }))
165
- ]),
166
- transition(`* => ${"right-in" /* ItemAnimationState.RightIn */}`, [
167
- style({ display: "", position: "relative", transform: "translateX(100%)" }),
168
- animate(anim, style({ transform: "translateX(0%)" }))
169
- ])
170
- ])
171
- ], template: `
172
- @if (items(); as _items) {
173
- @for (item of _items; track item; let index = $index) {
174
- @if (item.rendered()) {
175
- <nu-sliding-item [@animate]="item.animation()">
176
- <ng-template [ngTemplateOutlet]="item.tpl" />
177
- </nu-sliding-item>
178
- }
179
- }
180
- }
181
- `, styles: [":host{display:grid;grid-template-columns:1fr;grid-template-rows:1fr;overflow:hidden;position:relative}\n"] }]
182
- }], ctorParameters: () => [] });
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sYXlvdXQvc3JjL3NsaWRpbmcvc2xpZGluZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUVuRyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRWpDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTlDLE9BQU8sRUFBc0Isb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNuRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTs7O0FBRS9ELE1BQU0sUUFBUSxHQUFHLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQTtBQUVsRSxNQUFNLElBQUksR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO0FBOENwRCxNQUFNLE9BQU8sZ0JBQWdCO0lBaUN6QjtRQWhDQTs7V0FFRztRQUNNLFVBQUssR0FBRyxlQUFlLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtRQUV0RDs7V0FFRztRQUNNLFNBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFM0I7O1dBRUc7UUFDTSxjQUFTLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRTlCOztXQUVHO1FBQ00sV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1lBQzFCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDckIsT0FBTyxDQUFDLENBQUMsQ0FBQTtZQUNiLENBQUM7WUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7WUFDOUIsT0FBTyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQzVDLENBQUMsQ0FBQyxDQUFBO1FBRUY7O1dBRUc7UUFDTSxZQUFPLEdBQUcsTUFBTSxFQUFvQixDQUFBO1FBR3pDLE1BQU0sQ0FDRixHQUFHLEVBQUU7WUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUE7WUFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1lBQzFCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUN4QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7WUFDbEMsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7WUFDakUsSUFBSSxXQUFXLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQztvQkFDL0IsT0FBTTtnQkFDVixDQUFDO1lBQ0wsQ0FBQztZQUVELElBQUksVUFBNEMsQ0FBQTtZQUNoRCxJQUFJLFdBQVcsR0FBOEIsSUFBSSxDQUFBO1lBRWpELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDckIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFLLFdBQVcsQ0FBQTtnQkFFbEMsSUFBSSxRQUFRLEVBQUUsQ0FBQztvQkFDWCxVQUFVLEdBQUcsSUFBSSxDQUFBO2dCQUNyQixDQUFDO3FCQUFNLENBQUM7b0JBQ0osTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFBO29CQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtvQkFFdEIsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7d0JBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO29CQUMzQixDQUFDO29CQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO3dCQUN0QyxJQUFJLGVBQWUsRUFBRSxDQUFDOzRCQUNsQixJQUFJLFdBQVcsR0FBRyxrQkFBa0IsRUFBRSxDQUFDO2dDQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsK0NBQTZCLENBQUE7Z0NBQy9DLFdBQVcsNENBQTRCLENBQUE7NEJBQzNDLENBQUM7aUNBQU0sQ0FBQztnQ0FDSixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsNkNBQTRCLENBQUE7Z0NBQzlDLFdBQVcsOENBQTZCLENBQUE7NEJBQzVDLENBQUM7d0JBQ0wsQ0FBQzs2QkFBTSxDQUFDOzRCQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyw2Q0FBNEIsQ0FBQTt3QkFDbEQsQ0FBQztvQkFDTCxDQUFDO2dCQUNMLENBQUM7WUFDTCxDQUFDO1lBRUQsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDYixJQUFJLFdBQVcsRUFBRSxDQUFDO29CQUNkLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFBO2dCQUN6QyxDQUFDO3FCQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDNUIsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLDJDQUEyQixDQUFBO2dCQUN2RCxDQUFDO3FCQUFNLElBQUksV0FBVyxHQUFHLGtCQUFrQixFQUFFLENBQUM7b0JBQzFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRywyQ0FBMkIsQ0FBQTtnQkFDdkQsQ0FBQztxQkFBTSxDQUFDO29CQUNKLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyw2Q0FBNEIsQ0FBQTtnQkFDeEQsQ0FBQztnQkFDRCxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDM0IsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDakMsQ0FBQztZQUVELE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7WUFDNUQsSUFBSSxTQUFTLEtBQUssY0FBYyxFQUFFLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFBO1lBQ3RDLENBQUM7WUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUMzQixDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDOUIsQ0FBQTtJQUNMLENBQUM7OEdBdkdRLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLDhQQUlRLG9CQUFvQiw2Q0FoQjNDOzs7Ozs7Ozs7O0tBVVQsaUxBdkNTLFlBQVksc01BQUUsb0JBQW9CLDhDQUVoQztZQUNSLE9BQU8sQ0FBQyxTQUFTLEVBQUU7Z0JBQ2YsS0FBSyw4Q0FBNkIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLFFBQVEsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO2dCQUMxRyxLQUFLLDhDQUE2QixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsUUFBUSxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7Z0JBQzFHLEtBQUssZ0RBQThCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxRQUFRLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztnQkFDMUcsS0FBSyw0Q0FBNEIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO2dCQUMxRyxLQUFLLDRDQUE0QixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7Z0JBQzFHLEtBQUssOENBQTZCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztnQkFFM0csVUFBVSxDQUFDLFFBQVEsMkNBQTBCLEVBQUUsRUFBRTtvQkFDN0MsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLFFBQVEsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUM7b0JBQzlELE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQztpQkFDM0QsQ0FBQztnQkFDRixVQUFVLENBQUMsUUFBUSw2Q0FBMkIsRUFBRSxFQUFFO29CQUM5QyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsUUFBUSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQztvQkFDOUQsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO2lCQUMxRCxDQUFDO2dCQUNGLFVBQVUsQ0FBQyxRQUFRLHlDQUF5QixFQUFFLEVBQUU7b0JBQzVDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztvQkFDNUUsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztpQkFDdkQsQ0FBQztnQkFDRixVQUFVLENBQUMsUUFBUSwyQ0FBMEIsRUFBRSxFQUFFO29CQUM3QyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUM7b0JBQzNFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztpQkFDeEQsQ0FBQzthQUNMLENBQUM7U0FDTDs7MkZBYVEsZ0JBQWdCO2tCQTVDNUIsU0FBUzsrQkFDSSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLGNBRWpDO3dCQUNSLE9BQU8sQ0FBQyxTQUFTLEVBQUU7NEJBQ2YsS0FBSyw4Q0FBNkIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLFFBQVEsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDOzRCQUMxRyxLQUFLLDhDQUE2QixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsUUFBUSxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7NEJBQzFHLEtBQUssZ0RBQThCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxRQUFRLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQzs0QkFDMUcsS0FBSyw0Q0FBNEIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDOzRCQUMxRyxLQUFLLDRDQUE0QixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7NEJBQzFHLEtBQUssOENBQTZCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQzs0QkFFM0csVUFBVSxDQUFDLFFBQVEsMkNBQTBCLEVBQUUsRUFBRTtnQ0FDN0MsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLFFBQVEsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUM7Z0NBQzlELE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQzs2QkFDM0QsQ0FBQzs0QkFDRixVQUFVLENBQUMsUUFBUSw2Q0FBMkIsRUFBRSxFQUFFO2dDQUM5QyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsUUFBUSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQztnQ0FDOUQsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDOzZCQUMxRCxDQUFDOzRCQUNGLFVBQVUsQ0FBQyxRQUFRLHlDQUF5QixFQUFFLEVBQUU7Z0NBQzVDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztnQ0FDNUUsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQzs2QkFDdkQsQ0FBQzs0QkFDRixVQUFVLENBQUMsUUFBUSwyQ0FBMEIsRUFBRSxFQUFFO2dDQUM3QyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUM7Z0NBQzNFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQzs2QkFDeEQsQ0FBQzt5QkFDTCxDQUFDO3FCQUNMLFlBQ1M7Ozs7Ozs7Ozs7S0FVVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIlxuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgY29udGVudENoaWxkcmVuLCBlZmZlY3QsIGlucHV0LCBvdXRwdXQsIHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcblxuaW1wb3J0IHsgY2xhbXAgfSBmcm9tIFwibG9kYXNoLWVzXCJcblxuaW1wb3J0IHsgRHVyYXRpb24sIEVhc2UgfSBmcm9tIFwiQG5ndXRpbC9zdHlsZVwiXG5cbmltcG9ydCB7IEl0ZW1BbmltYXRpb25TdGF0ZSwgU2xpZGluZ0l0ZW1Db21wb25lbnQgfSBmcm9tIFwiLi9zbGlkaW5nLWl0ZW0uY29tcG9uZW50XCJcbmltcG9ydCB7IFNsaWRpbmdJdGVtRGlyZWN0aXZlIH0gZnJvbSBcIi4vc2xpZGluZy1pdGVtLmRpcmVjdGl2ZVwiXG5cbmNvbnN0IGFic29sdXRlID0geyBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLCB0b3A6IFwiMHB4XCIsIGxlZnQ6IFwiMHB4XCIgfVxuXG5jb25zdCBhbmltID0gYCR7RHVyYXRpb24uRmFzdH0gJHtFYXNlLkFjY2VsZXJhdGlvbn1gXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm51LXNsaWRpbmdcIixcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNsaWRpbmdJdGVtQ29tcG9uZW50XSxcbiAgICBzdHlsZVVybDogXCIuL3NsaWRpbmcuY29tcG9uZW50LnNjc3NcIixcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoXCJhbmltYXRlXCIsIFtcbiAgICAgICAgICAgIHN0YXRlKEl0ZW1BbmltYXRpb25TdGF0ZS5GYXN0T3V0LCBzdHlsZSh7IGRpc3BsYXk6IFwibm9uZVwiLCAuLi5hYnNvbHV0ZSwgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZVgoLTEwMCUpXCIgfSkpLFxuICAgICAgICAgICAgc3RhdGUoSXRlbUFuaW1hdGlvblN0YXRlLkxlZnRPdXQsIHN0eWxlKHsgZGlzcGxheTogXCJub25lXCIsIC4uLmFic29sdXRlLCB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgtMTAwJSlcIiB9KSksXG4gICAgICAgICAgICBzdGF0ZShJdGVtQW5pbWF0aW9uU3RhdGUuUmlnaHRPdXQsIHN0eWxlKHsgZGlzcGxheTogXCJub25lXCIsIC4uLmFic29sdXRlLCB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgxMDAlKVwiIH0pKSxcbiAgICAgICAgICAgIHN0YXRlKEl0ZW1BbmltYXRpb25TdGF0ZS5GYXN0SW4sIHN0eWxlKHsgZGlzcGxheTogXCJcIiwgcG9zaXRpb246IFwicmVsYXRpdmVcIiwgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZVgoMClcIiB9KSksXG4gICAgICAgICAgICBzdGF0ZShJdGVtQW5pbWF0aW9uU3RhdGUuTGVmdEluLCBzdHlsZSh7IGRpc3BsYXk6IFwiXCIsIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGVYKDApXCIgfSkpLFxuICAgICAgICAgICAgc3RhdGUoSXRlbUFuaW1hdGlvblN0YXRlLlJpZ2h0SW4sIHN0eWxlKHsgZGlzcGxheTogXCJcIiwgcG9zaXRpb246IFwicmVsYXRpdmVcIiwgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZVgoMClcIiB9KSksXG5cbiAgICAgICAgICAgIHRyYW5zaXRpb24oYCogPT4gJHtJdGVtQW5pbWF0aW9uU3RhdGUuTGVmdE91dH1gLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyB3aWR0aDogXCIqXCIsIC4uLmFic29sdXRlLCB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgwKVwiIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoYW5pbSwgc3R5bGUoeyB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgtMTAwJSlcIiB9KSlcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihgKiA9PiAke0l0ZW1BbmltYXRpb25TdGF0ZS5SaWdodE91dH1gLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyB3aWR0aDogXCIqXCIsIC4uLmFic29sdXRlLCB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgwKVwiIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoYW5pbSwgc3R5bGUoeyB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgxMDAlKVwiIH0pKVxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKGAqID0+ICR7SXRlbUFuaW1hdGlvblN0YXRlLkxlZnRJbn1gLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBkaXNwbGF5OiBcIlwiLCBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLCB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgtMTAwJSlcIiB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKGFuaW0sIHN0eWxlKHsgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZVgoMClcIiB9KSlcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihgKiA9PiAke0l0ZW1BbmltYXRpb25TdGF0ZS5SaWdodElufWAsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7IGRpc3BsYXk6IFwiXCIsIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGVYKDEwMCUpXCIgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZShhbmltLCBzdHlsZSh7IHRyYW5zZm9ybTogXCJ0cmFuc2xhdGVYKDAlKVwiIH0pKVxuICAgICAgICAgICAgXSlcbiAgICAgICAgXSlcbiAgICBdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIEBpZiAoaXRlbXMoKTsgYXMgX2l0ZW1zKSB7XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIF9pdGVtczsgdHJhY2sgaXRlbTsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtLnJlbmRlcmVkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPG51LXNsaWRpbmctaXRlbSBbQGFuaW1hdGVdPVwiaXRlbS5hbmltYXRpb24oKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW0udHBsXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9udS1zbGlkaW5nLWl0ZW0+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBTbGlkaW5nQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIGl0ZW1zXG4gICAgICovXG4gICAgcmVhZG9ubHkgaXRlbXMgPSBjb250ZW50Q2hpbGRyZW4oU2xpZGluZ0l0ZW1EaXJlY3RpdmUpXG5cbiAgICAvKipcbiAgICAgKiBMYXppbHkgcmVuZGVyaW5nIGl0ZW1zXG4gICAgICovXG4gICAgcmVhZG9ubHkgbGF6eSA9IGlucHV0KHRydWUpXG5cbiAgICAvKipcbiAgICAgKiBJbmRleCBvZiB0aGUgcHJlZmVycmVkIGl0ZW1cbiAgICAgKi9cbiAgICByZWFkb25seSBwcmVmZXJyZWQgPSBzaWduYWwoMClcblxuICAgIC8qKlxuICAgICAqIEluZGV4IG9mIHRoZSBhY3RpdmUgaXRlbVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFjdGl2ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1zKClcbiAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIC0xXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnByZWZlcnJlZCgpXG4gICAgICAgIHJldHVybiBjbGFtcChpbmRleCwgMCwgaXRlbXMubGVuZ3RoIC0gMSlcbiAgICB9KVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlcyBvZiB0aGUgYWN0aXZlIGl0ZW1cbiAgICAgKi9cbiAgICByZWFkb25seSBjaGFuZ2VzID0gb3V0cHV0PFNsaWRpbmdDb21wb25lbnQ+KClcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLmFjdGl2ZSgpXG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1zKClcbiAgICAgICAgICAgICAgICBjb25zdCBsYXp5ID0gdGhpcy5sYXp5KClcbiAgICAgICAgICAgICAgICBjb25zdCBwcmVmZXJyZWQgPSB0aGlzLnByZWZlcnJlZCgpXG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudEFjdGl2ZUluZGV4ID0gaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5hY3RpdmUoKSlcbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZlSW5kZXggPT09IGN1cnJlbnRBY3RpdmVJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXNbYWN0aXZlSW5kZXhdPy5hY3RpdmUoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBsZXQgYWN0aXZlSXRlbTogU2xpZGluZ0l0ZW1EaXJlY3RpdmUgfCB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICBsZXQgaW5BbmltYXRpb246IEl0ZW1BbmltYXRpb25TdGF0ZSB8IG51bGwgPSBudWxsXG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tpXVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0FjdGl2ZSA9IGkgPT09IGFjdGl2ZUluZGV4XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVJdGVtID0gaXRlbVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudGx5QWN0aXZlID0gaXRlbS5hY3RpdmUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5hY3RpdmUuc2V0KGZhbHNlKVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGF6eSA9PT0gZmFsc2UgJiYgIWl0ZW0ucmVuZGVyZWQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ucmVuZGVyZWQuc2V0KHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLmFuaW1hdGlvbigpIHx8IGl0ZW0ucmVuZGVyZWQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50bHlBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZUluZGV4IDwgY3VycmVudEFjdGl2ZUluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmFuaW1hdGlvbi5zZXQoSXRlbUFuaW1hdGlvblN0YXRlLlJpZ2h0T3V0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5BbmltYXRpb24gPSBJdGVtQW5pbWF0aW9uU3RhdGUuTGVmdEluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmFuaW1hdGlvbi5zZXQoSXRlbUFuaW1hdGlvblN0YXRlLkxlZnRPdXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbkFuaW1hdGlvbiA9IEl0ZW1BbmltYXRpb25TdGF0ZS5SaWdodEluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmFuaW1hdGlvbi5zZXQoSXRlbUFuaW1hdGlvblN0YXRlLkZhc3RPdXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2ZUl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluQW5pbWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVJdGVtLmFuaW1hdGlvbi5zZXQoaW5BbmltYXRpb24pXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVJdGVtLmFuaW1hdGlvbi5zZXQoSXRlbUFuaW1hdGlvblN0YXRlLkZhc3RJbilcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhY3RpdmVJbmRleCA8IGN1cnJlbnRBY3RpdmVJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlSXRlbS5hbmltYXRpb24uc2V0KEl0ZW1BbmltYXRpb25TdGF0ZS5MZWZ0SW4pXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVJdGVtLmFuaW1hdGlvbi5zZXQoSXRlbUFuaW1hdGlvblN0YXRlLlJpZ2h0SW4pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlSXRlbS5hY3RpdmUuc2V0KHRydWUpXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZUl0ZW0ucmVuZGVyZWQuc2V0KHRydWUpXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgcHJlZmVycmVkQ2xhbXAgPSBjbGFtcChwcmVmZXJyZWQsIDAsIGl0ZW1zLmxlbmd0aCAtIDEpXG4gICAgICAgICAgICAgICAgaWYgKHByZWZlcnJlZCAhPT0gcHJlZmVycmVkQ2xhbXApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVmZXJyZWQuc2V0KHByZWZlcnJlZENsYW1wKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlcy5lbWl0KHRoaXMpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgICAgIClcbiAgICB9XG59XG4iXX0=
@@ -1,13 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare const enum ItemAnimationState {
3
- LeftIn = "left-in",
4
- LeftOut = "left-out",
5
- RightIn = "right-in",
6
- RightOut = "right-out",
7
- FastOut = "fast-out",
8
- FastIn = "fast-in"
9
- }
10
- export declare class SlidingItemComponent {
11
- static ɵfac: i0.ɵɵFactoryDeclaration<SlidingItemComponent, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<SlidingItemComponent, "nu-sliding-item", never, {}, {}, never, ["*"], true, never>;
13
- }
@@ -1,13 +0,0 @@
1
- import { TemplateRef } from "@angular/core";
2
- import type { ItemAnimationState } from "./sliding-item.component";
3
- import * as i0 from "@angular/core";
4
- export declare class SlidingItemDirective {
5
- readonly tpl: TemplateRef<any>;
6
- readonly rendered: import("@angular/core").WritableSignal<boolean>;
7
- readonly active: import("@angular/core").WritableSignal<boolean>;
8
- readonly animation: import("@angular/core").WritableSignal<ItemAnimationState | null>;
9
- readonly activated: import("@angular/core").OutputEmitterRef<boolean>;
10
- constructor();
11
- static ɵfac: i0.ɵɵFactoryDeclaration<SlidingItemDirective, never>;
12
- static ɵdir: i0.ɵɵDirectiveDeclaration<SlidingItemDirective, "ng-template[nuSlidingItem]", ["nuSlidingItem"], {}, { "activated": "activated"; }, never, never, true, never>;
13
- }