@tanstack/angular-table 8.20.1 → 8.21.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/build/lib/esm2022/flex-render/context.mjs +6 -0
- package/build/lib/esm2022/flex-render/flags.mjs +42 -0
- package/build/lib/esm2022/flex-render/flex-render-component-ref.mjs +173 -0
- package/build/lib/esm2022/flex-render/flex-render-component.mjs +44 -0
- package/build/lib/esm2022/flex-render/view.mjs +102 -0
- package/build/lib/esm2022/flex-render.mjs +133 -73
- package/build/lib/esm2022/index.mjs +3 -2
- package/build/lib/esm2022/proxy.mjs +7 -3
- package/build/lib/fesm2022/tanstack-angular-table.mjs +494 -76
- package/build/lib/fesm2022/tanstack-angular-table.mjs.map +1 -1
- package/build/lib/flex-render/context.d.ts +3 -0
- package/build/lib/flex-render/flags.d.ts +40 -0
- package/build/lib/flex-render/flex-render-component-ref.d.ts +39 -0
- package/build/lib/flex-render/flex-render-component.d.ts +60 -0
- package/build/lib/flex-render/view.d.ts +49 -0
- package/build/lib/flex-render.d.ts +13 -17
- package/build/lib/index.d.ts +2 -1
- package/package.json +7 -4
- package/src/flex-render/context.ts +9 -0
- package/src/flex-render/flags.ts +40 -0
- package/src/flex-render/flex-render-component-ref.ts +236 -0
- package/src/flex-render/flex-render-component.ts +119 -0
- package/src/flex-render/view.ts +153 -0
- package/src/flex-render.ts +196 -94
- package/src/index.ts +7 -1
- package/src/proxy.ts +5 -2
|
@@ -1,119 +1,193 @@
|
|
|
1
|
-
import { ChangeDetectorRef,
|
|
1
|
+
import { ChangeDetectorRef, Directive, effect, Inject, inject, Injector, Input, runInInjectionContext, TemplateRef, ViewContainerRef, } from '@angular/core';
|
|
2
|
+
import { FlexRenderComponentProps } from './flex-render/context';
|
|
3
|
+
import { FlexRenderFlags } from './flex-render/flags';
|
|
4
|
+
import { flexRenderComponent, } from './flex-render/flex-render-component';
|
|
5
|
+
import { FlexRenderComponentFactory } from './flex-render/flex-render-component-ref';
|
|
6
|
+
import { FlexRenderComponentView, FlexRenderTemplateView, mapToFlexRenderTypedContent, } from './flex-render/view';
|
|
7
|
+
import { memo } from '@tanstack/table-core';
|
|
2
8
|
import * as i0 from "@angular/core";
|
|
9
|
+
export { injectFlexRenderContext, } from './flex-render/context';
|
|
3
10
|
export class FlexRenderDirective {
|
|
4
11
|
viewContainerRef;
|
|
5
12
|
templateRef;
|
|
13
|
+
#flexRenderComponentFactory = inject(FlexRenderComponentFactory);
|
|
14
|
+
#changeDetectorRef = inject(ChangeDetectorRef);
|
|
6
15
|
content = undefined;
|
|
7
16
|
props = {};
|
|
8
17
|
injector = inject(Injector);
|
|
18
|
+
renderFlags = FlexRenderFlags.ViewFirstRender;
|
|
19
|
+
renderView = null;
|
|
20
|
+
#latestContent = () => {
|
|
21
|
+
const { content, props } = this;
|
|
22
|
+
return typeof content !== 'function'
|
|
23
|
+
? content
|
|
24
|
+
: runInInjectionContext(this.injector, () => content(props));
|
|
25
|
+
};
|
|
26
|
+
#getContentValue = memo(() => [this.#latestContent(), this.props, this.content], latestContent => {
|
|
27
|
+
return mapToFlexRenderTypedContent(latestContent);
|
|
28
|
+
}, { key: 'flexRenderContentValue', debug: () => false });
|
|
9
29
|
constructor(viewContainerRef, templateRef) {
|
|
10
30
|
this.viewContainerRef = viewContainerRef;
|
|
11
31
|
this.templateRef = templateRef;
|
|
12
32
|
}
|
|
13
|
-
ref = null;
|
|
14
33
|
ngOnChanges(changes) {
|
|
15
|
-
if (
|
|
16
|
-
this.
|
|
34
|
+
if (changes['props']) {
|
|
35
|
+
this.renderFlags |= FlexRenderFlags.PropsReferenceChanged;
|
|
36
|
+
}
|
|
37
|
+
if (changes['content']) {
|
|
38
|
+
this.renderFlags |=
|
|
39
|
+
FlexRenderFlags.ContentChanged | FlexRenderFlags.ViewFirstRender;
|
|
40
|
+
this.update();
|
|
17
41
|
}
|
|
18
|
-
|
|
42
|
+
}
|
|
43
|
+
ngDoCheck() {
|
|
44
|
+
if (this.renderFlags & FlexRenderFlags.ViewFirstRender) {
|
|
45
|
+
// On the initial render, the view is created during the `ngOnChanges` hook.
|
|
46
|
+
// Since `ngDoCheck` is called immediately afterward, there's no need to check for changes in this phase.
|
|
47
|
+
this.renderFlags &= ~FlexRenderFlags.ViewFirstRender;
|
|
19
48
|
return;
|
|
20
49
|
}
|
|
21
|
-
this.
|
|
50
|
+
this.renderFlags |= FlexRenderFlags.DirtyCheck;
|
|
51
|
+
const latestContent = this.#getContentValue();
|
|
52
|
+
if (latestContent.kind === 'null' || !this.renderView) {
|
|
53
|
+
this.renderFlags |= FlexRenderFlags.ContentChanged;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
this.renderView.content = latestContent;
|
|
57
|
+
const { kind: previousKind } = this.renderView.previousContent;
|
|
58
|
+
if (latestContent.kind !== previousKind) {
|
|
59
|
+
this.renderFlags |= FlexRenderFlags.ContentChanged;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
this.update();
|
|
22
63
|
}
|
|
23
|
-
|
|
24
|
-
this.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
this.ref = null;
|
|
64
|
+
update() {
|
|
65
|
+
if (this.renderFlags &
|
|
66
|
+
(FlexRenderFlags.ContentChanged | FlexRenderFlags.ViewFirstRender)) {
|
|
67
|
+
this.render();
|
|
28
68
|
return;
|
|
29
69
|
}
|
|
30
|
-
if (
|
|
31
|
-
|
|
70
|
+
if (this.renderFlags & FlexRenderFlags.PropsReferenceChanged) {
|
|
71
|
+
if (this.renderView)
|
|
72
|
+
this.renderView.updateProps(this.props);
|
|
73
|
+
this.renderFlags &= ~FlexRenderFlags.PropsReferenceChanged;
|
|
74
|
+
}
|
|
75
|
+
if (this.renderFlags &
|
|
76
|
+
(FlexRenderFlags.DirtyCheck | FlexRenderFlags.DirtySignal)) {
|
|
77
|
+
if (this.renderView)
|
|
78
|
+
this.renderView.dirtyCheck();
|
|
79
|
+
this.renderFlags &= ~(FlexRenderFlags.DirtyCheck | FlexRenderFlags.DirtySignal);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
#currentEffectRef = null;
|
|
83
|
+
render() {
|
|
84
|
+
if (this.#shouldRecreateEntireView() && this.#currentEffectRef) {
|
|
85
|
+
this.#currentEffectRef.destroy();
|
|
86
|
+
this.#currentEffectRef = null;
|
|
87
|
+
this.renderFlags &= ~FlexRenderFlags.RenderEffectChecked;
|
|
88
|
+
}
|
|
89
|
+
this.viewContainerRef.clear();
|
|
90
|
+
this.renderFlags =
|
|
91
|
+
FlexRenderFlags.Pristine |
|
|
92
|
+
(this.renderFlags & FlexRenderFlags.ViewFirstRender) |
|
|
93
|
+
(this.renderFlags & FlexRenderFlags.RenderEffectChecked);
|
|
94
|
+
const resolvedContent = this.#getContentValue();
|
|
95
|
+
if (resolvedContent.kind === 'null') {
|
|
96
|
+
this.renderView = null;
|
|
32
97
|
}
|
|
33
98
|
else {
|
|
34
|
-
|
|
99
|
+
this.renderView = this.#renderViewByContent(resolvedContent);
|
|
35
100
|
}
|
|
101
|
+
// If the content is a function `content(props)`, we initialize an effect
|
|
102
|
+
// in order to react to changes if the given definition use signals.
|
|
103
|
+
if (!this.#currentEffectRef && typeof this.content === 'function') {
|
|
104
|
+
this.#currentEffectRef = effect(() => {
|
|
105
|
+
this.#latestContent();
|
|
106
|
+
if (!(this.renderFlags & FlexRenderFlags.RenderEffectChecked)) {
|
|
107
|
+
this.renderFlags |= FlexRenderFlags.RenderEffectChecked;
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
this.renderFlags |= FlexRenderFlags.DirtySignal;
|
|
111
|
+
// This will mark the view as changed,
|
|
112
|
+
// so we'll try to check for updates into ngDoCheck
|
|
113
|
+
this.#changeDetectorRef.markForCheck();
|
|
114
|
+
}, { injector: this.viewContainerRef.injector });
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
#shouldRecreateEntireView() {
|
|
118
|
+
return (this.renderFlags &
|
|
119
|
+
FlexRenderFlags.ContentChanged &
|
|
120
|
+
FlexRenderFlags.ViewFirstRender);
|
|
36
121
|
}
|
|
37
|
-
|
|
38
|
-
if (
|
|
39
|
-
return this
|
|
122
|
+
#renderViewByContent(content) {
|
|
123
|
+
if (content.kind === 'primitive') {
|
|
124
|
+
return this.#renderStringContent(content);
|
|
40
125
|
}
|
|
41
|
-
if (content
|
|
42
|
-
return this
|
|
126
|
+
else if (content.kind === 'templateRef') {
|
|
127
|
+
return this.#renderTemplateRefContent(content);
|
|
43
128
|
}
|
|
44
|
-
else if (content
|
|
45
|
-
return this
|
|
129
|
+
else if (content.kind === 'flexRenderComponent') {
|
|
130
|
+
return this.#renderComponent(content);
|
|
46
131
|
}
|
|
47
|
-
else if (content
|
|
48
|
-
return this
|
|
132
|
+
else if (content.kind === 'component') {
|
|
133
|
+
return this.#renderCustomComponent(content);
|
|
49
134
|
}
|
|
50
135
|
else {
|
|
51
136
|
return null;
|
|
52
137
|
}
|
|
53
138
|
}
|
|
54
|
-
renderStringContent() {
|
|
139
|
+
#renderStringContent(template) {
|
|
55
140
|
const context = () => {
|
|
56
141
|
return typeof this.content === 'string' ||
|
|
57
142
|
typeof this.content === 'number'
|
|
58
143
|
? this.content
|
|
59
144
|
: this.content?.(this.props);
|
|
60
145
|
};
|
|
61
|
-
|
|
146
|
+
const ref = this.viewContainerRef.createEmbeddedView(this.templateRef, {
|
|
62
147
|
get $implicit() {
|
|
63
148
|
return context();
|
|
64
149
|
},
|
|
65
150
|
});
|
|
151
|
+
return new FlexRenderTemplateView(template, ref);
|
|
66
152
|
}
|
|
67
|
-
|
|
68
|
-
const
|
|
153
|
+
#renderTemplateRefContent(template) {
|
|
154
|
+
const latestContext = () => this.props;
|
|
155
|
+
const view = this.viewContainerRef.createEmbeddedView(template.content, {
|
|
156
|
+
get $implicit() {
|
|
157
|
+
return latestContext();
|
|
158
|
+
},
|
|
159
|
+
});
|
|
160
|
+
return new FlexRenderTemplateView(template, view);
|
|
161
|
+
}
|
|
162
|
+
#renderComponent(flexRenderComponent) {
|
|
163
|
+
const { inputs, outputs, injector } = flexRenderComponent.content;
|
|
69
164
|
const getContext = () => this.props;
|
|
70
165
|
const proxy = new Proxy(this.props, {
|
|
71
|
-
get: (_, key) => getContext()
|
|
166
|
+
get: (_, key) => getContext()[key],
|
|
72
167
|
});
|
|
73
168
|
const componentInjector = Injector.create({
|
|
74
169
|
parent: injector ?? this.injector,
|
|
75
170
|
providers: [{ provide: FlexRenderComponentProps, useValue: proxy }],
|
|
76
171
|
});
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
});
|
|
80
|
-
for (const prop in inputs) {
|
|
81
|
-
if (componentRef.instance?.hasOwnProperty(prop)) {
|
|
82
|
-
componentRef.setInput(prop, inputs[prop]);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return componentRef;
|
|
172
|
+
const view = this.#flexRenderComponentFactory.createComponent(flexRenderComponent.content, componentInjector);
|
|
173
|
+
return new FlexRenderComponentView(flexRenderComponent, view);
|
|
86
174
|
}
|
|
87
|
-
renderCustomComponent(component) {
|
|
88
|
-
const
|
|
175
|
+
#renderCustomComponent(component) {
|
|
176
|
+
const view = this.#flexRenderComponentFactory.createComponent(flexRenderComponent(component.content, {
|
|
177
|
+
inputs: this.props,
|
|
89
178
|
injector: this.injector,
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
// Only signal based input can be added here
|
|
93
|
-
if (componentRef.instance?.hasOwnProperty(prop) &&
|
|
94
|
-
// @ts-ignore
|
|
95
|
-
isSignal(componentRef.instance[prop])) {
|
|
96
|
-
componentRef.setInput(prop, this.props[prop]);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
return componentRef;
|
|
100
|
-
}
|
|
101
|
-
getTemplateRefContext() {
|
|
102
|
-
const getContext = () => this.props;
|
|
103
|
-
return {
|
|
104
|
-
get $implicit() {
|
|
105
|
-
return getContext();
|
|
106
|
-
},
|
|
107
|
-
};
|
|
179
|
+
}), this.injector);
|
|
180
|
+
return new FlexRenderComponentView(component, view);
|
|
108
181
|
}
|
|
109
182
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FlexRenderDirective, deps: [{ token: ViewContainerRef }, { token: TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
110
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: FlexRenderDirective, isStandalone: true, selector: "[flexRender]", inputs: { content: ["flexRender", "content"], props: ["flexRenderProps", "props"], injector: ["flexRenderInjector", "injector"] }, usesOnChanges: true, ngImport: i0 });
|
|
183
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: FlexRenderDirective, isStandalone: true, selector: "[flexRender]", inputs: { content: ["flexRender", "content"], props: ["flexRenderProps", "props"], injector: ["flexRenderInjector", "injector"] }, providers: [FlexRenderComponentFactory], usesOnChanges: true, ngImport: i0 });
|
|
111
184
|
}
|
|
112
185
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FlexRenderDirective, decorators: [{
|
|
113
186
|
type: Directive,
|
|
114
187
|
args: [{
|
|
115
188
|
selector: '[flexRender]',
|
|
116
189
|
standalone: true,
|
|
190
|
+
providers: [FlexRenderComponentFactory],
|
|
117
191
|
}]
|
|
118
192
|
}], ctorParameters: () => [{ type: i0.ViewContainerRef, decorators: [{
|
|
119
193
|
type: Inject,
|
|
@@ -131,18 +205,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
131
205
|
type: Input,
|
|
132
206
|
args: [{ required: false, alias: 'flexRenderInjector' }]
|
|
133
207
|
}] } });
|
|
134
|
-
export class FlexRenderComponent {
|
|
135
|
-
component;
|
|
136
|
-
inputs;
|
|
137
|
-
injector;
|
|
138
|
-
constructor(component, inputs = {}, injector) {
|
|
139
|
-
this.component = component;
|
|
140
|
-
this.inputs = inputs;
|
|
141
|
-
this.injector = injector;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
const FlexRenderComponentProps = new InjectionToken('[@tanstack/angular-table] Flex render component context props');
|
|
145
|
-
export function injectFlexRenderContext() {
|
|
146
|
-
return inject(FlexRenderComponentProps);
|
|
147
|
-
}
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxleC1yZW5kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmxleC1yZW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osU0FBUyxFQUVULE1BQU0sRUFDTixNQUFNLEVBQ04sY0FBYyxFQUNkLFFBQVEsRUFDUixLQUFLLEVBQ0wsUUFBUSxFQUdSLFdBQVcsRUFDWCxJQUFJLEVBQ0osZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFBOztBQWV0QixNQUFNLE9BQU8sbUJBQW1CO0lBbUJYO0lBRUE7SUFqQm5CLE9BQU8sR0FLUyxTQUFTLENBQUE7SUFHekIsS0FBSyxHQUFXLEVBQVksQ0FBQTtJQUc1QixRQUFRLEdBQWEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRXJDLFlBRW1CLGdCQUFrQyxFQUVsQyxXQUE2QjtRQUY3QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBRWxDLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtJQUM3QyxDQUFDO0lBRUosR0FBRyxHQUE2RCxJQUFJLENBQUE7SUFFcEUsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksSUFBSSxDQUFDLEdBQUcsWUFBWSxZQUFZLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUN6RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU07UUFDUixDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ2YsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDN0IsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFD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STtpQkFDakI7OzBCQW1CSSxNQUFNOzJCQUFDLGdCQUFnQjs7MEJBRXZCLE1BQU07MkJBQUMsV0FBVzt5Q0FoQnJCLE9BQU87c0JBRE4sS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtnQkFTOUMsS0FBSztzQkFESixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUU7Z0JBSW5ELFFBQVE7c0JBRFAsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFOztBQTRIekQsTUFBTSxPQUFPLG1CQUFtQjtJQUVuQjtJQUNBO0lBQ0E7SUFIWCxZQUNXLFNBQXdCLEVBQ3hCLFNBQVksRUFBTyxFQUNuQixRQUFtQjtRQUZuQixjQUFTLEdBQVQsU0FBUyxDQUFlO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQWE7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUMzQixDQUFDO0NBQ0w7QUFFRCxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUNqRCwrREFBK0QsQ0FDaEUsQ0FBQTtBQUVELE1BQU0sVUFBVSx1QkFBdUI7SUFDckMsT0FBTyxNQUFNLENBQUksd0JBQXdCLENBQUMsQ0FBQTtBQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudFJlZixcbiAgRGlyZWN0aXZlLFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIEluamVjdCxcbiAgaW5qZWN0LFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBpc1NpZ25hbCxcbiAgdHlwZSBPbkNoYW5nZXMsXG4gIHR5cGUgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFR5cGUsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmV4cG9ydCB0eXBlIEZsZXhSZW5kZXJDb250ZW50PFRQcm9wcyBleHRlbmRzIE5vbk51bGxhYmxlPHVua25vd24+PiA9XG4gIHwgc3RyaW5nXG4gIHwgbnVtYmVyXG4gIHwgVHlwZTxUUHJvcHM+XG4gIHwgRmxleFJlbmRlckNvbXBvbmVudDxUUHJvcHM+XG4gIHwgVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFRQcm9wcyB9PlxuICB8IG51bGxcbiAgfCB1bmRlZmluZWRcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2ZsZXhSZW5kZXJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRmxleFJlbmRlckRpcmVjdGl2ZTxUUHJvcHMgZXh0ZW5kcyBOb25OdWxsYWJsZTx1bmtub3duPj5cbiAgaW1wbGVtZW50cyBPbkNoYW5nZXNcbntcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUsIGFsaWFzOiAnZmxleFJlbmRlcicgfSlcbiAgY29udGVudDpcbiAgICB8IG51bWJlclxuICAgIHwgc3RyaW5nXG4gICAgfCAoKHByb3BzOiBUUHJvcHMpID0+IEZsZXhSZW5kZXJDb250ZW50PFRQcm9wcz4pXG4gICAgfCBudWxsXG4gICAgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSwgYWxpYXM6ICdmbGV4UmVuZGVyUHJvcHMnIH0pXG4gIHByb3BzOiBUUHJvcHMgPSB7fSBhcyBUUHJvcHNcblxuICBASW5wdXQoeyByZXF1aXJlZDogZmFsc2UsIGFsaWFzOiAnZmxleFJlbmRlckluamVjdG9yJyB9KVxuICBpbmplY3RvcjogSW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChWaWV3Q29udGFpbmVyUmVmKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBASW5qZWN0KFRlbXBsYXRlUmVmKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT5cbiAgKSB7fVxuXG4gIHJlZj86IENvbXBvbmVudFJlZjx1bmtub3duPiB8IEVtYmVkZGVkVmlld1JlZjx1bmtub3duPiB8IG51bGwgPSBudWxsXG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICh0aGlzLnJlZiBpbnN0YW5jZW9mIENvbXBvbmVudFJlZikge1xuICAgICAgdGhpcy5yZWYuaW5qZWN0b3IuZ2V0KENoYW5nZURldGVjdG9yUmVmKS5tYXJrRm9yQ2hlY2soKVxuICAgIH1cbiAgICBpZiAoIWNoYW5nZXNbJ2NvbnRlbnQnXSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRoaXMucmVuZGVyKClcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKVxuICAgIGNvbnN0IHsgY29udGVudCwgcHJvcHMgfSA9IHRoaXNcbiAgICBpZiAoY29udGVudCA9PT0gbnVsbCB8fCBjb250ZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucmVmID0gbnVsbFxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyQ29udGVudChjb250ZW50KHByb3BzKSlcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyQ29udGVudChjb250ZW50KVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQ29udGVudChjb250ZW50OiBGbGV4UmVuZGVyQ29udGVudDxUUHJvcHM+KSB7XG4gICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgY29udGVudCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlclN0cmluZ0NvbnRlbnQoKVxuICAgIH1cbiAgICBpZiAoY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICByZXR1cm4gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyhcbiAgICAgICAgY29udGVudCxcbiAgICAgICAgdGhpcy5nZXRUZW1wbGF0ZVJlZkNvbnRleHQoKVxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAoY29udGVudCBpbnN0YW5jZW9mIEZsZXhSZW5kZXJDb21wb25lbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckNvbXBvbmVudChjb250ZW50KVxuICAgIH0gZWxzZSBpZiAoY29udGVudCBpbnN0YW5jZW9mIFR5cGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckN1c3RvbUNvbXBvbmVudChjb250ZW50KVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyU3RyaW5nQ29udGVudCgpOiBFbWJlZGRlZFZpZXdSZWY8dW5rbm93bj4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSAoKSA9PiB7XG4gICAgICByZXR1cm4gdHlwZW9mIHRoaXMuY29udGVudCA9PT0gJ3N0cmluZycgfHxcbiAgICAgICAgdHlwZW9mIHRoaXMuY29udGVudCA9PT0gJ251bWJlcidcbiAgICAgICAgPyB0aGlzLmNvbnRlbnRcbiAgICAgICAgOiB0aGlzLmNvbnRlbnQ/Lih0aGlzLnByb3BzKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmLCB7XG4gICAgICBnZXQgJGltcGxpY2l0KCkge1xuICAgICAgICByZXR1cm4gY29udGV4dCgpXG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIHJlbmRlckNvbXBvbmVudChcbiAgICBmbGV4UmVuZGVyQ29tcG9uZW50OiBGbGV4UmVuZGVyQ29tcG9uZW50PFRQcm9wcz5cbiAgKTogQ29tcG9uZW50UmVmPHVua25vd24+IHtcbiAgICBjb25zdCB7IGNvbXBvbmVudCwgaW5wdXRzLCBpbmplY3RvciB9ID0gZmxleFJlbmRlckNvbXBvbmVudFxuXG4gICAgY29uc3QgZ2V0Q29udGV4dCA9ICgpID0+IHRoaXMucHJvcHNcblxuICAgIGNvbnN0IHByb3h5ID0gbmV3IFByb3h5KHRoaXMucHJvcHMsIHtcbiAgICAgIGdldDogKF8sIGtleSkgPT4gZ2V0Q29udGV4dCgpPy5ba2V5IGFzIGtleW9mIHR5cGVvZiBfXSxcbiAgICB9KVxuXG4gICAgY29uc3QgY29tcG9uZW50SW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcGFyZW50OiBpbmplY3RvciA/PyB0aGlzLmluamVjdG9yLFxuICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBGbGV4UmVuZGVyQ29tcG9uZW50UHJvcHMsIHVzZVZhbHVlOiBwcm94eSB9XSxcbiAgICB9KVxuXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQsIHtcbiAgICAgIGluamVjdG9yOiBjb21wb25lbnRJbmplY3RvcixcbiAgICB9KVxuICAgIGZvciAoY29uc3QgcHJvcCBpbiBpbnB1dHMpIHtcbiAgICAgIGlmIChjb21wb25lbnRSZWYuaW5zdGFuY2U/Lmhhc093blByb3BlcnR5KHByb3ApKSB7XG4gICAgICAgIGNvbXBvbmVudFJlZi5zZXRJbnB1dChwcm9wLCBpbnB1dHNbcHJvcF0pXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb21wb25lbnRSZWZcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQ3VzdG9tQ29tcG9uZW50KFxuICAgIGNvbXBvbmVudDogVHlwZTx1bmtub3duPlxuICApOiBDb21wb25lbnRSZWY8dW5rbm93bj4ge1xuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50LCB7XG4gICAgICBpbmplY3RvcjogdGhpcy5pbmplY3RvcixcbiAgICB9KVxuICAgIGZvciAoY29uc3QgcHJvcCBpbiB0aGlzLnByb3BzKSB7XG4gICAgICAvLyBPbmx5IHNpZ25hbCBiYXNlZCBpbnB1dCBjYW4gYmUgYWRkZWQgaGVyZVxuICAgICAgaWYgKFxuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2U/Lmhhc093blByb3BlcnR5KHByb3ApICYmXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaXNTaWduYWwoY29tcG9uZW50UmVmLmluc3RhbmNlW3Byb3BdKVxuICAgICAgKSB7XG4gICAgICAgIGNvbXBvbmVudFJlZi5zZXRJbnB1dChwcm9wLCB0aGlzLnByb3BzW3Byb3BdKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29tcG9uZW50UmVmXG4gIH1cblxuICBwcml2YXRlIGdldFRlbXBsYXRlUmVmQ29udGV4dCgpIHtcbiAgICBjb25zdCBnZXRDb250ZXh0ID0gKCkgPT4gdGhpcy5wcm9wc1xuICAgIHJldHVybiB7XG4gICAgICBnZXQgJGltcGxpY2l0KCkge1xuICAgICAgICByZXR1cm4gZ2V0Q29udGV4dCgpXG4gICAgICB9LFxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRmxleFJlbmRlckNvbXBvbmVudDxUIGV4dGVuZHMgTm9uTnVsbGFibGU8dW5rbm93bj4+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcmVhZG9ubHkgY29tcG9uZW50OiBUeXBlPHVua25vd24+LFxuICAgIHJlYWRvbmx5IGlucHV0czogVCA9IHt9IGFzIFQsXG4gICAgcmVhZG9ubHkgaW5qZWN0b3I/OiBJbmplY3RvclxuICApIHt9XG59XG5cbmNvbnN0IEZsZXhSZW5kZXJDb21wb25lbnRQcm9wcyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOb25OdWxsYWJsZTx1bmtub3duPj4oXG4gICdbQHRhbnN0YWNrL2FuZ3VsYXItdGFibGVdIEZsZXggcmVuZGVyIGNvbXBvbmVudCBjb250ZXh0IHByb3BzJ1xuKVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0RmxleFJlbmRlckNvbnRleHQ8VCBleHRlbmRzIE5vbk51bGxhYmxlPHVua25vd24+PigpOiBUIHtcbiAgcmV0dXJuIGluamVjdDxUPihGbGV4UmVuZGVyQ29tcG9uZW50UHJvcHMpXG59XG4iXX0=
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxleC1yZW5kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmxleC1yZW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsTUFBTSxFQUVOLE1BQU0sRUFDTixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFFTCxxQkFBcUIsRUFFckIsV0FBVyxFQUVYLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUNMLG1CQUFtQixHQUVwQixNQUFNLHFDQUFxQyxDQUFBO0FBQzVDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQ3BGLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsc0JBQXNCLEVBR3RCLDJCQUEyQixHQUM1QixNQUFNLG9CQUFvQixDQUFBO0FBQzNCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTs7QUFFM0MsT0FBTyxFQUNMLHVCQUF1QixHQUV4QixNQUFNLHVCQUF1QixDQUFBO0FBaUI5QixNQUFNLE9BQU8sbUJBQW1CO0lBd0NYO0lBRUE7SUF2Q1YsMkJBQTJCLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUE7SUFDaEUsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFHdkQsT0FBTyxHQUtTLFNBQVMsQ0FBQTtJQUd6QixLQUFLLEdBQVcsRUFBWSxDQUFBO0lBRzVCLFFBQVEsR0FBYSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFckMsV0FBVyxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUE7SUFDN0MsVUFBVSxHQUErQixJQUFJLENBQUE7SUFFcEMsY0FBYyxHQUFHLEdBQUcs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LENBQUMsT0FBTyxFQUFFO1lBQ3JDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSztZQUNsQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQyxFQUNGLElBQUksQ0FBQyxRQUFRLENBQ2QsQ0FBQTtRQUNELE9BQU8sSUFBSSx1QkFBdUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDckQsQ0FBQzt3R0F2T1UsbUJBQW1CLGtCQXVDcEIsZ0JBQWdCLGFBRWhCLFdBQVc7NEZBekNWLG1CQUFtQiw4TEFGbkIsQ0FBQywwQkFBMEIsQ0FBQzs7NEZBRTVCLG1CQUFtQjtrQkFML0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRSxDQUFDLDBCQUEwQixDQUFDO2lCQUN4Qzs7MEJBd0NJLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFFdkIsTUFBTTsyQkFBQyxXQUFXO3lDQWxDckIsT0FBTztzQkFETixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO2dCQVM5QyxLQUFLO3NCQURKLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRTtnQkFJbkQsUUFBUTtzQkFEUCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBEb0NoZWNrLFxuICBlZmZlY3QsXG4gIHR5cGUgRWZmZWN0UmVmLFxuICBJbmplY3QsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIHJ1bkluSW5qZWN0aW9uQ29udGV4dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFR5cGUsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGbGV4UmVuZGVyQ29tcG9uZW50UHJvcHMgfSBmcm9tICcuL2ZsZXgtcmVuZGVyL2NvbnRleHQnXG5pbXBvcnQgeyBGbGV4UmVuZGVyRmxhZ3MgfSBmcm9tICcuL2ZsZXgtcmVuZGVyL2ZsYWdzJ1xuaW1wb3J0IHtcbiAgZmxleFJlbmRlckNvbXBvbmVudCxcbiAgRmxleFJlbmRlckNvbXBvbmVudCxcbn0gZnJvbSAnLi9mbGV4LXJlbmRlci9mbGV4LXJlbmRlci1jb21wb25lbnQnXG5pbXBvcnQgeyBGbGV4UmVuZGVyQ29tcG9uZW50RmFjdG9yeSB9IGZyb20gJy4vZmxleC1yZW5kZXIvZmxleC1yZW5kZXItY29tcG9uZW50LXJlZidcbmltcG9ydCB7XG4gIEZsZXhSZW5kZXJDb21wb25lbnRWaWV3LFxuICBGbGV4UmVuZGVyVGVtcGxhdGVWaWV3LFxuICB0eXBlIEZsZXhSZW5kZXJUeXBlZENvbnRlbnQsXG4gIEZsZXhSZW5kZXJWaWV3LFxuICBtYXBUb0ZsZXhSZW5kZXJUeXBlZENvbnRlbnQsXG59IGZyb20gJy4vZmxleC1yZW5kZXIvdmlldydcbmltcG9ydCB7IG1lbW8gfSBmcm9tICdAdGFuc3RhY2svdGFibGUtY29yZSdcblxuZXhwb3J0IHtcbiAgaW5qZWN0RmxleFJlbmRlckNvbnRleHQsXG4gIHR5cGUgRmxleFJlbmRlckNvbXBvbmVudFByb3BzLFxufSBmcm9tICcuL2ZsZXgtcmVuZGVyL2NvbnRleHQnXG5cbmV4cG9ydCB0eXBlIEZsZXhSZW5kZXJDb250ZW50PFRQcm9wcyBleHRlbmRzIE5vbk51bGxhYmxlPHVua25vd24+PiA9XG4gIHwgc3RyaW5nXG4gIHwgbnVtYmVyXG4gIHwgVHlwZTxUUHJvcHM+XG4gIHwgRmxleFJlbmRlckNvbXBvbmVudDxUUHJvcHM+XG4gIHwgVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFRQcm9wcyB9PlxuICB8IG51bGxcbiAgfCBSZWNvcmQ8YW55LCBhbnk+XG4gIHwgdW5kZWZpbmVkXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tmbGV4UmVuZGVyXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW0ZsZXhSZW5kZXJDb21wb25lbnRGYWN0b3J5XSxcbn0pXG5leHBvcnQgY2xhc3MgRmxleFJlbmRlckRpcmVjdGl2ZTxUUHJvcHMgZXh0ZW5kcyBOb25OdWxsYWJsZTx1bmtub3duPj5cbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIERvQ2hlY2tcbntcbiAgcmVhZG9ubHkgI2ZsZXhSZW5kZXJDb21wb25lbnRGYWN0b3J5ID0gaW5qZWN0KEZsZXhSZW5kZXJDb21wb25lbnRGYWN0b3J5KVxuICByZWFkb25seSAjY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpXG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUsIGFsaWFzOiAnZmxleFJlbmRlcicgfSlcbiAgY29udGVudDpcbiAgICB8IG51bWJlclxuICAgIHwgc3RyaW5nXG4gICAgfCAoKHByb3BzOiBUUHJvcHMpID0+IEZsZXhSZW5kZXJDb250ZW50PFRQcm9wcz4pXG4gICAgfCBudWxsXG4gICAgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSwgYWxpYXM6ICdmbGV4UmVuZGVyUHJvcHMnIH0pXG4gIHByb3BzOiBUUHJvcHMgPSB7fSBhcyBUUHJvcHNcblxuICBASW5wdXQoeyByZXF1aXJlZDogZmFsc2UsIGFsaWFzOiAnZmxleFJlbmRlckluamVjdG9yJyB9KVxuICBpbmplY3RvcjogSW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpXG5cbiAgcmVuZGVyRmxhZ3MgPSBGbGV4UmVuZGVyRmxhZ3MuVmlld0ZpcnN0UmVuZGVyXG4gIHJlbmRlclZpZXc6IEZsZXhSZW5kZXJWaWV3PGFueT4gfCBudWxsID0gbnVsbFxuXG4gIHJlYWRvbmx5ICNsYXRlc3RDb250ZW50ID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGVudCwgcHJvcHMgfSA9IHRoaXNcbiAgICByZXR1cm4gdHlwZW9mIGNvbnRlbnQgIT09ICdmdW5jdGlvbidcbiAgICAgID8gY29udGVudFxuICAgICAgOiBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4gY29udGVudChwcm9wcykpXG4gIH1cblxuICAjZ2V0Q29udGVudFZhbHVlID0gbWVtbyhcbiAgICAoKSA9PiBbdGhpcy4jbGF0ZXN0Q29udGVudCgpLCB0aGlzLnByb3BzLCB0aGlzLmNvbnRlbnRdLFxuICAgIGxhdGVzdENvbnRlbnQgPT4ge1xuICAgICAgcmV0dXJuIG1hcFRvRmxleFJlbmRlclR5cGVkQ29udGVudChsYXRlc3RDb250ZW50KVxuICAgIH0sXG4gICAgeyBrZXk6ICdmbGV4UmVuZGVyQ29udGVudFZhbHVlJywgZGVidWc6ICgpID0+IGZhbHNlIH1cbiAgKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoVmlld0NvbnRhaW5lclJlZilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgQEluamVjdChUZW1wbGF0ZVJlZilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+XG4gICkge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRoaXMucmVuZGVyRmxhZ3MgfD0gRmxleFJlbmRlckZsYWdzLlByb3BzUmVmZXJlbmNlQ2hhbmdlZFxuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snY29udGVudCddKSB7XG4gICAgICB0aGlzLnJlbmRlckZsYWdzIHw9XG4gICAgICAgIEZsZXhSZW5kZXJGbGFncy5Db250ZW50Q2hhbmdlZCB8IEZsZXhSZW5kZXJGbGFncy5WaWV3Rmlyc3RSZW5kZXJcbiAgICAgIHRoaXMudXBkYXRlKClcbiAgICB9XG4gIH1cblxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVuZGVyRmxhZ3MgJiBGbGV4UmVuZGVyRmxhZ3MuVmlld0ZpcnN0UmVuZGVyKSB7XG4gICAgICAvLyBPbiB0aGUgaW5pdGlhbCByZW5kZXIsIHRoZSB2aWV3IGlzIGNyZWF0ZWQgZHVyaW5nIHRoZSBgbmdPbkNoYW5nZXNgIGhvb2suXG4gICAgICAvLyBTaW5jZSBgbmdEb0NoZWNrYCBpcyBjYWxsZWQgaW1tZWRpYXRlbHkgYWZ0ZXJ3YXJkLCB0aGVyZSdzIG5vIG5lZWQgdG8gY2hlY2sgZm9yIGNoYW5nZXMgaW4gdGhpcyBwaGFzZS5cbiAgICAgIHRoaXMucmVuZGVyRmxhZ3MgJj0gfkZsZXhSZW5kZXJGbGFncy5WaWV3Rmlyc3RSZW5kZXJcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMucmVuZGVyRmxhZ3MgfD0gRmxleFJlbmRlckZsYWdzLkRpcnR5Q2hlY2tcblxuICAgIGNvbnN0IGxhdGVzdENvbnRlbnQgPSB0aGlzLiNnZXRDb250ZW50VmFsdWUoKVxuICAgIGlmIChsYXRlc3RDb250ZW50LmtpbmQgPT09ICdudWxsJyB8fCAhdGhpcy5yZW5kZXJWaWV3KSB7XG4gICAgICB0aGlzLnJlbmRlckZsYWdzIHw9IEZsZXhSZW5kZXJGbGFncy5Db250ZW50Q2hhbmdlZFxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlclZpZXcuY29udGVudCA9IGxhdGVzdENvbnRlbnRcbiAgICAgIGNvbnN0IHsga2luZDogcHJldmlvdXNLaW5kIH0gPSB0aGlzLnJlbmRlclZpZXcucHJldmlvdXNDb250ZW50XG4gICAgICBpZiAobGF0ZXN0Q29udGVudC5raW5kICE9PSBwcmV2aW91c0tpbmQpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJGbGFncyB8PSBGbGV4UmVuZGVyRmxhZ3MuQ29udGVudENoYW5nZWRcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy51cGRhdGUoKVxuICB9XG5cbiAgdXBkYXRlKCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMucmVuZGVyRmxhZ3MgJlxuICAgICAgKEZsZXhSZW5kZXJGbGFncy5Db250ZW50Q2hhbmdlZCB8IEZsZXhSZW5kZXJGbGFncy5WaWV3Rmlyc3RSZW5kZXIpXG4gICAgKSB7XG4gICAgICB0aGlzLnJlbmRlcigpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKHRoaXMucmVuZGVyRmxhZ3MgJiBGbGV4UmVuZGVyRmxhZ3MuUHJvcHNSZWZlcmVuY2VDaGFuZ2VkKSB7XG4gICAgICBpZiAodGhpcy5yZW5kZXJWaWV3KSB0aGlzLnJlbmRlclZpZXcudXBkYXRlUHJvcHModGhpcy5wcm9wcylcbiAgICAgIHRoaXMucmVuZGVyRmxhZ3MgJj0gfkZsZXhSZW5kZXJGbGFncy5Qcm9wc1JlZmVyZW5jZUNoYW5nZWRcbiAgICB9XG4gICAgaWYgKFxuICAgICAgdGhpcy5yZW5kZXJGbGFncyAmXG4gICAgICAoRmxleFJlbmRlckZsYWdzLkRpcnR5Q2hlY2sgfCBGbGV4UmVuZGVyRmxhZ3MuRGlydHlTaWduYWwpXG4gICAgKSB7XG4gICAgICBpZiAodGhpcy5yZW5kZXJWaWV3KSB0aGlzLnJlbmRlclZpZXcuZGlydHlDaGVjaygpXG4gICAgICB0aGlzLnJlbmRlckZsYWdzICY9IH4oXG4gICAgICAgIEZsZXhSZW5kZXJGbGFncy5EaXJ0eUNoZWNrIHwgRmxleFJlbmRlckZsYWdzLkRpcnR5U2lnbmFsXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgI2N1cnJlbnRFZmZlY3RSZWY6IEVmZmVjdFJlZiB8IG51bGwgPSBudWxsXG5cbiAgcmVuZGVyKCkge1xuICAgIGlmICh0aGlzLiNzaG91bGRSZWNyZWF0ZUVudGlyZVZpZXcoKSAmJiB0aGlzLiNjdXJyZW50RWZmZWN0UmVmKSB7XG4gICAgICB0aGlzLiNjdXJyZW50RWZmZWN0UmVmLmRlc3Ryb3koKVxuICAgICAgdGhpcy4jY3VycmVudEVmZmVjdFJlZiA9IG51bGxcbiAgICAgIHRoaXMucmVuZGVyRmxhZ3MgJj0gfkZsZXhSZW5kZXJGbGFncy5SZW5kZXJFZmZlY3RDaGVja2VkXG4gICAgfVxuXG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKClcbiAgICB0aGlzLnJlbmRlckZsYWdzID1cbiAgICAgIEZsZXhSZW5kZXJGbGFncy5QcmlzdGluZSB8XG4gICAgICAodGhpcy5yZW5kZXJGbGFncyAmIEZsZXhSZW5kZXJGbGFncy5WaWV3Rmlyc3RSZW5kZXIpIHxcbiAgICAgICh0aGlzLnJlbmRlckZsYWdzICYgRmxleFJlbmRlckZsYWdzLlJlbmRlckVmZmVjdENoZWNrZWQpXG5cbiAgICBjb25zdCByZXNvbHZlZENvbnRlbnQgPSB0aGlzLiNnZXRDb250ZW50VmFsdWUoKVxuICAgIGlmIChyZXNvbHZlZENvbnRlbnQua2luZCA9PT0gJ251bGwnKSB7XG4gICAgICB0aGlzLnJlbmRlclZpZXcgPSBudWxsXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVuZGVyVmlldyA9IHRoaXMuI3JlbmRlclZpZXdCeUNvbnRlbnQocmVzb2x2ZWRDb250ZW50KVxuICAgIH1cblxuICAgIC8vIElmIHRoZSBjb250ZW50IGlzIGEgZnVuY3Rpb24gYGNvbnRlbnQocHJvcHMpYCwgd2UgaW5pdGlhbGl6ZSBhbiBlZmZlY3RcbiAgICAvLyBpbiBvcmRlciB0byByZWFjdCB0byBjaGFuZ2VzIGlmIHRoZSBnaXZlbiBkZWZpbml0aW9uIHVzZSBzaWduYWxzLlxuICAgIGlmICghdGhpcy4jY3VycmVudEVmZmVjdFJlZiAmJiB0eXBlb2YgdGhpcy5jb250ZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLiNjdXJyZW50RWZmZWN0UmVmID0gZWZmZWN0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jbGF0ZXN0Q29udGVudCgpXG4gICAgICAgICAgaWYgKCEodGhpcy5yZW5kZXJGbGFncyAmIEZsZXhSZW5kZXJGbGFncy5SZW5kZXJFZmZlY3RDaGVja2VkKSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJGbGFncyB8PSBGbGV4UmVuZGVyRmxhZ3MuUmVuZGVyRWZmZWN0Q2hlY2tlZFxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMucmVuZGVyRmxhZ3MgfD0gRmxleFJlbmRlckZsYWdzLkRpcnR5U2lnbmFsXG4gICAgICAgICAgLy8gVGhpcyB3aWxsIG1hcmsgdGhlIHZpZXcgYXMgY2hhbmdlZCxcbiAgICAgICAgICAvLyBzbyB3ZSdsbCB0cnkgdG8gY2hlY2sgZm9yIHVwZGF0ZXMgaW50byBuZ0RvQ2hlY2tcbiAgICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKVxuICAgICAgICB9LFxuICAgICAgICB7IGluamVjdG9yOiB0aGlzLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3IgfVxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gICNzaG91bGRSZWNyZWF0ZUVudGlyZVZpZXcoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMucmVuZGVyRmxhZ3MgJlxuICAgICAgRmxleFJlbmRlckZsYWdzLkNvbnRlbnRDaGFuZ2VkICZcbiAgICAgIEZsZXhSZW5kZXJGbGFncy5WaWV3Rmlyc3RSZW5kZXJcbiAgICApXG4gIH1cblxuICAjcmVuZGVyVmlld0J5Q29udGVudChcbiAgICBjb250ZW50OiBGbGV4UmVuZGVyVHlwZWRDb250ZW50XG4gICk6IEZsZXhSZW5kZXJWaWV3PGFueT4gfCBudWxsIHtcbiAgICBpZiAoY29udGVudC5raW5kID09PSAncHJpbWl0aXZlJykge1xuICAgICAgcmV0dXJuIHRoaXMuI3JlbmRlclN0cmluZ0NvbnRlbnQoY29udGVudClcbiAgICB9IGVsc2UgaWYgKGNvbnRlbnQua2luZCA9PT0gJ3RlbXBsYXRlUmVmJykge1xuICAgICAgcmV0dXJuIHRoaXMuI3JlbmRlclRlbXBsYXRlUmVmQ29udGVudChjb250ZW50KVxuICAgIH0gZWxzZSBpZiAoY29udGVudC5raW5kID09PSAnZmxleFJlbmRlckNvbXBvbmVudCcpIHtcbiAgICAgIHJldHVybiB0aGlzLiNyZW5kZXJDb21wb25lbnQoY29udGVudClcbiAgICB9IGVsc2UgaWYgKGNvbnRlbnQua2luZCA9PT0gJ2NvbXBvbmVudCcpIHtcbiAgICAgIHJldHVybiB0aGlzLiNyZW5kZXJDdXN0b21Db21wb25lbnQoY29udGVudClcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gIH1cblxuICAjcmVuZGVyU3RyaW5nQ29udGVudChcbiAgICB0ZW1wbGF0ZTogRXh0cmFjdDxGbGV4UmVuZGVyVHlwZWRDb250ZW50LCB7IGtpbmQ6ICdwcmltaXRpdmUnIH0+XG4gICk6IEZsZXhSZW5kZXJUZW1wbGF0ZVZpZXcge1xuICAgIGNvbnN0IGNvbnRleHQgPSAoKSA9PiB7XG4gICAgICByZXR1cm4gdHlwZW9mIHRoaXMuY29udGVudCA9PT0gJ3N0cmluZycgfHxcbiAgICAgICAgdHlwZW9mIHRoaXMuY29udGVudCA9PT0gJ251bWJlcidcbiAgICAgICAgPyB0aGlzLmNvbnRlbnRcbiAgICAgICAgOiB0aGlzLmNvbnRlbnQ/Lih0aGlzLnByb3BzKVxuICAgIH1cbiAgICBjb25zdCByZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYsIHtcbiAgICAgIGdldCAkaW1wbGljaXQoKSB7XG4gICAgICAgIHJldHVybiBjb250ZXh0KClcbiAgICAgIH0sXG4gICAgfSlcbiAgICByZXR1cm4gbmV3IEZsZXhSZW5kZXJUZW1wbGF0ZVZpZXcodGVtcGxhdGUsIHJlZilcbiAgfVxuXG4gICNyZW5kZXJUZW1wbGF0ZVJlZkNvbnRlbnQoXG4gICAgdGVtcGxhdGU6IEV4dHJhY3Q8RmxleFJlbmRlclR5cGVkQ29udGVudCwgeyBraW5kOiAndGVtcGxhdGVSZWYnIH0+XG4gICk6IEZsZXhSZW5kZXJUZW1wbGF0ZVZpZXcge1xuICAgIGNvbnN0IGxhdGVzdENvbnRleHQgPSAoKSA9PiB0aGlzLnByb3BzXG4gICAgY29uc3QgdmlldyA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGVtcGxhdGUuY29udGVudCwge1xuICAgICAgZ2V0ICRpbXBsaWNpdCgpIHtcbiAgICAgICAgcmV0dXJuIGxhdGVzdENvbnRleHQoKVxuICAgICAgfSxcbiAgICB9KVxuICAgIHJldHVybiBuZXcgRmxleFJlbmRlclRlbXBsYXRlVmlldyh0ZW1wbGF0ZSwgdmlldylcbiAgfVxuXG4gICNyZW5kZXJDb21wb25lbnQoXG4gICAgZmxleFJlbmRlckNvbXBvbmVudDogRXh0cmFjdDxcbiAgICAgIEZsZXhSZW5kZXJUeXBlZENvbnRlbnQsXG4gICAgICB7IGtpbmQ6ICdmbGV4UmVuZGVyQ29tcG9uZW50JyB9XG4gICAgPlxuICApOiBGbGV4UmVuZGVyQ29tcG9uZW50VmlldyB7XG4gICAgY29uc3QgeyBpbnB1dHMsIG91dHB1dHMsIGluamVjdG9yIH0gPSBmbGV4UmVuZGVyQ29tcG9uZW50LmNvbnRlbnRcblxuICAgIGNvbnN0IGdldENvbnRleHQgPSAoKSA9PiB0aGlzLnByb3BzXG4gICAgY29uc3QgcHJveHkgPSBuZXcgUHJveHkodGhpcy5wcm9wcywge1xuICAgICAgZ2V0OiAoXywga2V5KSA9PiBnZXRDb250ZXh0KClba2V5IGFzIGtleW9mIHR5cGVvZiBfXSxcbiAgICB9KVxuICAgIGNvbnN0IGNvbXBvbmVudEluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHBhcmVudDogaW5qZWN0b3IgPz8gdGhpcy5pbmplY3RvcixcbiAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogRmxleFJlbmRlckNvbXBvbmVudFByb3BzLCB1c2VWYWx1ZTogcHJveHkgfV0sXG4gICAgfSlcbiAgICBjb25zdCB2aWV3ID0gdGhpcy4jZmxleFJlbmRlckNvbXBvbmVudEZhY3RvcnkuY3JlYXRlQ29tcG9uZW50KFxuICAgICAgZmxleFJlbmRlckNvbXBvbmVudC5jb250ZW50LFxuICAgICAgY29tcG9uZW50SW5qZWN0b3JcbiAgICApXG4gICAgcmV0dXJuIG5ldyBGbGV4UmVuZGVyQ29tcG9uZW50VmlldyhmbGV4UmVuZGVyQ29tcG9uZW50LCB2aWV3KVxuICB9XG5cbiAgI3JlbmRlckN1c3RvbUNvbXBvbmVudChcbiAgICBjb21wb25lbnQ6IEV4dHJhY3Q8RmxleFJlbmRlclR5cGVkQ29udGVudCwgeyBraW5kOiAnY29tcG9uZW50JyB9PlxuICApOiBGbGV4UmVuZGVyQ29tcG9uZW50VmlldyB7XG4gICAgY29uc3QgdmlldyA9IHRoaXMuI2ZsZXhSZW5kZXJDb21wb25lbnRGYWN0b3J5LmNyZWF0ZUNvbXBvbmVudChcbiAgICAgIGZsZXhSZW5kZXJDb21wb25lbnQoY29tcG9uZW50LmNvbnRlbnQsIHtcbiAgICAgICAgaW5wdXRzOiB0aGlzLnByb3BzLFxuICAgICAgICBpbmplY3RvcjogdGhpcy5pbmplY3RvcixcbiAgICAgIH0pLFxuICAgICAgdGhpcy5pbmplY3RvclxuICAgIClcbiAgICByZXR1cm4gbmV3IEZsZXhSZW5kZXJDb21wb25lbnRWaWV3KGNvbXBvbmVudCwgdmlldylcbiAgfVxufVxuIl19
|
|
@@ -3,7 +3,8 @@ import { createTable, } from '@tanstack/table-core';
|
|
|
3
3
|
import { lazyInit } from './lazy-signal-initializer';
|
|
4
4
|
import { proxifyTable } from './proxy';
|
|
5
5
|
export * from '@tanstack/table-core';
|
|
6
|
-
export {
|
|
6
|
+
export { FlexRenderDirective, FlexRenderDirective as FlexRender, injectFlexRenderContext, } from './flex-render';
|
|
7
|
+
export { FlexRenderComponent, flexRenderComponent, } from './flex-render/flex-render-component';
|
|
7
8
|
export function createAngularTable(options) {
|
|
8
9
|
return lazyInit(() => {
|
|
9
10
|
const resolvedOptions = {
|
|
@@ -45,4 +46,4 @@ export function createAngularTable(options) {
|
|
|
45
46
|
return proxifyTable(tableSignal);
|
|
46
47
|
});
|
|
47
48
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBZSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDN0QsT0FBTyxFQUtMLFdBQVcsR0FFWixNQUFNLHNCQUFzQixDQUFBO0FBQzdCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBRXRDLGNBQWMsc0JBQXNCLENBQUE7QUFFcEMsT0FBTyxFQUVMLG1CQUFtQixFQUNuQixtQkFBbUIsSUFBSSxVQUFVLEVBQ2pDLHVCQUF1QixHQUV4QixNQUFNLGVBQWUsQ0FBQTtBQUV0QixPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLG1CQUFtQixHQUNwQixNQUFNLHFDQUFxQyxDQUFBO0FBRTVDLE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsT0FBa0M7SUFFbEMsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ25CLE1BQU0sZUFBZSxHQUFHO1lBQ3RCLEtBQUssRUFBRSxFQUFFO1lBQ1QsYUFBYSxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUM7WUFDdkIsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixHQUFHLE9BQU8sRUFBRTtTQUNiLENBQUE7UUFFRCxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUE7UUFFMUMsc0VBQXNFO1FBQ3RFLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBYSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUE7UUFFcEQsd0NBQXdDO1FBQ3hDLGdFQUFnRTtRQUNoRSxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQThCLEdBQUcsRUFBRTtZQUNoRSxnQ0FBZ0M7WUFDaEMsTUFBTSxVQUFVLEdBQUcsS0FBSyxFQUFFLENBQUE7WUFDMUIsa0NBQWtDO1lBQ2xDLE1BQU0sWUFBWSxHQUFHLE9BQU8sRUFBRSxDQUFBO1lBQzlCLE9BQU87Z0JBQ0wsR0FBRyxLQUFLLENBQUMsT0FBTztnQkFDaEIsR0FBRyxlQUFlO2dCQUNsQixHQUFHLFlBQVk7Z0JBQ2YsS0FBSyxFQUFFLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFO2dCQUMvQyxhQUFhLEVBQUUsT0FBTyxDQUFDLEVBQUU7b0JBQ3ZCLE1BQU0sS0FBSyxHQUNULE9BQU8sWUFBWSxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFBO29CQUM3RCxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO29CQUNoQixlQUFlLENBQUMsYUFBYSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUE7Z0JBQzFDLENBQUM7YUFDRixDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFFRixnR0FBZ0c7UUFDaEcsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUMxQixHQUFHLEVBQUU7WUFDSCxLQUFLLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUE7WUFDbEMsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDLEVBQ0Q7WUFDRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSztTQUNuQixDQUNGLENBQUE7UUFFRCw4RkFBOEY7UUFDOUYsT0FBTyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDbEMsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIHR5cGUgU2lnbmFsLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgUm93RGF0YSxcbiAgVGFibGVPcHRpb25zLFxuICBUYWJsZU9wdGlvbnNSZXNvbHZlZCxcbiAgVGFibGVTdGF0ZSxcbiAgY3JlYXRlVGFibGUsXG4gIHR5cGUgVGFibGUsXG59IGZyb20gJ0B0YW5zdGFjay90YWJsZS1jb3JlJ1xuaW1wb3J0IHsgbGF6eUluaXQgfSBmcm9tICcuL2xhenktc2lnbmFsLWluaXRpYWxpemVyJ1xuaW1wb3J0IHsgcHJveGlmeVRhYmxlIH0gZnJvbSAnLi9wcm94eSdcblxuZXhwb3J0ICogZnJvbSAnQHRhbnN0YWNrL3RhYmxlLWNvcmUnXG5cbmV4cG9ydCB7XG4gIHR5cGUgRmxleFJlbmRlckNvbnRlbnQsXG4gIEZsZXhSZW5kZXJEaXJlY3RpdmUsXG4gIEZsZXhSZW5kZXJEaXJlY3RpdmUgYXMgRmxleFJlbmRlcixcbiAgaW5qZWN0RmxleFJlbmRlckNvbnRleHQsXG4gIHR5cGUgRmxleFJlbmRlckNvbXBvbmVudFByb3BzLFxufSBmcm9tICcuL2ZsZXgtcmVuZGVyJ1xuXG5leHBvcnQge1xuICBGbGV4UmVuZGVyQ29tcG9uZW50LFxuICBmbGV4UmVuZGVyQ29tcG9uZW50LFxufSBmcm9tICcuL2ZsZXgtcmVuZGVyL2ZsZXgtcmVuZGVyLWNvbXBvbmVudCdcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFuZ3VsYXJUYWJsZTxURGF0YSBleHRlbmRzIFJvd0RhdGE+KFxuICBvcHRpb25zOiAoKSA9PiBUYWJsZU9wdGlvbnM8VERhdGE+XG4pOiBUYWJsZTxURGF0YT4gJiBTaWduYWw8VGFibGU8VERhdGE+PiB7XG4gIHJldHVybiBsYXp5SW5pdCgoKSA9PiB7XG4gICAgY29uc3QgcmVzb2x2ZWRPcHRpb25zID0ge1xuICAgICAgc3RhdGU6IHt9LFxuICAgICAgb25TdGF0ZUNoYW5nZTogKCkgPT4ge30sXG4gICAgICByZW5kZXJGYWxsYmFja1ZhbHVlOiBudWxsLFxuICAgICAgLi4ub3B0aW9ucygpLFxuICAgIH1cblxuICAgIGNvbnN0IHRhYmxlID0gY3JlYXRlVGFibGUocmVzb2x2ZWRPcHRpb25zKVxuXG4gICAgLy8gQnkgZGVmYXVsdCwgbWFuYWdlIHRhYmxlIHN0YXRlIGhlcmUgdXNpbmcgdGhlIHRhYmxlJ3MgaW5pdGlhbCBzdGF0ZVxuICAgIGNvbnN0IHN0YXRlID0gc2lnbmFsPFRhYmxlU3RhdGU+KHRhYmxlLmluaXRpYWxTdGF0ZSlcblxuICAgIC8vIENvbXBvc2UgdGFibGUgb3B0aW9ucyB1c2luZyBjb21wdXRlZC5cbiAgICAvLyBUaGlzIGlzIHRvIGFsbG93IGB0YWJsZVNpZ25hbGAgdG8gbGlzdGVuIGFuZCBzZXQgdGFibGUgb3B0aW9uXG4gICAgY29uc3QgdXBkYXRlZE9wdGlvbnMgPSBjb21wdXRlZDxUYWJsZU9wdGlvbnNSZXNvbHZlZDxURGF0YT4+KCgpID0+IHtcbiAgICAgIC8vIGxpc3RlbiB0byB0YWJsZSBzdGF0ZSBjaGFuZ2VkXG4gICAgICBjb25zdCB0YWJsZVN0YXRlID0gc3RhdGUoKVxuICAgICAgLy8gbGlzdGVuIHRvIGlucHV0IG9wdGlvbnMgY2hhbmdlZFxuICAgICAgY29uc3QgdGFibGVPcHRpb25zID0gb3B0aW9ucygpXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi50YWJsZS5vcHRpb25zLFxuICAgICAgICAuLi5yZXNvbHZlZE9wdGlvbnMsXG4gICAgICAgIC4uLnRhYmxlT3B0aW9ucyxcbiAgICAgICAgc3RhdGU6IHsgLi4udGFibGVTdGF0ZSwgLi4udGFibGVPcHRpb25zLnN0YXRlIH0sXG4gICAgICAgIG9uU3RhdGVDaGFuZ2U6IHVwZGF0ZXIgPT4ge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID1cbiAgICAgICAgICAgIHVwZGF0ZXIgaW5zdGFuY2VvZiBGdW5jdGlvbiA/IHVwZGF0ZXIodGFibGVTdGF0ZSkgOiB1cGRhdGVyXG4gICAgICAgICAgc3RhdGUuc2V0KHZhbHVlKVxuICAgICAgICAgIHJlc29sdmVkT3B0aW9ucy5vblN0YXRlQ2hhbmdlPy4odXBkYXRlcilcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgLy8gY29udmVydCB0YWJsZSBpbnN0YW5jZSB0byBzaWduYWwgZm9yIHByb3hpZnkgdG8gbGlzdGVuIHRvIGFueSB0YWJsZSBzdGF0ZSBhbmQgb3B0aW9ucyBjaGFuZ2VzXG4gICAgY29uc3QgdGFibGVTaWduYWwgPSBjb21wdXRlZChcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGFibGUuc2V0T3B0aW9ucyh1cGRhdGVkT3B0aW9ucygpKVxuICAgICAgICByZXR1cm4gdGFibGVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGVxdWFsOiAoKSA9PiBmYWxzZSxcbiAgICAgIH1cbiAgICApXG5cbiAgICAvLyBwcm94aWZ5IFRhYmxlIGluc3RhbmNlIHRvIHByb3ZpZGUgYWJpbGl0eSBmb3IgY29uc3VtZXIgdG8gbGlzdGVuIHRvIGFueSB0YWJsZSBzdGF0ZSBjaGFuZ2VzXG4gICAgcmV0dXJuIHByb3hpZnlUYWJsZSh0YWJsZVNpZ25hbClcbiAgfSlcbn1cbiJdfQ==
|
|
@@ -15,8 +15,12 @@ export function proxifyTable(tableSignal) {
|
|
|
15
15
|
* excluding handlers as they do not retain any reactive value
|
|
16
16
|
*/
|
|
17
17
|
if (property.startsWith('get') &&
|
|
18
|
-
!property.endsWith('Handler')
|
|
19
|
-
|
|
18
|
+
!property.endsWith('Handler')
|
|
19
|
+
// e.g. getCoreRowModel, getSelectedRowModel etc.
|
|
20
|
+
// We need that after a signal change even `rowModel` may mark the view as dirty.
|
|
21
|
+
// This allows to always get the latest `getContext` value while using flexRender
|
|
22
|
+
// && !property.endsWith('Model')
|
|
23
|
+
) {
|
|
20
24
|
const maybeFn = table[property];
|
|
21
25
|
if (typeof maybeFn === 'function') {
|
|
22
26
|
Object.defineProperty(target, property, {
|
|
@@ -80,4 +84,4 @@ function toComputed(signal, fn) {
|
|
|
80
84
|
function serializeArgs(...args) {
|
|
81
85
|
return JSON.stringify(args);
|
|
82
86
|
}
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFLaEUsTUFBTSxVQUFVLFlBQVksQ0FDMUIsV0FBNkI7SUFFN0IsTUFBTSxhQUFhLEdBQUcsV0FBNkIsQ0FBQTtJQUVuRCxPQUFPLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRTtRQUM5QixLQUFLO1lBQ0gsT0FBTyxXQUFXLEVBQUUsQ0FBQTtRQUN0QixDQUFDO1FBQ0QsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUF3QjtZQUNsQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUNyQixPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUN6QixDQUFDO1lBQ0QsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQ3BDOzs7ZUFHRztZQUNILElBQ0UsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7Z0JBQzFCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7WUFDN0IsaURBQWlEO1lBQ2pELGlGQUFpRjtZQUNqRixpRkFBaUY7WUFDakYsaUNBQWlDO2NBQ2pDLENBQUM7Z0JBQ0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBcUIsQ0FBQTtnQkFDbkQsSUFBSSxPQUFPLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztvQkFDbEMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO3dCQUN0QyxLQUFLLEVBQUUsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUM7d0JBQ3ZDLFlBQVksRUFBRSxJQUFJO3dCQUNsQixVQUFVLEVBQUUsSUFBSTtxQkFDakIsQ0FBQyxDQUFBO29CQUNGLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2dCQUN6QixDQUFDO1lBQ0gsQ0FBQztZQUNELG1CQUFtQjtZQUNuQixPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQzdDLENBQUM7UUFDRCxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQW9CO1lBQ3pCLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN2QyxDQUFDO1FBQ0QsT0FBTztZQUNMLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQTtRQUNoRCxDQUFDO1FBQ0Qsd0JBQXdCO1lBQ3RCLE9BQU87Z0JBQ0wsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFlBQVksRUFBRSxJQUFJO2FBQ25CLENBQUE7UUFDSCxDQUFDO0tBQ0YsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFTLFVBQVUsQ0FBSSxNQUF3QixFQUFFLEVBQVk7SUFDM0QsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUE7SUFDN0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ25CLEtBQUssTUFBTSxFQUFFLENBQUE7WUFDYixPQUFPLEVBQUUsRUFBRSxDQUFBO1FBQ2IsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsTUFBTSxhQUFhLEdBQW9DLEVBQUUsQ0FBQTtJQUV6RCxPQUFPLENBQUMsR0FBRyxTQUFnQixFQUFFLEVBQUU7UUFDN0IsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUE7UUFDbEQsSUFBSSxhQUFhLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDakQsT0FBTyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxDQUFBO1FBQzFDLENBQUM7UUFDRCxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ25DLEtBQUssTUFBTSxFQUFFLENBQUE7WUFDYixPQUFPLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFBO1FBQ3pCLENBQUMsQ0FBQyxDQUFBO1FBRUYsYUFBYSxDQUFDLGNBQWMsQ0FBQyxHQUFHLGNBQWMsQ0FBQTtRQUU5QyxPQUFPLGNBQWMsRUFBRSxDQUFBO0lBQ3pCLENBQUMsQ0FBQTtBQUNILENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxHQUFHLElBQVc7SUFDbkMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgdHlwZSBTaWduYWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyB0eXBlIFRhYmxlIH0gZnJvbSAnQHRhbnN0YWNrL3RhYmxlLWNvcmUnXG5cbnR5cGUgVGFibGVTaWduYWw8VD4gPSBUYWJsZTxUPiAmIFNpZ25hbDxUYWJsZTxUPj5cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3hpZnlUYWJsZTxUPihcbiAgdGFibGVTaWduYWw6IFNpZ25hbDxUYWJsZTxUPj5cbik6IFRhYmxlPFQ+ICYgU2lnbmFsPFRhYmxlPFQ+PiB7XG4gIGNvbnN0IGludGVybmFsU3RhdGUgPSB0YWJsZVNpZ25hbCBhcyBUYWJsZVNpZ25hbDxUPlxuXG4gIHJldHVybiBuZXcgUHJveHkoaW50ZXJuYWxTdGF0ZSwge1xuICAgIGFwcGx5KCkge1xuICAgICAgcmV0dXJuIHRhYmxlU2lnbmFsKClcbiAgICB9LFxuICAgIGdldCh0YXJnZXQsIHByb3BlcnR5OiBrZXlvZiBUYWJsZTxUPik6IGFueSB7XG4gICAgICBpZiAodGFyZ2V0W3Byb3BlcnR5XSkge1xuICAgICAgICByZXR1cm4gdGFyZ2V0W3Byb3BlcnR5XVxuICAgICAgfVxuICAgICAgY29uc3QgdGFibGUgPSB1bnRyYWNrZWQodGFibGVTaWduYWwpXG4gICAgICAvKipcbiAgICAgICAqIEF0dGVtcHQgdG8gY29udmVydCBhbGwgYWNjZXNzb3JzIGludG8gY29tcHV0ZWQgb25lcyxcbiAgICAgICAqIGV4Y2x1ZGluZyBoYW5kbGVycyBhcyB0aGV5IGRvIG5vdCByZXRhaW4gYW55IHJlYWN0aXZlIHZhbHVlXG4gICAgICAgKi9cbiAgICAgIGlmIChcbiAgICAgICAgcHJvcGVydHkuc3RhcnRzV2l0aCgnZ2V0JykgJiZcbiAgICAgICAgIXByb3BlcnR5LmVuZHNXaXRoKCdIYW5kbGVyJylcbiAgICAgICAgLy8gZS5nLiBnZXRDb3JlUm93TW9kZWwsIGdldFNlbGVjdGVkUm93TW9kZWwgZXRjLlxuICAgICAgICAvLyBXZSBuZWVkIHRoYXQgYWZ0ZXIgYSBzaWduYWwgY2hhbmdlIGV2ZW4gYHJvd01vZGVsYCBtYXkgbWFyayB0aGUgdmlldyBhcyBkaXJ0eS5cbiAgICAgICAgLy8gVGhpcyBhbGxvd3MgdG8gYWx3YXlzIGdldCB0aGUgbGF0ZXN0IGBnZXRDb250ZXh0YCB2YWx1ZSB3aGlsZSB1c2luZyBmbGV4UmVuZGVyXG4gICAgICAgIC8vICYmICFwcm9wZXJ0eS5lbmRzV2l0aCgnTW9kZWwnKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IG1heWJlRm4gPSB0YWJsZVtwcm9wZXJ0eV0gYXMgRnVuY3Rpb24gfCBuZXZlclxuICAgICAgICBpZiAodHlwZW9mIG1heWJlRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBwcm9wZXJ0eSwge1xuICAgICAgICAgICAgdmFsdWU6IHRvQ29tcHV0ZWQodGFibGVTaWduYWwsIG1heWJlRm4pLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHJldHVybiB0YXJnZXRbcHJvcGVydHldXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgIHJldHVybiAodGFyZ2V0W3Byb3BlcnR5XSA9IHRhYmxlW3Byb3BlcnR5XSlcbiAgICB9LFxuICAgIGhhcyhfLCBwcm9wOiBrZXlvZiBUYWJsZTxUPikge1xuICAgICAgcmV0dXJuICEhdW50cmFja2VkKHRhYmxlU2lnbmFsKVtwcm9wXVxuICAgIH0sXG4gICAgb3duS2V5cygpIHtcbiAgICAgIHJldHVybiBSZWZsZWN0Lm93bktleXModW50cmFja2VkKHRhYmxlU2lnbmFsKSlcbiAgICB9LFxuICAgIGdldE93blByb3BlcnR5RGVzY3JpcHRvcigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIH1cbiAgICB9LFxuICB9KVxufVxuXG4vKipcbiAqIEhlcmUgd2UnbGwgaGFuZGxlIGFsbCB0eXBlIG9mIGFjY2Vzc29yczpcbiAqIC0gMCBhcmd1bWVudCAtPiBlLmcuIHRhYmxlLmdldENhbk5leHRQYWdlKCkpXG4gKiAtIDB+MSBhcmd1bWVudHMgLT4gZS5nLiB0YWJsZS5nZXRJc1NvbWVSb3dzUGlubmVkKHBvc2l0aW9uPylcbiAqIC0gMSByZXF1aXJlZCBhcmd1bWVudCAtPiBlLmcuIHRhYmxlLmdldENvbHVtbihjb2x1bW5JZClcbiAqIC0gMSsgYXJndW1lbnQgLT4gZS5nLiB0YWJsZS5nZXRSb3coaWQsIHNlYXJjaEFsbD8pXG4gKlxuICogU2luY2Ugd2UgYXJlIG5vdCBhYmxlIHRvIGRldGVjdCBhdXRvbWF0aWNhbGx5IHRoZSBhY2Nlc3NvcnMgcGFyYW1ldGVycyxcbiAqIHdlJ2xsIHdyYXAgYWxsIGFjY2Vzc29ycyBpbnRvIGEgY2FjaGVkIGZ1bmN0aW9uIHdyYXBwaW5nIGEgY29tcHV0ZWRcbiAqIHRoYXQgcmV0dXJuIGl0J3MgdmFsdWUgYmFzZWQgb24gdGhlIGdpdmVuIHBhcmFtZXRlcnNcbiAqL1xuZnVuY3Rpb24gdG9Db21wdXRlZDxUPihzaWduYWw6IFNpZ25hbDxUYWJsZTxUPj4sIGZuOiBGdW5jdGlvbikge1xuICBjb25zdCBoYXNBcmdzID0gZm4ubGVuZ3RoID4gMFxuICBpZiAoIWhhc0FyZ3MpIHtcbiAgICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgdm9pZCBzaWduYWwoKVxuICAgICAgcmV0dXJuIGZuKClcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgY29tcHV0ZWRDYWNoZTogUmVjb3JkPHN0cmluZywgU2lnbmFsPHVua25vd24+PiA9IHt9XG5cbiAgcmV0dXJuICguLi5hcmdzQXJyYXk6IGFueVtdKSA9PiB7XG4gICAgY29uc3Qgc2VyaWFsaXplZEFyZ3MgPSBzZXJpYWxpemVBcmdzKC4uLmFyZ3NBcnJheSlcbiAgICBpZiAoY29tcHV0ZWRDYWNoZS5oYXNPd25Qcm9wZXJ0eShzZXJpYWxpemVkQXJncykpIHtcbiAgICAgIHJldHVybiBjb21wdXRlZENhY2hlW3NlcmlhbGl6ZWRBcmdzXT8uKClcbiAgICB9XG4gICAgY29uc3QgY29tcHV0ZWRTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICB2b2lkIHNpZ25hbCgpXG4gICAgICByZXR1cm4gZm4oLi4uYXJnc0FycmF5KVxuICAgIH0pXG5cbiAgICBjb21wdXRlZENhY2hlW3NlcmlhbGl6ZWRBcmdzXSA9IGNvbXB1dGVkU2lnbmFsXG5cbiAgICByZXR1cm4gY29tcHV0ZWRTaWduYWwoKVxuICB9XG59XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZUFyZ3MoLi4uYXJnczogYW55W10pIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGFyZ3MpXG59XG4iXX0=
|