@ethlete/cdk 4.47.0 → 4.48.1
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/CHANGELOG.md +12 -0
- package/esm2022/lib/components/bracket/components/new-bracket/bracket-new.mjs +170 -69
- package/esm2022/lib/components/bracket/components/new-bracket/draw-man.mjs +75 -32
- package/esm2022/lib/components/bracket/components/new-bracket/grid-placements.mjs +8 -3
- package/esm2022/lib/components/bracket/components/new-bracket/journey-highlight.mjs +18 -0
- package/esm2022/lib/components/bracket/components/new-bracket/new-bracket.component.mjs +47 -9
- package/esm2022/lib/components/bracket/stories/dummy-data/ET_DUMMY_DATA_DOUBLE_SYNC.mjs +1116 -0
- package/esm2022/lib/components/bracket/stories/dummy-data/ET_DUMMY_DATA_SINGLE.mjs +2691 -0
- package/esm2022/lib/components/bracket/stories/dummy-data/ET_DUMMY_DATA_SWISS.mjs +72479 -0
- package/esm2022/lib/components/bracket/stories/dummy-data/ET_DUMMY_DATE_DOUBLE_ASYNC.mjs +1275 -0
- package/esm2022/lib/components/bracket/stories/dummy-data/FIFA_DUMMY_DATA_DOUBLE.mjs +2453 -0
- package/esm2022/lib/components/bracket/stories/dummy-data/FIFA_DUMMY_DATA_SINGLE.mjs +2570 -0
- package/esm2022/lib/components/bracket/stories/dummy-data/index.mjs +7 -0
- package/fesm2022/ethlete-cdk.mjs +315 -109
- package/fesm2022/ethlete-cdk.mjs.map +1 -1
- package/lib/components/bracket/components/new-bracket/bracket-new.d.ts +1632 -18
- package/lib/components/bracket/components/new-bracket/draw-man.d.ts +5 -3
- package/lib/components/bracket/components/new-bracket/grid-placements.d.ts +4 -0
- package/lib/components/bracket/components/new-bracket/journey-highlight.d.ts +2 -0
- package/lib/components/bracket/components/new-bracket/new-bracket.component.d.ts +7 -2
- package/lib/components/bracket/stories/dummy-data/ET_DUMMY_DATA_DOUBLE_SYNC.d.ts +149 -0
- package/lib/components/bracket/stories/dummy-data/ET_DUMMY_DATA_SINGLE.d.ts +184 -0
- package/lib/components/bracket/stories/dummy-data/ET_DUMMY_DATA_SWISS.d.ts +214 -0
- package/lib/components/bracket/stories/dummy-data/ET_DUMMY_DATE_DOUBLE_ASYNC.d.ts +149 -0
- package/lib/components/bracket/stories/dummy-data/FIFA_DUMMY_DATA_DOUBLE.d.ts +1640 -0
- package/lib/components/bracket/stories/dummy-data/FIFA_DUMMY_DATA_SINGLE.d.ts +2388 -0
- package/lib/components/bracket/stories/dummy-data/index.d.ts +6 -0
- package/lib/components/query-error/directives/query-error/query-error.directive.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,28 +1,36 @@
|
|
|
1
|
-
import { NgComponentOutlet } from '@angular/common';
|
|
2
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, computed, inject, input, numberAttribute, ViewEncapsulation, } from '@angular/core';
|
|
1
|
+
import { isPlatformBrowser, NgComponentOutlet } from '@angular/common';
|
|
2
|
+
import { booleanAttribute, ChangeDetectionStrategy, Component, computed, DestroyRef, effect, inject, input, numberAttribute, PLATFORM_ID, Renderer2, ViewEncapsulation, } from '@angular/core';
|
|
3
3
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
4
|
+
import { createComponentId } from '@ethlete/core';
|
|
4
5
|
import { BRACKET_DATA_LAYOUT, generateBracketData, generateBracketRoundSwissGroupMaps, generateBracketRoundTypeMap, generateMatchParticipantMap, generateMatchPositionMaps, generateMatchRelations, generateRoundRelations, getFirstRounds, } from './bracket-new';
|
|
5
6
|
import { drawMan } from './draw-man';
|
|
6
7
|
import { generateBracketGridDefinitions } from './grid-definitions';
|
|
7
8
|
import { generateBracketGridItems } from './grid-placements';
|
|
9
|
+
import { createJourneyHighlight } from './journey-highlight';
|
|
8
10
|
import * as i0 from "@angular/core";
|
|
9
11
|
export class NewBracketComponent {
|
|
12
|
+
#domSanitizer;
|
|
13
|
+
#elementId;
|
|
10
14
|
constructor() {
|
|
11
15
|
this.#domSanitizer = inject(DomSanitizer);
|
|
16
|
+
this.#elementId = createComponentId('et-new-bracket');
|
|
12
17
|
this.source = input.required();
|
|
13
18
|
this.columnWidth = input(250, { transform: numberAttribute });
|
|
14
19
|
this.matchHeight = input(75, { transform: numberAttribute });
|
|
15
20
|
this.roundHeaderHeight = input(50, { transform: numberAttribute });
|
|
16
21
|
this.columnGap = input(60, { transform: numberAttribute });
|
|
17
22
|
this.rowGap = input(30, { transform: numberAttribute });
|
|
18
|
-
this.
|
|
23
|
+
this.lineStartingCurveAmount = input(10, { transform: numberAttribute });
|
|
24
|
+
this.lineEndingCurveAmount = input(0, { transform: numberAttribute });
|
|
19
25
|
this.lineWidth = input(2, { transform: numberAttribute });
|
|
20
26
|
this.lineDashArray = input(0, { transform: numberAttribute });
|
|
21
27
|
this.lineDashOffset = input(0, { transform: numberAttribute });
|
|
28
|
+
this.disableJourneyHighlight = input(false, { transform: booleanAttribute });
|
|
22
29
|
this.layout = input(BRACKET_DATA_LAYOUT.LEFT_TO_RIGHT);
|
|
23
30
|
this.hideRoundHeaders = input(false, { transform: booleanAttribute });
|
|
24
31
|
this.roundHeaderComponent = input();
|
|
25
32
|
this.matchComponent = input();
|
|
33
|
+
this.finalMatchComponent = input();
|
|
26
34
|
this.bracketData = computed(() => generateBracketData(this.source(), { layout: this.layout() }));
|
|
27
35
|
this.roundTypeMap = computed(() => generateBracketRoundTypeMap(this.bracketData()));
|
|
28
36
|
this.matchParticipantMap = computed(() => generateMatchParticipantMap(this.bracketData()));
|
|
@@ -34,6 +42,7 @@ export class NewBracketComponent {
|
|
|
34
42
|
includeRoundHeaders: !this.hideRoundHeaders(),
|
|
35
43
|
headerComponent: this.roundHeaderComponent(),
|
|
36
44
|
matchComponent: this.matchComponent(),
|
|
45
|
+
finalMatchComponent: this.finalMatchComponent(),
|
|
37
46
|
}));
|
|
38
47
|
this.definitions = computed(() => generateBracketGridDefinitions(this.bracketData(), this.roundTypeMap(), {
|
|
39
48
|
includeRoundHeaders: !this.hideRoundHeaders(),
|
|
@@ -47,7 +56,8 @@ export class NewBracketComponent {
|
|
|
47
56
|
rowGap: this.rowGap(),
|
|
48
57
|
gridDefinitions: this.definitions(),
|
|
49
58
|
curve: {
|
|
50
|
-
|
|
59
|
+
lineEndingCurveAmount: this.lineEndingCurveAmount(),
|
|
60
|
+
lineStartingCurveAmount: this.lineStartingCurveAmount(),
|
|
51
61
|
},
|
|
52
62
|
path: {
|
|
53
63
|
dashArray: this.lineDashArray(),
|
|
@@ -55,15 +65,43 @@ export class NewBracketComponent {
|
|
|
55
65
|
width: this.lineWidth(),
|
|
56
66
|
},
|
|
57
67
|
})));
|
|
68
|
+
this.journeyHighlight = computed(() => this.disableJourneyHighlight() ? null : createJourneyHighlight(this.bracketData()));
|
|
69
|
+
const isBrowser = isPlatformBrowser(inject(PLATFORM_ID));
|
|
70
|
+
if (!isBrowser)
|
|
71
|
+
return;
|
|
72
|
+
const renderer = inject(Renderer2);
|
|
73
|
+
const styleId = `et-new-bracket-journey-highlight--${this.#elementId}`;
|
|
74
|
+
let oldStyleEl = null;
|
|
75
|
+
effect(() => {
|
|
76
|
+
const newHighlightStyle = this.journeyHighlight();
|
|
77
|
+
const head = document.head;
|
|
78
|
+
if (oldStyleEl) {
|
|
79
|
+
renderer.removeChild(head, oldStyleEl);
|
|
80
|
+
}
|
|
81
|
+
if (newHighlightStyle) {
|
|
82
|
+
const el = renderer.createElement('style');
|
|
83
|
+
renderer.setAttribute(el, 'id', styleId);
|
|
84
|
+
renderer.appendChild(el, renderer.createText(newHighlightStyle));
|
|
85
|
+
renderer.appendChild(head, el);
|
|
86
|
+
oldStyleEl = el;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
oldStyleEl = null;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
inject(DestroyRef).onDestroy(() => {
|
|
93
|
+
if (oldStyleEl) {
|
|
94
|
+
renderer.removeChild(document.head, oldStyleEl);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
58
97
|
}
|
|
59
|
-
#domSanitizer;
|
|
60
98
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NewBracketComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
61
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: NewBracketComponent, isStandalone: true, selector: "et-new-bracket", inputs: { source: { classPropertyName: "source", publicName: "source", isSignal: true, isRequired: true, transformFunction: null }, columnWidth: { classPropertyName: "columnWidth", publicName: "columnWidth", isSignal: true, isRequired: false, transformFunction: null }, matchHeight: { classPropertyName: "matchHeight", publicName: "matchHeight", isSignal: true, isRequired: false, transformFunction: null }, roundHeaderHeight: { classPropertyName: "roundHeaderHeight", publicName: "roundHeaderHeight", isSignal: true, isRequired: false, transformFunction: null }, columnGap: { classPropertyName: "columnGap", publicName: "columnGap", isSignal: true, isRequired: false, transformFunction: null }, rowGap: { classPropertyName: "rowGap", publicName: "rowGap", isSignal: true, isRequired: false, transformFunction: null },
|
|
99
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: NewBracketComponent, isStandalone: true, selector: "et-new-bracket", inputs: { source: { classPropertyName: "source", publicName: "source", isSignal: true, isRequired: true, transformFunction: null }, columnWidth: { classPropertyName: "columnWidth", publicName: "columnWidth", isSignal: true, isRequired: false, transformFunction: null }, matchHeight: { classPropertyName: "matchHeight", publicName: "matchHeight", isSignal: true, isRequired: false, transformFunction: null }, roundHeaderHeight: { classPropertyName: "roundHeaderHeight", publicName: "roundHeaderHeight", isSignal: true, isRequired: false, transformFunction: null }, columnGap: { classPropertyName: "columnGap", publicName: "columnGap", isSignal: true, isRequired: false, transformFunction: null }, rowGap: { classPropertyName: "rowGap", publicName: "rowGap", isSignal: true, isRequired: false, transformFunction: null }, lineStartingCurveAmount: { classPropertyName: "lineStartingCurveAmount", publicName: "lineStartingCurveAmount", isSignal: true, isRequired: false, transformFunction: null }, lineEndingCurveAmount: { classPropertyName: "lineEndingCurveAmount", publicName: "lineEndingCurveAmount", isSignal: true, isRequired: false, transformFunction: null }, lineWidth: { classPropertyName: "lineWidth", publicName: "lineWidth", isSignal: true, isRequired: false, transformFunction: null }, lineDashArray: { classPropertyName: "lineDashArray", publicName: "lineDashArray", isSignal: true, isRequired: false, transformFunction: null }, lineDashOffset: { classPropertyName: "lineDashOffset", publicName: "lineDashOffset", isSignal: true, isRequired: false, transformFunction: null }, disableJourneyHighlight: { classPropertyName: "disableJourneyHighlight", publicName: "disableJourneyHighlight", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, hideRoundHeaders: { classPropertyName: "hideRoundHeaders", publicName: "hideRoundHeaders", isSignal: true, isRequired: false, transformFunction: null }, roundHeaderComponent: { classPropertyName: "roundHeaderComponent", publicName: "roundHeaderComponent", isSignal: true, isRequired: false, transformFunction: null }, matchComponent: { classPropertyName: "matchComponent", publicName: "matchComponent", isSignal: true, isRequired: false, transformFunction: null }, finalMatchComponent: { classPropertyName: "finalMatchComponent", publicName: "finalMatchComponent", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "et-new-bracket-host" }, ngImport: i0, template: "<section\n [style.--_cw.px]=\"columnWidth()\"\n [style.--_mh.px]=\"matchHeight()\"\n [style.--_rhh.px]=\"hideRoundHeaders() ? matchHeight() : roundHeaderHeight()\"\n [style.--_cg.px]=\"columnGap()\"\n [style.--_rg.px]=\"rowGap()\"\n [style.--_bcc]=\"definitions().columnCount\"\n [style.--_brc]=\"definitions().rowCount\"\n class=\"et-bracket-new\"\n>\n <svg [innerHTML]=\"drawManData()\" class=\"et-bracket-new-svg\" xmlns=\"http://www.w3.org/2000/svg\" />\n\n @for (round of items().values(); track round.layoutId) {\n <ul [style.--_c]=\"round.columnStart + ' / ' + round.columnEnd\" class=\"et-bracket-new-round\">\n @for (item of round.items.values(); track item.layoutId) {\n <li [style.--_r]=\"item.rowStart + ' / ' + item.rowEnd\" [class]=\"item.className\">\n <ng-container *ngComponentOutlet=\"item.component; inputs: item.data\" />\n </li>\n }\n </ul>\n }\n</section>\n", styles: [".et-bracket-new{display:grid;gap:var(--_cg);grid-auto-columns:var(--_cw);--bracket-line-color: red}.et-bracket-new-round{display:grid;grid-column:var(--_c);grid-row:1;list-style:none;margin:0;padding:0;gap:var(--_rg);grid-template-rows:var(--_rhh);grid-auto-rows:var(--_mh)}.et-bracket-new-item{grid-row:var(--_r);place-self:center;transition:opacity .2s}.et-bracket-new-svg{grid-column:1/calc(var(--_bcc) + 1);grid-row:1/2;inline-size:100%;block-size:100%}.et-bracket-new-svg path{color:var(--bracket-line-color);transition:opacity .2s}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
62
100
|
}
|
|
63
101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NewBracketComponent, decorators: [{
|
|
64
102
|
type: Component,
|
|
65
103
|
args: [{ selector: 'et-new-bracket', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
66
104
|
class: 'et-new-bracket-host',
|
|
67
|
-
}, imports: [NgComponentOutlet], template: "<section\n [style.--_cw.px]=\"columnWidth()\"\n [style.--_mh.px]=\"matchHeight()\"\n [style.--_rhh.px]=\"roundHeaderHeight()\"\n [style.--_cg.px]=\"columnGap()\"\n [style.--_rg.px]=\"rowGap()\"\n [style.--_bcc]=\"definitions().columnCount\"\n [style.--_brc]=\"definitions().rowCount\"\n class=\"et-bracket-new\"\n>\n <svg [innerHTML]=\"drawManData()\" class=\"et-bracket-new-svg\" xmlns=\"http://www.w3.org/2000/svg\" />\n\n @for (round of items().values(); track round.layoutId) {\n <ul [style.--_c]=\"round.columnStart + ' / ' + round.columnEnd\" class=\"et-bracket-new-round\">\n @for (item of round.items.values(); track item.layoutId) {\n <li [style.--_r]=\"item.rowStart + ' / ' + item.rowEnd\" class=\"
|
|
68
|
-
}] });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWJyYWNrZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2JyYWNrZXQvY29tcG9uZW50cy9uZXctYnJhY2tldC9uZXctYnJhY2tldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvYnJhY2tldC9jb21wb25lbnRzL25ldy1icmFja2V0L25ldy1icmFja2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssRUFDTCxlQUFlLEVBQ2YsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsbUJBQW1CLEVBR25CLG1CQUFtQixFQUNuQixrQ0FBa0MsRUFDbEMsMkJBQTJCLEVBQzNCLDJCQUEyQixFQUMzQix5QkFBeUIsRUFDekIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixjQUFjLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRSxPQUFPLEVBQXNELHdCQUF3QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBY2pILE1BQU0sT0FBTyxtQkFBbUI7SUFaaEM7UUFhRSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVyQyxXQUFNLEdBQUcsS0FB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LEVBQUU7Z0JBQ0osU0FBUyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQy9CLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNqQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRTthQUN4QjtTQUNGLENBQUMsQ0FDSCxDQUNGLENBQUM7S0FDSDtJQTVFQyxhQUFhLENBQXdCOytHQUQxQixtQkFBbUI7bUdBQW5CLG1CQUFtQiw2aUVDekNoQyxpNEJBc0JBLHVpQkRpQlksaUJBQWlCOzs0RkFFaEIsbUJBQW1CO2tCQVovQixTQUFTOytCQUNFLGdCQUFnQixjQUdkLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUscUJBQXFCO3FCQUM3QixXQUNRLENBQUMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NvbXBvbmVudE91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBib29sZWFuQXR0cmlidXRlLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7XG4gIEJSQUNLRVRfREFUQV9MQVlPVVQsXG4gIEJyYWNrZXREYXRhTGF5b3V0LFxuICBCcmFja2V0RGF0YVNvdXJjZSxcbiAgZ2VuZXJhdGVCcmFja2V0RGF0YSxcbiAgZ2VuZXJhdGVCcmFja2V0Um91bmRTd2lzc0dyb3VwTWFwcyxcbiAgZ2VuZXJhdGVCcmFja2V0Um91bmRUeXBlTWFwLFxuICBnZW5lcmF0ZU1hdGNoUGFydGljaXBhbnRNYXAsXG4gIGdlbmVyYXRlTWF0Y2hQb3NpdGlvbk1hcHMsXG4gIGdlbmVyYXRlTWF0Y2hSZWxhdGlvbnMsXG4gIGdlbmVyYXRlUm91bmRSZWxhdGlvbnMsXG4gIGdldEZpcnN0Um91bmRzLFxufSBmcm9tICcuL2JyYWNrZXQtbmV3JztcbmltcG9ydCB7IGRyYXdNYW4gfSBmcm9tICcuL2RyYXctbWFuJztcbmltcG9ydCB7IGdlbmVyYXRlQnJhY2tldEdyaWREZWZpbml0aW9ucyB9IGZyb20gJy4vZ3JpZC1kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBCcmFja2V0TWF0Y2hDb21wb25lbnQsIEJyYWNrZXRSb3VuZEhlYWRlckNvbXBvbmVudCwgZ2VuZXJhdGVCcmFja2V0R3JpZEl0ZW1zIH0gZnJvbSAnLi9ncmlkLXBsYWNlbWVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdldC1uZXctYnJhY2tldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9uZXctYnJhY2tldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9uZXctYnJhY2tldC5jb21wb25lbnQuc2NzcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdldC1uZXctYnJhY2tldC1ob3N0JyxcbiAgfSxcbiAgaW1wb3J0czogW05nQ29tcG9uZW50T3V0bGV0XSxcbn0pXG5leHBvcnQgY2xhc3MgTmV3QnJhY2tldENvbXBvbmVudDxUUm91bmREYXRhID0gdW5rbm93biwgVE1hdGNoRGF0YSA9IHVua25vd24+IHtcbiAgI2RvbVNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuXG4gIHNvdXJjZSA9IGlucHV0LnJlcXVpcmVkPEJyYWNrZXREYXRhU291cmNlPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+PigpO1xuXG4gIGNvbHVtbldpZHRoID0gaW5wdXQoMjUwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuICBtYXRjaEhlaWdodCA9IGlucHV0KDc1LCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuICByb3VuZEhlYWRlckhlaWdodCA9IGlucHV0KDUwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuICBjb2x1bW5HYXAgPSBpbnB1dCg2MCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcbiAgcm93R2FwID0gaW5wdXQoMzAsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG4gIGN1cnZlQW1vdW50ID0gaW5wdXQoMjAsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG4gIGxpbmVXaWR0aCA9IGlucHV0KDIsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG4gIGxpbmVEYXNoQXJyYXkgPSBpbnB1dCgwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuICBsaW5lRGFzaE9mZnNldCA9IGlucHV0KDAsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG5cbiAgbGF5b3V0ID0gaW5wdXQ8QnJhY2tldERhdGFMYXlvdXQ+KEJSQUNLRVRfREFUQV9MQVlPVVQuTEVGVF9UT19SSUdIVCk7XG4gIGhpZGVSb3VuZEhlYWRlcnMgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgcm91bmRIZWFkZXJDb21wb25lbnQgPSBpbnB1dDxCcmFja2V0Um91bmRIZWFkZXJDb21wb25lbnQ8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4gfCB1bmRlZmluZWQ+KCk7XG4gIG1hdGNoQ29tcG9uZW50ID0gaW5wdXQ8QnJhY2tldE1hdGNoQ29tcG9uZW50PFRSb3VuZERhdGEsIFRNYXRjaERhdGE+IHwgdW5kZWZpbmVkPigpO1xuXG4gIGJyYWNrZXREYXRhID0gY29tcHV0ZWQoKCkgPT4gZ2VuZXJhdGVCcmFja2V0RGF0YSh0aGlzLnNvdXJjZSgpLCB7IGxheW91dDogdGhpcy5sYXlvdXQoKSB9KSk7XG5cbiAgcm91bmRUeXBlTWFwID0gY29tcHV0ZWQoKCkgPT4gZ2VuZXJhdGVCcmFja2V0Um91bmRUeXBlTWFwKHRoaXMuYnJhY2tldERhdGEoKSkpO1xuICBtYXRjaFBhcnRpY2lwYW50TWFwID0gY29tcHV0ZWQoKCkgPT4gZ2VuZXJhdGVNYXRjaFBhcnRpY2lwYW50TWFwKHRoaXMuYnJhY2tldERhdGEoKSkpO1xuICBtYXRjaFBvc2l0aW9uc01hcCA9IGNvbXB1dGVkKCgpID0+IGdlbmVyYXRlTWF0Y2hQb3NpdGlvbk1hcHModGhpcy5icmFja2V0RGF0YSgpKSk7XG5cbiAgcm91bmRSZWxhdGlvbnMgPSBjb21wdXRlZCgoKSA9PiBnZW5lcmF0ZVJvdW5kUmVsYXRpb25zKHRoaXMuYnJhY2tldERhdGEoKSkpO1xuICBtYXRjaFJlbGF0aW9ucyA9IGNvbXB1dGVkKCgpID0+XG4gICAgZ2VuZXJhdGVNYXRjaFJlbGF0aW9ucyh0aGlzLmJyYWNrZXREYXRhKCksIHRoaXMucm91bmRSZWxhdGlvbnMoKSwgdGhpcy5tYXRjaFBvc2l0aW9uc01hcCgpKSxcbiAgKTtcblxuICBzd2lzc0dyb3VwcyA9IGNvbXB1dGVkKCgpID0+IGdlbmVyYXRlQnJhY2tldFJvdW5kU3dpc3NHcm91cE1hcHModGhpcy5icmFja2V0RGF0YSgpLCB0aGlzLm1hdGNoUGFydGljaXBhbnRNYXAoKSkpO1xuXG4gIGl0ZW1zID0gY29tcHV0ZWQoKCkgPT5cbiAgICBnZW5lcmF0ZUJyYWNrZXRHcmlkSXRlbXMoXG4gICAgICB0aGlzLmJyYWNrZXREYXRhKCksXG4gICAgICB0aGlzLnJvdW5kVHlwZU1hcCgpLFxuICAgICAgdGhpcy5zd2lzc0dyb3VwcygpLFxuICAgICAgdGhpcy5yb3VuZFJlbGF0aW9ucygpLFxuICAgICAgdGhpcy5tYXRjaFJlbGF0aW9ucygpLFxuICAgICAge1xuICAgICAgICBpbmNsdWRlUm91bmRIZWFkZXJzOiAhdGhpcy5oaWRlUm91bmRIZWFkZXJzKCksXG4gICAgICAgIGhlYWRlckNvbXBvbmVudDogdGhpcy5yb3VuZEhlYWRlckNvbXBvbmVudCgpLFxuICAgICAgICBtYXRjaENvbXBvbmVudDogdGhpcy5tYXRjaENvbXBvbmVudCgpLFxuICAgICAgfSxcbiAgICApLFxuICApO1xuXG4gIGRlZmluaXRpb25zID0gY29tcHV0ZWQoKCkgPT5cbiAgICBnZW5lcmF0ZUJyYWNrZXRHcmlkRGVmaW5pdGlvbnModGhpcy5icmFja2V0RGF0YSgpLCB0aGlzLnJvdW5kVHlwZU1hcCgpLCB7XG4gICAgICBpbmNsdWRlUm91bmRIZWFkZXJzOiAhdGhpcy5oaWRlUm91bmRIZWFkZXJzKCksXG4gICAgfSksXG4gICk7XG5cbiAgZmlyc3RSb3VuZHMgPSBjb21wdXRlZCgoKSA9PiBnZXRGaXJzdFJvdW5kcyh0aGlzLmJyYWNrZXREYXRhKCksIHRoaXMucm91bmRUeXBlTWFwKCkpKTtcblxuICBkcmF3TWFuRGF0YSA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy4jZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFxuICAgICAgZHJhd01hbih0aGlzLml0ZW1zKCksIHRoaXMuZmlyc3RSb3VuZHMoKSwge1xuICAgICAgICBjb2x1bW5HYXA6IHRoaXMuY29sdW1uR2FwKCksXG4gICAgICAgIGNvbHVtbldpZHRoOiB0aGlzLmNvbHVtbldpZHRoKCksXG4gICAgICAgIG1hdGNoSGVpZ2h0OiB0aGlzLm1hdGNoSGVpZ2h0KCksXG4gICAgICAgIHJvdW5kSGVhZGVySGVpZ2h0OiB0aGlzLmhpZGVSb3VuZEhlYWRlcnMoKSA/IDAgOiB0aGlzLnJvdW5kSGVhZGVySGVpZ2h0KCksXG4gICAgICAgIHJvd0dhcDogdGhpcy5yb3dHYXAoKSxcbiAgICAgICAgZ3JpZERlZmluaXRpb25zOiB0aGlzLmRlZmluaXRpb25zKCksXG4gICAgICAgIGN1cnZlOiB7XG4gICAgICAgICAgY3VydmVBbW91bnQ6IHRoaXMuY3VydmVBbW91bnQoKSxcbiAgICAgICAgfSxcbiAgICAgICAgcGF0aDoge1xuICAgICAgICAgIGRhc2hBcnJheTogdGhpcy5saW5lRGFzaEFycmF5KCksXG4gICAgICAgICAgZGFzaE9mZnNldDogdGhpcy5saW5lRGFzaE9mZnNldCgpLFxuICAgICAgICAgIHdpZHRoOiB0aGlzLmxpbmVXaWR0aCgpLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgKSxcbiAgKTtcbn1cbiIsIjxzZWN0aW9uXG4gIFtzdHlsZS4tLV9jdy5weF09XCJjb2x1bW5XaWR0aCgpXCJcbiAgW3N0eWxlLi0tX21oLnB4XT1cIm1hdGNoSGVpZ2h0KClcIlxuICBbc3R5bGUuLS1fcmhoLnB4XT1cInJvdW5kSGVhZGVySGVpZ2h0KClcIlxuICBbc3R5bGUuLS1fY2cucHhdPVwiY29sdW1uR2FwKClcIlxuICBbc3R5bGUuLS1fcmcucHhdPVwicm93R2FwKClcIlxuICBbc3R5bGUuLS1fYmNjXT1cImRlZmluaXRpb25zKCkuY29sdW1uQ291bnRcIlxuICBbc3R5bGUuLS1fYnJjXT1cImRlZmluaXRpb25zKCkucm93Q291bnRcIlxuICBjbGFzcz1cImV0LWJyYWNrZXQtbmV3XCJcbj5cbiAgPHN2ZyBbaW5uZXJIVE1MXT1cImRyYXdNYW5EYXRhKClcIiBjbGFzcz1cImV0LWJyYWNrZXQtbmV3LXN2Z1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiAvPlxuXG4gIEBmb3IgKHJvdW5kIG9mIGl0ZW1zKCkudmFsdWVzKCk7IHRyYWNrIHJvdW5kLmxheW91dElkKSB7XG4gICAgPHVsIFtzdHlsZS4tLV9jXT1cInJvdW5kLmNvbHVtblN0YXJ0ICsgJyAvICcgKyByb3VuZC5jb2x1bW5FbmRcIiBjbGFzcz1cImV0LWJyYWNrZXQtbmV3LXJvdW5kXCI+XG4gICAgICBAZm9yIChpdGVtIG9mIHJvdW5kLml0ZW1zLnZhbHVlcygpOyB0cmFjayBpdGVtLmxheW91dElkKSB7XG4gICAgICAgIDxsaSBbc3R5bGUuLS1fcl09XCJpdGVtLnJvd1N0YXJ0ICsgJyAvICcgKyBpdGVtLnJvd0VuZFwiIGNsYXNzPVwiZXQtYnJhY2tldC1uZXctaXRlbVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwiaXRlbS5jb21wb25lbnQ7IGlucHV0czogaXRlbS5kYXRhXCIgLz5cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICA8L3VsPlxuICB9XG48L3NlY3Rpb24+XG4iXX0=
|
|
105
|
+
}, imports: [NgComponentOutlet], template: "<section\n [style.--_cw.px]=\"columnWidth()\"\n [style.--_mh.px]=\"matchHeight()\"\n [style.--_rhh.px]=\"hideRoundHeaders() ? matchHeight() : roundHeaderHeight()\"\n [style.--_cg.px]=\"columnGap()\"\n [style.--_rg.px]=\"rowGap()\"\n [style.--_bcc]=\"definitions().columnCount\"\n [style.--_brc]=\"definitions().rowCount\"\n class=\"et-bracket-new\"\n>\n <svg [innerHTML]=\"drawManData()\" class=\"et-bracket-new-svg\" xmlns=\"http://www.w3.org/2000/svg\" />\n\n @for (round of items().values(); track round.layoutId) {\n <ul [style.--_c]=\"round.columnStart + ' / ' + round.columnEnd\" class=\"et-bracket-new-round\">\n @for (item of round.items.values(); track item.layoutId) {\n <li [style.--_r]=\"item.rowStart + ' / ' + item.rowEnd\" [class]=\"item.className\">\n <ng-container *ngComponentOutlet=\"item.component; inputs: item.data\" />\n </li>\n }\n </ul>\n }\n</section>\n", styles: [".et-bracket-new{display:grid;gap:var(--_cg);grid-auto-columns:var(--_cw);--bracket-line-color: red}.et-bracket-new-round{display:grid;grid-column:var(--_c);grid-row:1;list-style:none;margin:0;padding:0;gap:var(--_rg);grid-template-rows:var(--_rhh);grid-auto-rows:var(--_mh)}.et-bracket-new-item{grid-row:var(--_r);place-self:center;transition:opacity .2s}.et-bracket-new-svg{grid-column:1/calc(var(--_bcc) + 1);grid-row:1/2;inline-size:100%;block-size:100%}.et-bracket-new-svg path{color:var(--bracket-line-color);transition:opacity .2s}\n"] }]
|
|
106
|
+
}], ctorParameters: () => [] });
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWJyYWNrZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2JyYWNrZXQvY29tcG9uZW50cy9uZXctYnJhY2tldC9uZXctYnJhY2tldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvYnJhY2tldC9jb21wb25lbnRzL25ldy1icmFja2V0L25ldy1icmFja2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLGVBQWUsRUFDZixXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFDTCxtQkFBbUIsRUFHbkIsbUJBQW1CLEVBQ25CLGtDQUFrQyxFQUNsQywyQkFBMkIsRUFDM0IsMkJBQTJCLEVBQzNCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLGNBQWMsR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BFLE9BQU8sRUFBc0Qsd0JBQXdCLEVBQUUsTUFBTSxtQkFBbUIs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eWtGQy9DaEMsbTZCQXNCQSxxbEJEdUJZLGlCQUFpQjs7NEZBRWhCLG1CQUFtQjtrQkFaL0IsU0FBUzsrQkFDRSxnQkFBZ0IsY0FHZCxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osS0FBSyxFQUFFLHFCQUFxQjtxQkFDN0IsV0FDUSxDQUFDLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIsIE5nQ29tcG9uZW50T3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBEZXN0cm95UmVmLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgUExBVEZPUk1fSUQsXG4gIFJlbmRlcmVyMixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBjcmVhdGVDb21wb25lbnRJZCB9IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHtcbiAgQlJBQ0tFVF9EQVRBX0xBWU9VVCxcbiAgQnJhY2tldERhdGFMYXlvdXQsXG4gIEJyYWNrZXREYXRhU291cmNlLFxuICBnZW5lcmF0ZUJyYWNrZXREYXRhLFxuICBnZW5lcmF0ZUJyYWNrZXRSb3VuZFN3aXNzR3JvdXBNYXBzLFxuICBnZW5lcmF0ZUJyYWNrZXRSb3VuZFR5cGVNYXAsXG4gIGdlbmVyYXRlTWF0Y2hQYXJ0aWNpcGFudE1hcCxcbiAgZ2VuZXJhdGVNYXRjaFBvc2l0aW9uTWFwcyxcbiAgZ2VuZXJhdGVNYXRjaFJlbGF0aW9ucyxcbiAgZ2VuZXJhdGVSb3VuZFJlbGF0aW9ucyxcbiAgZ2V0Rmlyc3RSb3VuZHMsXG59IGZyb20gJy4vYnJhY2tldC1uZXcnO1xuaW1wb3J0IHsgZHJhd01hbiB9IGZyb20gJy4vZHJhdy1tYW4nO1xuaW1wb3J0IHsgZ2VuZXJhdGVCcmFja2V0R3JpZERlZmluaXRpb25zIH0gZnJvbSAnLi9ncmlkLWRlZmluaXRpb25zJztcbmltcG9ydCB7IEJyYWNrZXRNYXRjaENvbXBvbmVudCwgQnJhY2tldFJvdW5kSGVhZGVyQ29tcG9uZW50LCBnZW5lcmF0ZUJyYWNrZXRHcmlkSXRlbXMgfSBmcm9tICcuL2dyaWQtcGxhY2VtZW50cyc7XG5pbXBvcnQgeyBjcmVhdGVKb3VybmV5SGlnaGxpZ2h0IH0gZnJvbSAnLi9qb3VybmV5LWhpZ2hsaWdodCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V0LW5ldy1icmFja2V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL25ldy1icmFja2V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL25ldy1icmFja2V0LmNvbXBvbmVudC5zY3NzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LW5ldy1icmFja2V0LWhvc3QnLFxuICB9LFxuICBpbXBvcnRzOiBbTmdDb21wb25lbnRPdXRsZXRdLFxufSlcbmV4cG9ydCBjbGFzcyBOZXdCcmFja2V0Q29tcG9uZW50PFRSb3VuZERhdGEgPSB1bmtub3duLCBUTWF0Y2hEYXRhID0gdW5rbm93bj4ge1xuICAjZG9tU2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XG4gICNlbGVtZW50SWQgPSBjcmVhdGVDb21wb25lbnRJZCgnZXQtbmV3LWJyYWNrZXQnKTtcblxuICBzb3VyY2UgPSBpbnB1dC5yZXF1aXJlZDxCcmFja2V0RGF0YVNvdXJjZTxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPj4oKTtcblxuICBjb2x1bW5XaWR0aCA9IGlucHV0KDI1MCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcbiAgbWF0Y2hIZWlnaHQgPSBpbnB1dCg3NSwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcbiAgcm91bmRIZWFkZXJIZWlnaHQgPSBpbnB1dCg1MCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcbiAgY29sdW1uR2FwID0gaW5wdXQoNjAsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG4gIHJvd0dhcCA9IGlucHV0KDMwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuICBsaW5lU3RhcnRpbmdDdXJ2ZUFtb3VudCA9IGlucHV0KDEwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuICBsaW5lRW5kaW5nQ3VydmVBbW91bnQgPSBpbnB1dCgwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuICBsaW5lV2lkdGggPSBpbnB1dCgyLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuICBsaW5lRGFzaEFycmF5ID0gaW5wdXQoMCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcbiAgbGluZURhc2hPZmZzZXQgPSBpbnB1dCgwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuICBkaXNhYmxlSm91cm5leUhpZ2hsaWdodCA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICBsYXlvdXQgPSBpbnB1dDxCcmFja2V0RGF0YUxheW91dD4oQlJBQ0tFVF9EQVRBX0xBWU9VVC5MRUZUX1RPX1JJR0hUKTtcbiAgaGlkZVJvdW5kSGVhZGVycyA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICByb3VuZEhlYWRlckNvbXBvbmVudCA9IGlucHV0PEJyYWNrZXRSb3VuZEhlYWRlckNvbXBvbmVudDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPiB8IHVuZGVmaW5lZD4oKTtcbiAgbWF0Y2hDb21wb25lbnQgPSBpbnB1dDxCcmFja2V0TWF0Y2hDb21wb25lbnQ8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4gfCB1bmRlZmluZWQ+KCk7XG4gIGZpbmFsTWF0Y2hDb21wb25lbnQgPSBpbnB1dDxCcmFja2V0TWF0Y2hDb21wb25lbnQ8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4gfCB1bmRlZmluZWQ+KCk7XG5cbiAgYnJhY2tldERhdGEgPSBjb21wdXRlZCgoKSA9PiBnZW5lcmF0ZUJyYWNrZXREYXRhKHRoaXMuc291cmNlKCksIHsgbGF5b3V0OiB0aGlzLmxheW91dCgpIH0pKTtcblxuICByb3VuZFR5cGVNYXAgPSBjb21wdXRlZCgoKSA9PiBnZW5lcmF0ZUJyYWNrZXRSb3VuZFR5cGVNYXAodGhpcy5icmFja2V0RGF0YSgpKSk7XG4gIG1hdGNoUGFydGljaXBhbnRNYXAgPSBjb21wdXRlZCgoKSA9PiBnZW5lcmF0ZU1hdGNoUGFydGljaXBhbnRNYXAodGhpcy5icmFja2V0RGF0YSgpKSk7XG4gIG1hdGNoUG9zaXRpb25zTWFwID0gY29tcHV0ZWQoKCkgPT4gZ2VuZXJhdGVNYXRjaFBvc2l0aW9uTWFwcyh0aGlzLmJyYWNrZXREYXRhKCkpKTtcblxuICByb3VuZFJlbGF0aW9ucyA9IGNvbXB1dGVkKCgpID0+IGdlbmVyYXRlUm91bmRSZWxhdGlvbnModGhpcy5icmFja2V0RGF0YSgpKSk7XG4gIG1hdGNoUmVsYXRpb25zID0gY29tcHV0ZWQoKCkgPT5cbiAgICBnZW5lcmF0ZU1hdGNoUmVsYXRpb25zKHRoaXMuYnJhY2tldERhdGEoKSwgdGhpcy5yb3VuZFJlbGF0aW9ucygpLCB0aGlzLm1hdGNoUG9zaXRpb25zTWFwKCkpLFxuICApO1xuXG4gIHN3aXNzR3JvdXBzID0gY29tcHV0ZWQoKCkgPT4gZ2VuZXJhdGVCcmFja2V0Um91bmRTd2lzc0dyb3VwTWFwcyh0aGlzLmJyYWNrZXREYXRhKCksIHRoaXMubWF0Y2hQYXJ0aWNpcGFudE1hcCgpKSk7XG5cbiAgaXRlbXMgPSBjb21wdXRlZCgoKSA9PlxuICAgIGdlbmVyYXRlQnJhY2tldEdyaWRJdGVtcyhcbiAgICAgIHRoaXMuYnJhY2tldERhdGEoKSxcbiAgICAgIHRoaXMucm91bmRUeXBlTWFwKCksXG4gICAgICB0aGlzLnN3aXNzR3JvdXBzKCksXG4gICAgICB0aGlzLnJvdW5kUmVsYXRpb25zKCksXG4gICAgICB0aGlzLm1hdGNoUmVsYXRpb25zKCksXG4gICAgICB7XG4gICAgICAgIGluY2x1ZGVSb3VuZEhlYWRlcnM6ICF0aGlzLmhpZGVSb3VuZEhlYWRlcnMoKSxcbiAgICAgICAgaGVhZGVyQ29tcG9uZW50OiB0aGlzLnJvdW5kSGVhZGVyQ29tcG9uZW50KCksXG4gICAgICAgIG1hdGNoQ29tcG9uZW50OiB0aGlzLm1hdGNoQ29tcG9uZW50KCksXG4gICAgICAgIGZpbmFsTWF0Y2hDb21wb25lbnQ6IHRoaXMuZmluYWxNYXRjaENvbXBvbmVudCgpLFxuICAgICAgfSxcbiAgICApLFxuICApO1xuXG4gIGRlZmluaXRpb25zID0gY29tcHV0ZWQoKCkgPT5cbiAgICBnZW5lcmF0ZUJyYWNrZXRHcmlkRGVmaW5pdGlvbnModGhpcy5icmFja2V0RGF0YSgpLCB0aGlzLnJvdW5kVHlwZU1hcCgpLCB7XG4gICAgICBpbmNsdWRlUm91bmRIZWFkZXJzOiAhdGhpcy5oaWRlUm91bmRIZWFkZXJzKCksXG4gICAgfSksXG4gICk7XG5cbiAgZmlyc3RSb3VuZHMgPSBjb21wdXRlZCgoKSA9PiBnZXRGaXJzdFJvdW5kcyh0aGlzLmJyYWNrZXREYXRhKCksIHRoaXMucm91bmRUeXBlTWFwKCkpKTtcblxuICBkcmF3TWFuRGF0YSA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy4jZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFxuICAgICAgZHJhd01hbih0aGlzLml0ZW1zKCksIHRoaXMuZmlyc3RSb3VuZHMoKSwge1xuICAgICAgICBjb2x1bW5HYXA6IHRoaXMuY29sdW1uR2FwKCksXG4gICAgICAgIGNvbHVtbldpZHRoOiB0aGlzLmNvbHVtbldpZHRoKCksXG4gICAgICAgIG1hdGNoSGVpZ2h0OiB0aGlzLm1hdGNoSGVpZ2h0KCksXG4gICAgICAgIHJvdW5kSGVhZGVySGVpZ2h0OiB0aGlzLmhpZGVSb3VuZEhlYWRlcnMoKSA/IDAgOiB0aGlzLnJvdW5kSGVhZGVySGVpZ2h0KCksXG4gICAgICAgIHJvd0dhcDogdGhpcy5yb3dHYXAoKSxcbiAgICAgICAgZ3JpZERlZmluaXRpb25zOiB0aGlzLmRlZmluaXRpb25zKCksXG4gICAgICAgIGN1cnZlOiB7XG4gICAgICAgICAgbGluZUVuZGluZ0N1cnZlQW1vdW50OiB0aGlzLmxpbmVFbmRpbmdDdXJ2ZUFtb3VudCgpLFxuICAgICAgICAgIGxpbmVTdGFydGluZ0N1cnZlQW1vdW50OiB0aGlzLmxpbmVTdGFydGluZ0N1cnZlQW1vdW50KCksXG4gICAgICAgIH0sXG4gICAgICAgIHBhdGg6IHtcbiAgICAgICAgICBkYXNoQXJyYXk6IHRoaXMubGluZURhc2hBcnJheSgpLFxuICAgICAgICAgIGRhc2hPZmZzZXQ6IHRoaXMubGluZURhc2hPZmZzZXQoKSxcbiAgICAgICAgICB3aWR0aDogdGhpcy5saW5lV2lkdGgoKSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICksXG4gICk7XG5cbiAgam91cm5leUhpZ2hsaWdodCA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5kaXNhYmxlSm91cm5leUhpZ2hsaWdodCgpID8gbnVsbCA6IGNyZWF0ZUpvdXJuZXlIaWdobGlnaHQodGhpcy5icmFja2V0RGF0YSgpKSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zdCBpc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3NlcihpbmplY3QoUExBVEZPUk1fSUQpKTtcblxuICAgIGlmICghaXNCcm93c2VyKSByZXR1cm47XG5cbiAgICBjb25zdCByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIGNvbnN0IHN0eWxlSWQgPSBgZXQtbmV3LWJyYWNrZXQtam91cm5leS1oaWdobGlnaHQtLSR7dGhpcy4jZWxlbWVudElkfWA7XG5cbiAgICBsZXQgb2xkU3R5bGVFbDogdW5rbm93biA9IG51bGw7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgbmV3SGlnaGxpZ2h0U3R5bGUgPSB0aGlzLmpvdXJuZXlIaWdobGlnaHQoKTtcbiAgICAgIGNvbnN0IGhlYWQgPSBkb2N1bWVudC5oZWFkO1xuXG4gICAgICBpZiAob2xkU3R5bGVFbCkge1xuICAgICAgICByZW5kZXJlci5yZW1vdmVDaGlsZChoZWFkLCBvbGRTdHlsZUVsKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5ld0hpZ2hsaWdodFN0eWxlKSB7XG4gICAgICAgIGNvbnN0IGVsID0gcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICAgICAgcmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsLCAnaWQnLCBzdHlsZUlkKTtcbiAgICAgICAgcmVuZGVyZXIuYXBwZW5kQ2hpbGQoZWwsIHJlbmRlcmVyLmNyZWF0ZVRleHQobmV3SGlnaGxpZ2h0U3R5bGUpKTtcblxuICAgICAgICByZW5kZXJlci5hcHBlbmRDaGlsZChoZWFkLCBlbCk7XG4gICAgICAgIG9sZFN0eWxlRWwgPSBlbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9sZFN0eWxlRWwgPSBudWxsO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICBpZiAob2xkU3R5bGVFbCkge1xuICAgICAgICByZW5kZXJlci5yZW1vdmVDaGlsZChkb2N1bWVudC5oZWFkLCBvbGRTdHlsZUVsKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPHNlY3Rpb25cbiAgW3N0eWxlLi0tX2N3LnB4XT1cImNvbHVtbldpZHRoKClcIlxuICBbc3R5bGUuLS1fbWgucHhdPVwibWF0Y2hIZWlnaHQoKVwiXG4gIFtzdHlsZS4tLV9yaGgucHhdPVwiaGlkZVJvdW5kSGVhZGVycygpID8gbWF0Y2hIZWlnaHQoKSA6IHJvdW5kSGVhZGVySGVpZ2h0KClcIlxuICBbc3R5bGUuLS1fY2cucHhdPVwiY29sdW1uR2FwKClcIlxuICBbc3R5bGUuLS1fcmcucHhdPVwicm93R2FwKClcIlxuICBbc3R5bGUuLS1fYmNjXT1cImRlZmluaXRpb25zKCkuY29sdW1uQ291bnRcIlxuICBbc3R5bGUuLS1fYnJjXT1cImRlZmluaXRpb25zKCkucm93Q291bnRcIlxuICBjbGFzcz1cImV0LWJyYWNrZXQtbmV3XCJcbj5cbiAgPHN2ZyBbaW5uZXJIVE1MXT1cImRyYXdNYW5EYXRhKClcIiBjbGFzcz1cImV0LWJyYWNrZXQtbmV3LXN2Z1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiAvPlxuXG4gIEBmb3IgKHJvdW5kIG9mIGl0ZW1zKCkudmFsdWVzKCk7IHRyYWNrIHJvdW5kLmxheW91dElkKSB7XG4gICAgPHVsIFtzdHlsZS4tLV9jXT1cInJvdW5kLmNvbHVtblN0YXJ0ICsgJyAvICcgKyByb3VuZC5jb2x1bW5FbmRcIiBjbGFzcz1cImV0LWJyYWNrZXQtbmV3LXJvdW5kXCI+XG4gICAgICBAZm9yIChpdGVtIG9mIHJvdW5kLml0ZW1zLnZhbHVlcygpOyB0cmFjayBpdGVtLmxheW91dElkKSB7XG4gICAgICAgIDxsaSBbc3R5bGUuLS1fcl09XCJpdGVtLnJvd1N0YXJ0ICsgJyAvICcgKyBpdGVtLnJvd0VuZFwiIFtjbGFzc109XCJpdGVtLmNsYXNzTmFtZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwiaXRlbS5jb21wb25lbnQ7IGlucHV0czogaXRlbS5kYXRhXCIgLz5cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICA8L3VsPlxuICB9XG48L3NlY3Rpb24+XG4iXX0=
|