angular-three-theatre 4.0.0-next.110 → 4.0.0-next.112
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.
|
@@ -9,21 +9,21 @@ import { mergeInputs } from 'ngxtension/inject-inputs';
|
|
|
9
9
|
|
|
10
10
|
class TheatreProject {
|
|
11
11
|
constructor() {
|
|
12
|
-
this.name = input('default-theatre-project');
|
|
13
|
-
this.config = input({});
|
|
14
|
-
this.project = computed(() => getProject(this.name(), this.config()));
|
|
12
|
+
this.name = input('default-theatre-project', ...(ngDevMode ? [{ debugName: "name" }] : []));
|
|
13
|
+
this.config = input({}, ...(ngDevMode ? [{ debugName: "config" }] : []));
|
|
14
|
+
this.project = computed(() => getProject(this.name(), this.config()), ...(ngDevMode ? [{ debugName: "project" }] : []));
|
|
15
15
|
this.sheets = {};
|
|
16
16
|
effect(() => {
|
|
17
17
|
const project = this.project();
|
|
18
18
|
project.ready.then();
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
22
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TheatreProject, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.7", type: TheatreProject, isStandalone: true, selector: "theatre-project", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
23
23
|
<ng-content />
|
|
24
24
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TheatreProject, decorators: [{
|
|
27
27
|
type: Component,
|
|
28
28
|
args: [{
|
|
29
29
|
selector: 'theatre-project',
|
|
@@ -36,14 +36,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImpor
|
|
|
36
36
|
|
|
37
37
|
let TheatreSheet$1 = class TheatreSheet {
|
|
38
38
|
constructor() {
|
|
39
|
-
this.name = input('default-theatre-sheet', {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
return
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
this.name = input('default-theatre-sheet', ...(ngDevMode ? [{ debugName: "name", transform: (value) => {
|
|
40
|
+
if (value === '')
|
|
41
|
+
return 'default-theatre-sheet';
|
|
42
|
+
return value;
|
|
43
|
+
},
|
|
44
|
+
alias: 'sheet' }] : [{
|
|
45
|
+
transform: (value) => {
|
|
46
|
+
if (value === '')
|
|
47
|
+
return 'default-theatre-sheet';
|
|
48
|
+
return value;
|
|
49
|
+
},
|
|
50
|
+
alias: 'sheet',
|
|
51
|
+
}]));
|
|
47
52
|
this.project = inject(TheatreProject);
|
|
48
53
|
this.sheet = computed(() => {
|
|
49
54
|
const name = this.name();
|
|
@@ -55,7 +60,7 @@ let TheatreSheet$1 = class TheatreSheet {
|
|
|
55
60
|
const sheet = this.project.project().sheet(name);
|
|
56
61
|
this.project.sheets[name] = [sheet, 1];
|
|
57
62
|
return sheet;
|
|
58
|
-
});
|
|
63
|
+
}, ...(ngDevMode ? [{ debugName: "sheet" }] : []));
|
|
59
64
|
inject(DestroyRef).onDestroy(() => {
|
|
60
65
|
const existing = this.project.sheets[this.name()];
|
|
61
66
|
if (!existing)
|
|
@@ -68,10 +73,10 @@ let TheatreSheet$1 = class TheatreSheet {
|
|
|
68
73
|
}
|
|
69
74
|
});
|
|
70
75
|
}
|
|
71
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
72
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.
|
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TheatreSheet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
77
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.7", type: TheatreSheet, isStandalone: true, selector: "[sheet]", inputs: { name: { classPropertyName: "name", publicName: "sheet", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["sheet"], ngImport: i0 }); }
|
|
73
78
|
};
|
|
74
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TheatreSheet$1, decorators: [{
|
|
75
80
|
type: Directive,
|
|
76
81
|
args: [{ selector: '[sheet]', exportAs: 'sheet' }]
|
|
77
82
|
}], ctorParameters: () => [] });
|
|
@@ -80,10 +85,10 @@ const THEATRE_STUDIO = new InjectionToken('Theatre Studio');
|
|
|
80
85
|
|
|
81
86
|
let TheatreSheetObject$1 = class TheatreSheetObject {
|
|
82
87
|
constructor() {
|
|
83
|
-
this.key = input.required({ alias: 'sheetObject' });
|
|
84
|
-
this.props = input({}, { alias: 'sheetObjectProps' });
|
|
85
|
-
this.detach = input(false, { transform: booleanAttribute, alias: 'sheetObjectDetach' });
|
|
86
|
-
this.selected = model(false, { alias: 'sheetObjectSelected' });
|
|
88
|
+
this.key = input.required(...(ngDevMode ? [{ debugName: "key", alias: 'sheetObject' }] : [{ alias: 'sheetObject' }]));
|
|
89
|
+
this.props = input({}, ...(ngDevMode ? [{ debugName: "props", alias: 'sheetObjectProps' }] : [{ alias: 'sheetObjectProps' }]));
|
|
90
|
+
this.detach = input(false, ...(ngDevMode ? [{ debugName: "detach", transform: booleanAttribute, alias: 'sheetObjectDetach' }] : [{ transform: booleanAttribute, alias: 'sheetObjectDetach' }]));
|
|
91
|
+
this.selected = model(false, ...(ngDevMode ? [{ debugName: "selected", alias: 'sheetObjectSelected' }] : [{ alias: 'sheetObjectSelected' }]));
|
|
87
92
|
this.templateRef = inject(TemplateRef);
|
|
88
93
|
this.vcr = inject(ViewContainerRef);
|
|
89
94
|
this.sheet = inject(TheatreSheet$1);
|
|
@@ -92,7 +97,7 @@ let TheatreSheetObject$1 = class TheatreSheetObject {
|
|
|
92
97
|
this.originalSheetObject = computed(() => {
|
|
93
98
|
const sheet = this.sheet.sheet();
|
|
94
99
|
return sheet.object(this.key(), untracked(this.props), { reconfigure: true });
|
|
95
|
-
});
|
|
100
|
+
}, ...(ngDevMode ? [{ debugName: "originalSheetObject" }] : []));
|
|
96
101
|
this.sheetObject = linkedSignal(this.originalSheetObject);
|
|
97
102
|
this.values = linkedSignal(() => this.sheetObject().value);
|
|
98
103
|
this.detached = false;
|
|
@@ -183,10 +188,10 @@ let TheatreSheetObject$1 = class TheatreSheetObject {
|
|
|
183
188
|
static ngTemplateContextGuard(_, ctx) {
|
|
184
189
|
return true;
|
|
185
190
|
}
|
|
186
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
187
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.
|
|
191
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TheatreSheetObject, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
192
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.7", type: TheatreSheetObject, isStandalone: true, selector: "ng-template[sheetObject]", inputs: { key: { classPropertyName: "key", publicName: "sheetObject", isSignal: true, isRequired: true, transformFunction: null }, props: { classPropertyName: "props", publicName: "sheetObjectProps", isSignal: true, isRequired: false, transformFunction: null }, detach: { classPropertyName: "detach", publicName: "sheetObjectDetach", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "sheetObjectSelected", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "sheetObjectSelectedChange" }, exportAs: ["sheetObject"], ngImport: i0 }); }
|
|
188
193
|
};
|
|
189
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
194
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TheatreSheetObject$1, decorators: [{
|
|
190
195
|
type: Directive,
|
|
191
196
|
args: [{ selector: 'ng-template[sheetObject]', exportAs: 'sheetObject' }]
|
|
192
197
|
}], ctorParameters: () => [] });
|
|
@@ -309,19 +314,19 @@ function getDefaultTransformer(target, path, fullPropertyPath) {
|
|
|
309
314
|
const updateProjectionMatrixKeys = ['fov', 'near', 'far', 'zoom', 'left', 'right', 'top', 'bottom', 'aspect'];
|
|
310
315
|
class TheatreSheetObjectSync {
|
|
311
316
|
constructor() {
|
|
312
|
-
this.parent = input.required({
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
this.props = input([], { alias: 'syncProps' });
|
|
317
|
+
this.parent = input.required(...(ngDevMode ? [{ debugName: "parent", alias: 'sync' }] : [{
|
|
318
|
+
alias: 'sync',
|
|
319
|
+
}]));
|
|
320
|
+
this.props = input([], ...(ngDevMode ? [{ debugName: "props", alias: 'syncProps' }] : [{ alias: 'syncProps' }]));
|
|
316
321
|
this.theatreSheetObject = inject(TheatreSheetObject$1);
|
|
317
|
-
this.sheetObject = computed(() => this.theatreSheetObject.sheetObject());
|
|
322
|
+
this.sheetObject = computed(() => this.theatreSheetObject.sheetObject(), ...(ngDevMode ? [{ debugName: "sheetObject" }] : []));
|
|
318
323
|
this.studio = inject(THEATRE_STUDIO, { optional: true });
|
|
319
324
|
this.parentRef = computed(() => {
|
|
320
325
|
const parent = this.parent();
|
|
321
326
|
if (typeof parent === 'function')
|
|
322
327
|
return resolveRef(parent());
|
|
323
328
|
return resolveRef(parent);
|
|
324
|
-
});
|
|
329
|
+
}, ...(ngDevMode ? [{ debugName: "parentRef" }] : []));
|
|
325
330
|
this.resolvedProps = computed(() => {
|
|
326
331
|
const props = this.props();
|
|
327
332
|
return props.reduce((resolved, prop) => {
|
|
@@ -338,7 +343,7 @@ class TheatreSheetObjectSync {
|
|
|
338
343
|
}
|
|
339
344
|
return resolved;
|
|
340
345
|
}, []);
|
|
341
|
-
});
|
|
346
|
+
}, ...(ngDevMode ? [{ debugName: "resolvedProps" }] : []));
|
|
342
347
|
this.propsToAdd = computed(() => {
|
|
343
348
|
const parent = this.parentRef();
|
|
344
349
|
if (!parent)
|
|
@@ -355,7 +360,7 @@ class TheatreSheetObjectSync {
|
|
|
355
360
|
propsToAdd[key] = value;
|
|
356
361
|
});
|
|
357
362
|
return propsToAdd;
|
|
358
|
-
});
|
|
363
|
+
}, ...(ngDevMode ? [{ debugName: "propsToAdd" }] : []));
|
|
359
364
|
this.propsMapping = {};
|
|
360
365
|
effect(() => {
|
|
361
366
|
const propsToAdd = this.propsToAdd();
|
|
@@ -427,10 +432,10 @@ class TheatreSheetObjectSync {
|
|
|
427
432
|
// convert to safe alphanumeric characters without dashes
|
|
428
433
|
.replace(/[^a-zA-Z0-9]/g, ''));
|
|
429
434
|
}
|
|
430
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
431
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.
|
|
435
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TheatreSheetObjectSync, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
436
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.7", type: TheatreSheetObjectSync, isStandalone: true, selector: "[sync]", inputs: { parent: { classPropertyName: "parent", publicName: "sync", isSignal: true, isRequired: true, transformFunction: null }, props: { classPropertyName: "props", publicName: "syncProps", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["sync"], ngImport: i0 }); }
|
|
432
437
|
}
|
|
433
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
438
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TheatreSheetObjectSync, decorators: [{
|
|
434
439
|
type: Directive,
|
|
435
440
|
args: [{ selector: '[sync]', exportAs: 'sync' }]
|
|
436
441
|
}], ctorParameters: () => [] });
|
|
@@ -469,18 +474,18 @@ class TheatreSheetObjectTransform {
|
|
|
469
474
|
});
|
|
470
475
|
}
|
|
471
476
|
constructor() {
|
|
472
|
-
this.label = input();
|
|
473
|
-
this.key = input();
|
|
474
|
-
this.options = input({});
|
|
477
|
+
this.label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : []));
|
|
478
|
+
this.key = input(...(ngDevMode ? [undefined, { debugName: "key" }] : []));
|
|
479
|
+
this.options = input({}, ...(ngDevMode ? [{ debugName: "options" }] : []));
|
|
475
480
|
this.groupRef = viewChild.required('group');
|
|
476
|
-
this.controlsRef = viewChild(NgtsTransformControls);
|
|
481
|
+
this.controlsRef = viewChild(NgtsTransformControls, ...(ngDevMode ? [{ debugName: "controlsRef" }] : []));
|
|
477
482
|
this.theatreSheetObject = inject(TheatreSheetObject$1);
|
|
478
|
-
this.sheetObject = computed(() => this.theatreSheetObject.sheetObject());
|
|
483
|
+
this.sheetObject = computed(() => this.theatreSheetObject.sheetObject(), ...(ngDevMode ? [{ debugName: "sheetObject" }] : []));
|
|
479
484
|
this.studio = inject(THEATRE_STUDIO, { optional: true });
|
|
480
485
|
this.selected = this.theatreSheetObject.selected.asReadonly();
|
|
481
|
-
this.positionTransformer = computed(() => getDefaultTransformer(this.groupRef().nativeElement, 'position', 'position'));
|
|
482
|
-
this.rotationTransformer = computed(() => getDefaultTransformer(this.groupRef().nativeElement, 'rotation', 'rotation'));
|
|
483
|
-
this.scaleTransformer = computed(() => getDefaultTransformer(this.groupRef().nativeElement, 'scale', 'scale'));
|
|
486
|
+
this.positionTransformer = computed(() => getDefaultTransformer(this.groupRef().nativeElement, 'position', 'position'), ...(ngDevMode ? [{ debugName: "positionTransformer" }] : []));
|
|
487
|
+
this.rotationTransformer = computed(() => getDefaultTransformer(this.groupRef().nativeElement, 'rotation', 'rotation'), ...(ngDevMode ? [{ debugName: "rotationTransformer" }] : []));
|
|
488
|
+
this.scaleTransformer = computed(() => getDefaultTransformer(this.groupRef().nativeElement, 'scale', 'scale'), ...(ngDevMode ? [{ debugName: "scaleTransformer" }] : []));
|
|
484
489
|
extend({ Group });
|
|
485
490
|
afterNextRender(() => {
|
|
486
491
|
this.init();
|
|
@@ -554,8 +559,8 @@ class TheatreSheetObjectTransform {
|
|
|
554
559
|
this.theatreSheetObject.addProps({ position, rotation, scale });
|
|
555
560
|
}
|
|
556
561
|
}
|
|
557
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
558
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
562
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TheatreSheetObjectTransform, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
563
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: TheatreSheetObjectTransform, isStandalone: true, selector: "theatre-transform", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "controlsRef", first: true, predicate: NgtsTransformControls, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
559
564
|
@if (selected()) {
|
|
560
565
|
<ngts-transform-controls [object]="$any(group)" [options]="options()" />
|
|
561
566
|
}
|
|
@@ -565,7 +570,7 @@ class TheatreSheetObjectTransform {
|
|
|
565
570
|
</ngt-group>
|
|
566
571
|
`, isInline: true, dependencies: [{ kind: "component", type: NgtsTransformControls, selector: "ngts-transform-controls", inputs: ["object", "options"], outputs: ["change", "mouseDown", "mouseUp", "objectChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
567
572
|
}
|
|
568
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
573
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TheatreSheetObjectTransform, decorators: [{
|
|
569
574
|
type: Component,
|
|
570
575
|
args: [{
|
|
571
576
|
selector: 'theatre-transform',
|
|
@@ -588,8 +593,8 @@ const TheatreSheetObject = [TheatreSheetObject$1, TheatreSheetObjectTransform, T
|
|
|
588
593
|
|
|
589
594
|
class TheatreStudio {
|
|
590
595
|
constructor() {
|
|
591
|
-
this.enabled = input(true, { alias: 'studio', transform: booleanAttribute });
|
|
592
|
-
this.Studio = signal(null);
|
|
596
|
+
this.enabled = input(true, ...(ngDevMode ? [{ debugName: "enabled", alias: 'studio', transform: booleanAttribute }] : [{ alias: 'studio', transform: booleanAttribute }]));
|
|
597
|
+
this.Studio = signal(null, ...(ngDevMode ? [{ debugName: "Studio" }] : []));
|
|
593
598
|
this.studio = this.Studio.asReadonly();
|
|
594
599
|
import('@theatre/studio').then((m) => {
|
|
595
600
|
const Studio = 'default' in m.default ? m.default.default : m.default;
|
|
@@ -612,12 +617,12 @@ class TheatreStudio {
|
|
|
612
617
|
});
|
|
613
618
|
});
|
|
614
619
|
}
|
|
615
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
616
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.
|
|
620
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TheatreStudio, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
621
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.7", type: TheatreStudio, isStandalone: true, selector: "theatre-project[studio]", inputs: { enabled: { classPropertyName: "enabled", publicName: "studio", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
617
622
|
{ provide: THEATRE_STUDIO, useFactory: (studio) => studio.studio, deps: [TheatreStudio] },
|
|
618
623
|
], exportAs: ["studio"], ngImport: i0 }); }
|
|
619
624
|
}
|
|
620
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
625
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TheatreStudio, decorators: [{
|
|
621
626
|
type: Directive,
|
|
622
627
|
args: [{
|
|
623
628
|
selector: 'theatre-project[studio]',
|
|
@@ -636,11 +641,11 @@ const defaultOptions = {
|
|
|
636
641
|
};
|
|
637
642
|
class TheatreSequence {
|
|
638
643
|
constructor() {
|
|
639
|
-
this.options = input(defaultOptions, { alias: 'sequence', transform: mergeInputs(defaultOptions) });
|
|
640
|
-
this.audioOptions = input(undefined, { alias: 'sequenceAudio' });
|
|
641
|
-
this.position = model(0);
|
|
642
|
-
this.playing = model(false);
|
|
643
|
-
this.length = model(0);
|
|
644
|
+
this.options = input(defaultOptions, ...(ngDevMode ? [{ debugName: "options", alias: 'sequence', transform: mergeInputs(defaultOptions) }] : [{ alias: 'sequence', transform: mergeInputs(defaultOptions) }]));
|
|
645
|
+
this.audioOptions = input(undefined, ...(ngDevMode ? [{ debugName: "audioOptions", alias: 'sequenceAudio' }] : [{ alias: 'sequenceAudio' }]));
|
|
646
|
+
this.position = model(0, ...(ngDevMode ? [{ debugName: "position" }] : []));
|
|
647
|
+
this.playing = model(false, ...(ngDevMode ? [{ debugName: "playing" }] : []));
|
|
648
|
+
this.length = model(0, ...(ngDevMode ? [{ debugName: "length" }] : []));
|
|
644
649
|
this.playOptions = omit(this.options, ['autoplay', 'autopause', 'delay', 'autoreset']);
|
|
645
650
|
this.autoplay = pick(this.options, 'autoplay');
|
|
646
651
|
this.autopause = pick(this.options, 'autopause');
|
|
@@ -648,7 +653,7 @@ class TheatreSequence {
|
|
|
648
653
|
this.delay = pick(this.options, 'delay');
|
|
649
654
|
this.project = inject(TheatreProject);
|
|
650
655
|
this.sheet = inject(TheatreSheet$1, { host: true });
|
|
651
|
-
this.sequence = computed(() => this.sheet.sheet().sequence);
|
|
656
|
+
this.sequence = computed(() => this.sheet.sheet().sequence, ...(ngDevMode ? [{ debugName: "sequence" }] : []));
|
|
652
657
|
effect((onCleanup) => {
|
|
653
658
|
const autoplay = untracked(this.autoplay);
|
|
654
659
|
if (!autoplay)
|
|
@@ -720,10 +725,10 @@ class TheatreSequence {
|
|
|
720
725
|
if (isPlaying)
|
|
721
726
|
this.play();
|
|
722
727
|
}
|
|
723
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
724
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.
|
|
728
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TheatreSequence, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
729
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.7", type: TheatreSequence, isStandalone: true, selector: "[sheet][sequence]", inputs: { options: { classPropertyName: "options", publicName: "sequence", isSignal: true, isRequired: false, transformFunction: null }, audioOptions: { classPropertyName: "audioOptions", publicName: "sequenceAudio", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, playing: { classPropertyName: "playing", publicName: "playing", isSignal: true, isRequired: false, transformFunction: null }, length: { classPropertyName: "length", publicName: "length", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { position: "positionChange", playing: "playingChange", length: "lengthChange" }, exportAs: ["sequence"], ngImport: i0 }); }
|
|
725
730
|
}
|
|
726
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
731
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TheatreSequence, decorators: [{
|
|
727
732
|
type: Directive,
|
|
728
733
|
args: [{ selector: '[sheet][sequence]', exportAs: 'sequence' }]
|
|
729
734
|
}], ctorParameters: () => [] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-three-theatre.mjs","sources":["../tmp-esm2022/lib/project.js","../tmp-esm2022/lib/sheet.js","../tmp-esm2022/lib/studio/studio-token.js","../tmp-esm2022/lib/sheet-object/sheet-object.js","../tmp-esm2022/lib/transformers/transformer.js","../tmp-esm2022/lib/transformers/color.js","../tmp-esm2022/lib/transformers/degrees.js","../tmp-esm2022/lib/transformers/euler.js","../tmp-esm2022/lib/transformers/generic.js","../tmp-esm2022/lib/transformers/normalized.js","../tmp-esm2022/lib/transformers/side.js","../tmp-esm2022/lib/transformers/default-transformer.js","../tmp-esm2022/lib/sheet-object/sync.js","../tmp-esm2022/lib/sheet-object/transform.js","../tmp-esm2022/lib/sheet-object/index.js","../tmp-esm2022/lib/studio/studio.js","../tmp-esm2022/lib/sequence.js","../tmp-esm2022/index.js","../tmp-esm2022/angular-three-theatre.js"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { getProject } from '@theatre/core';\nimport * as i0 from \"@angular/core\";\nexport class TheatreProject {\n constructor() {\n this.name = input('default-theatre-project');\n this.config = input({});\n this.project = computed(() => getProject(this.name(), this.config()));\n this.sheets = {};\n effect(() => {\n const project = this.project();\n project.ready.then();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: TheatreProject, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: TheatreProject, isStandalone: true, selector: \"theatre-project\", inputs: { name: { classPropertyName: \"name\", publicName: \"name\", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: \"config\", publicName: \"config\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ng-content />\n\t`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: TheatreProject, decorators: [{\n type: Component,\n args: [{\n selector: 'theatre-project',\n template: `\n\t\t<ng-content />\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdGhlYXRyZS9zcmMvbGliL3Byb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUsVUFBVSxFQUFvQyxNQUFNLGVBQWUsQ0FBQzs7QUFTN0UsTUFBTSxPQUFPLGNBQWM7SUFPMUI7UUFOQSxTQUFJLEdBQUcsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDeEMsV0FBTSxHQUFHLEtBQUssQ0FBaUIsRUFBRSxDQUFDLENBQUM7UUFFbkMsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakUsV0FBTSxHQUFtRCxFQUFFLENBQUM7UUFHM0QsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMvQixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0FaVyxjQUFjO2tHQUFkLGNBQWMsdVVBTGhCOztFQUVUOzsyRkFHVyxjQUFjO2tCQVAxQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0UHJvamVjdCwgdHlwZSBJUHJvamVjdENvbmZpZywgdHlwZSBJU2hlZXQgfSBmcm9tICdAdGhlYXRyZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAndGhlYXRyZS1wcm9qZWN0Jyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmctY29udGVudCAvPlxuXHRgLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGhlYXRyZVByb2plY3Qge1xuXHRuYW1lID0gaW5wdXQoJ2RlZmF1bHQtdGhlYXRyZS1wcm9qZWN0Jyk7XG5cdGNvbmZpZyA9IGlucHV0PElQcm9qZWN0Q29uZmlnPih7fSk7XG5cblx0cHJvamVjdCA9IGNvbXB1dGVkKCgpID0+IGdldFByb2plY3QodGhpcy5uYW1lKCksIHRoaXMuY29uZmlnKCkpKTtcblx0c2hlZXRzOiBSZWNvcmQ8c3RyaW5nLCBbc2hlZXQ6IElTaGVldCwgY291bnQ6IG51bWJlcl0+ID0ge307XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IHByb2plY3QgPSB0aGlzLnByb2plY3QoKTtcblx0XHRcdHByb2plY3QucmVhZHkudGhlbigpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=","import { computed, DestroyRef, Directive, inject, input } from '@angular/core';\nimport { TheatreProject } from './project';\nimport * as i0 from \"@angular/core\";\nexport class TheatreSheet {\n constructor() {\n this.name = input('default-theatre-sheet', {\n transform: (value) => {\n if (value === '')\n return 'default-theatre-sheet';\n return value;\n },\n alias: 'sheet',\n });\n this.project = inject(TheatreProject);\n this.sheet = computed(() => {\n const name = this.name();\n const existing = this.project.sheets[name] || [];\n if (existing[0]) {\n existing[1]++;\n return existing[0];\n }\n const sheet = this.project.project().sheet(name);\n this.project.sheets[name] = [sheet, 1];\n return sheet;\n });\n inject(DestroyRef).onDestroy(() => {\n const existing = this.project.sheets[this.name()];\n if (!existing)\n return;\n if (existing[1] >= 1) {\n existing[1]--;\n }\n if (existing[1] === 0) {\n delete this.project.sheets[this.name()];\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: TheatreSheet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.3\", type: TheatreSheet, isStandalone: true, selector: \"[sheet]\", inputs: { name: { classPropertyName: \"name\", publicName: \"sheet\", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: [\"sheet\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: TheatreSheet, decorators: [{\n type: Directive,\n args: [{ selector: '[sheet]', exportAs: 'sheet' }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3RoZWF0cmUvc3JjL2xpYi9zaGVldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUczQyxNQUFNLE9BQU8sWUFBWTtJQXlCeEI7UUF4QkEsU0FBSSxHQUFHLEtBQUssQ0FBQyx1QkFBdUIsRUFBRTtZQUNyQyxTQUFTLEVBQUUsQ0FBQyxLQUFhLEVBQUUsRUFBRTtnQkFDNUIsSUFBSSxLQUFLLEtBQUssRUFBRTtvQkFBRSxPQUFPLHVCQUF1QixDQUFDO2dCQUNqRCxPQUFPLEtBQUssQ0FBQztZQUNkLENBQUM7WUFDRCxLQUFLLEVBQUUsT0FBTztTQUNkLENBQUMsQ0FBQztRQUVLLFlBQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFekMsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDckIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUVqRCxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNqQixRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDZCxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQixDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdkMsT0FBTyxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztRQUdGLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU87WUFFdEIsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3RCLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2YsQ0FBQztZQUVELElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN2QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3pDLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBdENXLFlBQVk7a0dBQVosWUFBWTs7MkZBQVosWUFBWTtrQkFEeEIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoZWF0cmVQcm9qZWN0IH0gZnJvbSAnLi9wcm9qZWN0JztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW3NoZWV0XScsIGV4cG9ydEFzOiAnc2hlZXQnIH0pXG5leHBvcnQgY2xhc3MgVGhlYXRyZVNoZWV0IHtcblx0bmFtZSA9IGlucHV0KCdkZWZhdWx0LXRoZWF0cmUtc2hlZXQnLCB7XG5cdFx0dHJhbnNmb3JtOiAodmFsdWU6IHN0cmluZykgPT4ge1xuXHRcdFx0aWYgKHZhbHVlID09PSAnJykgcmV0dXJuICdkZWZhdWx0LXRoZWF0cmUtc2hlZXQnO1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH0sXG5cdFx0YWxpYXM6ICdzaGVldCcsXG5cdH0pO1xuXG5cdHByaXZhdGUgcHJvamVjdCA9IGluamVjdChUaGVhdHJlUHJvamVjdCk7XG5cblx0c2hlZXQgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgbmFtZSA9IHRoaXMubmFtZSgpO1xuXHRcdGNvbnN0IGV4aXN0aW5nID0gdGhpcy5wcm9qZWN0LnNoZWV0c1tuYW1lXSB8fCBbXTtcblxuXHRcdGlmIChleGlzdGluZ1swXSkge1xuXHRcdFx0ZXhpc3RpbmdbMV0rKztcblx0XHRcdHJldHVybiBleGlzdGluZ1swXTtcblx0XHR9XG5cblx0XHRjb25zdCBzaGVldCA9IHRoaXMucHJvamVjdC5wcm9qZWN0KCkuc2hlZXQobmFtZSk7XG5cdFx0dGhpcy5wcm9qZWN0LnNoZWV0c1tuYW1lXSA9IFtzaGVldCwgMV07XG5cdFx0cmV0dXJuIHNoZWV0O1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHtcblx0XHRcdGNvbnN0IGV4aXN0aW5nID0gdGhpcy5wcm9qZWN0LnNoZWV0c1t0aGlzLm5hbWUoKV07XG5cdFx0XHRpZiAoIWV4aXN0aW5nKSByZXR1cm47XG5cblx0XHRcdGlmIChleGlzdGluZ1sxXSA+PSAxKSB7XG5cdFx0XHRcdGV4aXN0aW5nWzFdLS07XG5cdFx0XHR9XG5cblx0XHRcdGlmIChleGlzdGluZ1sxXSA9PT0gMCkge1xuXHRcdFx0XHRkZWxldGUgdGhpcy5wcm9qZWN0LnNoZWV0c1t0aGlzLm5hbWUoKV07XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const THEATRE_STUDIO = new InjectionToken('Theatre Studio');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R1ZGlvLXRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90aGVhdHJlL3NyYy9saWIvc3R1ZGlvL3N0dWRpby10b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3ZELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsZ0JBQWdCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgSVN0dWRpbyB9IGZyb20gJ0B0aGVhdHJlL3N0dWRpbyc7XG5cbmV4cG9ydCBjb25zdCBUSEVBVFJFX1NUVURJTyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTaWduYWw8SVN0dWRpbz4+KCdUaGVhdHJlIFN0dWRpbycpO1xuIl19","import { booleanAttribute, computed, DestroyRef, Directive, effect, inject, input, linkedSignal, model, TemplateRef, untracked, ViewContainerRef, } from '@angular/core';\nimport { injectStore } from 'angular-three';\nimport { TheatreSheet } from '../sheet';\nimport { THEATRE_STUDIO } from '../studio/studio-token';\nimport * as i0 from \"@angular/core\";\nexport class TheatreSheetObject {\n constructor() {\n this.key = input.required({ alias: 'sheetObject' });\n this.props = input({}, { alias: 'sheetObjectProps' });\n this.detach = input(false, { transform: booleanAttribute, alias: 'sheetObjectDetach' });\n this.selected = model(false, { alias: 'sheetObjectSelected' });\n this.templateRef = inject(TemplateRef);\n this.vcr = inject(ViewContainerRef);\n this.sheet = inject(TheatreSheet);\n this.studio = inject(THEATRE_STUDIO, { optional: true });\n this.store = injectStore();\n this.originalSheetObject = computed(() => {\n const sheet = this.sheet.sheet();\n return sheet.object(this.key(), untracked(this.props), { reconfigure: true });\n });\n this.sheetObject = linkedSignal(this.originalSheetObject);\n this.values = linkedSignal(() => this.sheetObject().value);\n this.detached = false;\n this.aggregatedProps = {};\n effect(() => {\n this.aggregatedProps = { ...this.aggregatedProps, ...this.props() };\n });\n effect((onCleanup) => {\n const sheetObject = this.sheetObject();\n const cleanup = sheetObject.onValuesChange((newValues) => {\n this.values.set(newValues);\n this.store.snapshot.invalidate();\n });\n onCleanup(cleanup);\n });\n effect((onCleanup) => {\n const studio = this.studio?.();\n if (!studio)\n return;\n const sheetObject = this.sheetObject();\n const cleanup = studio.onSelectionChange((selection) => {\n this.selected.set(selection.includes(sheetObject));\n });\n onCleanup(cleanup);\n });\n effect((onCleanup) => {\n const view = this.vcr.createEmbeddedView(this.templateRef, {\n select: this.select.bind(this),\n deselect: this.deselect.bind(this),\n sheetObject: this.sheetObject.asReadonly(),\n values: this.values.asReadonly(),\n });\n view.detectChanges();\n onCleanup(() => {\n view.destroy();\n });\n });\n inject(DestroyRef).onDestroy(() => {\n if (this.detach()) {\n this.detached = true;\n this.sheet.sheet().detachObject(this.key());\n }\n });\n }\n update() {\n if (this.detached)\n return;\n const [sheet, key] = [untracked(this.sheet.sheet), untracked(this.key)];\n sheet.detachObject(key);\n this.sheetObject.set(sheet.object(key, this.aggregatedProps, { reconfigure: true }));\n }\n addProps(props) {\n this.aggregatedProps = { ...this.aggregatedProps, ...props };\n this.update();\n }\n removeProps(props) {\n const [detach, sheet, key] = [untracked(this.detach), untracked(this.sheet.sheet), untracked(this.key)];\n // remove props from sheet object\n props.forEach((prop) => {\n delete this.aggregatedProps[prop];\n });\n // if there are no more props, detach sheet object\n if (Object.keys(this.aggregatedProps).length === 0) {\n // detach sheet object\n if (detach) {\n sheet.detachObject(key);\n }\n }\n else {\n // update sheet object (reconfigure)\n this.update();\n }\n }\n select() {\n const studio = this.studio?.();\n if (!studio)\n return;\n studio.setSelection([this.sheetObject()]);\n }\n deselect() {\n const studio = this.studio?.();\n if (!studio)\n return;\n if (studio.selection.includes(this.sheetObject())) {\n studio.setSelection([]);\n }\n }\n static ngTemplateContextGuard(_, ctx) {\n return true;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: TheatreSheetObject, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.3\", type: TheatreSheetObject, isStandalone: true, selector: \"ng-template[sheetObject]\", inputs: { key: { classPropertyName: \"key\", publicName: \"sheetObject\", isSignal: true, isRequired: true, transformFunction: null }, props: { classPropertyName: \"props\", publicName: \"sheetObjectProps\", isSignal: true, isRequired: false, transformFunction: null }, detach: { classPropertyName: \"detach\", publicName: \"sheetObjectDetach\", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: \"selected\", publicName: \"sheetObjectSelected\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: \"sheetObjectSelectedChange\" }, exportAs: [\"sheetObject\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: TheatreSheetObject, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[sheetObject]', exportAs: 'sheetObject' }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXQtb2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90aGVhdHJlL3NyYy9saWIvc2hlZXQtb2JqZWN0L3NoZWV0LW9iamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLFlBQVksRUFDWixLQUFLLEVBQ0wsV0FBVyxFQUNYLFNBQVMsRUFDVCxnQkFBZ0IsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFHeEQsTUFBTSxPQUFPLGtCQUFrQjtJQXNCOUI7UUFyQkEsUUFBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQVMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUN2RCxVQUFLLEdBQUcsS0FBSyxDQUFnQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBQ2hGLFdBQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7UUFDbkYsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBRTNELGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xDLFFBQUcsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMvQixVQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVks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LEdBQVk7UUFPWixPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7OEdBOUhXLGtCQUFrQjtrR0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUQ5QixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLDBCQUEwQixFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRib29sZWFuQXR0cmlidXRlLFxuXHRjb21wdXRlZCxcblx0RGVzdHJveVJlZixcblx0RGlyZWN0aXZlLFxuXHRlZmZlY3QsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdGxpbmtlZFNpZ25hbCxcblx0bW9kZWwsXG5cdFRlbXBsYXRlUmVmLFxuXHR1bnRyYWNrZWQsXG5cdFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW5rbm93blNob3J0aGFuZENvbXBvdW5kUHJvcHMgfSBmcm9tICdAdGhlYXRyZS9jb3JlJztcbmltcG9ydCB7IGluamVjdFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBUaGVhdHJlU2hlZXQgfSBmcm9tICcuLi9zaGVldCc7XG5pbXBvcnQgeyBUSEVBVFJFX1NUVURJTyB9IGZyb20gJy4uL3N0dWRpby9zdHVkaW8tdG9rZW4nO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtzaGVldE9iamVjdF0nLCBleHBvcnRBczogJ3NoZWV0T2JqZWN0JyB9KVxuZXhwb3J0IGNsYXNzIFRoZWF0cmVTaGVldE9iamVjdCB7XG5cdGtleSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oeyBhbGlhczogJ3NoZWV0T2JqZWN0JyB9KTtcblx0cHJvcHMgPSBpbnB1dDxVbmtub3duU2hvcnRoYW5kQ29tcG91bmRQcm9wcz4oe30sIHsgYWxpYXM6ICdzaGVldE9iamVjdFByb3BzJyB9KTtcblx0ZGV0YWNoID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLCBhbGlhczogJ3NoZWV0T2JqZWN0RGV0YWNoJyB9KTtcblx0c2VsZWN0ZWQgPSBtb2RlbDxib29sZWFuPihmYWxzZSwgeyBhbGlhczogJ3NoZWV0T2JqZWN0U2VsZWN0ZWQnIH0pO1xuXG5cdHByaXZhdGUgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWYpO1xuXHRwcml2YXRlIHZjciA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblx0cHJpdmF0ZSBzaGVldCA9IGluamVjdChUaGVhdHJlU2hlZXQpO1xuXHRwcml2YXRlIHN0dWRpbyA9IGluamVjdChUSEVBVFJFX1NUVURJTywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cblx0cHJpdmF0ZSBvcmlnaW5hbFNoZWV0T2JqZWN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHNoZWV0ID0gdGhpcy5zaGVldC5zaGVldCgpO1xuXHRcdHJldHVybiBzaGVldC5vYmplY3QodGhpcy5rZXkoKSwgdW50cmFja2VkKHRoaXMucHJvcHMpLCB7IHJlY29uZmlndXJlOiB0cnVlIH0pO1xuXHR9KTtcblx0c2hlZXRPYmplY3QgPSBsaW5rZWRTaWduYWwodGhpcy5vcmlnaW5hbFNoZWV0T2JqZWN0KTtcblx0dmFsdWVzID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMuc2hlZXRPYmplY3QoKS52YWx1ZSk7XG5cblx0cHJpdmF0ZSBkZXRhY2hlZCA9IGZhbHNlO1xuXHRwcml2YXRlIGFnZ3JlZ2F0ZWRQcm9wczogVW5rbm93blNob3J0aGFuZENvbXBvdW5kUHJvcHMgPSB7fTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0dGhpcy5hZ2dyZWdhdGVkUHJvcHMgPSB7IC4uLnRoaXMuYWdncmVnYXRlZFByb3BzLCAuLi50aGlzLnByb3BzKCkgfTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBzaGVldE9iamVjdCA9IHRoaXMuc2hlZXRPYmplY3QoKTtcblx0XHRcdGNvbnN0IGNsZWFudXAgPSBzaGVldE9iamVjdC5vblZhbHVlc0NoYW5nZSgobmV3VmFsdWVzKSA9PiB7XG5cdFx0XHRcdHRoaXMudmFsdWVzLnNldChuZXdWYWx1ZXMpO1xuXHRcdFx0XHR0aGlzLnN0b3JlLnNuYXBzaG90LmludmFsaWRhdGUoKTtcblx0XHRcdH0pO1xuXHRcdFx0b25DbGVhbnVwKGNsZWFudXApO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IHN0dWRpbyA9IHRoaXMuc3R1ZGlvPy4oKTtcblx0XHRcdGlmICghc3R1ZGlvKSByZXR1cm47XG5cblx0XHRcdGNvbnN0IHNoZWV0T2JqZWN0ID0gdGhpcy5zaGVldE9iamVjdCgpO1xuXHRcdFx0Y29uc3QgY2xlYW51cCA9IHN0dWRpby5vblNlbGVjdGlvbkNoYW5nZSgoc2VsZWN0aW9uKSA9PiB7XG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWQuc2V0KHNlbGVjdGlvbi5pbmNsdWRlcyhzaGVldE9iamVjdCkpO1xuXHRcdFx0fSk7XG5cdFx0XHRvbkNsZWFudXAoY2xlYW51cCk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgdmlldyA9IHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmLCB7XG5cdFx0XHRcdHNlbGVjdDogdGhpcy5zZWxlY3QuYmluZCh0aGlzKSxcblx0XHRcdFx0ZGVzZWxlY3Q6IHRoaXMuZGVzZWxlY3QuYmluZCh0aGlzKSxcblx0XHRcdFx0c2hlZXRPYmplY3Q6IHRoaXMuc2hlZXRPYmplY3QuYXNSZWFkb25seSgpLFxuXHRcdFx0XHR2YWx1ZXM6IHRoaXMudmFsdWVzLmFzUmVhZG9ubHkoKSxcblx0XHRcdH0pO1xuXHRcdFx0dmlldy5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHR2aWV3LmRlc3Ryb3koKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5kZXRhY2goKSkge1xuXHRcdFx0XHR0aGlzLmRldGFjaGVkID0gdHJ1ZTtcblx0XHRcdFx0dGhpcy5zaGVldC5zaGVldCgpLmRldGFjaE9iamVjdCh0aGlzLmtleSgpKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHVwZGF0ZSgpIHtcblx0XHRpZiAodGhpcy5kZXRhY2hlZCkgcmV0dXJuO1xuXG5cdFx0Y29uc3QgW3NoZWV0LCBrZXldID0gW3VudHJhY2tlZCh0aGlzLnNoZWV0LnNoZWV0KSwgdW50cmFja2VkKHRoaXMua2V5KV07XG5cdFx0c2hlZXQuZGV0YWNoT2JqZWN0KGtleSk7XG5cdFx0dGhpcy5zaGVldE9iamVjdC5zZXQoc2hlZXQub2JqZWN0KGtleSwgdGhpcy5hZ2dyZWdhdGVkUHJvcHMsIHsgcmVjb25maWd1cmU6IHRydWUgfSkpO1xuXHR9XG5cblx0YWRkUHJvcHMocHJvcHM6IFVua25vd25TaG9ydGhhbmRDb21wb3VuZFByb3BzKSB7XG5cdFx0dGhpcy5hZ2dyZWdhdGVkUHJvcHMgPSB7IC4uLnRoaXMuYWdncmVnYXRlZFByb3BzLCAuLi5wcm9wcyB9O1xuXHRcdHRoaXMudXBkYXRlKCk7XG5cdH1cblxuXHRyZW1vdmVQcm9wcyhwcm9wczogc3RyaW5nW10pIHtcblx0XHRjb25zdCBbZGV0YWNoLCBzaGVldCwga2V5XSA9IFt1bnRyYWNrZWQodGhpcy5kZXRhY2gpLCB1bnRyYWNrZWQodGhpcy5zaGVldC5zaGVldCksIHVudHJhY2tlZCh0aGlzLmtleSldO1xuXG5cdFx0Ly8gcmVtb3ZlIHByb3BzIGZyb20gc2hlZXQgb2JqZWN0XG5cdFx0cHJvcHMuZm9yRWFjaCgocHJvcCkgPT4ge1xuXHRcdFx0ZGVsZXRlIHRoaXMuYWdncmVnYXRlZFByb3BzW3Byb3BdO1xuXHRcdH0pO1xuXG5cdFx0Ly8gaWYgdGhlcmUgYXJlIG5vIG1vcmUgcHJvcHMsIGRldGFjaCBzaGVldCBvYmplY3Rcblx0XHRpZiAoT2JqZWN0LmtleXModGhpcy5hZ2dyZWdhdGVkUHJvcHMpLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0Ly8gZGV0YWNoIHNoZWV0IG9iamVjdFxuXHRcdFx0aWYgKGRldGFjaCkge1xuXHRcdFx0XHRzaGVldC5kZXRhY2hPYmplY3Qoa2V5KTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gdXBkYXRlIHNoZWV0IG9iamVjdCAocmVjb25maWd1cmUpXG5cdFx0XHR0aGlzLnVwZGF0ZSgpO1xuXHRcdH1cblx0fVxuXG5cdHNlbGVjdCgpIHtcblx0XHRjb25zdCBzdHVkaW8gPSB0aGlzLnN0dWRpbz8uKCk7XG5cdFx0aWYgKCFzdHVkaW8pIHJldHVybjtcblx0XHRzdHVkaW8uc2V0U2VsZWN0aW9uKFt0aGlzLnNoZWV0T2JqZWN0KCldKTtcblx0fVxuXG5cdGRlc2VsZWN0KCkge1xuXHRcdGNvbnN0IHN0dWRpbyA9IHRoaXMuc3R1ZGlvPy4oKTtcblx0XHRpZiAoIXN0dWRpbykgcmV0dXJuO1xuXG5cdFx0aWYgKHN0dWRpby5zZWxlY3Rpb24uaW5jbHVkZXModGhpcy5zaGVldE9iamVjdCgpKSkge1xuXHRcdFx0c3R1ZGlvLnNldFNlbGVjdGlvbihbXSk7XG5cdFx0fVxuXHR9XG5cblx0c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoXG5cdFx0XzogVGhlYXRyZVNoZWV0T2JqZWN0LFxuXHRcdGN0eDogdW5rbm93bixcblx0KTogY3R4IGlzIHtcblx0XHRzZWxlY3Q6IFRoZWF0cmVTaGVldE9iamVjdFsnc2VsZWN0J107XG5cdFx0ZGVzZWxlY3Q6IFRoZWF0cmVTaGVldE9iamVjdFsnZGVzZWxlY3QnXTtcblx0XHRzaGVldE9iamVjdDogUmV0dXJuVHlwZTxUaGVhdHJlU2hlZXRPYmplY3RbJ3NoZWV0T2JqZWN0J11bJ2FzUmVhZG9ubHknXT47XG5cdFx0dmFsdWVzOiBSZXR1cm5UeXBlPFRoZWF0cmVTaGVldE9iamVjdFsndmFsdWVzJ11bJ2FzUmVhZG9ubHknXT47XG5cdH0ge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG4iXX0=","export function createTransformer(transformer) {\n return transformer;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RoZWF0cmUvc3JjL2xpYi90cmFuc2Zvcm1lcnMvdHJhbnNmb3JtZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0JBLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxXQUErQjtJQUNoRSxPQUFPLFdBQVcsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyB0eXBlcyB9IGZyb20gJ0B0aGVhdHJlL2NvcmUnO1xuXG4vKipcbiBodHRwczovL2dpdGh1Yi5jb20vdGhyZWx0ZS90aHJlbHRlL2Jsb2IvbWFpbi9wYWNrYWdlcy90aGVhdHJlL3NyYy9saWIvc2hlZXRPYmplY3QvdHJhbnNmb21lcnMvdHlwZXMudHNcbiAqL1xuZXhwb3J0IHR5cGUgVGhlYXRyZVRyYW5zZm9ybWVyPFZhbHVlID0gYW55LCBUcmFuc2Zvcm1lZFZhbHVlID0gYW55PiA9IHtcblx0LyoqXG5cdCAqIFRoZSBgdHJhbnNmb3JtYCBmdW5jdGlvbiBpcyB1c2VkIHRvIHRyYW5zZm9ybSB0aGUgdmFsdWUgb2YgYSBjZXJ0YWluXG5cdCAqIFRocmVlLmpzIG9iamVjdHMgcHJvZXJ0eSB0byBhIHByb3BlcnR5IHRoYXQgVGhlYXRyZS5qcyBjYW4gdXNlIGluIGFuXG5cdCAqIGBJU2hlZXRPYmplY3RgLiBUbyBlbnN1cmUgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSByZXN0IG9mIHRoZSBwYWNrYWdlLCB0aGVcblx0ICogcmV0dXJuIHZhbHVlIG11c3QgYmUgYW55IG9uZSBvZiB0aGUgZnVuY3Rpb25zIGF2YWlsYWJsZSBhdCBUaGVhdHJlLmpzJ1xuXHQgKiBgdHlwZXNgLlxuXHQgKi9cblx0dHJhbnNmb3JtOiAodmFsdWU6IFZhbHVlKSA9PiBSZXR1cm5UeXBlPCh0eXBlb2YgdHlwZXMpW2tleW9mIHR5cGVvZiB0eXBlc10+O1xuXHQvKipcblx0ICogVGhlIGBhcHBseWAgZnVuY3Rpb24gaXMgdXNlZCB0byBhcHBseSB0aGUgdmFsdWUgdG8gdGhlIHRhcmdldC4gYHRhcmdldGAgaXNcblx0ICogdGhlIHBhcmVudCBvYmplY3Qgb2YgdGhlIHByb3BlcnR5ICh1c3VhbGx5IGEgVGhyZWUuanMgb2JqZWN0KSwgYHBhdGhgIGlzXG5cdCAqIHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSBhbmQgYHZhbHVlYCBpcyB0aGUgdmFsdWUgdG8gYXBwbHkuXG5cdCAqL1xuXHRhcHBseTogKHRhcmdldDogYW55LCBwcm9wZXJ0eTogc3RyaW5nLCB2YWx1ZTogVHJhbnNmb3JtZWRWYWx1ZSkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmFuc2Zvcm1lcih0cmFuc2Zvcm1lcjogVGhlYXRyZVRyYW5zZm9ybWVyKSB7XG5cdHJldHVybiB0cmFuc2Zvcm1lcjtcbn1cbiJdfQ==","import { types } from '@theatre/core';\nimport * as THREE from 'three';\nimport { createTransformer } from './transformer';\nconst _color = new THREE.Color();\nexport const color = createTransformer({\n transform(value) {\n value.getRGB(_color, THREE.SRGBColorSpace);\n return types.rgba({ r: _color.r, g: _color.g, b: _color.b, a: 1 });\n },\n apply(target, path, value) {\n target[path].setRGB(value.r, value.g, value.b, THREE.SRGBColorSpace);\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RoZWF0cmUvc3JjL2xpYi90cmFuc2Zvcm1lcnMvY29sb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7QUFFakMsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDO0lBQ3RDLFNBQVMsQ0FBQyxLQUFLO1FBQ2QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFDRCxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLO1FBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7Q0FDRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlcyB9IGZyb20gJ0B0aGVhdHJlL2NvcmUnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgY3JlYXRlVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVyJztcblxuY29uc3QgX2NvbG9yID0gbmV3IFRIUkVFLkNvbG9yKCk7XG5cbmV4cG9ydCBjb25zdCBjb2xvciA9IGNyZWF0ZVRyYW5zZm9ybWVyKHtcblx0dHJhbnNmb3JtKHZhbHVlKSB7XG5cdFx0dmFsdWUuZ2V0UkdCKF9jb2xvciwgVEhSRUUuU1JHQkNvbG9yU3BhY2UpO1xuXHRcdHJldHVybiB0eXBlcy5yZ2JhKHsgcjogX2NvbG9yLnIsIGc6IF9jb2xvci5nLCBiOiBfY29sb3IuYiwgYTogMSB9KTtcblx0fSxcblx0YXBwbHkodGFyZ2V0LCBwYXRoLCB2YWx1ZSkge1xuXHRcdHRhcmdldFtwYXRoXS5zZXRSR0IodmFsdWUuciwgdmFsdWUuZywgdmFsdWUuYiwgVEhSRUUuU1JHQkNvbG9yU3BhY2UpO1xuXHR9LFxufSk7XG4iXX0=","import { types } from '@theatre/core';\nimport * as THREE from 'three';\nimport { createTransformer } from './transformer';\nexport const degrees = createTransformer({\n transform(target) {\n return types.number(target * THREE.MathUtils.RAD2DEG);\n },\n apply(target, path, value) {\n target[path] = value * THREE.MathUtils.DEG2RAD;\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVncmVlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGhlYXRyZS9zcmMvbGliL3RyYW5zZm9ybWVycy9kZWdyZWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQztJQUN4QyxTQUFTLENBQUMsTUFBTTtRQUNmLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBQ0QsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSztRQUN4QixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO0lBQ2hELENBQUM7Q0FDRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlcyB9IGZyb20gJ0B0aGVhdHJlL2NvcmUnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgY3JlYXRlVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVyJztcblxuZXhwb3J0IGNvbnN0IGRlZ3JlZXMgPSBjcmVhdGVUcmFuc2Zvcm1lcih7XG5cdHRyYW5zZm9ybSh0YXJnZXQpIHtcblx0XHRyZXR1cm4gdHlwZXMubnVtYmVyKHRhcmdldCAqIFRIUkVFLk1hdGhVdGlscy5SQUQyREVHKTtcblx0fSxcblx0YXBwbHkodGFyZ2V0LCBwYXRoLCB2YWx1ZSkge1xuXHRcdHRhcmdldFtwYXRoXSA9IHZhbHVlICogVEhSRUUuTWF0aFV0aWxzLkRFRzJSQUQ7XG5cdH0sXG59KTtcbiJdfQ==","import { types } from '@theatre/core';\nimport * as THREE from 'three';\nimport { createTransformer } from './transformer';\nexport const euler = createTransformer({\n transform(value) {\n return types.compound({\n x: value.x * THREE.MathUtils.RAD2DEG,\n y: value.y * THREE.MathUtils.RAD2DEG,\n z: value.z * THREE.MathUtils.RAD2DEG,\n });\n },\n apply(target, path, value) {\n target[path].x = value.x * THREE.MathUtils.DEG2RAD;\n target[path].y = value.y * THREE.MathUtils.DEG2RAD;\n target[path].z = value.z * THREE.MathUtils.DEG2RAD;\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RoZWF0cmUvc3JjL2xpYi90cmFuc2Zvcm1lcnMvZXVsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEQsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDO0lBQ3RDLFNBQVMsQ0FBQyxLQUFLO1FBQ2QsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQ3JCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTztZQUNwQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU87WUFDcEMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPO1NBQ3BDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFDRCxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLO1FBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUNuRCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDbkQsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO0lBQ3BELENBQUM7Q0FDRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlcyB9IGZyb20gJ0B0aGVhdHJlL2NvcmUnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgY3JlYXRlVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVyJztcblxuZXhwb3J0IGNvbnN0IGV1bGVyID0gY3JlYXRlVHJhbnNmb3JtZXIoe1xuXHR0cmFuc2Zvcm0odmFsdWUpIHtcblx0XHRyZXR1cm4gdHlwZXMuY29tcG91bmQoe1xuXHRcdFx0eDogdmFsdWUueCAqIFRIUkVFLk1hdGhVdGlscy5SQUQyREVHLFxuXHRcdFx0eTogdmFsdWUueSAqIFRIUkVFLk1hdGhVdGlscy5SQUQyREVHLFxuXHRcdFx0ejogdmFsdWUueiAqIFRIUkVFLk1hdGhVdGlscy5SQUQyREVHLFxuXHRcdH0pO1xuXHR9LFxuXHRhcHBseSh0YXJnZXQsIHBhdGgsIHZhbHVlKSB7XG5cdFx0dGFyZ2V0W3BhdGhdLnggPSB2YWx1ZS54ICogVEhSRUUuTWF0aFV0aWxzLkRFRzJSQUQ7XG5cdFx0dGFyZ2V0W3BhdGhdLnkgPSB2YWx1ZS55ICogVEhSRUUuTWF0aFV0aWxzLkRFRzJSQUQ7XG5cdFx0dGFyZ2V0W3BhdGhdLnogPSB2YWx1ZS56ICogVEhSRUUuTWF0aFV0aWxzLkRFRzJSQUQ7XG5cdH0sXG59KTtcbiJdfQ==","import { types } from '@theatre/core';\nimport { createTransformer } from './transformer';\nexport const generic = createTransformer({\n transform(value) {\n if (typeof value === 'number') {\n return types.number(value === Infinity ? Number.MAX_VALUE : value);\n }\n else if (typeof value === 'string') {\n return types.string(value);\n }\n else if (typeof value === 'boolean') {\n return types.boolean(value);\n }\n return types.compound({ ...value });\n },\n apply(target, path, value) {\n if (target[path] !== null && typeof target[path] === 'object') {\n Object.assign(target[path], value);\n }\n else {\n target[path] = value;\n }\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGhlYXRyZS9zcmMvbGliL3RyYW5zZm9ybWVycy9nZW5lcmljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQztJQUN4QyxTQUFTLENBQUMsS0FBSztRQUNkLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0IsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BFLENBQUM7YUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixDQUFDO2FBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2QyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSztRQUN4QixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQzthQUFNLENBQUM7WUFDUCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLENBQUM7SUFDRixDQUFDO0NBQ0QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZXMgfSBmcm9tICdAdGhlYXRyZS9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZVRyYW5zZm9ybWVyIH0gZnJvbSAnLi90cmFuc2Zvcm1lcic7XG5cbmV4cG9ydCBjb25zdCBnZW5lcmljID0gY3JlYXRlVHJhbnNmb3JtZXIoe1xuXHR0cmFuc2Zvcm0odmFsdWUpIHtcblx0XHRpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuXHRcdFx0cmV0dXJuIHR5cGVzLm51bWJlcih2YWx1ZSA9PT0gSW5maW5pdHkgPyBOdW1iZXIuTUFYX1ZBTFVFIDogdmFsdWUpO1xuXHRcdH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuXHRcdFx0cmV0dXJuIHR5cGVzLnN0cmluZyh2YWx1ZSk7XG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuXHRcdFx0cmV0dXJuIHR5cGVzLmJvb2xlYW4odmFsdWUpO1xuXHRcdH1cblx0XHRyZXR1cm4gdHlwZXMuY29tcG91bmQoeyAuLi52YWx1ZSB9KTtcblx0fSxcblx0YXBwbHkodGFyZ2V0LCBwYXRoLCB2YWx1ZSkge1xuXHRcdGlmICh0YXJnZXRbcGF0aF0gIT09IG51bGwgJiYgdHlwZW9mIHRhcmdldFtwYXRoXSA9PT0gJ29iamVjdCcpIHtcblx0XHRcdE9iamVjdC5hc3NpZ24odGFyZ2V0W3BhdGhdLCB2YWx1ZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRhcmdldFtwYXRoXSA9IHZhbHVlO1xuXHRcdH1cblx0fSxcbn0pO1xuIl19","import { types } from '@theatre/core';\nimport { createTransformer } from './transformer';\nexport const normalized = createTransformer({\n transform(value) {\n return types.number(value, { range: [0, 1] });\n },\n apply(target, path, value) {\n target[path] = value;\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGhlYXRyZS9zcmMvbGliL3RyYW5zZm9ybWVycy9ub3JtYWxpemVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQztJQUMzQyxTQUFTLENBQUMsS0FBSztRQUNkLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDRCxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLO1FBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztDQUNELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGVzIH0gZnJvbSAnQHRoZWF0cmUvY29yZSc7XG5pbXBvcnQgeyBjcmVhdGVUcmFuc2Zvcm1lciB9IGZyb20gJy4vdHJhbnNmb3JtZXInO1xuXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplZCA9IGNyZWF0ZVRyYW5zZm9ybWVyKHtcblx0dHJhbnNmb3JtKHZhbHVlKSB7XG5cdFx0cmV0dXJuIHR5cGVzLm51bWJlcih2YWx1ZSwgeyByYW5nZTogWzAsIDFdIH0pO1xuXHR9LFxuXHRhcHBseSh0YXJnZXQsIHBhdGgsIHZhbHVlKSB7XG5cdFx0dGFyZ2V0W3BhdGhdID0gdmFsdWU7XG5cdH0sXG59KTtcbiJdfQ==","import { types } from '@theatre/core';\nimport * as THREE from 'three';\nimport { createTransformer } from './transformer';\nexport const side = createTransformer({\n transform(value) {\n // TODO: fix this type\n return types.stringLiteral(value === THREE.FrontSide ? 'f' : value === THREE.BackSide ? 'b' : 'd', { f: 'Front', b: 'Back', d: 'Double' }, { as: 'switch' });\n },\n apply(target, path, value) {\n target[path] = value === 'f' ? THREE.FrontSide : value === 'b' ? THREE.BackSide : THREE.DoubleSide;\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGhlYXRyZS9zcmMvbGliL3RyYW5zZm9ybWVycy9zaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQztJQUNyQyxTQUFTLENBQUMsS0FBSztRQUNkLHNCQUFzQjtRQUN0QixPQUFPLEtBQUssQ0FBQyxhQUFhLENBQ3pCLEtBQUssS0FBSyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFDdEUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUN0QyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FDVCxDQUFDO0lBQ1YsQ0FBQztJQUNELEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUs7UUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDcEcsQ0FBQztDQUNELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGVzIH0gZnJvbSAnQHRoZWF0cmUvY29yZSc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBjcmVhdGVUcmFuc2Zvcm1lciB9IGZyb20gJy4vdHJhbnNmb3JtZXInO1xuXG5leHBvcnQgY29uc3Qgc2lkZSA9IGNyZWF0ZVRyYW5zZm9ybWVyKHtcblx0dHJhbnNmb3JtKHZhbHVlKSB7XG5cdFx0Ly8gVE9ETzogZml4IHRoaXMgdHlwZVxuXHRcdHJldHVybiB0eXBlcy5zdHJpbmdMaXRlcmFsKFxuXHRcdFx0dmFsdWUgPT09IFRIUkVFLkZyb250U2lkZSA/ICdmJyA6IHZhbHVlID09PSBUSFJFRS5CYWNrU2lkZSA/ICdiJyA6ICdkJyxcblx0XHRcdHsgZjogJ0Zyb250JywgYjogJ0JhY2snLCBkOiAnRG91YmxlJyB9LFxuXHRcdFx0eyBhczogJ3N3aXRjaCcgfSxcblx0XHQpIGFzIGFueTtcblx0fSxcblx0YXBwbHkodGFyZ2V0LCBwYXRoLCB2YWx1ZSkge1xuXHRcdHRhcmdldFtwYXRoXSA9IHZhbHVlID09PSAnZicgPyBUSFJFRS5Gcm9udFNpZGUgOiB2YWx1ZSA9PT0gJ2InID8gVEhSRUUuQmFja1NpZGUgOiBUSFJFRS5Eb3VibGVTaWRlO1xuXHR9LFxufSk7XG4iXX0=","import { color } from './color';\nimport { degrees } from './degrees';\nimport { euler } from './euler';\nimport { generic } from './generic';\nimport { normalized } from './normalized';\nimport { side } from './side';\nfunction isFullOrEndingPattern(fullPropertyPath, pattern) {\n return fullPropertyPath.endsWith(`.${pattern}`) || fullPropertyPath === pattern;\n}\nexport function getDefaultTransformer(target, path, fullPropertyPath) {\n const property = target[path];\n if (property.isEuler)\n return euler;\n if (property.isColor)\n return color;\n if (isFullOrEndingPattern(fullPropertyPath, 'rotation.x') ||\n isFullOrEndingPattern(fullPropertyPath, 'rotation.y') ||\n isFullOrEndingPattern(fullPropertyPath, 'rotation.z') ||\n (target.isEuler && (fullPropertyPath === 'x' || fullPropertyPath === 'y' || fullPropertyPath === 'z'))) {\n return degrees;\n }\n if (isFullOrEndingPattern(fullPropertyPath, 'r'))\n return normalized;\n if (isFullOrEndingPattern(fullPropertyPath, 'g'))\n return normalized;\n if (isFullOrEndingPattern(fullPropertyPath, 'b'))\n return normalized;\n if (isFullOrEndingPattern(fullPropertyPath, 'opacity'))\n return normalized;\n if (isFullOrEndingPattern(fullPropertyPath, 'roughness'))\n return normalized;\n if (isFullOrEndingPattern(fullPropertyPath, 'metalness'))\n return normalized;\n if (isFullOrEndingPattern(fullPropertyPath, 'transmission'))\n return normalized;\n if (isFullOrEndingPattern(fullPropertyPath, 'side'))\n return side;\n return generic;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC10cmFuc2Zvcm1lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGhlYXRyZS9zcmMvbGliL3RyYW5zZm9ybWVycy9kZWZhdWx0LXRyYW5zZm9ybWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTlCLFNBQVMscUJBQXFCLENBQUMsZ0JBQXdCLEVBQUUsT0FBZTtJQUN2RSxPQUFPLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDLElBQUksZ0JBQWdCLEtBQUssT0FBTyxDQUFDO0FBQ2pGLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsTUFBVyxFQUFFLElBQVksRUFBRSxnQkFBd0I7SUFDeEYsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTlCLElBQUksUUFBUSxDQUFDLE9BQU87UUFBRSxPQUFPLEtBQUssQ0FBQztJQUNuQyxJQUFJLFFBQVEsQ0FBQyxPQUFPO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFFbkMsSUFDQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLENBQUM7UUFDckQscUJBQXFCLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO1FBQ3JELHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQztRQUNyRCxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxHQUFHLElBQUksZ0JBQWdCLEtBQUssR0FBRyxJQUFJLGdCQUFnQixLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQ3JHLENBQUM7UUFDRixPQUFPLE9BQU8sQ0FBQztJQUNoQixDQUFDO0lBRUQsSUFBSSxxQkFBcUIsQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUM7UUFBRSxPQUFPLFVBQVUsQ0FBQztJQUNwRSxJQUFJLHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQztRQUFFLE9BQU8sVUFBVSxDQUFDO0lBQ3BFLElBQUkscUJBQXFCLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDO1FBQUUsT0FBTyxVQUFVLENBQUM7SUFFcEUsSUFBSSxxQkFBcUIsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLENBQUM7UUFBRSxPQUFPLFVBQVUsQ0FBQztJQUMxRSxJQUFJLHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLFdBQVcsQ0FBQztRQUFFLE9BQU8sVUFBVSxDQUFDO0lBQzVFLElBQUkscUJBQXFCLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDO1FBQUUsT0FBTyxVQUFVLENBQUM7SUFDNUUsSUFBSSxxQkFBcUIsQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLENBQUM7UUFBRSxPQUFPLFVBQVUsQ0FBQztJQUUvRSxJQUFJLHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRWpFLE9BQU8sT0FBTyxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2xvciB9IGZyb20gJy4vY29sb3InO1xuaW1wb3J0IHsgZGVncmVlcyB9IGZyb20gJy4vZGVncmVlcyc7XG5pbXBvcnQgeyBldWxlciB9IGZyb20gJy4vZXVsZXInO1xuaW1wb3J0IHsgZ2VuZXJpYyB9IGZyb20gJy4vZ2VuZXJpYyc7XG5pbXBvcnQgeyBub3JtYWxpemVkIH0gZnJvbSAnLi9ub3JtYWxpemVkJztcbmltcG9ydCB7IHNpZGUgfSBmcm9tICcuL3NpZGUnO1xuXG5mdW5jdGlvbiBpc0Z1bGxPckVuZGluZ1BhdHRlcm4oZnVsbFByb3BlcnR5UGF0aDogc3RyaW5nLCBwYXR0ZXJuOiBzdHJpbmcpIHtcblx0cmV0dXJuIGZ1bGxQcm9wZXJ0eVBhdGguZW5kc1dpdGgoYC4ke3BhdHRlcm59YCkgfHwgZnVsbFByb3BlcnR5UGF0aCA9PT0gcGF0dGVybjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRUcmFuc2Zvcm1lcih0YXJnZXQ6IGFueSwgcGF0aDogc3RyaW5nLCBmdWxsUHJvcGVydHlQYXRoOiBzdHJpbmcpIHtcblx0Y29uc3QgcHJvcGVydHkgPSB0YXJnZXRbcGF0aF07XG5cblx0aWYgKHByb3BlcnR5LmlzRXVsZXIpIHJldHVybiBldWxlcjtcblx0aWYgKHByb3BlcnR5LmlzQ29sb3IpIHJldHVybiBjb2xvcjtcblxuXHRpZiAoXG5cdFx0aXNGdWxsT3JFbmRpbmdQYXR0ZXJuKGZ1bGxQcm9wZXJ0eVBhdGgsICdyb3RhdGlvbi54JykgfHxcblx0XHRpc0Z1bGxPckVuZGluZ1BhdHRlcm4oZnVsbFByb3BlcnR5UGF0aCwgJ3JvdGF0aW9uLnknKSB8fFxuXHRcdGlzRnVsbE9yRW5kaW5nUGF0dGVybihmdWxsUHJvcGVydHlQYXRoLCAncm90YXRpb24ueicpIHx8XG5cdFx0KHRhcmdldC5pc0V1bGVyICYmIChmdWxsUHJvcGVydHlQYXRoID09PSAneCcgfHwgZnVsbFByb3BlcnR5UGF0aCA9PT0gJ3knIHx8IGZ1bGxQcm9wZXJ0eVBhdGggPT09ICd6JykpXG5cdCkge1xuXHRcdHJldHVybiBkZWdyZWVzO1xuXHR9XG5cblx0aWYgKGlzRnVsbE9yRW5kaW5nUGF0dGVybihmdWxsUHJvcGVydHlQYXRoLCAncicpKSByZXR1cm4gbm9ybWFsaXplZDtcblx0aWYgKGlzRnVsbE9yRW5kaW5nUGF0dGVybihmdWxsUHJvcGVydHlQYXRoLCAnZycpKSByZXR1cm4gbm9ybWFsaXplZDtcblx0aWYgKGlzRnVsbE9yRW5kaW5nUGF0dGVybihmdWxsUHJvcGVydHlQYXRoLCAnYicpKSByZXR1cm4gbm9ybWFsaXplZDtcblxuXHRpZiAoaXNGdWxsT3JFbmRpbmdQYXR0ZXJuKGZ1bGxQcm9wZXJ0eVBhdGgsICdvcGFjaXR5JykpIHJldHVybiBub3JtYWxpemVkO1xuXHRpZiAoaXNGdWxsT3JFbmRpbmdQYXR0ZXJuKGZ1bGxQcm9wZXJ0eVBhdGgsICdyb3VnaG5lc3MnKSkgcmV0dXJuIG5vcm1hbGl6ZWQ7XG5cdGlmIChpc0Z1bGxPckVuZGluZ1BhdHRlcm4oZnVsbFByb3BlcnR5UGF0aCwgJ21ldGFsbmVzcycpKSByZXR1cm4gbm9ybWFsaXplZDtcblx0aWYgKGlzRnVsbE9yRW5kaW5nUGF0dGVybihmdWxsUHJvcGVydHlQYXRoLCAndHJhbnNtaXNzaW9uJykpIHJldHVybiBub3JtYWxpemVkO1xuXG5cdGlmIChpc0Z1bGxPckVuZGluZ1BhdHRlcm4oZnVsbFByb3BlcnR5UGF0aCwgJ3NpZGUnKSkgcmV0dXJuIHNpZGU7XG5cblx0cmV0dXJuIGdlbmVyaWM7XG59XG4iXX0=","import { computed, DestroyRef, Directive, effect, inject, input } from '@angular/core';\nimport { resolveInstanceKey, resolveRef } from 'angular-three';\nimport { THEATRE_STUDIO } from '../studio/studio-token';\nimport { getDefaultTransformer } from '../transformers/default-transformer';\nimport { TheatreSheetObject } from './sheet-object';\nimport * as i0 from \"@angular/core\";\nconst updateProjectionMatrixKeys = ['fov', 'near', 'far', 'zoom', 'left', 'right', 'top', 'bottom', 'aspect'];\nexport class TheatreSheetObjectSync {\n constructor() {\n this.parent = input.required({\n alias: 'sync',\n });\n this.props = input([], { alias: 'syncProps' });\n this.theatreSheetObject = inject(TheatreSheetObject);\n this.sheetObject = computed(() => this.theatreSheetObject.sheetObject());\n this.studio = inject(THEATRE_STUDIO, { optional: true });\n this.parentRef = computed(() => {\n const parent = this.parent();\n if (typeof parent === 'function')\n return resolveRef(parent());\n return resolveRef(parent);\n });\n this.resolvedProps = computed(() => {\n const props = this.props();\n return props.reduce((resolved, prop) => {\n if (typeof prop === 'string') {\n resolved.push([prop, { key: this.resolvePropertyPath(prop) }]);\n }\n else {\n if (typeof prop[1] === 'string') {\n resolved.push([prop[0], { key: prop[1] }]);\n }\n else {\n resolved.push(prop);\n }\n }\n return resolved;\n }, []);\n });\n this.propsToAdd = computed(() => {\n const parent = this.parentRef();\n if (!parent)\n return null;\n const propsToAdd = {};\n const resolvedProps = this.resolvedProps();\n resolvedProps.forEach(([propName, { key, label, transformer }]) => {\n const { root, targetKey } = resolveInstanceKey(parent, propName);\n const rawValue = root[targetKey];\n const valueTransformer = transformer ?? getDefaultTransformer(root, targetKey, propName);\n const value = valueTransformer.transform(rawValue);\n value.label = label ?? key;\n this.propsMapping[key] = { path: propName, transformer: valueTransformer };\n propsToAdd[key] = value;\n });\n return propsToAdd;\n });\n this.propsMapping = {};\n effect(() => {\n const propsToAdd = this.propsToAdd();\n if (!propsToAdd)\n return;\n this.theatreSheetObject.addProps(propsToAdd);\n });\n effect((onCleanup) => {\n const parent = this.parentRef();\n if (!parent)\n return;\n const propsToAdd = this.propsToAdd();\n if (!propsToAdd)\n return;\n const sheetObject = this.sheetObject();\n const cleanup = sheetObject.onValuesChange((newValues) => {\n Object.keys(newValues).forEach((key) => {\n // first, check if the prop is mapped in this component\n const propMapping = this.propsMapping[key];\n if (!propMapping)\n return;\n // we're using the addedProps map to infer the target property name from the property name on values\n const { root, targetKey } = resolveInstanceKey(parent, propMapping.path);\n // use a transformer to apply value\n const transformer = propMapping.transformer;\n transformer.apply(root, targetKey, newValues[key]);\n if (updateProjectionMatrixKeys.includes(targetKey)) {\n root.updateProjectionMatrix?.();\n }\n });\n });\n onCleanup(cleanup);\n });\n inject(DestroyRef).onDestroy(() => {\n this.theatreSheetObject.removeProps(Object.keys(this.propsMapping));\n });\n }\n capture() {\n const studio = this.studio?.();\n if (!studio)\n return;\n const parent = this.parentRef();\n if (!parent)\n return;\n const sheetObject = this.sheetObject();\n if (!sheetObject)\n return;\n const scrub = studio.scrub();\n Object.keys(sheetObject.value).forEach((key) => {\n // first, check if the prop is mapped in this component\n const propMapping = this.propsMapping[key];\n if (!propMapping)\n return;\n // we're using the addedProps map to infer the target property name from the property name on values\n const { targetProp } = resolveInstanceKey(parent, propMapping.path);\n const value = propMapping.transformer.transform(targetProp).default;\n scrub.capture(({ set }) => {\n set(sheetObject.props[key], value);\n });\n });\n scrub.commit();\n }\n resolvePropertyPath(propPath) {\n return (propPath\n // make the label alphanumeric by first removing dots (fundamental feature for pierced props)\n .replace(/\\./g, '-')\n // make the following characters uppercase\n .replace(/-([a-z])/g, (g) => g[1].toUpperCase())\n // convert to safe alphanumeric characters without dashes\n .replace(/[^a-zA-Z0-9]/g, ''));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: TheatreSheetObjectSync, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.3\", type: TheatreSheetObjectSync, isStandalone: true, selector: \"[sync]\", inputs: { parent: { classPropertyName: \"parent\", publicName: \"sync\", isSignal: true, isRequired: true, transformFunction: null }, props: { classPropertyName: \"props\", publicName: \"syncProps\", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: [\"sync\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: TheatreSheetObjectSync, decorators: [{\n type: Directive,\n args: [{ selector: '[sync]', exportAs: 'sync' }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGhlYXRyZS9zcmMvbGliL3NoZWV0LW9iamVjdC9zeW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQWdCLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFNUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRXBELE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBRzlHLE1BQU0sT0FBTyxzQkFBc0I7SUE4RGxDO1FBN0RBLFdBQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUEyRjtZQUNqSCxLQUFLLEVBQUUsTUFBTTtTQUNiLENBQUMsQ0FBQztRQUNILFVBQUssR0FBRyxLQUFLLENBRVgsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFdEIsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDeEQsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDNUQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFB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QUFDO1lBRXBFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUU7Z0JBQ3pCLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVPLG1CQUFtQixDQUFDLFFBQWdCO1FBQzNDLE9BQU8sQ0FDTixRQUFRO1lBQ1AsNkZBQTZGO2FBQzVGLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1lBQ3BCLDBDQUEwQzthQUN6QyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDaEQseURBQXlEO2FBQ3hELE9BQU8sQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQzlCLENBQUM7SUFDSCxDQUFDOzhHQS9JVyxzQkFBc0I7a0dBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFEbEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIGVmZmVjdCwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QW55UmVjb3JkLCByZXNvbHZlSW5zdGFuY2VLZXksIHJlc29sdmVSZWYgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IFRIRUFUUkVfU1RVRElPIH0gZnJvbSAnLi4vc3R1ZGlvL3N0dWRpby10b2tlbic7XG5pbXBvcnQgeyBnZXREZWZhdWx0VHJhbnNmb3JtZXIgfSBmcm9tICcuLi90cmFuc2Zvcm1lcnMvZGVmYXVsdC10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBUaGVhdHJlVHJhbnNmb3JtZXIgfSBmcm9tICcuLi90cmFuc2Zvcm1lcnMvdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVGhlYXRyZVNoZWV0T2JqZWN0IH0gZnJvbSAnLi9zaGVldC1vYmplY3QnO1xuXG5jb25zdCB1cGRhdGVQcm9qZWN0aW9uTWF0cml4S2V5cyA9IFsnZm92JywgJ25lYXInLCAnZmFyJywgJ3pvb20nLCAnbGVmdCcsICdyaWdodCcsICd0b3AnLCAnYm90dG9tJywgJ2FzcGVjdCddO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbc3luY10nLCBleHBvcnRBczogJ3N5bmMnIH0pXG5leHBvcnQgY2xhc3MgVGhlYXRyZVNoZWV0T2JqZWN0U3luYzxUT2JqZWN0IGV4dGVuZHMgb2JqZWN0PiB7XG5cdHBhcmVudCA9IGlucHV0LnJlcXVpcmVkPFRPYmplY3QgfCBFbGVtZW50UmVmPFRPYmplY3Q+IHwgKCgpID0+IFRPYmplY3QgfCBFbGVtZW50UmVmPFRPYmplY3Q+IHwgdW5kZWZpbmVkIHwgbnVsbCk+KHtcblx0XHRhbGlhczogJ3N5bmMnLFxuXHR9KTtcblx0cHJvcHMgPSBpbnB1dDxcblx0XHRBcnJheTxzdHJpbmcgfCBbc3RyaW5nLCBzdHJpbmcgfCB7IGxhYmVsPzogc3RyaW5nOyBrZXk/OiBzdHJpbmc7IHRyYW5zZm9ybWVyPzogVGhlYXRyZVRyYW5zZm9ybWVyIH1dPlxuXHQ+KFtdLCB7IGFsaWFzOiAnc3luY1Byb3BzJyB9KTtcblxuXHRwcml2YXRlIHRoZWF0cmVTaGVldE9iamVjdCA9IGluamVjdChUaGVhdHJlU2hlZXRPYmplY3QpO1xuXHRzaGVldE9iamVjdCA9IGNvbXB1dGVkKCgpID0+IHRoaXMudGhlYXRyZVNoZWV0T2JqZWN0LnNoZWV0T2JqZWN0KCkpO1xuXHRwcml2YXRlIHN0dWRpbyA9IGluamVjdChUSEVBVFJFX1NUVURJTywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuXHRwcml2YXRlIHBhcmVudFJlZiA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBwYXJlbnQgPSB0aGlzLnBhcmVudCgpO1xuXHRcdGlmICh0eXBlb2YgcGFyZW50ID09PSAnZnVuY3Rpb24nKSByZXR1cm4gcmVzb2x2ZVJlZihwYXJlbnQoKSk7XG5cdFx0cmV0dXJuIHJlc29sdmVSZWYocGFyZW50KTtcblx0fSk7XG5cdHByaXZhdGUgcmVzb2x2ZWRQcm9wcyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBwcm9wcyA9IHRoaXMucHJvcHMoKTtcblx0XHRyZXR1cm4gcHJvcHMucmVkdWNlKFxuXHRcdFx0KHJlc29sdmVkLCBwcm9wKSA9PiB7XG5cdFx0XHRcdGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHRyZXNvbHZlZC5wdXNoKFtwcm9wLCB7IGtleTogdGhpcy5yZXNvbHZlUHJvcGVydHlQYXRoKHByb3ApIH1dKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRpZiAodHlwZW9mIHByb3BbMV0gPT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdFx0XHRyZXNvbHZlZC5wdXNoKFtwcm9wWzBdLCB7IGtleTogcHJvcFsxXSB9XSk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHJlc29sdmVkLnB1c2goXG5cdFx0XHRcdFx0XHRcdHByb3AgYXMgW3N0cmluZywgeyBsYWJlbD86IHN0cmluZzsga2V5OiBzdHJpbmc7IHRyYW5zZm9ybWVyPzogVGhlYXRyZVRyYW5zZm9ybWVyIH1dLFxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gcmVzb2x2ZWQ7XG5cdFx0XHR9LFxuXHRcdFx0W10gYXMgQXJyYXk8W3N0cmluZywgeyBsYWJlbD86IHN0cmluZzsga2V5OiBzdHJpbmc7IHRyYW5zZm9ybWVyPzogVGhlYXRyZVRyYW5zZm9ybWVyIH1dPixcblx0XHQpO1xuXHR9KTtcblxuXHRwcml2YXRlIHByb3BzVG9BZGQgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgcGFyZW50ID0gdGhpcy5wYXJlbnRSZWYoKTtcblx0XHRpZiAoIXBhcmVudCkgcmV0dXJuIG51bGw7XG5cblx0XHRjb25zdCBwcm9wc1RvQWRkOiBOZ3RBbnlSZWNvcmQgPSB7fTtcblx0XHRjb25zdCByZXNvbHZlZFByb3BzID0gdGhpcy5yZXNvbHZlZFByb3BzKCk7XG5cdFx0cmVzb2x2ZWRQcm9wcy5mb3JFYWNoKChbcHJvcE5hbWUsIHsga2V5LCBsYWJlbCwgdHJhbnNmb3JtZXIgfV0pID0+IHtcblx0XHRcdGNvbnN0IHsgcm9vdCwgdGFyZ2V0S2V5IH0gPSByZXNvbHZlSW5zdGFuY2VLZXkocGFyZW50LCBwcm9wTmFtZSk7XG5cdFx0XHRjb25zdCByYXdWYWx1ZSA9IHJvb3RbdGFyZ2V0S2V5XTtcblx0XHRcdGNvbnN0IHZhbHVlVHJhbnNmb3JtZXIgPSB0cmFuc2Zvcm1lciA/PyBnZXREZWZhdWx0VHJhbnNmb3JtZXIocm9vdCwgdGFyZ2V0S2V5LCBwcm9wTmFtZSk7XG5cdFx0XHRjb25zdCB2YWx1ZSA9IHZhbHVlVHJhbnNmb3JtZXIudHJhbnNmb3JtKHJhd1ZhbHVlKTtcblxuXHRcdFx0dmFsdWUubGFiZWwgPSBsYWJlbCA/PyBrZXk7XG5cblx0XHRcdHRoaXMucHJvcHNNYXBwaW5nW2tleV0gPSB7IHBhdGg6IHByb3BOYW1lLCB0cmFuc2Zvcm1lcjogdmFsdWVUcmFuc2Zvcm1lciB9O1xuXHRcdFx0cHJvcHNUb0FkZFtrZXldID0gdmFsdWU7XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gcHJvcHNUb0FkZDtcblx0fSk7XG5cblx0cHJpdmF0ZSBwcm9wc01hcHBpbmc6IFJlY29yZDxzdHJpbmcsIHsgcGF0aDogc3RyaW5nOyB0cmFuc2Zvcm1lcjogVGhlYXRyZVRyYW5zZm9ybWVyIH0+ID0ge307XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IHByb3BzVG9BZGQgPSB0aGlzLnByb3BzVG9BZGQoKTtcblx0XHRcdGlmICghcHJvcHNUb0FkZCkgcmV0dXJuO1xuXHRcdFx0dGhpcy50aGVhdHJlU2hlZXRPYmplY3QuYWRkUHJvcHMocHJvcHNUb0FkZCk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgcGFyZW50ID0gdGhpcy5wYXJlbnRSZWYoKTtcblx0XHRcdGlmICghcGFyZW50KSByZXR1cm47XG5cblx0XHRcdGNvbnN0IHByb3BzVG9BZGQgPSB0aGlzLnByb3BzVG9BZGQoKTtcblx0XHRcdGlmICghcHJvcHNUb0FkZCkgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBzaGVldE9iamVjdCA9IHRoaXMuc2hlZXRPYmplY3QoKTtcblx0XHRcdGNvbnN0IGNsZWFudXAgPSBzaGVldE9iamVjdC5vblZhbHVlc0NoYW5nZSgobmV3VmFsdWVzKSA9PiB7XG5cdFx0XHRcdE9iamVjdC5rZXlzKG5ld1ZhbHVlcykuZm9yRWFjaCgoa2V5KSA9PiB7XG5cdFx0XHRcdFx0Ly8gZmlyc3QsIGNoZWNrIGlmIHRoZSBwcm9wIGlzIG1hcHBlZCBpbiB0aGlzIGNvbXBvbmVudFxuXHRcdFx0XHRcdGNvbnN0IHByb3BNYXBwaW5nID0gdGhpcy5wcm9wc01hcHBpbmdba2V5XTtcblx0XHRcdFx0XHRpZiAoIXByb3BNYXBwaW5nKSByZXR1cm47XG5cblx0XHRcdFx0XHQvLyB3ZSdyZSB1c2luZyB0aGUgYWRkZWRQcm9wcyBtYXAgdG8gaW5mZXIgdGhlIHRhcmdldCBwcm9wZXJ0eSBuYW1lIGZyb20gdGhlIHByb3BlcnR5IG5hbWUgb24gdmFsdWVzXG5cdFx0XHRcdFx0Y29uc3QgeyByb290LCB0YXJnZXRLZXkgfSA9IHJlc29sdmVJbnN0YW5jZUtleShwYXJlbnQsIHByb3BNYXBwaW5nLnBhdGgpO1xuXG5cdFx0XHRcdFx0Ly8gdXNlIGEgdHJhbnNmb3JtZXIgdG8gYXBwbHkgdmFsdWVcblx0XHRcdFx0XHRjb25zdCB0cmFuc2Zvcm1lciA9IHByb3BNYXBwaW5nLnRyYW5zZm9ybWVyO1xuXHRcdFx0XHRcdHRyYW5zZm9ybWVyLmFwcGx5KHJvb3QsIHRhcmdldEtleSwgbmV3VmFsdWVzW2tleV0pO1xuXG5cdFx0XHRcdFx0aWYgKHVwZGF0ZVByb2plY3Rpb25NYXRyaXhLZXlzLmluY2x1ZGVzKHRhcmdldEtleSkpIHtcblx0XHRcdFx0XHRcdHJvb3QudXBkYXRlUHJvamVjdGlvbk1hdHJpeD8uKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXG5cdFx0XHRvbkNsZWFudXAoY2xlYW51cCk7XG5cdFx0fSk7XG5cblx0XHRpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHtcblx0XHRcdHRoaXMudGhlYXRyZVNoZWV0T2JqZWN0LnJlbW92ZVByb3BzKE9iamVjdC5rZXlzKHRoaXMucHJvcHNNYXBwaW5nKSk7XG5cdFx0fSk7XG5cdH1cblxuXHRjYXB0dXJlKCkge1xuXHRcdGNvbnN0IHN0dWRpbyA9IHRoaXMuc3R1ZGlvPy4oKTtcblx0XHRpZiAoIXN0dWRpbykgcmV0dXJuO1xuXG5cdFx0Y29uc3QgcGFyZW50ID0gdGhpcy5wYXJlbnRSZWYoKTtcblx0XHRpZiAoIXBhcmVudCkgcmV0dXJuO1xuXG5cdFx0Y29uc3Qgc2hlZXRPYmplY3QgPSB0aGlzLnNoZWV0T2JqZWN0KCk7XG5cdFx0aWYgKCFzaGVldE9iamVjdCkgcmV0dXJuO1xuXG5cdFx0Y29uc3Qgc2NydWIgPSBzdHVkaW8uc2NydWIoKTtcblxuXHRcdE9iamVjdC5rZXlzKHNoZWV0T2JqZWN0LnZhbHVlKS5mb3JFYWNoKChrZXkpID0+IHtcblx0XHRcdC8vIGZpcnN0LCBjaGVjayBpZiB0aGUgcHJvcCBpcyBtYXBwZWQgaW4gdGhpcyBjb21wb25lbnRcblx0XHRcdGNvbnN0IHByb3BNYXBwaW5nID0gdGhpcy5wcm9wc01hcHBpbmdba2V5XTtcblx0XHRcdGlmICghcHJvcE1hcHBpbmcpIHJldHVybjtcblxuXHRcdFx0Ly8gd2UncmUgdXNpbmcgdGhlIGFkZGVkUHJvcHMgbWFwIHRvIGluZmVyIHRoZSB0YXJnZXQgcHJvcGVydHkgbmFtZSBmcm9tIHRoZSBwcm9wZXJ0eSBuYW1lIG9uIHZhbHVlc1xuXHRcdFx0Y29uc3QgeyB0YXJnZXRQcm9wIH0gPSByZXNvbHZlSW5zdGFuY2VLZXkocGFyZW50LCBwcm9wTWFwcGluZy5wYXRoKTtcblx0XHRcdGNvbnN0IHZhbHVlID0gcHJvcE1hcHBpbmcudHJhbnNmb3JtZXIudHJhbnNmb3JtKHRhcmdldFByb3ApLmRlZmF1bHQ7XG5cblx0XHRcdHNjcnViLmNhcHR1cmUoKHsgc2V0IH0pID0+IHtcblx0XHRcdFx0c2V0KHNoZWV0T2JqZWN0LnByb3BzW2tleV0sIHZhbHVlKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0c2NydWIuY29tbWl0KCk7XG5cdH1cblxuXHRwcml2YXRlIHJlc29sdmVQcm9wZXJ0eVBhdGgocHJvcFBhdGg6IHN0cmluZykge1xuXHRcdHJldHVybiAoXG5cdFx0XHRwcm9wUGF0aFxuXHRcdFx0XHQvLyBtYWtlIHRoZSBsYWJlbCBhbHBoYW51bWVyaWMgYnkgZmlyc3QgcmVtb3ZpbmcgZG90cyAoZnVuZGFtZW50YWwgZmVhdHVyZSBmb3IgcGllcmNlZCBwcm9wcylcblx0XHRcdFx0LnJlcGxhY2UoL1xcLi9nLCAnLScpXG5cdFx0XHRcdC8vIG1ha2UgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIHVwcGVyY2FzZVxuXHRcdFx0XHQucmVwbGFjZSgvLShbYS16XSkvZywgKGcpID0+IGdbMV0udG9VcHBlckNhc2UoKSlcblx0XHRcdFx0Ly8gY29udmVydCB0byBzYWZlIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIHdpdGhvdXQgZGFzaGVzXG5cdFx0XHRcdC5yZXBsYWNlKC9bXmEtekEtWjAtOV0vZywgJycpXG5cdFx0KTtcblx0fVxufVxuIl19","import { afterNextRender, ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, effect, inject, input, untracked, viewChild, } from '@angular/core';\nimport { types } from '@theatre/core';\nimport { extend } from 'angular-three';\nimport { NgtsTransformControls } from 'angular-three-soba/gizmos';\nimport * as THREE from 'three';\nimport { Group } from 'three';\nimport { THEATRE_STUDIO } from '../studio/studio-token';\nimport { getDefaultTransformer } from '../transformers/default-transformer';\nimport { TheatreSheetObject } from './sheet-object';\nimport * as i0 from \"@angular/core\";\nexport class TheatreSheetObjectTransform {\n onMouseDown() {\n if (!this.studio)\n return;\n if (this.scrub)\n return;\n this.scrub = this.studio().scrub();\n }\n onMouseUp() {\n if (!this.scrub)\n return;\n this.scrub.commit();\n this.scrub = undefined;\n }\n onChange() {\n if (!this.scrub)\n return;\n this.scrub.capture((api) => {\n const sheetObject = this.sheetObject();\n if (!sheetObject)\n return;\n const group = this.groupRef().nativeElement;\n const key = this.key();\n const baseTarget = key ? sheetObject.props[key] : sheetObject.props;\n api.set(baseTarget['position'], { ...group.position });\n api.set(baseTarget['rotation'], {\n x: group.rotation.x * THREE.MathUtils.RAD2DEG,\n y: group.rotation.y * THREE.MathUtils.RAD2DEG,\n z: group.rotation.z * THREE.MathUtils.RAD2DEG,\n });\n api.set(baseTarget['scale'], { ...group.scale });\n });\n }\n constructor() {\n this.label = input();\n this.key = input();\n this.options = input({});\n this.groupRef = viewChild.required('group');\n this.controlsRef = viewChild(NgtsTransformControls);\n this.theatreSheetObject = inject(TheatreSheetObject);\n this.sheetObject = computed(() => this.theatreSheetObject.sheetObject());\n this.studio = inject(THEATRE_STUDIO, { optional: true });\n this.selected = this.theatreSheetObject.selected.asReadonly();\n this.positionTransformer = computed(() => getDefaultTransformer(this.groupRef().nativeElement, 'position', 'position'));\n this.rotationTransformer = computed(() => getDefaultTransformer(this.groupRef().nativeElement, 'rotation', 'rotation'));\n this.scaleTransformer = computed(() => getDefaultTransformer(this.groupRef().nativeElement, 'scale', 'scale'));\n extend({ Group });\n afterNextRender(() => {\n this.init();\n });\n effect((onCleanup) => {\n const [sheetObject, key, positionTransformer, rotationTransformer, scaleTransformer, group] = [\n this.sheetObject(),\n untracked(this.key),\n untracked(this.positionTransformer),\n untracked(this.rotationTransformer),\n untracked(this.scaleTransformer),\n untracked(this.groupRef).nativeElement,\n ];\n const cleanup = sheetObject.onValuesChange((newValues) => {\n let object = newValues;\n if (key) {\n if (!newValues[key])\n return;\n object = newValues[key];\n }\n else {\n if (!newValues['position'] || !newValues['rotation'] || !newValues['scale'])\n return;\n }\n // sanity check\n if (!object)\n return;\n positionTransformer.apply(group, 'position', object['position']);\n rotationTransformer.apply(group, 'rotation', object['rotation']);\n scaleTransformer.apply(group, 'scale', object['scale']);\n });\n onCleanup(cleanup);\n });\n // TODO: (chau) use event binding when they no longer trigger change detection\n effect((onCleanup) => {\n const controls = this.controlsRef();\n if (!controls)\n return;\n const subs = [\n controls.change.subscribe(this.onChange.bind(this)),\n controls.mouseDown.subscribe(this.onMouseDown.bind(this)),\n controls.mouseUp.subscribe(this.onMouseUp.bind(this)),\n ];\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n inject(DestroyRef).onDestroy(() => {\n const key = this.key();\n this.theatreSheetObject.removeProps(key ? [key] : ['position', 'rotation', 'scale']);\n });\n }\n init() {\n const [group, key, label, positionTransformer, rotationTransformer, scaleTransformer] = [\n this.groupRef().nativeElement,\n this.key(),\n this.label(),\n this.positionTransformer(),\n this.rotationTransformer(),\n this.scaleTransformer(),\n ];\n const position = positionTransformer.transform(group.position);\n const rotation = rotationTransformer.transform(group.rotation);\n const scale = scaleTransformer.transform(group.scale);\n if (key) {\n this.theatreSheetObject.addProps({\n [key]: types.compound({ position, rotation, scale }, { label: label ?? key }),\n });\n }\n else {\n this.theatreSheetObject.addProps({ position, rotation, scale });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: TheatreSheetObjectTransform, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: TheatreSheetObjectTransform, isStandalone: true, selector: \"theatre-transform\", inputs: { label: { classPropertyName: \"label\", publicName: \"label\", isSignal: true, isRequired: false, transformFunction: null }, key: { classPropertyName: \"key\", publicName: \"key\", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: \"groupRef\", first: true, predicate: [\"group\"], descendants: true, isSignal: true }, { propertyName: \"controlsRef\", first: true, predicate: NgtsTransformControls, descendants: true, isSignal: true }], ngImport: i0, template: `\n\t\t@if (selected()) {\n\t\t\t<ngts-transform-controls [object]=\"$any(group)\" [options]=\"options()\" />\n\t\t}\n\n\t\t<ngt-group #group>\n\t\t\t<ng-content />\n\t\t</ngt-group>\n\t`, isInline: true, dependencies: [{ kind: \"component\", type: NgtsTransformControls, selector: \"ngts-transform-controls\", inputs: [\"object\", \"options\"], outputs: [\"change\", \"mouseDown\", \"mouseUp\", \"objectChange\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: TheatreSheetObjectTransform, decorators: [{\n type: Component,\n args: [{\n selector: 'theatre-transform',\n template: `\n\t\t@if (selected()) {\n\t\t\t<ngts-transform-controls [object]=\"$any(group)\" [options]=\"options()\" />\n\t\t}\n\n\t\t<ngt-group #group>\n\t\t\t<ng-content />\n\t\t</ngt-group>\n\t`,\n imports: [NgtsTransformControls],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90aGVhdHJlL3NyYy9saWIvc2hlZXQtb2JqZWN0L3RyYW5zZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixVQUFVLEVBQ1YsTUFBTSxFQUVOLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLHFCQUFxQixFQUFnQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2hHLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDOUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWlCcEQsTUFBTSxPQUFPLDJCQUEyQjtJQXlCN0IsV0FBVztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFUyxTQUFTO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDeEIsSUFBSSxDQUFDLEtBQUss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QUFrQixDQUFDLFFBQVEsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNqRSxDQUFDO0lBQ0YsQ0FBQzs4R0E1SVcsMkJBQTJCO2tHQUEzQiwyQkFBMkIsa2xCQVFQLHFCQUFxQixnRUFyQjNDOzs7Ozs7OztFQVFULDREQUNTLHFCQUFxQjs7MkZBSW5CLDJCQUEyQjtrQkFmdkMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUU7Ozs7Ozs7O0VBUVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ2hDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRhZnRlck5leHRSZW5kZXIsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHREZXN0cm95UmVmLFxuXHRlZmZlY3QsXG5cdEVsZW1lbnRSZWYsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdHVudHJhY2tlZCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHR5cGVzIH0gZnJvbSAnQHRoZWF0cmUvY29yZSc7XG5pbXBvcnQgeyBJU2NydWIgfSBmcm9tICdAdGhlYXRyZS9zdHVkaW8nO1xuaW1wb3J0IHsgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBOZ3RzVHJhbnNmb3JtQ29udHJvbHMsIE5ndHNUcmFuc2Zvcm1Db250cm9sc09wdGlvbnMgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvZ2l6bW9zJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEdyb3VwIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgVEhFQVRSRV9TVFVESU8gfSBmcm9tICcuLi9zdHVkaW8vc3R1ZGlvLXRva2VuJztcbmltcG9ydCB7IGdldERlZmF1bHRUcmFuc2Zvcm1lciB9IGZyb20gJy4uL3RyYW5zZm9ybWVycy9kZWZhdWx0LXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFRoZWF0cmVTaGVldE9iamVjdCB9IGZyb20gJy4vc2hlZXQtb2JqZWN0JztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAndGhlYXRyZS10cmFuc2Zvcm0nLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdEBpZiAoc2VsZWN0ZWQoKSkge1xuXHRcdFx0PG5ndHMtdHJhbnNmb3JtLWNvbnRyb2xzIFtvYmplY3RdPVwiJGFueShncm91cClcIiBbb3B0aW9uc109XCJvcHRpb25zKClcIiAvPlxuXHRcdH1cblxuXHRcdDxuZ3QtZ3JvdXAgI2dyb3VwPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1ncm91cD5cblx0YCxcblx0aW1wb3J0czogW05ndHNUcmFuc2Zvcm1Db250cm9sc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRoZWF0cmVTaGVldE9iamVjdFRyYW5zZm9ybTxUTGFiZWwgZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQ+IHtcblx0bGFiZWwgPSBpbnB1dDxUTGFiZWw+KCk7XG5cdGtleSA9IGlucHV0PHN0cmluZz4oKTtcblx0b3B0aW9ucyA9IGlucHV0KFxuXHRcdHt9IGFzIFBpY2s8Tmd0c1RyYW5zZm9ybUNvbnRyb2xzT3B0aW9ucywgJ21vZGUnIHwgJ3RyYW5zbGF0aW9uU25hcCcgfCAnc2NhbGVTbmFwJyB8ICdyb3RhdGlvblNuYXAnIHwgJ3NwYWNlJz4sXG5cdCk7XG5cblx0Z3JvdXBSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxUSFJFRS5Hcm91cD4+KCdncm91cCcpO1xuXHRwcml2YXRlIGNvbnRyb2xzUmVmID0gdmlld0NoaWxkKE5ndHNUcmFuc2Zvcm1Db250cm9scyk7XG5cblx0cHJpdmF0ZSB0aGVhdHJlU2hlZXRPYmplY3QgPSBpbmplY3QoVGhlYXRyZVNoZWV0T2JqZWN0KTtcblx0c2hlZXRPYmplY3QgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnRoZWF0cmVTaGVldE9iamVjdC5zaGVldE9iamVjdCgpKTtcblx0cHJpdmF0ZSBzdHVkaW8gPSBpbmplY3QoVEhFQVRSRV9TVFVESU8sIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cblx0cHJvdGVjdGVkIHNlbGVjdGVkID0gdGhpcy50aGVhdHJlU2hlZXRPYmplY3Quc2VsZWN0ZWQuYXNSZWFkb25seSgpO1xuXHRwcml2YXRlIHNjcnViPzogSVNjcnViO1xuXG5cdHByaXZhdGUgcG9zaXRpb25UcmFuc2Zvcm1lciA9IGNvbXB1dGVkKCgpID0+XG5cdFx0Z2V0RGVmYXVsdFRyYW5zZm9ybWVyKHRoaXMuZ3JvdXBSZWYoKS5uYXRpdmVFbGVtZW50LCAncG9zaXRpb24nLCAncG9zaXRpb24nKSxcblx0KTtcblx0cHJpdmF0ZSByb3RhdGlvblRyYW5zZm9ybWVyID0gY29tcHV0ZWQoKCkgPT5cblx0XHRnZXREZWZhdWx0VHJhbnNmb3JtZXIodGhpcy5ncm91cFJlZigpLm5hdGl2ZUVsZW1lbnQsICdyb3RhdGlvbicsICdyb3RhdGlvbicpLFxuXHQpO1xuXHRwcml2YXRlIHNjYWxlVHJhbnNmb3JtZXIgPSBjb21wdXRlZCgoKSA9PiBnZXREZWZhdWx0VHJhbnNmb3JtZXIodGhpcy5ncm91cFJlZigpLm5hdGl2ZUVsZW1lbnQsICdzY2FsZScsICdzY2FsZScpKTtcblxuXHRwcm90ZWN0ZWQgb25Nb3VzZURvd24oKSB7XG5cdFx0aWYgKCF0aGlzLnN0dWRpbykgcmV0dXJuO1xuXHRcdGlmICh0aGlzLnNjcnViKSByZXR1cm47XG5cdFx0dGhpcy5zY3J1YiA9IHRoaXMuc3R1ZGlvKCkuc2NydWIoKTtcblx0fVxuXG5cdHByb3RlY3RlZCBvbk1vdXNlVXAoKSB7XG5cdFx0aWYgKCF0aGlzLnNjcnViKSByZXR1cm47XG5cdFx0dGhpcy5zY3J1Yi5jb21taXQoKTtcblx0XHR0aGlzLnNjcnViID0gdW5kZWZpbmVkO1xuXHR9XG5cblx0cHJvdGVjdGVkIG9uQ2hhbmdlKCkge1xuXHRcdGlmICghdGhpcy5zY3J1YikgcmV0dXJuO1xuXG5cdFx0dGhpcy5zY3J1Yi5jYXB0dXJlKChhcGkpID0+IHtcblx0XHRcdGNvbnN0IHNoZWV0T2JqZWN0ID0gdGhpcy5zaGVldE9iamVjdCgpO1xuXHRcdFx0aWYgKCFzaGVldE9iamVjdCkgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBncm91cCA9IHRoaXMuZ3JvdXBSZWYoKS5uYXRpdmVFbGVtZW50O1xuXG5cdFx0XHRjb25zdCBrZXkgPSB0aGlzLmtleSgpO1xuXHRcdFx0Y29uc3QgYmFzZVRhcmdldCA9IGtleSA/IHNoZWV0T2JqZWN0LnByb3BzW2tleV0gOiBzaGVldE9iamVjdC5wcm9wcztcblxuXHRcdFx0YXBpLnNldChiYXNlVGFyZ2V0Wydwb3NpdGlvbiddLCB7IC4uLmdyb3VwLnBvc2l0aW9uIH0pO1xuXHRcdFx0YXBpLnNldChiYXNlVGFyZ2V0Wydyb3RhdGlvbiddLCB7XG5cdFx0XHRcdHg6IGdyb3VwLnJvdGF0aW9uLnggKiBUSFJFRS5NYXRoVXRpbHMuUkFEMkRFRyxcblx0XHRcdFx0eTogZ3JvdXAucm90YXRpb24ueSAqIFRIUkVFLk1hdGhVdGlscy5SQUQyREVHLFxuXHRcdFx0XHR6OiBncm91cC5yb3RhdGlvbi56ICogVEhSRUUuTWF0aFV0aWxzLlJBRDJERUcsXG5cdFx0XHR9KTtcblx0XHRcdGFwaS5zZXQoYmFzZVRhcmdldFsnc2NhbGUnXSwgeyAuLi5ncm91cC5zY2FsZSB9KTtcblx0XHR9KTtcblx0fVxuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IEdyb3VwIH0pO1xuXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdHRoaXMuaW5pdCgpO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFtzaGVldE9iamVjdCwga2V5LCBwb3NpdGlvblRyYW5zZm9ybWVyLCByb3RhdGlvblRyYW5zZm9ybWVyLCBzY2FsZVRyYW5zZm9ybWVyLCBncm91cF0gPSBbXG5cdFx0XHRcdHRoaXMuc2hlZXRPYmplY3QoKSxcblx0XHRcdFx0dW50cmFja2VkKHRoaXMua2V5KSxcblx0XHRcdFx0dW50cmFja2VkKHRoaXMucG9zaXRpb25UcmFuc2Zvcm1lciksXG5cdFx0XHRcdHVudHJhY2tlZCh0aGlzLnJvdGF0aW9uVHJhbnNmb3JtZXIpLFxuXHRcdFx0XHR1bnRyYWNrZWQodGhpcy5zY2FsZVRyYW5zZm9ybWVyKSxcblx0XHRcdFx0dW50cmFja2VkKHRoaXMuZ3JvdXBSZWYpLm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRdO1xuXG5cdFx0XHRjb25zdCBjbGVhbnVwID0gc2hlZXRPYmplY3Qub25WYWx1ZXNDaGFuZ2UoKG5ld1ZhbHVlcykgPT4ge1xuXHRcdFx0XHRsZXQgb2JqZWN0ID0gbmV3VmFsdWVzO1xuXG5cdFx0XHRcdGlmIChrZXkpIHtcblx0XHRcdFx0XHRpZiAoIW5ld1ZhbHVlc1trZXldKSByZXR1cm47XG5cdFx0XHRcdFx0b2JqZWN0ID0gbmV3VmFsdWVzW2tleV07XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0aWYgKCFuZXdWYWx1ZXNbJ3Bvc2l0aW9uJ10gfHwgIW5ld1ZhbHVlc1sncm90YXRpb24nXSB8fCAhbmV3VmFsdWVzWydzY2FsZSddKSByZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBzYW5pdHkgY2hlY2tcblx0XHRcdFx0aWYgKCFvYmplY3QpIHJldHVybjtcblxuXHRcdFx0XHRwb3NpdGlvblRyYW5zZm9ybWVyLmFwcGx5KGdyb3VwLCAncG9zaXRpb24nLCBvYmplY3RbJ3Bvc2l0aW9uJ10pO1xuXHRcdFx0XHRyb3RhdGlvblRyYW5zZm9ybWVyLmFwcGx5KGdyb3VwLCAncm90YXRpb24nLCBvYmplY3RbJ3JvdGF0aW9uJ10pO1xuXHRcdFx0XHRzY2FsZVRyYW5zZm9ybWVyLmFwcGx5KGdyb3VwLCAnc2NhbGUnLCBvYmplY3RbJ3NjYWxlJ10pO1xuXHRcdFx0fSk7XG5cblx0XHRcdG9uQ2xlYW51cChjbGVhbnVwKTtcblx0XHR9KTtcblxuXHRcdC8vIFRPRE86IChjaGF1KSB1c2UgZXZlbnQgYmluZGluZyB3aGVuIHRoZXkgbm8gbG9uZ2VyIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBjb250cm9scyA9IHRoaXMuY29udHJvbHNSZWYoKTtcblx0XHRcdGlmICghY29udHJvbHMpIHJldHVybjtcblxuXHRcdFx0Y29uc3Qgc3VicyA9IFtcblx0XHRcdFx0Y29udHJvbHMuY2hhbmdlLnN1YnNjcmliZSh0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcykpLFxuXHRcdFx0XHRjb250cm9scy5tb3VzZURvd24uc3Vic2NyaWJlKHRoaXMub25Nb3VzZURvd24uYmluZCh0aGlzKSksXG5cdFx0XHRcdGNvbnRyb2xzLm1vdXNlVXAuc3Vic2NyaWJlKHRoaXMub25Nb3VzZVVwLmJpbmQodGhpcykpLFxuXHRcdFx0XTtcblxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0c3Vicy5mb3JFYWNoKChzdWIpID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG5cdFx0XHRjb25zdCBrZXkgPSB0aGlzLmtleSgpO1xuXHRcdFx0dGhpcy50aGVhdHJlU2hlZXRPYmplY3QucmVtb3ZlUHJvcHMoa2V5ID8gW2tleV0gOiBbJ3Bvc2l0aW9uJywgJ3JvdGF0aW9uJywgJ3NjYWxlJ10pO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBpbml0KCkge1xuXHRcdGNvbnN0IFtncm91cCwga2V5LCBsYWJlbCwgcG9zaXRpb25UcmFuc2Zvcm1lciwgcm90YXRpb25UcmFuc2Zvcm1lciwgc2NhbGVUcmFuc2Zvcm1lcl0gPSBbXG5cdFx0XHR0aGlzLmdyb3VwUmVmKCkubmF0aXZlRWxlbWVudCxcblx0XHRcdHRoaXMua2V5KCksXG5cdFx0XHR0aGlzLmxhYmVsKCksXG5cdFx0XHR0aGlzLnBvc2l0aW9uVHJhbnNmb3JtZXIoKSxcblx0XHRcdHRoaXMucm90YXRpb25UcmFuc2Zvcm1lcigpLFxuXHRcdFx0dGhpcy5zY2FsZVRyYW5zZm9ybWVyKCksXG5cdFx0XTtcblxuXHRcdGNvbnN0IHBvc2l0aW9uID0gcG9zaXRpb25UcmFuc2Zvcm1lci50cmFuc2Zvcm0oZ3JvdXAucG9zaXRpb24pO1xuXHRcdGNvbnN0IHJvdGF0aW9uID0gcm90YXRpb25UcmFuc2Zvcm1lci50cmFuc2Zvcm0oZ3JvdXAucm90YXRpb24pO1xuXHRcdGNvbnN0IHNjYWxlID0gc2NhbGVUcmFuc2Zvcm1lci50cmFuc2Zvcm0oZ3JvdXAuc2NhbGUpO1xuXG5cdFx0aWYgKGtleSkge1xuXHRcdFx0dGhpcy50aGVhdHJlU2hlZXRPYmplY3QuYWRkUHJvcHMoe1xuXHRcdFx0XHRba2V5XTogdHlwZXMuY29tcG91bmQoeyBwb3NpdGlvbiwgcm90YXRpb24sIHNjYWxlIH0sIHsgbGFiZWw6IGxhYmVsID8/IGtleSB9KSxcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnRoZWF0cmVTaGVldE9iamVjdC5hZGRQcm9wcyh7IHBvc2l0aW9uLCByb3RhdGlvbiwgc2NhbGUgfSk7XG5cdFx0fVxuXHR9XG59XG4iXX0=","import { TheatreSheetObject as Impl } from './sheet-object';\nimport { TheatreSheetObjectSync } from './sync';\nimport { TheatreSheetObjectTransform } from './transform';\nexport { TheatreSheetObject as TheatreSheetObjectImpl } from './sheet-object';\nexport * from './sync';\nexport * from './transform';\nexport const TheatreSheetObject = [Impl, TheatreSheetObjectTransform, TheatreSheetObjectSync];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RoZWF0cmUvc3JjL2xpYi9zaGVldC1vYmplY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixJQUFJLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUQsT0FBTyxFQUFFLGtCQUFrQixJQUFJLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxhQUFhLENBQUM7QUFFNUIsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsMkJBQTJCLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRoZWF0cmVTaGVldE9iamVjdCBhcyBJbXBsIH0gZnJvbSAnLi9zaGVldC1vYmplY3QnO1xuaW1wb3J0IHsgVGhlYXRyZVNoZWV0T2JqZWN0U3luYyB9IGZyb20gJy4vc3luYyc7XG5pbXBvcnQgeyBUaGVhdHJlU2hlZXRPYmplY3RUcmFuc2Zvcm0gfSBmcm9tICcuL3RyYW5zZm9ybSc7XG5cbmV4cG9ydCB7IFRoZWF0cmVTaGVldE9iamVjdCBhcyBUaGVhdHJlU2hlZXRPYmplY3RJbXBsIH0gZnJvbSAnLi9zaGVldC1vYmplY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zeW5jJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNmb3JtJztcblxuZXhwb3J0IGNvbnN0IFRoZWF0cmVTaGVldE9iamVjdCA9IFtJbXBsLCBUaGVhdHJlU2hlZXRPYmplY3RUcmFuc2Zvcm0sIFRoZWF0cmVTaGVldE9iamVjdFN5bmNdO1xuIl19","import { booleanAttribute, Directive, effect, input, signal } from '@angular/core';\nimport { THEATRE_STUDIO } from './studio-token';\nimport * as i0 from \"@angular/core\";\nexport class TheatreStudio {\n constructor() {\n this.enabled = input(true, { alias: 'studio', transform: booleanAttribute });\n this.Studio = signal(null);\n this.studio = this.Studio.asReadonly();\n import('@theatre/studio').then((m) => {\n const Studio = 'default' in m.default ? m.default.default : m.default;\n Studio.initialize();\n this.Studio.set(Studio);\n });\n effect((onCleanup) => {\n const studio = this.Studio();\n if (!studio)\n return;\n const enabled = this.enabled();\n if (enabled) {\n studio.ui.restore();\n }\n else {\n studio.ui.hide();\n }\n onCleanup(() => {\n studio.ui.hide();\n });\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: TheatreStudio, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.3\", type: TheatreStudio, isStandalone: true, selector: \"theatre-project[studio]\", inputs: { enabled: { classPropertyName: \"enabled\", publicName: \"studio\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [\n { provide: THEATRE_STUDIO, useFactory: (studio) => studio.studio, deps: [TheatreStudio] },\n ], exportAs: [\"studio\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: TheatreStudio, decorators: [{\n type: Directive,\n args: [{\n selector: 'theatre-project[studio]',\n exportAs: 'studio',\n providers: [\n { provide: THEATRE_STUDIO, useFactory: (studio) => studio.studio, deps: [TheatreStudio] },\n ],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R1ZGlvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90aGVhdHJlL3NyYy9saWIvc3R1ZGlvL3N0dWRpby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFTaEQsTUFBTSxPQUFPLGFBQWE7SUFNekI7UUFMQSxZQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUVoRSxXQUFNLEdBQUcsTUFBTSxDQUFpQixJQUFJLENBQUMsQ0FBQztRQUM5QyxXQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUdqQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNwQyxNQUFNLE1BQU0sR0FBRyxTQUFTLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUUsQ0FBQyxDQUFDLE9BQTJDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQzNHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBRXBCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUUvQixJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNiLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsQ0FBQztpQkFBTSxDQUFDO2dCQUNQLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsQ0FBQztZQUVELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0E3QlcsYUFBYTtrR0FBYixhQUFhLCtNQUpkO1lBQ1YsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxDQUFDLE1BQXFCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUU7U0FDeEc7OzJGQUVXLGFBQWE7a0JBUHpCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFNBQVMsRUFBRTt3QkFDVixFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLENBQUMsTUFBcUIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFO3FCQUN4RztpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIERpcmVjdGl2ZSwgZWZmZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0eXBlIElTdHVkaW8gfSBmcm9tICdAdGhlYXRyZS9zdHVkaW8nO1xuaW1wb3J0IHsgVEhFQVRSRV9TVFVESU8gfSBmcm9tICcuL3N0dWRpby10b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ3RoZWF0cmUtcHJvamVjdFtzdHVkaW9dJyxcblx0ZXhwb3J0QXM6ICdzdHVkaW8nLFxuXHRwcm92aWRlcnM6IFtcblx0XHR7IHByb3ZpZGU6IFRIRUFUUkVfU1RVRElPLCB1c2VGYWN0b3J5OiAoc3R1ZGlvOiBUaGVhdHJlU3R1ZGlvKSA9PiBzdHVkaW8uc3R1ZGlvLCBkZXBzOiBbVGhlYXRyZVN0dWRpb10gfSxcblx0XSxcbn0pXG5leHBvcnQgY2xhc3MgVGhlYXRyZVN0dWRpbyB7XG5cdGVuYWJsZWQgPSBpbnB1dCh0cnVlLCB7IGFsaWFzOiAnc3R1ZGlvJywgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG5cdHByaXZhdGUgU3R1ZGlvID0gc2lnbmFsPElTdHVkaW8gfCBudWxsPihudWxsKTtcblx0c3R1ZGlvID0gdGhpcy5TdHVkaW8uYXNSZWFkb25seSgpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGltcG9ydCgnQHRoZWF0cmUvc3R1ZGlvJykudGhlbigobSkgPT4ge1xuXHRcdFx0Y29uc3QgU3R1ZGlvID0gJ2RlZmF1bHQnIGluIG0uZGVmYXVsdCA/IChtLmRlZmF1bHQgYXMgdW5rbm93biBhcyB7IGRlZmF1bHQ6IElTdHVkaW8gfSkuZGVmYXVsdCA6IG0uZGVmYXVsdDtcblx0XHRcdFN0dWRpby5pbml0aWFsaXplKCk7XG5cdFx0XHR0aGlzLlN0dWRpby5zZXQoU3R1ZGlvKTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBzdHVkaW8gPSB0aGlzLlN0dWRpbygpO1xuXHRcdFx0aWYgKCFzdHVkaW8pIHJldHVybjtcblxuXHRcdFx0Y29uc3QgZW5hYmxlZCA9IHRoaXMuZW5hYmxlZCgpO1xuXG5cdFx0XHRpZiAoZW5hYmxlZCkge1xuXHRcdFx0XHRzdHVkaW8udWkucmVzdG9yZSgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0c3R1ZGlvLnVpLmhpZGUoKTtcblx0XHRcdH1cblxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0c3R1ZGlvLnVpLmhpZGUoKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=","import { computed, Directive, effect, inject, input, model, untracked } from '@angular/core';\nimport { onChange, val } from '@theatre/core';\nimport { omit, pick } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { TheatreProject } from './project';\nimport { TheatreSheet } from './sheet';\nimport * as i0 from \"@angular/core\";\nconst defaultOptions = {\n rate: 1,\n autoplay: false,\n autopause: false,\n delay: 0,\n};\nexport class TheatreSequence {\n constructor() {\n this.options = input(defaultOptions, { alias: 'sequence', transform: mergeInputs(defaultOptions) });\n this.audioOptions = input(undefined, { alias: 'sequenceAudio' });\n this.position = model(0);\n this.playing = model(false);\n this.length = model(0);\n this.playOptions = omit(this.options, ['autoplay', 'autopause', 'delay', 'autoreset']);\n this.autoplay = pick(this.options, 'autoplay');\n this.autopause = pick(this.options, 'autopause');\n this.autoreset = pick(this.options, 'autoreset');\n this.delay = pick(this.options, 'delay');\n this.project = inject(TheatreProject);\n this.sheet = inject(TheatreSheet, { host: true });\n this.sequence = computed(() => this.sheet.sheet().sequence);\n effect((onCleanup) => {\n const autoplay = untracked(this.autoplay);\n if (!autoplay)\n return;\n const delay = untracked(this.delay);\n const id = setTimeout(() => {\n untracked(() => this.play());\n }, delay);\n onCleanup(() => {\n clearTimeout(id);\n });\n });\n effect((onCleanup) => {\n const autopause = untracked(this.autopause);\n onCleanup(() => {\n if (autopause) {\n this.pause();\n }\n });\n });\n effect((onCleanup) => {\n const autoreset = untracked(this.autoreset);\n if (autoreset === 'init' || autoreset === 'always') {\n untracked(() => this.reset());\n }\n onCleanup(() => {\n if (autoreset === 'destroy' || autoreset === 'always') {\n untracked(() => this.reset());\n }\n });\n });\n effect(() => {\n const [audioOptions, sequence] = [this.audioOptions(), untracked(this.sequence)];\n if (audioOptions)\n sequence.attachAudio(audioOptions);\n });\n effect(() => {\n const [playOptions, sequence] = [this.playOptions(), untracked(this.sequence)];\n const isPlaying = val(sequence.pointer.playing);\n if (isPlaying) {\n this.pause();\n this.play(playOptions);\n }\n });\n effect((onCleanup) => {\n const sequence = this.sequence();\n const cleanups = [];\n cleanups.push(onChange(sequence.pointer.position, (value) => this.position.set(value)), onChange(sequence.pointer.playing, (value) => this.playing.set(value)), onChange(sequence.pointer.length, (value) => this.length.set(value)));\n onCleanup(() => {\n cleanups.forEach((cleanup) => cleanup());\n });\n });\n }\n pause() {\n const sequence = this.sequence();\n sequence.pause();\n }\n play(options = {}) {\n const sequence = this.sequence();\n const project = this.project.project();\n project.ready.then(() => {\n sequence.play({ ...this.playOptions(), ...options });\n });\n }\n reset() {\n const sequence = this.sequence();\n const isPlaying = val(sequence.pointer.playing);\n sequence.position = 0;\n if (isPlaying)\n this.play();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: TheatreSequence, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.3\", type: TheatreSequence, isStandalone: true, selector: \"[sheet][sequence]\", inputs: { options: { classPropertyName: \"options\", publicName: \"sequence\", isSignal: true, isRequired: false, transformFunction: null }, audioOptions: { classPropertyName: \"audioOptions\", publicName: \"sequenceAudio\", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: \"position\", publicName: \"position\", isSignal: true, isRequired: false, transformFunction: null }, playing: { classPropertyName: \"playing\", publicName: \"playing\", isSignal: true, isRequired: false, transformFunction: null }, length: { classPropertyName: \"length\", publicName: \"length\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { position: \"positionChange\", playing: \"playingChange\", length: \"lengthChange\" }, exportAs: [\"sequence\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: TheatreSequence, decorators: [{\n type: Directive,\n args: [{ selector: '[sheet][sequence]', exportAs: 'sequence' }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3RoZWF0cmUvc3JjL2xpYi9zZXF1ZW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBa0IsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDOztBQXdCdkMsTUFBTSxjQUFjLEdBQTJCO0lBQzlDLElBQUksRUFBRSxDQUFDO0lBQ1AsUUFBUSxFQUFFLEtBQUs7SUFDZixTQUFTLEVBQUUsS0FBSztJQUNoQixLQUFLLEVBQUUsQ0FBQztDQUNSLENBQUM7QUFHRixNQUFNLE9BQU8sZUFBZTtJQWtCM0I7UUFqQkEsWUFBTyxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9GLGlCQUFZLEdBQUcsS0FBSyxDQUFpQyxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUU1RixhQUFRLEdBQUcsS0FBSyxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzVCLFlBQU8sR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDaEMsV0FBTSxHQUFHLEtBQUssQ0FBUyxDQUFDLENB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QUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLO1FBQ0osTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxDQUFDLFVBQTRDLEVBQUU7UUFDbEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFdkMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3ZCLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSztRQUNKLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxRQUFRLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLFNBQVM7WUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs4R0F6R1csZUFBZTtrR0FBZixlQUFlOzsyRkFBZixlQUFlO2tCQUQzQixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgRGlyZWN0aXZlLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG1vZGVsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHR5cGUgSVNlcXVlbmNlLCBvbkNoYW5nZSwgdmFsIH0gZnJvbSAnQHRoZWF0cmUvY29yZSc7XG5pbXBvcnQgeyBvbWl0LCBwaWNrIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBUaGVhdHJlUHJvamVjdCB9IGZyb20gJy4vcHJvamVjdCc7XG5pbXBvcnQgeyBUaGVhdHJlU2hlZXQgfSBmcm9tICcuL3NoZWV0JztcblxuZXhwb3J0IGludGVyZmFjZSBBdHRhY2hBdWRpb09wdGlvbnMge1xuXHQvKipcblx0ICogRWl0aGVyIGEgVVJMIHRvIHRoZSBhdWRpbyBmaWxlIChlZyBcImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hdWRpby5tcDNcIikgb3IgYW4gaW5zdGFuY2Ugb2YgQXVkaW9CdWZmZXJcblx0ICovXG5cdHNvdXJjZTogc3RyaW5nIHwgQXVkaW9CdWZmZXI7XG5cdC8qKlxuXHQgKiBBbiBvcHRpb25hbCBBdWRpb0NvbnRleHQuIElmIG5vdCBwcm92aWRlZCwgb25lIHdpbGwgYmUgY3JlYXRlZC5cblx0ICovXG5cdGF1ZGlvQ29udGV4dD86IEF1ZGlvQ29udGV4dDtcblx0LyoqXG5cdCAqIEFuIEF1ZGlvTm9kZSB0byBmZWVkIHRoZSBhdWRpbyBpbnRvLiBXaWxsIHVzZSBhdWRpb0NvbnRleHQuZGVzdGluYXRpb24gaWYgbm90IHByb3ZpZGVkLlxuXHQgKi9cblx0ZGVzdGluYXRpb25Ob2RlPzogQXVkaW9Ob2RlO1xufVxuXG5leHBvcnQgdHlwZSBUaGVhdHJlU2VxdWVuY2VPcHRpb25zID0gUGFyYW1ldGVyczxJU2VxdWVuY2VbJ3BsYXknXT5bMF0gJiB7XG5cdGF1dG9wbGF5OiBib29sZWFuO1xuXHRhdXRvcGF1c2U6IGJvb2xlYW47XG5cdGRlbGF5OiBudW1iZXI7XG5cdGF1dG9yZXNldD86ICdpbml0JyB8ICdkZXN0cm95JyB8ICdhbHdheXMnO1xufTtcblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IFRoZWF0cmVTZXF1ZW5jZU9wdGlvbnMgPSB7XG5cdHJhdGU6IDEsXG5cdGF1dG9wbGF5OiBmYWxzZSxcblx0YXV0b3BhdXNlOiBmYWxzZSxcblx0ZGVsYXk6IDAsXG59O1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbc2hlZXRdW3NlcXVlbmNlXScsIGV4cG9ydEFzOiAnc2VxdWVuY2UnIH0pXG5leHBvcnQgY2xhc3MgVGhlYXRyZVNlcXVlbmNlIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IGFsaWFzOiAnc2VxdWVuY2UnLCB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblx0YXVkaW9PcHRpb25zID0gaW5wdXQ8QXR0YWNoQXVkaW9PcHRpb25zIHwgdW5kZWZpbmVkPih1bmRlZmluZWQsIHsgYWxpYXM6ICdzZXF1ZW5jZUF1ZGlvJyB9KTtcblxuXHRwb3NpdGlvbiA9IG1vZGVsPG51bWJlcj4oMCk7XG5cdHBsYXlpbmcgPSBtb2RlbDxib29sZWFuPihmYWxzZSk7XG5cdGxlbmd0aCA9IG1vZGVsPG51bWJlcj4oMCk7XG5cblx0cHJpdmF0ZSBwbGF5T3B0aW9ucyA9IG9taXQodGhpcy5vcHRpb25zLCBbJ2F1dG9wbGF5JywgJ2F1dG9wYXVzZScsICdkZWxheScsICdhdXRvcmVzZXQnXSk7XG5cdHByaXZhdGUgYXV0b3BsYXkgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2F1dG9wbGF5Jyk7XG5cdHByaXZhdGUgYXV0b3BhdXNlID0gcGljayh0aGlzLm9wdGlvbnMsICdhdXRvcGF1c2UnKTtcblx0cHJpdmF0ZSBhdXRvcmVzZXQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2F1dG9yZXNldCcpO1xuXHRwcml2YXRlIGRlbGF5ID0gcGljayh0aGlzLm9wdGlvbnMsICdkZWxheScpO1xuXG5cdHByaXZhdGUgcHJvamVjdCA9IGluamVjdChUaGVhdHJlUHJvamVjdCk7XG5cdHByaXZhdGUgc2hlZXQgPSBpbmplY3QoVGhlYXRyZVNoZWV0LCB7IGhvc3Q6IHRydWUgfSk7XG5cdHNlcXVlbmNlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zaGVldC5zaGVldCgpLnNlcXVlbmNlKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgYXV0b3BsYXkgPSB1bnRyYWNrZWQodGhpcy5hdXRvcGxheSk7XG5cdFx0XHRpZiAoIWF1dG9wbGF5KSByZXR1cm47XG5cblx0XHRcdGNvbnN0IGRlbGF5ID0gdW50cmFja2VkKHRoaXMuZGVsYXkpO1xuXHRcdFx0Y29uc3QgaWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0dW50cmFja2VkKCgpID0+IHRoaXMucGxheSgpKTtcblx0XHRcdH0sIGRlbGF5KTtcblxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0Y2xlYXJUaW1lb3V0KGlkKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGF1dG9wYXVzZSA9IHVudHJhY2tlZCh0aGlzLmF1dG9wYXVzZSk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRpZiAoYXV0b3BhdXNlKSB7XG5cdFx0XHRcdFx0dGhpcy5wYXVzZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBhdXRvcmVzZXQgPSB1bnRyYWNrZWQodGhpcy5hdXRvcmVzZXQpO1xuXHRcdFx0aWYgKGF1dG9yZXNldCA9PT0gJ2luaXQnIHx8IGF1dG9yZXNldCA9PT0gJ2Fsd2F5cycpIHtcblx0XHRcdFx0dW50cmFja2VkKCgpID0+IHRoaXMucmVzZXQoKSk7XG5cdFx0XHR9XG5cblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XG5cdFx0XHRcdGlmIChhdXRvcmVzZXQgPT09ICdkZXN0cm95JyB8fCBhdXRvcmVzZXQgPT09ICdhbHdheXMnKSB7XG5cdFx0XHRcdFx0dW50cmFja2VkKCgpID0+IHRoaXMucmVzZXQoKSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IFthdWRpb09wdGlvbnMsIHNlcXVlbmNlXSA9IFt0aGlzLmF1ZGlvT3B0aW9ucygpLCB1bnRyYWNrZWQodGhpcy5zZXF1ZW5jZSldO1xuXHRcdFx0aWYgKGF1ZGlvT3B0aW9ucykgc2VxdWVuY2UuYXR0YWNoQXVkaW8oYXVkaW9PcHRpb25zKTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbcGxheU9wdGlvbnMsIHNlcXVlbmNlXSA9IFt0aGlzLnBsYXlPcHRpb25zKCksIHVudHJhY2tlZCh0aGlzLnNlcXVlbmNlKV07XG5cdFx0XHRjb25zdCBpc1BsYXlpbmcgPSB2YWwoc2VxdWVuY2UucG9pbnRlci5wbGF5aW5nKTtcblx0XHRcdGlmIChpc1BsYXlpbmcpIHtcblx0XHRcdFx0dGhpcy5wYXVzZSgpO1xuXHRcdFx0XHR0aGlzLnBsYXkocGxheU9wdGlvbnMpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IHNlcXVlbmNlID0gdGhpcy5zZXF1ZW5jZSgpO1xuXG5cdFx0XHRjb25zdCBjbGVhbnVwczogQXJyYXk8KCkgPT4gdm9pZD4gPSBbXTtcblxuXHRcdFx0Y2xlYW51cHMucHVzaChcblx0XHRcdFx0b25DaGFuZ2Uoc2VxdWVuY2UucG9pbnRlci5wb3NpdGlvbiwgKHZhbHVlKSA9PiB0aGlzLnBvc2l0aW9uLnNldCh2YWx1ZSkpLFxuXHRcdFx0XHRvbkNoYW5nZShzZXF1ZW5jZS5wb2ludGVyLnBsYXlpbmcsICh2YWx1ZSkgPT4gdGhpcy5wbGF5aW5nLnNldCh2YWx1ZSkpLFxuXHRcdFx0XHRvbkNoYW5nZShzZXF1ZW5jZS5wb2ludGVyLmxlbmd0aCwgKHZhbHVlKSA9PiB0aGlzLmxlbmd0aC5zZXQodmFsdWUpKSxcblx0XHRcdCk7XG5cblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XG5cdFx0XHRcdGNsZWFudXBzLmZvckVhY2goKGNsZWFudXApID0+IGNsZWFudXAoKSk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXG5cdHBhdXNlKCkge1xuXHRcdGNvbnN0IHNlcXVlbmNlID0gdGhpcy5zZXF1ZW5jZSgpO1xuXHRcdHNlcXVlbmNlLnBhdXNlKCk7XG5cdH1cblxuXHRwbGF5KG9wdGlvbnM6IFBhcmFtZXRlcnM8SVNlcXVlbmNlWydwbGF5J10+WzBdID0ge30pIHtcblx0XHRjb25zdCBzZXF1ZW5jZSA9IHRoaXMuc2VxdWVuY2UoKTtcblx0XHRjb25zdCBwcm9qZWN0ID0gdGhpcy5wcm9qZWN0LnByb2plY3QoKTtcblxuXHRcdHByb2plY3QucmVhZHkudGhlbigoKSA9PiB7XG5cdFx0XHRzZXF1ZW5jZS5wbGF5KHsgLi4udGhpcy5wbGF5T3B0aW9ucygpLCAuLi5vcHRpb25zIH0pO1xuXHRcdH0pO1xuXHR9XG5cblx0cmVzZXQoKSB7XG5cdFx0Y29uc3Qgc2VxdWVuY2UgPSB0aGlzLnNlcXVlbmNlKCk7XG5cdFx0Y29uc3QgaXNQbGF5aW5nID0gdmFsKHNlcXVlbmNlLnBvaW50ZXIucGxheWluZyk7XG5cdFx0c2VxdWVuY2UucG9zaXRpb24gPSAwO1xuXHRcdGlmIChpc1BsYXlpbmcpIHRoaXMucGxheSgpO1xuXHR9XG59XG4iXX0=","export * from './lib/project';\nexport * from './lib/sheet-object';\nexport * from './lib/studio/studio';\nexport * from './lib/sequence';\nexport { TheatreSheet as TheatreSheetImpl } from './lib/sheet';\nimport { TheatreSequence } from './lib/sequence';\nimport { TheatreSheet as Impl } from './lib/sheet';\nexport const TheatreSheet = [Impl, TheatreSequence];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3RoZWF0cmUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLElBQUksZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLElBQUksSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRW5ELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLElBQUksRUFBRSxlQUFlLENBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3Byb2plY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hlZXQtb2JqZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0dWRpby9zdHVkaW8nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXF1ZW5jZSc7XG5leHBvcnQgeyBUaGVhdHJlU2hlZXQgYXMgVGhlYXRyZVNoZWV0SW1wbCB9IGZyb20gJy4vbGliL3NoZWV0JztcblxuaW1wb3J0IHsgVGhlYXRyZVNlcXVlbmNlIH0gZnJvbSAnLi9saWIvc2VxdWVuY2UnO1xuaW1wb3J0IHsgVGhlYXRyZVNoZWV0IGFzIEltcGwgfSBmcm9tICcuL2xpYi9zaGVldCc7XG5cbmV4cG9ydCBjb25zdCBUaGVhdHJlU2hlZXQgPSBbSW1wbCwgVGhlYXRyZVNlcXVlbmNlXSBhcyBjb25zdDtcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS10aGVhdHJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy90aGVhdHJlL3NyYy9hbmd1bGFyLXRocmVlLXRoZWF0cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["TheatreSheet","TheatreSheetObject","Impl"],"mappings":";;;;;;;;;AAGO,MAAM,cAAc,CAAC;AAC5B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,yBAAyB,CAAC;AACpD,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7E,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1C,YAAY,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;AAChC,SAAS,CAAC;AACV;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAChL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACvb;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1E;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACxH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,iBAAiB;AAC/C,oBAAoB,QAAQ,EAAE;AAC9B;AACA,CAAC,CAAC;AACF,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;qBCzBhC,MAAM,YAAY,CAAC;AAC1B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,uBAAuB,EAAE;AACnD,YAAY,SAAS,EAAE,CAAC,KAAK,KAAK;AAClC,gBAAgB,IAAI,KAAK,KAAK,EAAE;AAChC,oBAAoB,OAAO,uBAAuB;AAClD,gBAAgB,OAAO,KAAK;AAC5B,aAAa;AACb,YAAY,KAAK,EAAE,OAAO;AAC1B,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC;AAC7C,QAAQ,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM;AACpC,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACpC,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;AAC5D,YAAY,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC7B,gBAAgB,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC7B,gBAAgB,OAAO,QAAQ,CAAC,CAAC,CAAC;AAClC;AACA,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC5D,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;AAClD,YAAY,OAAO,KAAK;AACxB,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM;AAC3C,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAC7D,YAAY,IAAI,CAAC,QAAQ;AACzB,gBAAgB;AAChB,YAAY,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AAClC,gBAAgB,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC7B;AACA,YAAY,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACnC,gBAAgB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACvD;AACA,SAAS,CAAC;AACV;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAChU;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAEA,cAAY,EAAE,UAAU,EAAE,CAAC;AACtH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE;AAC7D,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC1ChC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,gBAAgB,CAAC;;2BCI3D,MAAM,kBAAkB,CAAC;AAChC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AAC3D,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;AAC7D,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;AAC/F,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;AACtE,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAC9C,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC3C,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAACA,cAAY,CAAC;AACzC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAChE,QAAQ,IAAI,CAAC,KAAK,GAAG,WAAW,EAAE;AAClC,QAAQ,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,MAAM;AAClD,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AAC5C,YAAY,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AACzF,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC;AACjE,QAAQ,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC;AAClE,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK;AAC7B,QAAQ,IAAI,CAAC,eAAe,GAAG,EAAE;AACjC,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,IAAI,CAAC,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE;AAC/E,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AAClD,YAAY,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC,SAAS,KAAK;AACtE,gBAAgB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;AAC1C,gBAAgB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE;AAChD,aAAa,CAAC;AACd,YAAY,SAAS,CAAC,OAAO,CAAC;AAC9B,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI;AAC1C,YAAY,IAAI,CAAC,MAAM;AACvB,gBAAgB;AAChB,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AAClD,YAAY,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,KAAK;AACpE,gBAAgB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAClE,aAAa,CAAC;AACd,YAAY,SAAS,CAAC,OAAO,CAAC;AAC9B,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE;AACvE,gBAAgB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9C,gBAAgB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAClD,gBAAgB,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;AAC1D,gBAAgB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AAChD,aAAa,CAAC;AACd,YAAY,IAAI,CAAC,aAAa,EAAE;AAChC,YAAY,SAAS,CAAC,MAAM;AAC5B,gBAAgB,IAAI,CAAC,OAAO,EAAE;AAC9B,aAAa,CAAC;AACd,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM;AAC3C,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AAC/B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpC,gBAAgB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAC3D;AACA,SAAS,CAAC;AACV;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,IAAI,CAAC,QAAQ;AACzB,YAAY;AACZ,QAAQ,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/E,QAAQ,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC;AAC/B,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5F;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,CAAC,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,KAAK,EAAE;AACpE,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB;AACA,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/G;AACA,QAAQ,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAChC,YAAY,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AAC7C,SAAS,CAAC;AACV;AACA,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5D;AACA,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC;AACvC;AACA;AACA,aAAa;AACb;AACA,YAAY,IAAI,CAAC,MAAM,EAAE;AACzB;AACA;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI;AACtC,QAAQ,IAAI,CAAC,MAAM;AACnB,YAAY;AACZ,QAAQ,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACjD;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI;AACtC,QAAQ,IAAI,CAAC,MAAM;AACnB,YAAY;AACZ,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE;AAC3D,YAAY,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;AACnC;AACA;AACA,IAAI,OAAO,sBAAsB,CAAC,CAAC,EAAE,GAAG,EAAE;AAC1C,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACpL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,0BAA0B,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,2BAA2B,EAAE,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AACzyB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAEC,oBAAkB,EAAE,UAAU,EAAE,CAAC;AAC5H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,0BAA0B,EAAE,QAAQ,EAAE,aAAa,EAAE;AACpF,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACpHhC,SAAS,iBAAiB,CAAC,WAAW,EAAE;AAC/C,IAAI,OAAO,WAAW;AACtB;;ACCA,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE;AACzB,MAAM,KAAK,GAAG,iBAAiB,CAAC;AACvC,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB,QAAQ,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC;AAClD,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC1E,KAAK;AACL,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;AAC/B,QAAQ,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC;AAC5E,KAAK;AACL,CAAC,CAAC;;ACTK,MAAM,OAAO,GAAG,iBAAiB,CAAC;AACzC,IAAI,SAAS,CAAC,MAAM,EAAE;AACtB,QAAQ,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC;AAC7D,KAAK;AACL,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;AAC/B,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO;AACtD,KAAK;AACL,CAAC,CAAC;;ACPK,MAAM,KAAK,GAAG,iBAAiB,CAAC;AACvC,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB,QAAQ,OAAO,KAAK,CAAC,QAAQ,CAAC;AAC9B,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO;AAChD,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO;AAChD,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO;AAChD,SAAS,CAAC;AACV,KAAK;AACL,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;AAC/B,QAAQ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO;AAC1D,QAAQ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO;AAC1D,QAAQ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO;AAC1D,KAAK;AACL,CAAC,CAAC;;ACdK,MAAM,OAAO,GAAG,iBAAiB,CAAC;AACzC,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACvC,YAAY,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,GAAG,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;AAC9E;AACA,aAAa,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC5C,YAAY,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AACtC;AACA,aAAa,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;AAC7C,YAAY,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AACvC;AACA,QAAQ,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;AAC3C,KAAK;AACL,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;AAC/B,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE;AACvE,YAAY,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;AAC9C;AACA,aAAa;AACb,YAAY,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK;AAChC;AACA,KAAK;AACL,CAAC,CAAC;;ACrBK,MAAM,UAAU,GAAG,iBAAiB,CAAC;AAC5C,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB,QAAQ,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACrD,KAAK;AACL,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;AAC/B,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK;AAC5B,KAAK;AACL,CAAC,CAAC;;ACNK,MAAM,IAAI,GAAG,iBAAiB,CAAC;AACtC,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB;AACA,QAAQ,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,CAAC,QAAQ,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;AACpK,KAAK;AACL,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;AAC/B,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,KAAK,GAAG,GAAG,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,UAAU;AAC1G,KAAK;AACL,CAAC,CAAC;;ACLF,SAAS,qBAAqB,CAAC,gBAAgB,EAAE,OAAO,EAAE;AAC1D,IAAI,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,gBAAgB,KAAK,OAAO;AACnF;AACO,SAAS,qBAAqB,CAAC,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE;AACtE,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;AACjC,IAAI,IAAI,QAAQ,CAAC,OAAO;AACxB,QAAQ,OAAO,KAAK;AACpB,IAAI,IAAI,QAAQ,CAAC,OAAO;AACxB,QAAQ,OAAO,KAAK;AACpB,IAAI,IAAI,qBAAqB,CAAC,gBAAgB,EAAE,YAAY,CAAC;AAC7D,QAAQ,qBAAqB,CAAC,gBAAgB,EAAE,YAAY,CAAC;AAC7D,QAAQ,qBAAqB,CAAC,gBAAgB,EAAE,YAAY,CAAC;AAC7D,SAAS,MAAM,CAAC,OAAO,KAAK,gBAAgB,KAAK,GAAG,IAAI,gBAAgB,KAAK,GAAG,IAAI,gBAAgB,KAAK,GAAG,CAAC,CAAC,EAAE;AAChH,QAAQ,OAAO,OAAO;AACtB;AACA,IAAI,IAAI,qBAAqB,CAAC,gBAAgB,EAAE,GAAG,CAAC;AACpD,QAAQ,OAAO,UAAU;AACzB,IAAI,IAAI,qBAAqB,CAAC,gBAAgB,EAAE,GAAG,CAAC;AACpD,QAAQ,OAAO,UAAU;AACzB,IAAI,IAAI,qBAAqB,CAAC,gBAAgB,EAAE,GAAG,CAAC;AACpD,QAAQ,OAAO,UAAU;AACzB,IAAI,IAAI,qBAAqB,CAAC,gBAAgB,EAAE,SAAS,CAAC;AAC1D,QAAQ,OAAO,UAAU;AACzB,IAAI,IAAI,qBAAqB,CAAC,gBAAgB,EAAE,WAAW,CAAC;AAC5D,QAAQ,OAAO,UAAU;AACzB,IAAI,IAAI,qBAAqB,CAAC,gBAAgB,EAAE,WAAW,CAAC;AAC5D,QAAQ,OAAO,UAAU;AACzB,IAAI,IAAI,qBAAqB,CAAC,gBAAgB,EAAE,cAAc,CAAC;AAC/D,QAAQ,OAAO,UAAU;AACzB,IAAI,IAAI,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,CAAC;AACvD,QAAQ,OAAO,IAAI;AACnB,IAAI,OAAO,OAAO;AAClB;;AChCA,MAAM,0BAA0B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACtG,MAAM,sBAAsB,CAAC;AACpC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;AACrC,YAAY,KAAK,EAAE,MAAM;AACzB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AACtD,QAAQ,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAACA,oBAAkB,CAAC;AAC5D,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;AAChF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAChE,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACxC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACxC,YAAY,IAAI,OAAO,MAAM,KAAK,UAAU;AAC5C,gBAAgB,OAAO,UAAU,CAAC,MAAM,EAAE,CAAC;AAC3C,YAAY,OAAO,UAAU,CAAC,MAAM,CAAC;AACrC,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM;AAC5C,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AACtC,YAAY,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,IAAI,KAAK;AACpD,gBAAgB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC9C,oBAAoB,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClF;AACA,qBAAqB;AACrB,oBAAoB,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACrD,wBAAwB,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAClE;AACA,yBAAyB;AACzB,wBAAwB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C;AACA;AACA,gBAAgB,OAAO,QAAQ;AAC/B,aAAa,EAAE,EAAE,CAAC;AAClB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM;AACzC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AAC3C,YAAY,IAAI,CAAC,MAAM;AACvB,gBAAgB,OAAO,IAAI;AAC3B,YAAY,MAAM,UAAU,GAAG,EAAE;AACjC,YAAY,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;AACtD,YAAY,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,KAAK;AAC/E,gBAAgB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC;AAChF,gBAAgB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;AAChD,gBAAgB,MAAM,gBAAgB,GAAG,WAAW,IAAI,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AACxG,gBAAgB,MAAM,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC;AAClE,gBAAgB,KAAK,CAAC,KAAK,GAAG,KAAK,IAAI,GAAG;AAC1C,gBAAgB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE;AAC1F,gBAAgB,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK;AACvC,aAAa,CAAC;AACd,YAAY,OAAO,UAAU;AAC7B,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,YAAY,GAAG,EAAE;AAC9B,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AAChD,YAAY,IAAI,CAAC,UAAU;AAC3B,gBAAgB;AAChB,YAAY,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC;AACxD,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AAC3C,YAAY,IAAI,CAAC,MAAM;AACvB,gBAAgB;AAChB,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AAChD,YAAY,IAAI,CAAC,UAAU;AAC3B,gBAAgB;AAChB,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AAClD,YAAY,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC,SAAS,KAAK;AACtE,gBAAgB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACxD;AACA,oBAAoB,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;AAC9D,oBAAoB,IAAI,CAAC,WAAW;AACpC,wBAAwB;AACxB;AACA,oBAAoB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC;AAC5F;AACA,oBAAoB,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW;AAC/D,oBAAoB,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;AACtE,oBAAoB,IAAI,0BAA0B,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AACxE,wBAAwB,IAAI,CAAC,sBAAsB,IAAI;AACvD;AACA,iBAAiB,CAAC;AAClB,aAAa,CAAC;AACd,YAAY,SAAS,CAAC,OAAO,CAAC;AAC9B,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM;AAC3C,YAAY,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC/E,SAAS,CAAC;AACV;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI;AACtC,QAAQ,IAAI,CAAC,MAAM;AACnB,YAAY;AACZ,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AACvC,QAAQ,IAAI,CAAC,MAAM;AACnB,YAAY;AACZ,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AAC9C,QAAQ,IAAI,CAAC,WAAW;AACxB,YAAY;AACZ,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE;AACpC,QAAQ,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACxD;AACA,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;AACtD,YAAY,IAAI,CAAC,WAAW;AAC5B,gBAAgB;AAChB;AACA,YAAY,MAAM,EAAE,UAAU,EAAE,GAAG,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC;AAC/E,YAAY,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,OAAO;AAC/E,YAAY,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK;AACvC,gBAAgB,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC;AAClD,aAAa,CAAC;AACd,SAAS,CAAC;AACV,QAAQ,KAAK,CAAC,MAAM,EAAE;AACtB;AACA,IAAI,mBAAmB,CAAC,QAAQ,EAAE;AAClC,QAAQ,QAAQ;AAChB;AACA,aAAa,OAAO,CAAC,KAAK,EAAE,GAAG;AAC/B;AACA,aAAa,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;AAC3D;AACA,aAAa,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;AACzC;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACxL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AACtc;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC;AAChI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE;AAC3D,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC3HhC,MAAM,2BAA2B,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM;AACxB,YAAY;AACZ,QAAQ,IAAI,IAAI,CAAC,KAAK;AACtB,YAAY;AACZ,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;AAC1C;AACA,IAAI,SAAS,GAAG;AAChB,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK;AACvB,YAAY;AACZ,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,SAAS;AAC9B;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK;AACvB,YAAY;AACZ,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACpC,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AAClD,YAAY,IAAI,CAAC,WAAW;AAC5B,gBAAgB;AAChB,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa;AACvD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AAClC,YAAY,MAAM,UAAU,GAAG,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK;AAC/E,YAAY,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AAClE,YAAY,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;AAC5C,gBAAgB,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO;AAC7D,gBAAgB,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO;AAC7D,gBAAgB,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO;AAC7D,aAAa,CAAC;AACd,YAAY,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;AAC5D,SAAS,CAAC;AACV;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE;AAC5B,QAAQ,IAAI,CAAC,GAAG,GAAG,KAAK,EAAE;AAC1B,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;AAChC,QAAQ,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AACnD,QAAQ,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,qBAAqB,CAAC;AAC3D,QAAQ,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAACA,oBAAkB,CAAC;AAC5D,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;AAChF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAChE,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,EAAE;AACrE,QAAQ,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,MAAM,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC/H,QAAQ,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,MAAM,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC/H,QAAQ,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACtH,QAAQ,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;AACzB,QAAQ,eAAe,CAAC,MAAM;AAC9B,YAAY,IAAI,CAAC,IAAI,EAAE;AACvB,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,KAAK,CAAC,GAAG;AAC1G,gBAAgB,IAAI,CAAC,WAAW,EAAE;AAClC,gBAAgB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;AACnC,gBAAgB,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC;AACnD,gBAAgB,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC;AACnD,gBAAgB,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAChD,gBAAgB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,aAAa;AACtD,aAAa;AACb,YAAY,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC,SAAS,KAAK;AACtE,gBAAgB,IAAI,MAAM,GAAG,SAAS;AACtC,gBAAgB,IAAI,GAAG,EAAE;AACzB,oBAAoB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;AACvC,wBAAwB;AACxB,oBAAoB,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC;AAC3C;AACA,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;AAC/F,wBAAwB;AACxB;AACA;AACA,gBAAgB,IAAI,CAAC,MAAM;AAC3B,oBAAoB;AACpB,gBAAgB,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AAChF,gBAAgB,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AAChF,gBAAgB,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AACvE,aAAa,CAAC;AACd,YAAY,SAAS,CAAC,OAAO,CAAC;AAC9B,SAAS,CAAC;AACV;AACA,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE;AAC/C,YAAY,IAAI,CAAC,QAAQ;AACzB,gBAAgB;AAChB,YAAY,MAAM,IAAI,GAAG;AACzB,gBAAgB,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnE,gBAAgB,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzE,gBAAgB,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrE,aAAa;AACb,YAAY,SAAS,CAAC,MAAM;AAC5B,gBAAgB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC;AACxD,aAAa,CAAC;AACd,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM;AAC3C,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AAClC,YAAY,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAChG,SAAS,CAAC;AACV;AACA,IAAI,IAAI,GAAG;AACX,QAAQ,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,GAAG;AAChG,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa;AACzC,YAAY,IAAI,CAAC,GAAG,EAAE;AACtB,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,YAAY,IAAI,CAAC,mBAAmB,EAAE;AACtC,YAAY,IAAI,CAAC,mBAAmB,EAAE;AACtC,YAAY,IAAI,CAAC,gBAAgB,EAAE;AACnC,SAAS;AACT,QAAQ,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;AACtE,QAAQ,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;AACtE,QAAQ,MAAM,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;AAC7D,QAAQ,IAAI,GAAG,EAAE;AACjB,YAAY,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;AAC7C,gBAAgB,CAAC,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,CAAC;AAC7F,aAAa,CAAC;AACd;AACA,aAAa;AACb,YAAY,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC3E;AACA;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7L,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,2BAA2B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACpyB;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AAC/Q;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,CAAC;AACrI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,mBAAmB;AACjD,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACpD,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACvJ3B,MAAC,kBAAkB,GAAG,CAACC,oBAAI,EAAE,2BAA2B,EAAE,sBAAsB;;ACHrF,MAAM,aAAa,CAAC;AAC3B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AACpF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;AAClC,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AAC9C,QAAQ,OAAO,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;AAC9C,YAAY,MAAM,MAAM,GAAG,SAAS,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO;AACjF,YAAY,MAAM,CAAC,UAAU,EAAE;AAC/B,YAAY,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AACnC,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACxC,YAAY,IAAI,CAAC,MAAM;AACvB,gBAAgB;AAChB,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1C,YAAY,IAAI,OAAO,EAAE;AACzB,gBAAgB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE;AACnC;AACA,iBAAiB;AACjB,gBAAgB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;AAChC;AACA,YAAY,SAAS,CAAC,MAAM;AAC5B,gBAAgB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;AAChC,aAAa,CAAC;AACd,SAAS,CAAC;AACV;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC/K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE;AAC9T,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC,EAAE;AACrG,SAAS,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AACjD;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,yBAAyB;AACvD,oBAAoB,QAAQ,EAAE,QAAQ;AACtC,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC,EAAE;AACjH,qBAAqB;AACrB,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACpCvC,MAAM,cAAc,GAAG;AACvB,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,QAAQ,EAAE,KAAK;AACnB,IAAI,SAAS,EAAE,KAAK;AACpB,IAAI,KAAK,EAAE,CAAC;AACZ,CAAC;AACM,MAAM,eAAe,CAAC;AAC7B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;AAC3G,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;AACxE,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;AAChC,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC;AACnC,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;AAC9B,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AAC9F,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;AACtD,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;AACxD,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;AACxD,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;AAChD,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC;AAC7C,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAACF,cAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACzD,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC;AACnE,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AACrD,YAAY,IAAI,CAAC,QAAQ;AACzB,gBAAgB;AAChB,YAAY,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/C,YAAY,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM;AACxC,gBAAgB,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAC5C,aAAa,EAAE,KAAK,CAAC;AACrB,YAAY,SAAS,CAAC,MAAM;AAC5B,gBAAgB,YAAY,CAAC,EAAE,CAAC;AAChC,aAAa,CAAC;AACd,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;AACvD,YAAY,SAAS,CAAC,MAAM;AAC5B,gBAAgB,IAAI,SAAS,EAAE;AAC/B,oBAAoB,IAAI,CAAC,KAAK,EAAE;AAChC;AACA,aAAa,CAAC;AACd,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;AACvD,YAAY,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,QAAQ,EAAE;AAChE,gBAAgB,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;AAC7C;AACA,YAAY,SAAS,CAAC,MAAM;AAC5B,gBAAgB,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,QAAQ,EAAE;AACvE,oBAAoB,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;AACjD;AACA,aAAa,CAAC;AACd,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5F,YAAY,IAAI,YAAY;AAC5B,gBAAgB,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC;AAClD,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1F,YAAY,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;AAC3D,YAAY,IAAI,SAAS,EAAE;AAC3B,gBAAgB,IAAI,CAAC,KAAK,EAAE;AAC5B,gBAAgB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AACtC;AACA,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC5C,YAAY,MAAM,QAAQ,GAAG,EAAE;AAC/B,YAAY,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACjP,YAAY,SAAS,CAAC,MAAM;AAC5B,gBAAgB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;AACxD,aAAa,CAAC;AACd,SAAS,CAAC;AACV;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AACxC,QAAQ,QAAQ,CAAC,KAAK,EAAE;AACxB;AACA,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,EAAE;AACvB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AACxC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AAC9C,QAAQ,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM;AACjC,YAAY,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC;AAChE,SAAS,CAAC;AACV;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AACxC,QAAQ,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;AACvD,QAAQ,QAAQ,CAAC,QAAQ,GAAG,CAAC;AAC7B,QAAQ,IAAI,SAAS;AACrB,YAAY,IAAI,CAAC,IAAI,EAAE;AACvB;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACjL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC57B;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AACzH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE,UAAU,EAAE;AAC1E,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AClG3B,MAAC,YAAY,GAAG,CAACE,cAAI,EAAE,eAAe;;ACPlD;AACA;AACA;;;;"}
|
|
1
|
+
{"version":3,"file":"angular-three-theatre.mjs","sources":["../tmp-esm2022/lib/project.js","../tmp-esm2022/lib/sheet.js","../tmp-esm2022/lib/studio/studio-token.js","../tmp-esm2022/lib/sheet-object/sheet-object.js","../tmp-esm2022/lib/transformers/transformer.js","../tmp-esm2022/lib/transformers/color.js","../tmp-esm2022/lib/transformers/degrees.js","../tmp-esm2022/lib/transformers/euler.js","../tmp-esm2022/lib/transformers/generic.js","../tmp-esm2022/lib/transformers/normalized.js","../tmp-esm2022/lib/transformers/side.js","../tmp-esm2022/lib/transformers/default-transformer.js","../tmp-esm2022/lib/sheet-object/sync.js","../tmp-esm2022/lib/sheet-object/transform.js","../tmp-esm2022/lib/sheet-object/index.js","../tmp-esm2022/lib/studio/studio.js","../tmp-esm2022/lib/sequence.js","../tmp-esm2022/index.js","../tmp-esm2022/angular-three-theatre.js"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { getProject } from '@theatre/core';\nimport * as i0 from \"@angular/core\";\nexport class TheatreProject {\n constructor() {\n this.name = input('default-theatre-project', ...(ngDevMode ? [{ debugName: \"name\" }] : []));\n this.config = input({}, ...(ngDevMode ? [{ debugName: \"config\" }] : []));\n this.project = computed(() => getProject(this.name(), this.config()), ...(ngDevMode ? [{ debugName: \"project\" }] : []));\n this.sheets = {};\n effect(() => {\n const project = this.project();\n project.ready.then();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TheatreProject, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: TheatreProject, isStandalone: true, selector: \"theatre-project\", inputs: { name: { classPropertyName: \"name\", publicName: \"name\", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: \"config\", publicName: \"config\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ng-content />\n\t`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TheatreProject, decorators: [{\n type: Component,\n args: [{\n selector: 'theatre-project',\n template: `\n\t\t<ng-content />\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdGhlYXRyZS9zcmMvbGliL3Byb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUsVUFBVSxFQUFvQyxNQUFNLGVBQWUsQ0FBQzs7QUFTN0UsTUFBTSxPQUFPLGNBQWM7SUFPMUI7UUFOQSxTQUFJLEdBQUcsS0FBSyxDQUFDLHlCQUF5QixnREFBQyxDQUFDO1FBQ3hDLFdBQU0sR0FBRyxLQUFLLENBQWlCLEVBQUUsa0RBQUMsQ0FBQztRQUVuQyxZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLG1EQUFDLENBQUM7UUFDakUsV0FBTSxHQUFtRCxFQUFFLENBQUM7UUFHM0QsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMvQixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0FaVyxjQUFjO2tHQUFkLGNBQWMsdVVBTGhCOztFQUVUOzsyRkFHVyxjQUFjO2tCQVAxQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0UHJvamVjdCwgdHlwZSBJUHJvamVjdENvbmZpZywgdHlwZSBJU2hlZXQgfSBmcm9tICdAdGhlYXRyZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAndGhlYXRyZS1wcm9qZWN0Jyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmctY29udGVudCAvPlxuXHRgLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGhlYXRyZVByb2plY3Qge1xuXHRuYW1lID0gaW5wdXQoJ2RlZmF1bHQtdGhlYXRyZS1wcm9qZWN0Jyk7XG5cdGNvbmZpZyA9IGlucHV0PElQcm9qZWN0Q29uZmlnPih7fSk7XG5cblx0cHJvamVjdCA9IGNvbXB1dGVkKCgpID0+IGdldFByb2plY3QodGhpcy5uYW1lKCksIHRoaXMuY29uZmlnKCkpKTtcblx0c2hlZXRzOiBSZWNvcmQ8c3RyaW5nLCBbc2hlZXQ6IElTaGVldCwgY291bnQ6IG51bWJlcl0+ID0ge307XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IHByb2plY3QgPSB0aGlzLnByb2plY3QoKTtcblx0XHRcdHByb2plY3QucmVhZHkudGhlbigpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=","import { computed, DestroyRef, Directive, inject, input } from '@angular/core';\nimport { TheatreProject } from './project';\nimport * as i0 from \"@angular/core\";\nexport class TheatreSheet {\n constructor() {\n this.name = input('default-theatre-sheet', ...(ngDevMode ? [{ debugName: \"name\", transform: (value) => {\n if (value === '')\n return 'default-theatre-sheet';\n return value;\n },\n alias: 'sheet' }] : [{\n transform: (value) => {\n if (value === '')\n return 'default-theatre-sheet';\n return value;\n },\n alias: 'sheet',\n }]));\n this.project = inject(TheatreProject);\n this.sheet = computed(() => {\n const name = this.name();\n const existing = this.project.sheets[name] || [];\n if (existing[0]) {\n existing[1]++;\n return existing[0];\n }\n const sheet = this.project.project().sheet(name);\n this.project.sheets[name] = [sheet, 1];\n return sheet;\n }, ...(ngDevMode ? [{ debugName: \"sheet\" }] : []));\n inject(DestroyRef).onDestroy(() => {\n const existing = this.project.sheets[this.name()];\n if (!existing)\n return;\n if (existing[1] >= 1) {\n existing[1]--;\n }\n if (existing[1] === 0) {\n delete this.project.sheets[this.name()];\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TheatreSheet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: TheatreSheet, isStandalone: true, selector: \"[sheet]\", inputs: { name: { classPropertyName: \"name\", publicName: \"sheet\", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: [\"sheet\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TheatreSheet, decorators: [{\n type: Directive,\n args: [{ selector: '[sheet]', exportAs: 'sheet' }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3RoZWF0cmUvc3JjL2xpYi9zaGVldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUczQyxNQUFNLE9BQU8sWUFBWTtJQXlCeEI7UUF4QkEsU0FBSSxHQUFHLEtBQUssQ0FBQyx1QkFBdUIsd0NBQ25DLFNBQVMsRUFBRSxDQUFDLEtBQWEsRUFBRSxFQUFFO29CQUM1QixJQUFJLEtBQUssS0FBSyxFQUFFO3dCQUFFLE9BQU8sdUJBQXVCLENBQUM7b0JBQ2pELE9BQU8sS0FBSyxDQUFDO2dCQUNkLENBQUM7Z0JBQ0QsS0FBSyxFQUFFLE9BQU8sT0FMdUI7Z0JBQ3JDLFNBQVMsRUFBRSxDQUFDLEtBQWEsRUFBRSxFQUFFO29CQUM1QixJQUFJLEtBQUssS0FBSyxFQUFFO3dCQUFFLE9BQU8sdUJBQXVCLENBQUM7b0JBQ2pELE9BQU8sS0FBSyxDQUFDO2dCQUNkLENBQUM7Z0JBQ0QsS0FBSyxFQUFFLE9BQU87YUFDZCxHQUFDLENBQUM7UUFFSyxZQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXpDLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN6QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFakQsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDakIsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2QsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEIsQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxpREFBQyxDQUFDO1FBR0YsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLFFBQVE7Z0JBQUUsT0FBTztZQUV0QixJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDZixDQUFDO1lBRUQsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDekMsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0F0Q1csWUFBWTtrR0FBWixZQUFZOzsyRkFBWixZQUFZO2tCQUR4QixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIERlc3Ryb3lSZWYsIERpcmVjdGl2ZSwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGhlYXRyZVByb2plY3QgfSBmcm9tICcuL3Byb2plY3QnO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbc2hlZXRdJywgZXhwb3J0QXM6ICdzaGVldCcgfSlcbmV4cG9ydCBjbGFzcyBUaGVhdHJlU2hlZXQge1xuXHRuYW1lID0gaW5wdXQoJ2RlZmF1bHQtdGhlYXRyZS1zaGVldCcsIHtcblx0XHR0cmFuc2Zvcm06ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRpZiAodmFsdWUgPT09ICcnKSByZXR1cm4gJ2RlZmF1bHQtdGhlYXRyZS1zaGVldCc7XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fSxcblx0XHRhbGlhczogJ3NoZWV0Jyxcblx0fSk7XG5cblx0cHJpdmF0ZSBwcm9qZWN0ID0gaW5qZWN0KFRoZWF0cmVQcm9qZWN0KTtcblxuXHRzaGVldCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBuYW1lID0gdGhpcy5uYW1lKCk7XG5cdFx0Y29uc3QgZXhpc3RpbmcgPSB0aGlzLnByb2plY3Quc2hlZXRzW25hbWVdIHx8IFtdO1xuXG5cdFx0aWYgKGV4aXN0aW5nWzBdKSB7XG5cdFx0XHRleGlzdGluZ1sxXSsrO1xuXHRcdFx0cmV0dXJuIGV4aXN0aW5nWzBdO1xuXHRcdH1cblxuXHRcdGNvbnN0IHNoZWV0ID0gdGhpcy5wcm9qZWN0LnByb2plY3QoKS5zaGVldChuYW1lKTtcblx0XHR0aGlzLnByb2plY3Quc2hlZXRzW25hbWVdID0gW3NoZWV0LCAxXTtcblx0XHRyZXR1cm4gc2hlZXQ7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4ge1xuXHRcdFx0Y29uc3QgZXhpc3RpbmcgPSB0aGlzLnByb2plY3Quc2hlZXRzW3RoaXMubmFtZSgpXTtcblx0XHRcdGlmICghZXhpc3RpbmcpIHJldHVybjtcblxuXHRcdFx0aWYgKGV4aXN0aW5nWzFdID49IDEpIHtcblx0XHRcdFx0ZXhpc3RpbmdbMV0tLTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKGV4aXN0aW5nWzFdID09PSAwKSB7XG5cdFx0XHRcdGRlbGV0ZSB0aGlzLnByb2plY3Quc2hlZXRzW3RoaXMubmFtZSgpXTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxufVxuIl19","import { InjectionToken } from '@angular/core';\nexport const THEATRE_STUDIO = new InjectionToken('Theatre Studio');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R1ZGlvLXRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90aGVhdHJlL3NyYy9saWIvc3R1ZGlvL3N0dWRpby10b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3ZELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsZ0JBQWdCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgSVN0dWRpbyB9IGZyb20gJ0B0aGVhdHJlL3N0dWRpbyc7XG5cbmV4cG9ydCBjb25zdCBUSEVBVFJFX1NUVURJTyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTaWduYWw8SVN0dWRpbz4+KCdUaGVhdHJlIFN0dWRpbycpO1xuIl19","import { booleanAttribute, computed, DestroyRef, Directive, effect, inject, input, linkedSignal, model, TemplateRef, untracked, ViewContainerRef, } from '@angular/core';\nimport { injectStore } from 'angular-three';\nimport { TheatreSheet } from '../sheet';\nimport { THEATRE_STUDIO } from '../studio/studio-token';\nimport * as i0 from \"@angular/core\";\nexport class TheatreSheetObject {\n constructor() {\n this.key = input.required(...(ngDevMode ? [{ debugName: \"key\", alias: 'sheetObject' }] : [{ alias: 'sheetObject' }]));\n this.props = input({}, ...(ngDevMode ? [{ debugName: \"props\", alias: 'sheetObjectProps' }] : [{ alias: 'sheetObjectProps' }]));\n this.detach = input(false, ...(ngDevMode ? [{ debugName: \"detach\", transform: booleanAttribute, alias: 'sheetObjectDetach' }] : [{ transform: booleanAttribute, alias: 'sheetObjectDetach' }]));\n this.selected = model(false, ...(ngDevMode ? [{ debugName: \"selected\", alias: 'sheetObjectSelected' }] : [{ alias: 'sheetObjectSelected' }]));\n this.templateRef = inject(TemplateRef);\n this.vcr = inject(ViewContainerRef);\n this.sheet = inject(TheatreSheet);\n this.studio = inject(THEATRE_STUDIO, { optional: true });\n this.store = injectStore();\n this.originalSheetObject = computed(() => {\n const sheet = this.sheet.sheet();\n return sheet.object(this.key(), untracked(this.props), { reconfigure: true });\n }, ...(ngDevMode ? [{ debugName: \"originalSheetObject\" }] : []));\n this.sheetObject = linkedSignal(this.originalSheetObject);\n this.values = linkedSignal(() => this.sheetObject().value);\n this.detached = false;\n this.aggregatedProps = {};\n effect(() => {\n this.aggregatedProps = { ...this.aggregatedProps, ...this.props() };\n });\n effect((onCleanup) => {\n const sheetObject = this.sheetObject();\n const cleanup = sheetObject.onValuesChange((newValues) => {\n this.values.set(newValues);\n this.store.snapshot.invalidate();\n });\n onCleanup(cleanup);\n });\n effect((onCleanup) => {\n const studio = this.studio?.();\n if (!studio)\n return;\n const sheetObject = this.sheetObject();\n const cleanup = studio.onSelectionChange((selection) => {\n this.selected.set(selection.includes(sheetObject));\n });\n onCleanup(cleanup);\n });\n effect((onCleanup) => {\n const view = this.vcr.createEmbeddedView(this.templateRef, {\n select: this.select.bind(this),\n deselect: this.deselect.bind(this),\n sheetObject: this.sheetObject.asReadonly(),\n values: this.values.asReadonly(),\n });\n view.detectChanges();\n onCleanup(() => {\n view.destroy();\n });\n });\n inject(DestroyRef).onDestroy(() => {\n if (this.detach()) {\n this.detached = true;\n this.sheet.sheet().detachObject(this.key());\n }\n });\n }\n update() {\n if (this.detached)\n return;\n const [sheet, key] = [untracked(this.sheet.sheet), untracked(this.key)];\n sheet.detachObject(key);\n this.sheetObject.set(sheet.object(key, this.aggregatedProps, { reconfigure: true }));\n }\n addProps(props) {\n this.aggregatedProps = { ...this.aggregatedProps, ...props };\n this.update();\n }\n removeProps(props) {\n const [detach, sheet, key] = [untracked(this.detach), untracked(this.sheet.sheet), untracked(this.key)];\n // remove props from sheet object\n props.forEach((prop) => {\n delete this.aggregatedProps[prop];\n });\n // if there are no more props, detach sheet object\n if (Object.keys(this.aggregatedProps).length === 0) {\n // detach sheet object\n if (detach) {\n sheet.detachObject(key);\n }\n }\n else {\n // update sheet object (reconfigure)\n this.update();\n }\n }\n select() {\n const studio = this.studio?.();\n if (!studio)\n return;\n studio.setSelection([this.sheetObject()]);\n }\n deselect() {\n const studio = this.studio?.();\n if (!studio)\n return;\n if (studio.selection.includes(this.sheetObject())) {\n studio.setSelection([]);\n }\n }\n static ngTemplateContextGuard(_, ctx) {\n return true;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TheatreSheetObject, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: TheatreSheetObject, isStandalone: true, selector: \"ng-template[sheetObject]\", inputs: { key: { classPropertyName: \"key\", publicName: \"sheetObject\", isSignal: true, isRequired: true, transformFunction: null }, props: { classPropertyName: \"props\", publicName: \"sheetObjectProps\", isSignal: true, isRequired: false, transformFunction: null }, detach: { classPropertyName: \"detach\", publicName: \"sheetObjectDetach\", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: \"selected\", publicName: \"sheetObjectSelected\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: \"sheetObjectSelectedChange\" }, exportAs: [\"sheetObject\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TheatreSheetObject, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[sheetObject]', exportAs: 'sheetObject' }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXQtb2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90aGVhdHJlL3NyYy9saWIvc2hlZXQtb2JqZWN0L3NoZWV0LW9iamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLFlBQVksRUFDWixLQUFLLEVBQ0wsV0FBVyxFQUNYLFNBQVMsRUFDVCxnQkFBZ0IsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFHeEQsTUFBTSxPQUFPLGtCQUFrQjtJQXNCOUI7UUFyQkEsUUFBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLHNDQUFXLEtBQUssRUFBRSxhQUFhLE9BQXRCLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxHQUFDLENBQUM7UUFDdkQsVUFBSyxHQUFHLEtBQUssQ0FBZ0MsRUFBRSx5Q0FBSSxLQUFLLEVBQUUsa0JBQWtCLE9BQTNCLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLEdBQUMsQ0FBQztRQUNoRixXQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssMENBQUksU0FBUyxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxtQkFBbUIsT0FBekQsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFLEdBQUMsQ0FBQztRQUNuRixhQUFRLEdBQUcsS0FBSyxDQUFVLEtBQUssNENBQUksS0FBSyxFQUFFLHFCQUFxQixPQUE5QixFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxHQUFDLENBQUM7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LENBQUMsRUFBRSxDQUFDO1lBQ25ELE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsQ0FBQztJQUNGLENBQUM7SUFFRCxNQUFNLENBQUMsc0JBQXNCLENBQzVCLENBQXFCLEVBQ3JCLEdBQVk7UUFPWixPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7OEdBOUhXLGtCQUFrQjtrR0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUQ5QixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLDBCQUEwQixFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRib29sZWFuQXR0cmlidXRlLFxuXHRjb21wdXRlZCxcblx0RGVzdHJveVJlZixcblx0RGlyZWN0aXZlLFxuXHRlZmZlY3QsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdGxpbmtlZFNpZ25hbCxcblx0bW9kZWwsXG5cdFRlbXBsYXRlUmVmLFxuXHR1bnRyYWNrZWQsXG5cdFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW5rbm93blNob3J0aGFuZENvbXBvdW5kUHJvcHMgfSBmcm9tICdAdGhlYXRyZS9jb3JlJztcbmltcG9ydCB7IGluamVjdFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBUaGVhdHJlU2hlZXQgfSBmcm9tICcuLi9zaGVldCc7XG5pbXBvcnQgeyBUSEVBVFJFX1NUVURJTyB9IGZyb20gJy4uL3N0dWRpby9zdHVkaW8tdG9rZW4nO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtzaGVldE9iamVjdF0nLCBleHBvcnRBczogJ3NoZWV0T2JqZWN0JyB9KVxuZXhwb3J0IGNsYXNzIFRoZWF0cmVTaGVldE9iamVjdCB7XG5cdGtleSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oeyBhbGlhczogJ3NoZWV0T2JqZWN0JyB9KTtcblx0cHJvcHMgPSBpbnB1dDxVbmtub3duU2hvcnRoYW5kQ29tcG91bmRQcm9wcz4oe30sIHsgYWxpYXM6ICdzaGVldE9iamVjdFByb3BzJyB9KTtcblx0ZGV0YWNoID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLCBhbGlhczogJ3NoZWV0T2JqZWN0RGV0YWNoJyB9KTtcblx0c2VsZWN0ZWQgPSBtb2RlbDxib29sZWFuPihmYWxzZSwgeyBhbGlhczogJ3NoZWV0T2JqZWN0U2VsZWN0ZWQnIH0pO1xuXG5cdHByaXZhdGUgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWYpO1xuXHRwcml2YXRlIHZjciA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblx0cHJpdmF0ZSBzaGVldCA9IGluamVjdChUaGVhdHJlU2hlZXQpO1xuXHRwcml2YXRlIHN0dWRpbyA9IGluamVjdChUSEVBVFJFX1NUVURJTywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cblx0cHJpdmF0ZSBvcmlnaW5hbFNoZWV0T2JqZWN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHNoZWV0ID0gdGhpcy5zaGVldC5zaGVldCgpO1xuXHRcdHJldHVybiBzaGVldC5vYmplY3QodGhpcy5rZXkoKSwgdW50cmFja2VkKHRoaXMucHJvcHMpLCB7IHJlY29uZmlndXJlOiB0cnVlIH0pO1xuXHR9KTtcblx0c2hlZXRPYmplY3QgPSBsaW5rZWRTaWduYWwodGhpcy5vcmlnaW5hbFNoZWV0T2JqZWN0KTtcblx0dmFsdWVzID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMuc2hlZXRPYmplY3QoKS52YWx1ZSk7XG5cblx0cHJpdmF0ZSBkZXRhY2hlZCA9IGZhbHNlO1xuXHRwcml2YXRlIGFnZ3JlZ2F0ZWRQcm9wczogVW5rbm93blNob3J0aGFuZENvbXBvdW5kUHJvcHMgPSB7fTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0dGhpcy5hZ2dyZWdhdGVkUHJvcHMgPSB7IC4uLnRoaXMuYWdncmVnYXRlZFByb3BzLCAuLi50aGlzLnByb3BzKCkgfTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBzaGVldE9iamVjdCA9IHRoaXMuc2hlZXRPYmplY3QoKTtcblx0XHRcdGNvbnN0IGNsZWFudXAgPSBzaGVldE9iamVjdC5vblZhbHVlc0NoYW5nZSgobmV3VmFsdWVzKSA9PiB7XG5cdFx0XHRcdHRoaXMudmFsdWVzLnNldChuZXdWYWx1ZXMpO1xuXHRcdFx0XHR0aGlzLnN0b3JlLnNuYXBzaG90LmludmFsaWRhdGUoKTtcblx0XHRcdH0pO1xuXHRcdFx0b25DbGVhbnVwKGNsZWFudXApO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IHN0dWRpbyA9IHRoaXMuc3R1ZGlvPy4oKTtcblx0XHRcdGlmICghc3R1ZGlvKSByZXR1cm47XG5cblx0XHRcdGNvbnN0IHNoZWV0T2JqZWN0ID0gdGhpcy5zaGVldE9iamVjdCgpO1xuXHRcdFx0Y29uc3QgY2xlYW51cCA9IHN0dWRpby5vblNlbGVjdGlvbkNoYW5nZSgoc2VsZWN0aW9uKSA9PiB7XG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWQuc2V0KHNlbGVjdGlvbi5pbmNsdWRlcyhzaGVldE9iamVjdCkpO1xuXHRcdFx0fSk7XG5cdFx0XHRvbkNsZWFudXAoY2xlYW51cCk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgdmlldyA9IHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmLCB7XG5cdFx0XHRcdHNlbGVjdDogdGhpcy5zZWxlY3QuYmluZCh0aGlzKSxcblx0XHRcdFx0ZGVzZWxlY3Q6IHRoaXMuZGVzZWxlY3QuYmluZCh0aGlzKSxcblx0XHRcdFx0c2hlZXRPYmplY3Q6IHRoaXMuc2hlZXRPYmplY3QuYXNSZWFkb25seSgpLFxuXHRcdFx0XHR2YWx1ZXM6IHRoaXMudmFsdWVzLmFzUmVhZG9ubHkoKSxcblx0XHRcdH0pO1xuXHRcdFx0dmlldy5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHR2aWV3LmRlc3Ryb3koKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5kZXRhY2goKSkge1xuXHRcdFx0XHR0aGlzLmRldGFjaGVkID0gdHJ1ZTtcblx0XHRcdFx0dGhpcy5zaGVldC5zaGVldCgpLmRldGFjaE9iamVjdCh0aGlzLmtleSgpKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHVwZGF0ZSgpIHtcblx0XHRpZiAodGhpcy5kZXRhY2hlZCkgcmV0dXJuO1xuXG5cdFx0Y29uc3QgW3NoZWV0LCBrZXldID0gW3VudHJhY2tlZCh0aGlzLnNoZWV0LnNoZWV0KSwgdW50cmFja2VkKHRoaXMua2V5KV07XG5cdFx0c2hlZXQuZGV0YWNoT2JqZWN0KGtleSk7XG5cdFx0dGhpcy5zaGVldE9iamVjdC5zZXQoc2hlZXQub2JqZWN0KGtleSwgdGhpcy5hZ2dyZWdhdGVkUHJvcHMsIHsgcmVjb25maWd1cmU6IHRydWUgfSkpO1xuXHR9XG5cblx0YWRkUHJvcHMocHJvcHM6IFVua25vd25TaG9ydGhhbmRDb21wb3VuZFByb3BzKSB7XG5cdFx0dGhpcy5hZ2dyZWdhdGVkUHJvcHMgPSB7IC4uLnRoaXMuYWdncmVnYXRlZFByb3BzLCAuLi5wcm9wcyB9O1xuXHRcdHRoaXMudXBkYXRlKCk7XG5cdH1cblxuXHRyZW1vdmVQcm9wcyhwcm9wczogc3RyaW5nW10pIHtcblx0XHRjb25zdCBbZGV0YWNoLCBzaGVldCwga2V5XSA9IFt1bnRyYWNrZWQodGhpcy5kZXRhY2gpLCB1bnRyYWNrZWQodGhpcy5zaGVldC5zaGVldCksIHVudHJhY2tlZCh0aGlzLmtleSldO1xuXG5cdFx0Ly8gcmVtb3ZlIHByb3BzIGZyb20gc2hlZXQgb2JqZWN0XG5cdFx0cHJvcHMuZm9yRWFjaCgocHJvcCkgPT4ge1xuXHRcdFx0ZGVsZXRlIHRoaXMuYWdncmVnYXRlZFByb3BzW3Byb3BdO1xuXHRcdH0pO1xuXG5cdFx0Ly8gaWYgdGhlcmUgYXJlIG5vIG1vcmUgcHJvcHMsIGRldGFjaCBzaGVldCBvYmplY3Rcblx0XHRpZiAoT2JqZWN0LmtleXModGhpcy5hZ2dyZWdhdGVkUHJvcHMpLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0Ly8gZGV0YWNoIHNoZWV0IG9iamVjdFxuXHRcdFx0aWYgKGRldGFjaCkge1xuXHRcdFx0XHRzaGVldC5kZXRhY2hPYmplY3Qoa2V5KTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gdXBkYXRlIHNoZWV0IG9iamVjdCAocmVjb25maWd1cmUpXG5cdFx0XHR0aGlzLnVwZGF0ZSgpO1xuXHRcdH1cblx0fVxuXG5cdHNlbGVjdCgpIHtcblx0XHRjb25zdCBzdHVkaW8gPSB0aGlzLnN0dWRpbz8uKCk7XG5cdFx0aWYgKCFzdHVkaW8pIHJldHVybjtcblx0XHRzdHVkaW8uc2V0U2VsZWN0aW9uKFt0aGlzLnNoZWV0T2JqZWN0KCldKTtcblx0fVxuXG5cdGRlc2VsZWN0KCkge1xuXHRcdGNvbnN0IHN0dWRpbyA9IHRoaXMuc3R1ZGlvPy4oKTtcblx0XHRpZiAoIXN0dWRpbykgcmV0dXJuO1xuXG5cdFx0aWYgKHN0dWRpby5zZWxlY3Rpb24uaW5jbHVkZXModGhpcy5zaGVldE9iamVjdCgpKSkge1xuXHRcdFx0c3R1ZGlvLnNldFNlbGVjdGlvbihbXSk7XG5cdFx0fVxuXHR9XG5cblx0c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoXG5cdFx0XzogVGhlYXRyZVNoZWV0T2JqZWN0LFxuXHRcdGN0eDogdW5rbm93bixcblx0KTogY3R4IGlzIHtcblx0XHRzZWxlY3Q6IFRoZWF0cmVTaGVldE9iamVjdFsnc2VsZWN0J107XG5cdFx0ZGVzZWxlY3Q6IFRoZWF0cmVTaGVldE9iamVjdFsnZGVzZWxlY3QnXTtcblx0XHRzaGVldE9iamVjdDogUmV0dXJuVHlwZTxUaGVhdHJlU2hlZXRPYmplY3RbJ3NoZWV0T2JqZWN0J11bJ2FzUmVhZG9ubHknXT47XG5cdFx0dmFsdWVzOiBSZXR1cm5UeXBlPFRoZWF0cmVTaGVldE9iamVjdFsndmFsdWVzJ11bJ2FzUmVhZG9ubHknXT47XG5cdH0ge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG4iXX0=","export function createTransformer(transformer) {\n return transformer;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RoZWF0cmUvc3JjL2xpYi90cmFuc2Zvcm1lcnMvdHJhbnNmb3JtZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0JBLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxXQUErQjtJQUNoRSxPQUFPLFdBQVcsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyB0eXBlcyB9IGZyb20gJ0B0aGVhdHJlL2NvcmUnO1xuXG4vKipcbiBodHRwczovL2dpdGh1Yi5jb20vdGhyZWx0ZS90aHJlbHRlL2Jsb2IvbWFpbi9wYWNrYWdlcy90aGVhdHJlL3NyYy9saWIvc2hlZXRPYmplY3QvdHJhbnNmb21lcnMvdHlwZXMudHNcbiAqL1xuZXhwb3J0IHR5cGUgVGhlYXRyZVRyYW5zZm9ybWVyPFZhbHVlID0gYW55LCBUcmFuc2Zvcm1lZFZhbHVlID0gYW55PiA9IHtcblx0LyoqXG5cdCAqIFRoZSBgdHJhbnNmb3JtYCBmdW5jdGlvbiBpcyB1c2VkIHRvIHRyYW5zZm9ybSB0aGUgdmFsdWUgb2YgYSBjZXJ0YWluXG5cdCAqIFRocmVlLmpzIG9iamVjdHMgcHJvZXJ0eSB0byBhIHByb3BlcnR5IHRoYXQgVGhlYXRyZS5qcyBjYW4gdXNlIGluIGFuXG5cdCAqIGBJU2hlZXRPYmplY3RgLiBUbyBlbnN1cmUgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSByZXN0IG9mIHRoZSBwYWNrYWdlLCB0aGVcblx0ICogcmV0dXJuIHZhbHVlIG11c3QgYmUgYW55IG9uZSBvZiB0aGUgZnVuY3Rpb25zIGF2YWlsYWJsZSBhdCBUaGVhdHJlLmpzJ1xuXHQgKiBgdHlwZXNgLlxuXHQgKi9cblx0dHJhbnNmb3JtOiAodmFsdWU6IFZhbHVlKSA9PiBSZXR1cm5UeXBlPCh0eXBlb2YgdHlwZXMpW2tleW9mIHR5cGVvZiB0eXBlc10+O1xuXHQvKipcblx0ICogVGhlIGBhcHBseWAgZnVuY3Rpb24gaXMgdXNlZCB0byBhcHBseSB0aGUgdmFsdWUgdG8gdGhlIHRhcmdldC4gYHRhcmdldGAgaXNcblx0ICogdGhlIHBhcmVudCBvYmplY3Qgb2YgdGhlIHByb3BlcnR5ICh1c3VhbGx5IGEgVGhyZWUuanMgb2JqZWN0KSwgYHBhdGhgIGlzXG5cdCAqIHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSBhbmQgYHZhbHVlYCBpcyB0aGUgdmFsdWUgdG8gYXBwbHkuXG5cdCAqL1xuXHRhcHBseTogKHRhcmdldDogYW55LCBwcm9wZXJ0eTogc3RyaW5nLCB2YWx1ZTogVHJhbnNmb3JtZWRWYWx1ZSkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmFuc2Zvcm1lcih0cmFuc2Zvcm1lcjogVGhlYXRyZVRyYW5zZm9ybWVyKSB7XG5cdHJldHVybiB0cmFuc2Zvcm1lcjtcbn1cbiJdfQ==","import { types } from '@theatre/core';\nimport * as THREE from 'three';\nimport { createTransformer } from './transformer';\nconst _color = new THREE.Color();\nexport const color = createTransformer({\n transform(value) {\n value.getRGB(_color, THREE.SRGBColorSpace);\n return types.rgba({ r: _color.r, g: _color.g, b: _color.b, a: 1 });\n },\n apply(target, path, value) {\n target[path].setRGB(value.r, value.g, value.b, THREE.SRGBColorSpace);\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RoZWF0cmUvc3JjL2xpYi90cmFuc2Zvcm1lcnMvY29sb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7QUFFakMsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDO0lBQ3RDLFNBQVMsQ0FBQyxLQUFLO1FBQ2QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFDRCxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLO1FBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7Q0FDRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlcyB9IGZyb20gJ0B0aGVhdHJlL2NvcmUnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgY3JlYXRlVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVyJztcblxuY29uc3QgX2NvbG9yID0gbmV3IFRIUkVFLkNvbG9yKCk7XG5cbmV4cG9ydCBjb25zdCBjb2xvciA9IGNyZWF0ZVRyYW5zZm9ybWVyKHtcblx0dHJhbnNmb3JtKHZhbHVlKSB7XG5cdFx0dmFsdWUuZ2V0UkdCKF9jb2xvciwgVEhSRUUuU1JHQkNvbG9yU3BhY2UpO1xuXHRcdHJldHVybiB0eXBlcy5yZ2JhKHsgcjogX2NvbG9yLnIsIGc6IF9jb2xvci5nLCBiOiBfY29sb3IuYiwgYTogMSB9KTtcblx0fSxcblx0YXBwbHkodGFyZ2V0LCBwYXRoLCB2YWx1ZSkge1xuXHRcdHRhcmdldFtwYXRoXS5zZXRSR0IodmFsdWUuciwgdmFsdWUuZywgdmFsdWUuYiwgVEhSRUUuU1JHQkNvbG9yU3BhY2UpO1xuXHR9LFxufSk7XG4iXX0=","import { types } from '@theatre/core';\nimport * as THREE from 'three';\nimport { createTransformer } from './transformer';\nexport const degrees = createTransformer({\n transform(target) {\n return types.number(target * THREE.MathUtils.RAD2DEG);\n },\n apply(target, path, value) {\n target[path] = value * THREE.MathUtils.DEG2RAD;\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVncmVlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGhlYXRyZS9zcmMvbGliL3RyYW5zZm9ybWVycy9kZWdyZWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQztJQUN4QyxTQUFTLENBQUMsTUFBTTtRQUNmLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBQ0QsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSztRQUN4QixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO0lBQ2hELENBQUM7Q0FDRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlcyB9IGZyb20gJ0B0aGVhdHJlL2NvcmUnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgY3JlYXRlVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVyJztcblxuZXhwb3J0IGNvbnN0IGRlZ3JlZXMgPSBjcmVhdGVUcmFuc2Zvcm1lcih7XG5cdHRyYW5zZm9ybSh0YXJnZXQpIHtcblx0XHRyZXR1cm4gdHlwZXMubnVtYmVyKHRhcmdldCAqIFRIUkVFLk1hdGhVdGlscy5SQUQyREVHKTtcblx0fSxcblx0YXBwbHkodGFyZ2V0LCBwYXRoLCB2YWx1ZSkge1xuXHRcdHRhcmdldFtwYXRoXSA9IHZhbHVlICogVEhSRUUuTWF0aFV0aWxzLkRFRzJSQUQ7XG5cdH0sXG59KTtcbiJdfQ==","import { types } from '@theatre/core';\nimport * as THREE from 'three';\nimport { createTransformer } from './transformer';\nexport const euler = createTransformer({\n transform(value) {\n return types.compound({\n x: value.x * THREE.MathUtils.RAD2DEG,\n y: value.y * THREE.MathUtils.RAD2DEG,\n z: value.z * THREE.MathUtils.RAD2DEG,\n });\n },\n apply(target, path, value) {\n target[path].x = value.x * THREE.MathUtils.DEG2RAD;\n target[path].y = value.y * THREE.MathUtils.DEG2RAD;\n target[path].z = value.z * THREE.MathUtils.DEG2RAD;\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RoZWF0cmUvc3JjL2xpYi90cmFuc2Zvcm1lcnMvZXVsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEQsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDO0lBQ3RDLFNBQVMsQ0FBQyxLQUFLO1FBQ2QsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQ3JCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTztZQUNwQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU87WUFDcEMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPO1NBQ3BDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFDRCxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLO1FBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUNuRCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDbkQsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO0lBQ3BELENBQUM7Q0FDRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlcyB9IGZyb20gJ0B0aGVhdHJlL2NvcmUnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgY3JlYXRlVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVyJztcblxuZXhwb3J0IGNvbnN0IGV1bGVyID0gY3JlYXRlVHJhbnNmb3JtZXIoe1xuXHR0cmFuc2Zvcm0odmFsdWUpIHtcblx0XHRyZXR1cm4gdHlwZXMuY29tcG91bmQoe1xuXHRcdFx0eDogdmFsdWUueCAqIFRIUkVFLk1hdGhVdGlscy5SQUQyREVHLFxuXHRcdFx0eTogdmFsdWUueSAqIFRIUkVFLk1hdGhVdGlscy5SQUQyREVHLFxuXHRcdFx0ejogdmFsdWUueiAqIFRIUkVFLk1hdGhVdGlscy5SQUQyREVHLFxuXHRcdH0pO1xuXHR9LFxuXHRhcHBseSh0YXJnZXQsIHBhdGgsIHZhbHVlKSB7XG5cdFx0dGFyZ2V0W3BhdGhdLnggPSB2YWx1ZS54ICogVEhSRUUuTWF0aFV0aWxzLkRFRzJSQUQ7XG5cdFx0dGFyZ2V0W3BhdGhdLnkgPSB2YWx1ZS55ICogVEhSRUUuTWF0aFV0aWxzLkRFRzJSQUQ7XG5cdFx0dGFyZ2V0W3BhdGhdLnogPSB2YWx1ZS56ICogVEhSRUUuTWF0aFV0aWxzLkRFRzJSQUQ7XG5cdH0sXG59KTtcbiJdfQ==","import { types } from '@theatre/core';\nimport { createTransformer } from './transformer';\nexport const generic = createTransformer({\n transform(value) {\n if (typeof value === 'number') {\n return types.number(value === Infinity ? Number.MAX_VALUE : value);\n }\n else if (typeof value === 'string') {\n return types.string(value);\n }\n else if (typeof value === 'boolean') {\n return types.boolean(value);\n }\n return types.compound({ ...value });\n },\n apply(target, path, value) {\n if (target[path] !== null && typeof target[path] === 'object') {\n Object.assign(target[path], value);\n }\n else {\n target[path] = value;\n }\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGhlYXRyZS9zcmMvbGliL3RyYW5zZm9ybWVycy9nZW5lcmljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQztJQUN4QyxTQUFTLENBQUMsS0FBSztRQUNkLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0IsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BFLENBQUM7YUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixDQUFDO2FBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2QyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSztRQUN4QixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQzthQUFNLENBQUM7WUFDUCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLENBQUM7SUFDRixDQUFDO0NBQ0QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZXMgfSBmcm9tICdAdGhlYXRyZS9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZVRyYW5zZm9ybWVyIH0gZnJvbSAnLi90cmFuc2Zvcm1lcic7XG5cbmV4cG9ydCBjb25zdCBnZW5lcmljID0gY3JlYXRlVHJhbnNmb3JtZXIoe1xuXHR0cmFuc2Zvcm0odmFsdWUpIHtcblx0XHRpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuXHRcdFx0cmV0dXJuIHR5cGVzLm51bWJlcih2YWx1ZSA9PT0gSW5maW5pdHkgPyBOdW1iZXIuTUFYX1ZBTFVFIDogdmFsdWUpO1xuXHRcdH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuXHRcdFx0cmV0dXJuIHR5cGVzLnN0cmluZyh2YWx1ZSk7XG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuXHRcdFx0cmV0dXJuIHR5cGVzLmJvb2xlYW4odmFsdWUpO1xuXHRcdH1cblx0XHRyZXR1cm4gdHlwZXMuY29tcG91bmQoeyAuLi52YWx1ZSB9KTtcblx0fSxcblx0YXBwbHkodGFyZ2V0LCBwYXRoLCB2YWx1ZSkge1xuXHRcdGlmICh0YXJnZXRbcGF0aF0gIT09IG51bGwgJiYgdHlwZW9mIHRhcmdldFtwYXRoXSA9PT0gJ29iamVjdCcpIHtcblx0XHRcdE9iamVjdC5hc3NpZ24odGFyZ2V0W3BhdGhdLCB2YWx1ZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRhcmdldFtwYXRoXSA9IHZhbHVlO1xuXHRcdH1cblx0fSxcbn0pO1xuIl19","import { types } from '@theatre/core';\nimport { createTransformer } from './transformer';\nexport const normalized = createTransformer({\n transform(value) {\n return types.number(value, { range: [0, 1] });\n },\n apply(target, path, value) {\n target[path] = value;\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGhlYXRyZS9zcmMvbGliL3RyYW5zZm9ybWVycy9ub3JtYWxpemVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQztJQUMzQyxTQUFTLENBQUMsS0FBSztRQUNkLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDRCxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLO1FBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztDQUNELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGVzIH0gZnJvbSAnQHRoZWF0cmUvY29yZSc7XG5pbXBvcnQgeyBjcmVhdGVUcmFuc2Zvcm1lciB9IGZyb20gJy4vdHJhbnNmb3JtZXInO1xuXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplZCA9IGNyZWF0ZVRyYW5zZm9ybWVyKHtcblx0dHJhbnNmb3JtKHZhbHVlKSB7XG5cdFx0cmV0dXJuIHR5cGVzLm51bWJlcih2YWx1ZSwgeyByYW5nZTogWzAsIDFdIH0pO1xuXHR9LFxuXHRhcHBseSh0YXJnZXQsIHBhdGgsIHZhbHVlKSB7XG5cdFx0dGFyZ2V0W3BhdGhdID0gdmFsdWU7XG5cdH0sXG59KTtcbiJdfQ==","import { types } from '@theatre/core';\nimport * as THREE from 'three';\nimport { createTransformer } from './transformer';\nexport const side = createTransformer({\n transform(value) {\n // TODO: fix this type\n return types.stringLiteral(value === THREE.FrontSide ? 'f' : value === THREE.BackSide ? 'b' : 'd', { f: 'Front', b: 'Back', d: 'Double' }, { as: 'switch' });\n },\n apply(target, path, value) {\n target[path] = value === 'f' ? THREE.FrontSide : value === 'b' ? THREE.BackSide : THREE.DoubleSide;\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGhlYXRyZS9zcmMvbGliL3RyYW5zZm9ybWVycy9zaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQztJQUNyQyxTQUFTLENBQUMsS0FBSztRQUNkLHNCQUFzQjtRQUN0QixPQUFPLEtBQUssQ0FBQyxhQUFhLENBQ3pCLEtBQUssS0FBSyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFDdEUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUN0QyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FDVCxDQUFDO0lBQ1YsQ0FBQztJQUNELEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUs7UUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDcEcsQ0FBQztDQUNELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGVzIH0gZnJvbSAnQHRoZWF0cmUvY29yZSc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBjcmVhdGVUcmFuc2Zvcm1lciB9IGZyb20gJy4vdHJhbnNmb3JtZXInO1xuXG5leHBvcnQgY29uc3Qgc2lkZSA9IGNyZWF0ZVRyYW5zZm9ybWVyKHtcblx0dHJhbnNmb3JtKHZhbHVlKSB7XG5cdFx0Ly8gVE9ETzogZml4IHRoaXMgdHlwZVxuXHRcdHJldHVybiB0eXBlcy5zdHJpbmdMaXRlcmFsKFxuXHRcdFx0dmFsdWUgPT09IFRIUkVFLkZyb250U2lkZSA/ICdmJyA6IHZhbHVlID09PSBUSFJFRS5CYWNrU2lkZSA/ICdiJyA6ICdkJyxcblx0XHRcdHsgZjogJ0Zyb250JywgYjogJ0JhY2snLCBkOiAnRG91YmxlJyB9LFxuXHRcdFx0eyBhczogJ3N3aXRjaCcgfSxcblx0XHQpIGFzIGFueTtcblx0fSxcblx0YXBwbHkodGFyZ2V0LCBwYXRoLCB2YWx1ZSkge1xuXHRcdHRhcmdldFtwYXRoXSA9IHZhbHVlID09PSAnZicgPyBUSFJFRS5Gcm9udFNpZGUgOiB2YWx1ZSA9PT0gJ2InID8gVEhSRUUuQmFja1NpZGUgOiBUSFJFRS5Eb3VibGVTaWRlO1xuXHR9LFxufSk7XG4iXX0=","import { color } from './color';\nimport { degrees } from './degrees';\nimport { euler } from './euler';\nimport { generic } from './generic';\nimport { normalized } from './normalized';\nimport { side } from './side';\nfunction isFullOrEndingPattern(fullPropertyPath, pattern) {\n return fullPropertyPath.endsWith(`.${pattern}`) || fullPropertyPath === pattern;\n}\nexport function getDefaultTransformer(target, path, fullPropertyPath) {\n const property = target[path];\n if (property.isEuler)\n return euler;\n if (property.isColor)\n return color;\n if (isFullOrEndingPattern(fullPropertyPath, 'rotation.x') ||\n isFullOrEndingPattern(fullPropertyPath, 'rotation.y') ||\n isFullOrEndingPattern(fullPropertyPath, 'rotation.z') ||\n (target.isEuler && (fullPropertyPath === 'x' || fullPropertyPath === 'y' || fullPropertyPath === 'z'))) {\n return degrees;\n }\n if (isFullOrEndingPattern(fullPropertyPath, 'r'))\n return normalized;\n if (isFullOrEndingPattern(fullPropertyPath, 'g'))\n return normalized;\n if (isFullOrEndingPattern(fullPropertyPath, 'b'))\n return normalized;\n if (isFullOrEndingPattern(fullPropertyPath, 'opacity'))\n return normalized;\n if (isFullOrEndingPattern(fullPropertyPath, 'roughness'))\n return normalized;\n if (isFullOrEndingPattern(fullPropertyPath, 'metalness'))\n return normalized;\n if (isFullOrEndingPattern(fullPropertyPath, 'transmission'))\n return normalized;\n if (isFullOrEndingPattern(fullPropertyPath, 'side'))\n return side;\n return generic;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC10cmFuc2Zvcm1lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGhlYXRyZS9zcmMvbGliL3RyYW5zZm9ybWVycy9kZWZhdWx0LXRyYW5zZm9ybWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTlCLFNBQVMscUJBQXFCLENBQUMsZ0JBQXdCLEVBQUUsT0FBZTtJQUN2RSxPQUFPLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDLElBQUksZ0JBQWdCLEtBQUssT0FBTyxDQUFDO0FBQ2pGLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsTUFBVyxFQUFFLElBQVksRUFBRSxnQkFBd0I7SUFDeEYsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTlCLElBQUksUUFBUSxDQUFDLE9BQU87UUFBRSxPQUFPLEtBQUssQ0FBQztJQUNuQyxJQUFJLFFBQVEsQ0FBQyxPQUFPO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFFbkMsSUFDQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLENBQUM7UUFDckQscUJBQXFCLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO1FBQ3JELHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQztRQUNyRCxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxHQUFHLElBQUksZ0JBQWdCLEtBQUssR0FBRyxJQUFJLGdCQUFnQixLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQ3JHLENBQUM7UUFDRixPQUFPLE9BQU8sQ0FBQztJQUNoQixDQUFDO0lBRUQsSUFBSSxxQkFBcUIsQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUM7UUFBRSxPQUFPLFVBQVUsQ0FBQztJQUNwRSxJQUFJLHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQztRQUFFLE9BQU8sVUFBVSxDQUFDO0lBQ3BFLElBQUkscUJBQXFCLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDO1FBQUUsT0FBTyxVQUFVLENBQUM7SUFFcEUsSUFBSSxxQkFBcUIsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLENBQUM7UUFBRSxPQUFPLFVBQVUsQ0FBQztJQUMxRSxJQUFJLHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLFdBQVcsQ0FBQztRQUFFLE9BQU8sVUFBVSxDQUFDO0lBQzVFLElBQUkscUJBQXFCLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDO1FBQUUsT0FBTyxVQUFVLENBQUM7SUFDNUUsSUFBSSxxQkFBcUIsQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLENBQUM7UUFBRSxPQUFPLFVBQVUsQ0FBQztJQUUvRSxJQUFJLHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRWpFLE9BQU8sT0FBTyxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2xvciB9IGZyb20gJy4vY29sb3InO1xuaW1wb3J0IHsgZGVncmVlcyB9IGZyb20gJy4vZGVncmVlcyc7XG5pbXBvcnQgeyBldWxlciB9IGZyb20gJy4vZXVsZXInO1xuaW1wb3J0IHsgZ2VuZXJpYyB9IGZyb20gJy4vZ2VuZXJpYyc7XG5pbXBvcnQgeyBub3JtYWxpemVkIH0gZnJvbSAnLi9ub3JtYWxpemVkJztcbmltcG9ydCB7IHNpZGUgfSBmcm9tICcuL3NpZGUnO1xuXG5mdW5jdGlvbiBpc0Z1bGxPckVuZGluZ1BhdHRlcm4oZnVsbFByb3BlcnR5UGF0aDogc3RyaW5nLCBwYXR0ZXJuOiBzdHJpbmcpIHtcblx0cmV0dXJuIGZ1bGxQcm9wZXJ0eVBhdGguZW5kc1dpdGgoYC4ke3BhdHRlcm59YCkgfHwgZnVsbFByb3BlcnR5UGF0aCA9PT0gcGF0dGVybjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRUcmFuc2Zvcm1lcih0YXJnZXQ6IGFueSwgcGF0aDogc3RyaW5nLCBmdWxsUHJvcGVydHlQYXRoOiBzdHJpbmcpIHtcblx0Y29uc3QgcHJvcGVydHkgPSB0YXJnZXRbcGF0aF07XG5cblx0aWYgKHByb3BlcnR5LmlzRXVsZXIpIHJldHVybiBldWxlcjtcblx0aWYgKHByb3BlcnR5LmlzQ29sb3IpIHJldHVybiBjb2xvcjtcblxuXHRpZiAoXG5cdFx0aXNGdWxsT3JFbmRpbmdQYXR0ZXJuKGZ1bGxQcm9wZXJ0eVBhdGgsICdyb3RhdGlvbi54JykgfHxcblx0XHRpc0Z1bGxPckVuZGluZ1BhdHRlcm4oZnVsbFByb3BlcnR5UGF0aCwgJ3JvdGF0aW9uLnknKSB8fFxuXHRcdGlzRnVsbE9yRW5kaW5nUGF0dGVybihmdWxsUHJvcGVydHlQYXRoLCAncm90YXRpb24ueicpIHx8XG5cdFx0KHRhcmdldC5pc0V1bGVyICYmIChmdWxsUHJvcGVydHlQYXRoID09PSAneCcgfHwgZnVsbFByb3BlcnR5UGF0aCA9PT0gJ3knIHx8IGZ1bGxQcm9wZXJ0eVBhdGggPT09ICd6JykpXG5cdCkge1xuXHRcdHJldHVybiBkZWdyZWVzO1xuXHR9XG5cblx0aWYgKGlzRnVsbE9yRW5kaW5nUGF0dGVybihmdWxsUHJvcGVydHlQYXRoLCAncicpKSByZXR1cm4gbm9ybWFsaXplZDtcblx0aWYgKGlzRnVsbE9yRW5kaW5nUGF0dGVybihmdWxsUHJvcGVydHlQYXRoLCAnZycpKSByZXR1cm4gbm9ybWFsaXplZDtcblx0aWYgKGlzRnVsbE9yRW5kaW5nUGF0dGVybihmdWxsUHJvcGVydHlQYXRoLCAnYicpKSByZXR1cm4gbm9ybWFsaXplZDtcblxuXHRpZiAoaXNGdWxsT3JFbmRpbmdQYXR0ZXJuKGZ1bGxQcm9wZXJ0eVBhdGgsICdvcGFjaXR5JykpIHJldHVybiBub3JtYWxpemVkO1xuXHRpZiAoaXNGdWxsT3JFbmRpbmdQYXR0ZXJuKGZ1bGxQcm9wZXJ0eVBhdGgsICdyb3VnaG5lc3MnKSkgcmV0dXJuIG5vcm1hbGl6ZWQ7XG5cdGlmIChpc0Z1bGxPckVuZGluZ1BhdHRlcm4oZnVsbFByb3BlcnR5UGF0aCwgJ21ldGFsbmVzcycpKSByZXR1cm4gbm9ybWFsaXplZDtcblx0aWYgKGlzRnVsbE9yRW5kaW5nUGF0dGVybihmdWxsUHJvcGVydHlQYXRoLCAndHJhbnNtaXNzaW9uJykpIHJldHVybiBub3JtYWxpemVkO1xuXG5cdGlmIChpc0Z1bGxPckVuZGluZ1BhdHRlcm4oZnVsbFByb3BlcnR5UGF0aCwgJ3NpZGUnKSkgcmV0dXJuIHNpZGU7XG5cblx0cmV0dXJuIGdlbmVyaWM7XG59XG4iXX0=","import { computed, DestroyRef, Directive, effect, inject, input } from '@angular/core';\nimport { resolveInstanceKey, resolveRef } from 'angular-three';\nimport { THEATRE_STUDIO } from '../studio/studio-token';\nimport { getDefaultTransformer } from '../transformers/default-transformer';\nimport { TheatreSheetObject } from './sheet-object';\nimport * as i0 from \"@angular/core\";\nconst updateProjectionMatrixKeys = ['fov', 'near', 'far', 'zoom', 'left', 'right', 'top', 'bottom', 'aspect'];\nexport class TheatreSheetObjectSync {\n constructor() {\n this.parent = input.required(...(ngDevMode ? [{ debugName: \"parent\", alias: 'sync' }] : [{\n alias: 'sync',\n }]));\n this.props = input([], ...(ngDevMode ? [{ debugName: \"props\", alias: 'syncProps' }] : [{ alias: 'syncProps' }]));\n this.theatreSheetObject = inject(TheatreSheetObject);\n this.sheetObject = computed(() => this.theatreSheetObject.sheetObject(), ...(ngDevMode ? [{ debugName: \"sheetObject\" }] : []));\n this.studio = inject(THEATRE_STUDIO, { optional: true });\n this.parentRef = computed(() => {\n const parent = this.parent();\n if (typeof parent === 'function')\n return resolveRef(parent());\n return resolveRef(parent);\n }, ...(ngDevMode ? [{ debugName: \"parentRef\" }] : []));\n this.resolvedProps = computed(() => {\n const props = this.props();\n return props.reduce((resolved, prop) => {\n if (typeof prop === 'string') {\n resolved.push([prop, { key: this.resolvePropertyPath(prop) }]);\n }\n else {\n if (typeof prop[1] === 'string') {\n resolved.push([prop[0], { key: prop[1] }]);\n }\n else {\n resolved.push(prop);\n }\n }\n return resolved;\n }, []);\n }, ...(ngDevMode ? [{ debugName: \"resolvedProps\" }] : []));\n this.propsToAdd = computed(() => {\n const parent = this.parentRef();\n if (!parent)\n return null;\n const propsToAdd = {};\n const resolvedProps = this.resolvedProps();\n resolvedProps.forEach(([propName, { key, label, transformer }]) => {\n const { root, targetKey } = resolveInstanceKey(parent, propName);\n const rawValue = root[targetKey];\n const valueTransformer = transformer ?? getDefaultTransformer(root, targetKey, propName);\n const value = valueTransformer.transform(rawValue);\n value.label = label ?? key;\n this.propsMapping[key] = { path: propName, transformer: valueTransformer };\n propsToAdd[key] = value;\n });\n return propsToAdd;\n }, ...(ngDevMode ? [{ debugName: \"propsToAdd\" }] : []));\n this.propsMapping = {};\n effect(() => {\n const propsToAdd = this.propsToAdd();\n if (!propsToAdd)\n return;\n this.theatreSheetObject.addProps(propsToAdd);\n });\n effect((onCleanup) => {\n const parent = this.parentRef();\n if (!parent)\n return;\n const propsToAdd = this.propsToAdd();\n if (!propsToAdd)\n return;\n const sheetObject = this.sheetObject();\n const cleanup = sheetObject.onValuesChange((newValues) => {\n Object.keys(newValues).forEach((key) => {\n // first, check if the prop is mapped in this component\n const propMapping = this.propsMapping[key];\n if (!propMapping)\n return;\n // we're using the addedProps map to infer the target property name from the property name on values\n const { root, targetKey } = resolveInstanceKey(parent, propMapping.path);\n // use a transformer to apply value\n const transformer = propMapping.transformer;\n transformer.apply(root, targetKey, newValues[key]);\n if (updateProjectionMatrixKeys.includes(targetKey)) {\n root.updateProjectionMatrix?.();\n }\n });\n });\n onCleanup(cleanup);\n });\n inject(DestroyRef).onDestroy(() => {\n this.theatreSheetObject.removeProps(Object.keys(this.propsMapping));\n });\n }\n capture() {\n const studio = this.studio?.();\n if (!studio)\n return;\n const parent = this.parentRef();\n if (!parent)\n return;\n const sheetObject = this.sheetObject();\n if (!sheetObject)\n return;\n const scrub = studio.scrub();\n Object.keys(sheetObject.value).forEach((key) => {\n // first, check if the prop is mapped in this component\n const propMapping = this.propsMapping[key];\n if (!propMapping)\n return;\n // we're using the addedProps map to infer the target property name from the property name on values\n const { targetProp } = resolveInstanceKey(parent, propMapping.path);\n const value = propMapping.transformer.transform(targetProp).default;\n scrub.capture(({ set }) => {\n set(sheetObject.props[key], value);\n });\n });\n scrub.commit();\n }\n resolvePropertyPath(propPath) {\n return (propPath\n // make the label alphanumeric by first removing dots (fundamental feature for pierced props)\n .replace(/\\./g, '-')\n // make the following characters uppercase\n .replace(/-([a-z])/g, (g) => g[1].toUpperCase())\n // convert to safe alphanumeric characters without dashes\n .replace(/[^a-zA-Z0-9]/g, ''));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TheatreSheetObjectSync, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: TheatreSheetObjectSync, isStandalone: true, selector: \"[sync]\", inputs: { parent: { classPropertyName: \"parent\", publicName: \"sync\", isSignal: true, isRequired: true, transformFunction: null }, props: { classPropertyName: \"props\", publicName: \"syncProps\", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: [\"sync\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TheatreSheetObjectSync, decorators: [{\n type: Directive,\n args: [{ selector: '[sync]', exportAs: 'sync' }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGhlYXRyZS9zcmMvbGliL3NoZWV0LW9iamVjdC9zeW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQWdCLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFNUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRXBELE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBRzlHLE1BQU0sT0FBTyxzQkFBc0I7SUE4RGxDO1FBN0RBLFdBQU0sR0FBRyxLQUFLLENBQUMsUUFBUSx5Q0FDdEIsS0FBSyxFQUFFLE1BQU0sT0FEb0c7Z0JBQ2pILEtBQUssRUFBRSxNQUFNO2FBQ2IsR0FBQyxDQUFDO1FBQ0gsVUFBSyxHQUFHLEtBQUssQ0FFWCxFQUFFLHlDQUFJLEtBQUssRUFBRSxXQUFXLE9BQXBCLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxHQUFDLENBQUM7UUFFdEIsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDeEQsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSx1REFBQyxDQUFDO1FBQzVELFdB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QVcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUVwRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFO2dCQUN6QixHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxRQUFnQjtRQUMzQyxPQUFPLENBQ04sUUFBUTtZQUNQLDZGQUE2RjthQUM1RixPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQztZQUNwQiwwQ0FBMEM7YUFDekMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2hELHlEQUF5RDthQUN4RCxPQUFPLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUM5QixDQUFDO0lBQ0gsQ0FBQzs4R0EvSVcsc0JBQXNCO2tHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBRGxDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgRGVzdHJveVJlZiwgRGlyZWN0aXZlLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFueVJlY29yZCwgcmVzb2x2ZUluc3RhbmNlS2V5LCByZXNvbHZlUmVmIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBUSEVBVFJFX1NUVURJTyB9IGZyb20gJy4uL3N0dWRpby9zdHVkaW8tdG9rZW4nO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdFRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vdHJhbnNmb3JtZXJzL2RlZmF1bHQtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVGhlYXRyZVRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vdHJhbnNmb3JtZXJzL3RyYW5zZm9ybWVyJztcbmltcG9ydCB7IFRoZWF0cmVTaGVldE9iamVjdCB9IGZyb20gJy4vc2hlZXQtb2JqZWN0JztcblxuY29uc3QgdXBkYXRlUHJvamVjdGlvbk1hdHJpeEtleXMgPSBbJ2ZvdicsICduZWFyJywgJ2ZhcicsICd6b29tJywgJ2xlZnQnLCAncmlnaHQnLCAndG9wJywgJ2JvdHRvbScsICdhc3BlY3QnXTtcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW3N5bmNdJywgZXhwb3J0QXM6ICdzeW5jJyB9KVxuZXhwb3J0IGNsYXNzIFRoZWF0cmVTaGVldE9iamVjdFN5bmM8VE9iamVjdCBleHRlbmRzIG9iamVjdD4ge1xuXHRwYXJlbnQgPSBpbnB1dC5yZXF1aXJlZDxUT2JqZWN0IHwgRWxlbWVudFJlZjxUT2JqZWN0PiB8ICgoKSA9PiBUT2JqZWN0IHwgRWxlbWVudFJlZjxUT2JqZWN0PiB8IHVuZGVmaW5lZCB8IG51bGwpPih7XG5cdFx0YWxpYXM6ICdzeW5jJyxcblx0fSk7XG5cdHByb3BzID0gaW5wdXQ8XG5cdFx0QXJyYXk8c3RyaW5nIHwgW3N0cmluZywgc3RyaW5nIHwgeyBsYWJlbD86IHN0cmluZzsga2V5Pzogc3RyaW5nOyB0cmFuc2Zvcm1lcj86IFRoZWF0cmVUcmFuc2Zvcm1lciB9XT5cblx0PihbXSwgeyBhbGlhczogJ3N5bmNQcm9wcycgfSk7XG5cblx0cHJpdmF0ZSB0aGVhdHJlU2hlZXRPYmplY3QgPSBpbmplY3QoVGhlYXRyZVNoZWV0T2JqZWN0KTtcblx0c2hlZXRPYmplY3QgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnRoZWF0cmVTaGVldE9iamVjdC5zaGVldE9iamVjdCgpKTtcblx0cHJpdmF0ZSBzdHVkaW8gPSBpbmplY3QoVEhFQVRSRV9TVFVESU8sIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cblx0cHJpdmF0ZSBwYXJlbnRSZWYgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgcGFyZW50ID0gdGhpcy5wYXJlbnQoKTtcblx0XHRpZiAodHlwZW9mIHBhcmVudCA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHJlc29sdmVSZWYocGFyZW50KCkpO1xuXHRcdHJldHVybiByZXNvbHZlUmVmKHBhcmVudCk7XG5cdH0pO1xuXHRwcml2YXRlIHJlc29sdmVkUHJvcHMgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgcHJvcHMgPSB0aGlzLnByb3BzKCk7XG5cdFx0cmV0dXJuIHByb3BzLnJlZHVjZShcblx0XHRcdChyZXNvbHZlZCwgcHJvcCkgPT4ge1xuXHRcdFx0XHRpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdFx0cmVzb2x2ZWQucHVzaChbcHJvcCwgeyBrZXk6IHRoaXMucmVzb2x2ZVByb3BlcnR5UGF0aChwcm9wKSB9XSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0aWYgKHR5cGVvZiBwcm9wWzFdID09PSAnc3RyaW5nJykge1xuXHRcdFx0XHRcdFx0cmVzb2x2ZWQucHVzaChbcHJvcFswXSwgeyBrZXk6IHByb3BbMV0gfV0pO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXNvbHZlZC5wdXNoKFxuXHRcdFx0XHRcdFx0XHRwcm9wIGFzIFtzdHJpbmcsIHsgbGFiZWw/OiBzdHJpbmc7IGtleTogc3RyaW5nOyB0cmFuc2Zvcm1lcj86IFRoZWF0cmVUcmFuc2Zvcm1lciB9XSxcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIHJlc29sdmVkO1xuXHRcdFx0fSxcblx0XHRcdFtdIGFzIEFycmF5PFtzdHJpbmcsIHsgbGFiZWw/OiBzdHJpbmc7IGtleTogc3RyaW5nOyB0cmFuc2Zvcm1lcj86IFRoZWF0cmVUcmFuc2Zvcm1lciB9XT4sXG5cdFx0KTtcblx0fSk7XG5cblx0cHJpdmF0ZSBwcm9wc1RvQWRkID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHBhcmVudCA9IHRoaXMucGFyZW50UmVmKCk7XG5cdFx0aWYgKCFwYXJlbnQpIHJldHVybiBudWxsO1xuXG5cdFx0Y29uc3QgcHJvcHNUb0FkZDogTmd0QW55UmVjb3JkID0ge307XG5cdFx0Y29uc3QgcmVzb2x2ZWRQcm9wcyA9IHRoaXMucmVzb2x2ZWRQcm9wcygpO1xuXHRcdHJlc29sdmVkUHJvcHMuZm9yRWFjaCgoW3Byb3BOYW1lLCB7IGtleSwgbGFiZWwsIHRyYW5zZm9ybWVyIH1dKSA9PiB7XG5cdFx0XHRjb25zdCB7IHJvb3QsIHRhcmdldEtleSB9ID0gcmVzb2x2ZUluc3RhbmNlS2V5KHBhcmVudCwgcHJvcE5hbWUpO1xuXHRcdFx0Y29uc3QgcmF3VmFsdWUgPSByb290W3RhcmdldEtleV07XG5cdFx0XHRjb25zdCB2YWx1ZVRyYW5zZm9ybWVyID0gdHJhbnNmb3JtZXIgPz8gZ2V0RGVmYXVsdFRyYW5zZm9ybWVyKHJvb3QsIHRhcmdldEtleSwgcHJvcE5hbWUpO1xuXHRcdFx0Y29uc3QgdmFsdWUgPSB2YWx1ZVRyYW5zZm9ybWVyLnRyYW5zZm9ybShyYXdWYWx1ZSk7XG5cblx0XHRcdHZhbHVlLmxhYmVsID0gbGFiZWwgPz8ga2V5O1xuXG5cdFx0XHR0aGlzLnByb3BzTWFwcGluZ1trZXldID0geyBwYXRoOiBwcm9wTmFtZSwgdHJhbnNmb3JtZXI6IHZhbHVlVHJhbnNmb3JtZXIgfTtcblx0XHRcdHByb3BzVG9BZGRba2V5XSA9IHZhbHVlO1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHByb3BzVG9BZGQ7XG5cdH0pO1xuXG5cdHByaXZhdGUgcHJvcHNNYXBwaW5nOiBSZWNvcmQ8c3RyaW5nLCB7IHBhdGg6IHN0cmluZzsgdHJhbnNmb3JtZXI6IFRoZWF0cmVUcmFuc2Zvcm1lciB9PiA9IHt9O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBwcm9wc1RvQWRkID0gdGhpcy5wcm9wc1RvQWRkKCk7XG5cdFx0XHRpZiAoIXByb3BzVG9BZGQpIHJldHVybjtcblx0XHRcdHRoaXMudGhlYXRyZVNoZWV0T2JqZWN0LmFkZFByb3BzKHByb3BzVG9BZGQpO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IHBhcmVudCA9IHRoaXMucGFyZW50UmVmKCk7XG5cdFx0XHRpZiAoIXBhcmVudCkgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBwcm9wc1RvQWRkID0gdGhpcy5wcm9wc1RvQWRkKCk7XG5cdFx0XHRpZiAoIXByb3BzVG9BZGQpIHJldHVybjtcblxuXHRcdFx0Y29uc3Qgc2hlZXRPYmplY3QgPSB0aGlzLnNoZWV0T2JqZWN0KCk7XG5cdFx0XHRjb25zdCBjbGVhbnVwID0gc2hlZXRPYmplY3Qub25WYWx1ZXNDaGFuZ2UoKG5ld1ZhbHVlcykgPT4ge1xuXHRcdFx0XHRPYmplY3Qua2V5cyhuZXdWYWx1ZXMpLmZvckVhY2goKGtleSkgPT4ge1xuXHRcdFx0XHRcdC8vIGZpcnN0LCBjaGVjayBpZiB0aGUgcHJvcCBpcyBtYXBwZWQgaW4gdGhpcyBjb21wb25lbnRcblx0XHRcdFx0XHRjb25zdCBwcm9wTWFwcGluZyA9IHRoaXMucHJvcHNNYXBwaW5nW2tleV07XG5cdFx0XHRcdFx0aWYgKCFwcm9wTWFwcGluZykgcmV0dXJuO1xuXG5cdFx0XHRcdFx0Ly8gd2UncmUgdXNpbmcgdGhlIGFkZGVkUHJvcHMgbWFwIHRvIGluZmVyIHRoZSB0YXJnZXQgcHJvcGVydHkgbmFtZSBmcm9tIHRoZSBwcm9wZXJ0eSBuYW1lIG9uIHZhbHVlc1xuXHRcdFx0XHRcdGNvbnN0IHsgcm9vdCwgdGFyZ2V0S2V5IH0gPSByZXNvbHZlSW5zdGFuY2VLZXkocGFyZW50LCBwcm9wTWFwcGluZy5wYXRoKTtcblxuXHRcdFx0XHRcdC8vIHVzZSBhIHRyYW5zZm9ybWVyIHRvIGFwcGx5IHZhbHVlXG5cdFx0XHRcdFx0Y29uc3QgdHJhbnNmb3JtZXIgPSBwcm9wTWFwcGluZy50cmFuc2Zvcm1lcjtcblx0XHRcdFx0XHR0cmFuc2Zvcm1lci5hcHBseShyb290LCB0YXJnZXRLZXksIG5ld1ZhbHVlc1trZXldKTtcblxuXHRcdFx0XHRcdGlmICh1cGRhdGVQcm9qZWN0aW9uTWF0cml4S2V5cy5pbmNsdWRlcyh0YXJnZXRLZXkpKSB7XG5cdFx0XHRcdFx0XHRyb290LnVwZGF0ZVByb2plY3Rpb25NYXRyaXg/LigpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0b25DbGVhbnVwKGNsZWFudXApO1xuXHRcdH0pO1xuXG5cdFx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG5cdFx0XHR0aGlzLnRoZWF0cmVTaGVldE9iamVjdC5yZW1vdmVQcm9wcyhPYmplY3Qua2V5cyh0aGlzLnByb3BzTWFwcGluZykpO1xuXHRcdH0pO1xuXHR9XG5cblx0Y2FwdHVyZSgpIHtcblx0XHRjb25zdCBzdHVkaW8gPSB0aGlzLnN0dWRpbz8uKCk7XG5cdFx0aWYgKCFzdHVkaW8pIHJldHVybjtcblxuXHRcdGNvbnN0IHBhcmVudCA9IHRoaXMucGFyZW50UmVmKCk7XG5cdFx0aWYgKCFwYXJlbnQpIHJldHVybjtcblxuXHRcdGNvbnN0IHNoZWV0T2JqZWN0ID0gdGhpcy5zaGVldE9iamVjdCgpO1xuXHRcdGlmICghc2hlZXRPYmplY3QpIHJldHVybjtcblxuXHRcdGNvbnN0IHNjcnViID0gc3R1ZGlvLnNjcnViKCk7XG5cblx0XHRPYmplY3Qua2V5cyhzaGVldE9iamVjdC52YWx1ZSkuZm9yRWFjaCgoa2V5KSA9PiB7XG5cdFx0XHQvLyBmaXJzdCwgY2hlY2sgaWYgdGhlIHByb3AgaXMgbWFwcGVkIGluIHRoaXMgY29tcG9uZW50XG5cdFx0XHRjb25zdCBwcm9wTWFwcGluZyA9IHRoaXMucHJvcHNNYXBwaW5nW2tleV07XG5cdFx0XHRpZiAoIXByb3BNYXBwaW5nKSByZXR1cm47XG5cblx0XHRcdC8vIHdlJ3JlIHVzaW5nIHRoZSBhZGRlZFByb3BzIG1hcCB0byBpbmZlciB0aGUgdGFyZ2V0IHByb3BlcnR5IG5hbWUgZnJvbSB0aGUgcHJvcGVydHkgbmFtZSBvbiB2YWx1ZXNcblx0XHRcdGNvbnN0IHsgdGFyZ2V0UHJvcCB9ID0gcmVzb2x2ZUluc3RhbmNlS2V5KHBhcmVudCwgcHJvcE1hcHBpbmcucGF0aCk7XG5cdFx0XHRjb25zdCB2YWx1ZSA9IHByb3BNYXBwaW5nLnRyYW5zZm9ybWVyLnRyYW5zZm9ybSh0YXJnZXRQcm9wKS5kZWZhdWx0O1xuXG5cdFx0XHRzY3J1Yi5jYXB0dXJlKCh7IHNldCB9KSA9PiB7XG5cdFx0XHRcdHNldChzaGVldE9iamVjdC5wcm9wc1trZXldLCB2YWx1ZSk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdHNjcnViLmNvbW1pdCgpO1xuXHR9XG5cblx0cHJpdmF0ZSByZXNvbHZlUHJvcGVydHlQYXRoKHByb3BQYXRoOiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0cHJvcFBhdGhcblx0XHRcdFx0Ly8gbWFrZSB0aGUgbGFiZWwgYWxwaGFudW1lcmljIGJ5IGZpcnN0IHJlbW92aW5nIGRvdHMgKGZ1bmRhbWVudGFsIGZlYXR1cmUgZm9yIHBpZXJjZWQgcHJvcHMpXG5cdFx0XHRcdC5yZXBsYWNlKC9cXC4vZywgJy0nKVxuXHRcdFx0XHQvLyBtYWtlIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVycyB1cHBlcmNhc2Vcblx0XHRcdFx0LnJlcGxhY2UoLy0oW2Etel0pL2csIChnKSA9PiBnWzFdLnRvVXBwZXJDYXNlKCkpXG5cdFx0XHRcdC8vIGNvbnZlcnQgdG8gc2FmZSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyB3aXRob3V0IGRhc2hlc1xuXHRcdFx0XHQucmVwbGFjZSgvW15hLXpBLVowLTldL2csICcnKVxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==","import { afterNextRender, ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, effect, inject, input, untracked, viewChild, } from '@angular/core';\nimport { types } from '@theatre/core';\nimport { extend } from 'angular-three';\nimport { NgtsTransformControls } from 'angular-three-soba/gizmos';\nimport * as THREE from 'three';\nimport { Group } from 'three';\nimport { THEATRE_STUDIO } from '../studio/studio-token';\nimport { getDefaultTransformer } from '../transformers/default-transformer';\nimport { TheatreSheetObject } from './sheet-object';\nimport * as i0 from \"@angular/core\";\nexport class TheatreSheetObjectTransform {\n onMouseDown() {\n if (!this.studio)\n return;\n if (this.scrub)\n return;\n this.scrub = this.studio().scrub();\n }\n onMouseUp() {\n if (!this.scrub)\n return;\n this.scrub.commit();\n this.scrub = undefined;\n }\n onChange() {\n if (!this.scrub)\n return;\n this.scrub.capture((api) => {\n const sheetObject = this.sheetObject();\n if (!sheetObject)\n return;\n const group = this.groupRef().nativeElement;\n const key = this.key();\n const baseTarget = key ? sheetObject.props[key] : sheetObject.props;\n api.set(baseTarget['position'], { ...group.position });\n api.set(baseTarget['rotation'], {\n x: group.rotation.x * THREE.MathUtils.RAD2DEG,\n y: group.rotation.y * THREE.MathUtils.RAD2DEG,\n z: group.rotation.z * THREE.MathUtils.RAD2DEG,\n });\n api.set(baseTarget['scale'], { ...group.scale });\n });\n }\n constructor() {\n this.label = input(...(ngDevMode ? [undefined, { debugName: \"label\" }] : []));\n this.key = input(...(ngDevMode ? [undefined, { debugName: \"key\" }] : []));\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.groupRef = viewChild.required('group');\n this.controlsRef = viewChild(NgtsTransformControls, ...(ngDevMode ? [{ debugName: \"controlsRef\" }] : []));\n this.theatreSheetObject = inject(TheatreSheetObject);\n this.sheetObject = computed(() => this.theatreSheetObject.sheetObject(), ...(ngDevMode ? [{ debugName: \"sheetObject\" }] : []));\n this.studio = inject(THEATRE_STUDIO, { optional: true });\n this.selected = this.theatreSheetObject.selected.asReadonly();\n this.positionTransformer = computed(() => getDefaultTransformer(this.groupRef().nativeElement, 'position', 'position'), ...(ngDevMode ? [{ debugName: \"positionTransformer\" }] : []));\n this.rotationTransformer = computed(() => getDefaultTransformer(this.groupRef().nativeElement, 'rotation', 'rotation'), ...(ngDevMode ? [{ debugName: \"rotationTransformer\" }] : []));\n this.scaleTransformer = computed(() => getDefaultTransformer(this.groupRef().nativeElement, 'scale', 'scale'), ...(ngDevMode ? [{ debugName: \"scaleTransformer\" }] : []));\n extend({ Group });\n afterNextRender(() => {\n this.init();\n });\n effect((onCleanup) => {\n const [sheetObject, key, positionTransformer, rotationTransformer, scaleTransformer, group] = [\n this.sheetObject(),\n untracked(this.key),\n untracked(this.positionTransformer),\n untracked(this.rotationTransformer),\n untracked(this.scaleTransformer),\n untracked(this.groupRef).nativeElement,\n ];\n const cleanup = sheetObject.onValuesChange((newValues) => {\n let object = newValues;\n if (key) {\n if (!newValues[key])\n return;\n object = newValues[key];\n }\n else {\n if (!newValues['position'] || !newValues['rotation'] || !newValues['scale'])\n return;\n }\n // sanity check\n if (!object)\n return;\n positionTransformer.apply(group, 'position', object['position']);\n rotationTransformer.apply(group, 'rotation', object['rotation']);\n scaleTransformer.apply(group, 'scale', object['scale']);\n });\n onCleanup(cleanup);\n });\n // TODO: (chau) use event binding when they no longer trigger change detection\n effect((onCleanup) => {\n const controls = this.controlsRef();\n if (!controls)\n return;\n const subs = [\n controls.change.subscribe(this.onChange.bind(this)),\n controls.mouseDown.subscribe(this.onMouseDown.bind(this)),\n controls.mouseUp.subscribe(this.onMouseUp.bind(this)),\n ];\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n inject(DestroyRef).onDestroy(() => {\n const key = this.key();\n this.theatreSheetObject.removeProps(key ? [key] : ['position', 'rotation', 'scale']);\n });\n }\n init() {\n const [group, key, label, positionTransformer, rotationTransformer, scaleTransformer] = [\n this.groupRef().nativeElement,\n this.key(),\n this.label(),\n this.positionTransformer(),\n this.rotationTransformer(),\n this.scaleTransformer(),\n ];\n const position = positionTransformer.transform(group.position);\n const rotation = rotationTransformer.transform(group.rotation);\n const scale = scaleTransformer.transform(group.scale);\n if (key) {\n this.theatreSheetObject.addProps({\n [key]: types.compound({ position, rotation, scale }, { label: label ?? key }),\n });\n }\n else {\n this.theatreSheetObject.addProps({ position, rotation, scale });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TheatreSheetObjectTransform, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.7\", type: TheatreSheetObjectTransform, isStandalone: true, selector: \"theatre-transform\", inputs: { label: { classPropertyName: \"label\", publicName: \"label\", isSignal: true, isRequired: false, transformFunction: null }, key: { classPropertyName: \"key\", publicName: \"key\", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: \"groupRef\", first: true, predicate: [\"group\"], descendants: true, isSignal: true }, { propertyName: \"controlsRef\", first: true, predicate: NgtsTransformControls, descendants: true, isSignal: true }], ngImport: i0, template: `\n\t\t@if (selected()) {\n\t\t\t<ngts-transform-controls [object]=\"$any(group)\" [options]=\"options()\" />\n\t\t}\n\n\t\t<ngt-group #group>\n\t\t\t<ng-content />\n\t\t</ngt-group>\n\t`, isInline: true, dependencies: [{ kind: \"component\", type: NgtsTransformControls, selector: \"ngts-transform-controls\", inputs: [\"object\", \"options\"], outputs: [\"change\", \"mouseDown\", \"mouseUp\", \"objectChange\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TheatreSheetObjectTransform, decorators: [{\n type: Component,\n args: [{\n selector: 'theatre-transform',\n template: `\n\t\t@if (selected()) {\n\t\t\t<ngts-transform-controls [object]=\"$any(group)\" [options]=\"options()\" />\n\t\t}\n\n\t\t<ngt-group #group>\n\t\t\t<ng-content />\n\t\t</ngt-group>\n\t`,\n imports: [NgtsTransformControls],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90aGVhdHJlL3NyYy9saWIvc2hlZXQtb2JqZWN0L3RyYW5zZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixVQUFVLEVBQ1YsTUFBTSxFQUVOLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLHFCQUFxQixFQUFnQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2hHLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDOUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWlCcEQsTUFBTSxPQUFPLDJCQUEyQjtJQXlCN0IsV0FBVztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFUyxTQUFTO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDeEIsSUFBSSxDQUFDLEtBQUss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LENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7SUFDRixDQUFDOzhHQTVJVywyQkFBMkI7a0dBQTNCLDJCQUEyQixrbEJBUVAscUJBQXFCLGdFQXJCM0M7Ozs7Ozs7O0VBUVQsNERBQ1MscUJBQXFCOzsyRkFJbkIsMkJBQTJCO2tCQWZ2QyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFFBQVEsRUFBRTs7Ozs7Ozs7RUFRVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDaEMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGFmdGVyTmV4dFJlbmRlcixcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdERlc3Ryb3lSZWYsXG5cdGVmZmVjdCxcblx0RWxlbWVudFJlZixcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0dW50cmFja2VkLFxuXHR2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdHlwZXMgfSBmcm9tICdAdGhlYXRyZS9jb3JlJztcbmltcG9ydCB7IElTY3J1YiB9IGZyb20gJ0B0aGVhdHJlL3N0dWRpbyc7XG5pbXBvcnQgeyBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IE5ndHNUcmFuc2Zvcm1Db250cm9scywgTmd0c1RyYW5zZm9ybUNvbnRyb2xzT3B0aW9ucyB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9naXptb3MnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgR3JvdXAgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBUSEVBVFJFX1NUVURJTyB9IGZyb20gJy4uL3N0dWRpby9zdHVkaW8tdG9rZW4nO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdFRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vdHJhbnNmb3JtZXJzL2RlZmF1bHQtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVGhlYXRyZVNoZWV0T2JqZWN0IH0gZnJvbSAnLi9zaGVldC1vYmplY3QnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICd0aGVhdHJlLXRyYW5zZm9ybScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0QGlmIChzZWxlY3RlZCgpKSB7XG5cdFx0XHQ8bmd0cy10cmFuc2Zvcm0tY29udHJvbHMgW29iamVjdF09XCIkYW55KGdyb3VwKVwiIFtvcHRpb25zXT1cIm9wdGlvbnMoKVwiIC8+XG5cdFx0fVxuXG5cdFx0PG5ndC1ncm91cCAjZ3JvdXA+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWdyb3VwPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0c1RyYW5zZm9ybUNvbnRyb2xzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGhlYXRyZVNoZWV0T2JqZWN0VHJhbnNmb3JtPFRMYWJlbCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuXHRsYWJlbCA9IGlucHV0PFRMYWJlbD4oKTtcblx0a2V5ID0gaW5wdXQ8c3RyaW5nPigpO1xuXHRvcHRpb25zID0gaW5wdXQoXG5cdFx0e30gYXMgUGljazxOZ3RzVHJhbnNmb3JtQ29udHJvbHNPcHRpb25zLCAnbW9kZScgfCAndHJhbnNsYXRpb25TbmFwJyB8ICdzY2FsZVNuYXAnIHwgJ3JvdGF0aW9uU25hcCcgfCAnc3BhY2UnPixcblx0KTtcblxuXHRncm91cFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPFRIUkVFLkdyb3VwPj4oJ2dyb3VwJyk7XG5cdHByaXZhdGUgY29udHJvbHNSZWYgPSB2aWV3Q2hpbGQoTmd0c1RyYW5zZm9ybUNvbnRyb2xzKTtcblxuXHRwcml2YXRlIHRoZWF0cmVTaGVldE9iamVjdCA9IGluamVjdChUaGVhdHJlU2hlZXRPYmplY3QpO1xuXHRzaGVldE9iamVjdCA9IGNvbXB1dGVkKCgpID0+IHRoaXMudGhlYXRyZVNoZWV0T2JqZWN0LnNoZWV0T2JqZWN0KCkpO1xuXHRwcml2YXRlIHN0dWRpbyA9IGluamVjdChUSEVBVFJFX1NUVURJTywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuXHRwcm90ZWN0ZWQgc2VsZWN0ZWQgPSB0aGlzLnRoZWF0cmVTaGVldE9iamVjdC5zZWxlY3RlZC5hc1JlYWRvbmx5KCk7XG5cdHByaXZhdGUgc2NydWI/OiBJU2NydWI7XG5cblx0cHJpdmF0ZSBwb3NpdGlvblRyYW5zZm9ybWVyID0gY29tcHV0ZWQoKCkgPT5cblx0XHRnZXREZWZhdWx0VHJhbnNmb3JtZXIodGhpcy5ncm91cFJlZigpLm5hdGl2ZUVsZW1lbnQsICdwb3NpdGlvbicsICdwb3NpdGlvbicpLFxuXHQpO1xuXHRwcml2YXRlIHJvdGF0aW9uVHJhbnNmb3JtZXIgPSBjb21wdXRlZCgoKSA9PlxuXHRcdGdldERlZmF1bHRUcmFuc2Zvcm1lcih0aGlzLmdyb3VwUmVmKCkubmF0aXZlRWxlbWVudCwgJ3JvdGF0aW9uJywgJ3JvdGF0aW9uJyksXG5cdCk7XG5cdHByaXZhdGUgc2NhbGVUcmFuc2Zvcm1lciA9IGNvbXB1dGVkKCgpID0+IGdldERlZmF1bHRUcmFuc2Zvcm1lcih0aGlzLmdyb3VwUmVmKCkubmF0aXZlRWxlbWVudCwgJ3NjYWxlJywgJ3NjYWxlJykpO1xuXG5cdHByb3RlY3RlZCBvbk1vdXNlRG93bigpIHtcblx0XHRpZiAoIXRoaXMuc3R1ZGlvKSByZXR1cm47XG5cdFx0aWYgKHRoaXMuc2NydWIpIHJldHVybjtcblx0XHR0aGlzLnNjcnViID0gdGhpcy5zdHVkaW8oKS5zY3J1YigpO1xuXHR9XG5cblx0cHJvdGVjdGVkIG9uTW91c2VVcCgpIHtcblx0XHRpZiAoIXRoaXMuc2NydWIpIHJldHVybjtcblx0XHR0aGlzLnNjcnViLmNvbW1pdCgpO1xuXHRcdHRoaXMuc2NydWIgPSB1bmRlZmluZWQ7XG5cdH1cblxuXHRwcm90ZWN0ZWQgb25DaGFuZ2UoKSB7XG5cdFx0aWYgKCF0aGlzLnNjcnViKSByZXR1cm47XG5cblx0XHR0aGlzLnNjcnViLmNhcHR1cmUoKGFwaSkgPT4ge1xuXHRcdFx0Y29uc3Qgc2hlZXRPYmplY3QgPSB0aGlzLnNoZWV0T2JqZWN0KCk7XG5cdFx0XHRpZiAoIXNoZWV0T2JqZWN0KSByZXR1cm47XG5cblx0XHRcdGNvbnN0IGdyb3VwID0gdGhpcy5ncm91cFJlZigpLm5hdGl2ZUVsZW1lbnQ7XG5cblx0XHRcdGNvbnN0IGtleSA9IHRoaXMua2V5KCk7XG5cdFx0XHRjb25zdCBiYXNlVGFyZ2V0ID0ga2V5ID8gc2hlZXRPYmplY3QucHJvcHNba2V5XSA6IHNoZWV0T2JqZWN0LnByb3BzO1xuXG5cdFx0XHRhcGkuc2V0KGJhc2VUYXJnZXRbJ3Bvc2l0aW9uJ10sIHsgLi4uZ3JvdXAucG9zaXRpb24gfSk7XG5cdFx0XHRhcGkuc2V0KGJhc2VUYXJnZXRbJ3JvdGF0aW9uJ10sIHtcblx0XHRcdFx0eDogZ3JvdXAucm90YXRpb24ueCAqIFRIUkVFLk1hdGhVdGlscy5SQUQyREVHLFxuXHRcdFx0XHR5OiBncm91cC5yb3RhdGlvbi55ICogVEhSRUUuTWF0aFV0aWxzLlJBRDJERUcsXG5cdFx0XHRcdHo6IGdyb3VwLnJvdGF0aW9uLnogKiBUSFJFRS5NYXRoVXRpbHMuUkFEMkRFRyxcblx0XHRcdH0pO1xuXHRcdFx0YXBpLnNldChiYXNlVGFyZ2V0WydzY2FsZSddLCB7IC4uLmdyb3VwLnNjYWxlIH0pO1xuXHRcdH0pO1xuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgR3JvdXAgfSk7XG5cblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5pbml0KCk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgW3NoZWV0T2JqZWN0LCBrZXksIHBvc2l0aW9uVHJhbnNmb3JtZXIsIHJvdGF0aW9uVHJhbnNmb3JtZXIsIHNjYWxlVHJhbnNmb3JtZXIsIGdyb3VwXSA9IFtcblx0XHRcdFx0dGhpcy5zaGVldE9iamVjdCgpLFxuXHRcdFx0XHR1bnRyYWNrZWQodGhpcy5rZXkpLFxuXHRcdFx0XHR1bnRyYWNrZWQodGhpcy5wb3NpdGlvblRyYW5zZm9ybWVyKSxcblx0XHRcdFx0dW50cmFja2VkKHRoaXMucm90YXRpb25UcmFuc2Zvcm1lciksXG5cdFx0XHRcdHVudHJhY2tlZCh0aGlzLnNjYWxlVHJhbnNmb3JtZXIpLFxuXHRcdFx0XHR1bnRyYWNrZWQodGhpcy5ncm91cFJlZikubmF0aXZlRWxlbWVudCxcblx0XHRcdF07XG5cblx0XHRcdGNvbnN0IGNsZWFudXAgPSBzaGVldE9iamVjdC5vblZhbHVlc0NoYW5nZSgobmV3VmFsdWVzKSA9PiB7XG5cdFx0XHRcdGxldCBvYmplY3QgPSBuZXdWYWx1ZXM7XG5cblx0XHRcdFx0aWYgKGtleSkge1xuXHRcdFx0XHRcdGlmICghbmV3VmFsdWVzW2tleV0pIHJldHVybjtcblx0XHRcdFx0XHRvYmplY3QgPSBuZXdWYWx1ZXNba2V5XTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRpZiAoIW5ld1ZhbHVlc1sncG9zaXRpb24nXSB8fCAhbmV3VmFsdWVzWydyb3RhdGlvbiddIHx8ICFuZXdWYWx1ZXNbJ3NjYWxlJ10pIHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIHNhbml0eSBjaGVja1xuXHRcdFx0XHRpZiAoIW9iamVjdCkgcmV0dXJuO1xuXG5cdFx0XHRcdHBvc2l0aW9uVHJhbnNmb3JtZXIuYXBwbHkoZ3JvdXAsICdwb3NpdGlvbicsIG9iamVjdFsncG9zaXRpb24nXSk7XG5cdFx0XHRcdHJvdGF0aW9uVHJhbnNmb3JtZXIuYXBwbHkoZ3JvdXAsICdyb3RhdGlvbicsIG9iamVjdFsncm90YXRpb24nXSk7XG5cdFx0XHRcdHNjYWxlVHJhbnNmb3JtZXIuYXBwbHkoZ3JvdXAsICdzY2FsZScsIG9iamVjdFsnc2NhbGUnXSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0b25DbGVhbnVwKGNsZWFudXApO1xuXHRcdH0pO1xuXG5cdFx0Ly8gVE9ETzogKGNoYXUpIHVzZSBldmVudCBiaW5kaW5nIHdoZW4gdGhleSBubyBsb25nZXIgdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGNvbnRyb2xzID0gdGhpcy5jb250cm9sc1JlZigpO1xuXHRcdFx0aWYgKCFjb250cm9scykgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBzdWJzID0gW1xuXHRcdFx0XHRjb250cm9scy5jaGFuZ2Uuc3Vic2NyaWJlKHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKSksXG5cdFx0XHRcdGNvbnRyb2xzLm1vdXNlRG93bi5zdWJzY3JpYmUodGhpcy5vbk1vdXNlRG93bi5iaW5kKHRoaXMpKSxcblx0XHRcdFx0Y29udHJvbHMubW91c2VVcC5zdWJzY3JpYmUodGhpcy5vbk1vdXNlVXAuYmluZCh0aGlzKSksXG5cdFx0XHRdO1xuXG5cdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRzdWJzLmZvckVhY2goKHN1YikgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHtcblx0XHRcdGNvbnN0IGtleSA9IHRoaXMua2V5KCk7XG5cdFx0XHR0aGlzLnRoZWF0cmVTaGVldE9iamVjdC5yZW1vdmVQcm9wcyhrZXkgPyBba2V5XSA6IFsncG9zaXRpb24nLCAncm90YXRpb24nLCAnc2NhbGUnXSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGluaXQoKSB7XG5cdFx0Y29uc3QgW2dyb3VwLCBrZXksIGxhYmVsLCBwb3NpdGlvblRyYW5zZm9ybWVyLCByb3RhdGlvblRyYW5zZm9ybWVyLCBzY2FsZVRyYW5zZm9ybWVyXSA9IFtcblx0XHRcdHRoaXMuZ3JvdXBSZWYoKS5uYXRpdmVFbGVtZW50LFxuXHRcdFx0dGhpcy5rZXkoKSxcblx0XHRcdHRoaXMubGFiZWwoKSxcblx0XHRcdHRoaXMucG9zaXRpb25UcmFuc2Zvcm1lcigpLFxuXHRcdFx0dGhpcy5yb3RhdGlvblRyYW5zZm9ybWVyKCksXG5cdFx0XHR0aGlzLnNjYWxlVHJhbnNmb3JtZXIoKSxcblx0XHRdO1xuXG5cdFx0Y29uc3QgcG9zaXRpb24gPSBwb3NpdGlvblRyYW5zZm9ybWVyLnRyYW5zZm9ybShncm91cC5wb3NpdGlvbik7XG5cdFx0Y29uc3Qgcm90YXRpb24gPSByb3RhdGlvblRyYW5zZm9ybWVyLnRyYW5zZm9ybShncm91cC5yb3RhdGlvbik7XG5cdFx0Y29uc3Qgc2NhbGUgPSBzY2FsZVRyYW5zZm9ybWVyLnRyYW5zZm9ybShncm91cC5zY2FsZSk7XG5cblx0XHRpZiAoa2V5KSB7XG5cdFx0XHR0aGlzLnRoZWF0cmVTaGVldE9iamVjdC5hZGRQcm9wcyh7XG5cdFx0XHRcdFtrZXldOiB0eXBlcy5jb21wb3VuZCh7IHBvc2l0aW9uLCByb3RhdGlvbiwgc2NhbGUgfSwgeyBsYWJlbDogbGFiZWwgPz8ga2V5IH0pLFxuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMudGhlYXRyZVNoZWV0T2JqZWN0LmFkZFByb3BzKHsgcG9zaXRpb24sIHJvdGF0aW9uLCBzY2FsZSB9KTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==","import { TheatreSheetObject as Impl } from './sheet-object';\nimport { TheatreSheetObjectSync } from './sync';\nimport { TheatreSheetObjectTransform } from './transform';\nexport { TheatreSheetObject as TheatreSheetObjectImpl } from './sheet-object';\nexport * from './sync';\nexport * from './transform';\nexport const TheatreSheetObject = [Impl, TheatreSheetObjectTransform, TheatreSheetObjectSync];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RoZWF0cmUvc3JjL2xpYi9zaGVldC1vYmplY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixJQUFJLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUQsT0FBTyxFQUFFLGtCQUFrQixJQUFJLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxhQUFhLENBQUM7QUFFNUIsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsMkJBQTJCLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRoZWF0cmVTaGVldE9iamVjdCBhcyBJbXBsIH0gZnJvbSAnLi9zaGVldC1vYmplY3QnO1xuaW1wb3J0IHsgVGhlYXRyZVNoZWV0T2JqZWN0U3luYyB9IGZyb20gJy4vc3luYyc7XG5pbXBvcnQgeyBUaGVhdHJlU2hlZXRPYmplY3RUcmFuc2Zvcm0gfSBmcm9tICcuL3RyYW5zZm9ybSc7XG5cbmV4cG9ydCB7IFRoZWF0cmVTaGVldE9iamVjdCBhcyBUaGVhdHJlU2hlZXRPYmplY3RJbXBsIH0gZnJvbSAnLi9zaGVldC1vYmplY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zeW5jJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNmb3JtJztcblxuZXhwb3J0IGNvbnN0IFRoZWF0cmVTaGVldE9iamVjdCA9IFtJbXBsLCBUaGVhdHJlU2hlZXRPYmplY3RUcmFuc2Zvcm0sIFRoZWF0cmVTaGVldE9iamVjdFN5bmNdO1xuIl19","import { booleanAttribute, Directive, effect, input, signal } from '@angular/core';\nimport { THEATRE_STUDIO } from './studio-token';\nimport * as i0 from \"@angular/core\";\nexport class TheatreStudio {\n constructor() {\n this.enabled = input(true, ...(ngDevMode ? [{ debugName: \"enabled\", alias: 'studio', transform: booleanAttribute }] : [{ alias: 'studio', transform: booleanAttribute }]));\n this.Studio = signal(null, ...(ngDevMode ? [{ debugName: \"Studio\" }] : []));\n this.studio = this.Studio.asReadonly();\n import('@theatre/studio').then((m) => {\n const Studio = 'default' in m.default ? m.default.default : m.default;\n Studio.initialize();\n this.Studio.set(Studio);\n });\n effect((onCleanup) => {\n const studio = this.Studio();\n if (!studio)\n return;\n const enabled = this.enabled();\n if (enabled) {\n studio.ui.restore();\n }\n else {\n studio.ui.hide();\n }\n onCleanup(() => {\n studio.ui.hide();\n });\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TheatreStudio, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: TheatreStudio, isStandalone: true, selector: \"theatre-project[studio]\", inputs: { enabled: { classPropertyName: \"enabled\", publicName: \"studio\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [\n { provide: THEATRE_STUDIO, useFactory: (studio) => studio.studio, deps: [TheatreStudio] },\n ], exportAs: [\"studio\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TheatreStudio, decorators: [{\n type: Directive,\n args: [{\n selector: 'theatre-project[studio]',\n exportAs: 'studio',\n providers: [\n { provide: THEATRE_STUDIO, useFactory: (studio) => studio.studio, deps: [TheatreStudio] },\n ],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R1ZGlvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90aGVhdHJlL3NyYy9saWIvc3R1ZGlvL3N0dWRpby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFTaEQsTUFBTSxPQUFPLGFBQWE7SUFNekI7UUFMQSxZQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksMkNBQUksS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLE9BQTlDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsR0FBQyxDQUFDO1FBRWhFLFdBQU0sR0FBRyxNQUFNLENBQWlCLElBQUksa0RBQUMsQ0FBQztRQUM5QyxXQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUdqQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNwQyxNQUFNLE1BQU0sR0FBRyxTQUFTLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUUsQ0FBQyxDQUFDLE9BQTJDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQzNHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBRXBCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUUvQixJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNiLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsQ0FBQztpQkFBTSxDQUFDO2dCQUNQLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsQ0FBQztZQUVELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0E3QlcsYUFBYTtrR0FBYixhQUFhLCtNQUpkO1lBQ1YsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxDQUFDLE1BQXFCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUU7U0FDeEc7OzJGQUVXLGFBQWE7a0JBUHpCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFNBQVMsRUFBRTt3QkFDVixFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLENBQUMsTUFBcUIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFO3FCQUN4RztpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIERpcmVjdGl2ZSwgZWZmZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0eXBlIElTdHVkaW8gfSBmcm9tICdAdGhlYXRyZS9zdHVkaW8nO1xuaW1wb3J0IHsgVEhFQVRSRV9TVFVESU8gfSBmcm9tICcuL3N0dWRpby10b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ3RoZWF0cmUtcHJvamVjdFtzdHVkaW9dJyxcblx0ZXhwb3J0QXM6ICdzdHVkaW8nLFxuXHRwcm92aWRlcnM6IFtcblx0XHR7IHByb3ZpZGU6IFRIRUFUUkVfU1RVRElPLCB1c2VGYWN0b3J5OiAoc3R1ZGlvOiBUaGVhdHJlU3R1ZGlvKSA9PiBzdHVkaW8uc3R1ZGlvLCBkZXBzOiBbVGhlYXRyZVN0dWRpb10gfSxcblx0XSxcbn0pXG5leHBvcnQgY2xhc3MgVGhlYXRyZVN0dWRpbyB7XG5cdGVuYWJsZWQgPSBpbnB1dCh0cnVlLCB7IGFsaWFzOiAnc3R1ZGlvJywgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG5cdHByaXZhdGUgU3R1ZGlvID0gc2lnbmFsPElTdHVkaW8gfCBudWxsPihudWxsKTtcblx0c3R1ZGlvID0gdGhpcy5TdHVkaW8uYXNSZWFkb25seSgpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGltcG9ydCgnQHRoZWF0cmUvc3R1ZGlvJykudGhlbigobSkgPT4ge1xuXHRcdFx0Y29uc3QgU3R1ZGlvID0gJ2RlZmF1bHQnIGluIG0uZGVmYXVsdCA/IChtLmRlZmF1bHQgYXMgdW5rbm93biBhcyB7IGRlZmF1bHQ6IElTdHVkaW8gfSkuZGVmYXVsdCA6IG0uZGVmYXVsdDtcblx0XHRcdFN0dWRpby5pbml0aWFsaXplKCk7XG5cdFx0XHR0aGlzLlN0dWRpby5zZXQoU3R1ZGlvKTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBzdHVkaW8gPSB0aGlzLlN0dWRpbygpO1xuXHRcdFx0aWYgKCFzdHVkaW8pIHJldHVybjtcblxuXHRcdFx0Y29uc3QgZW5hYmxlZCA9IHRoaXMuZW5hYmxlZCgpO1xuXG5cdFx0XHRpZiAoZW5hYmxlZCkge1xuXHRcdFx0XHRzdHVkaW8udWkucmVzdG9yZSgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0c3R1ZGlvLnVpLmhpZGUoKTtcblx0XHRcdH1cblxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0c3R1ZGlvLnVpLmhpZGUoKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=","import { computed, Directive, effect, inject, input, model, untracked } from '@angular/core';\nimport { onChange, val } from '@theatre/core';\nimport { omit, pick } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { TheatreProject } from './project';\nimport { TheatreSheet } from './sheet';\nimport * as i0 from \"@angular/core\";\nconst defaultOptions = {\n rate: 1,\n autoplay: false,\n autopause: false,\n delay: 0,\n};\nexport class TheatreSequence {\n constructor() {\n this.options = input(defaultOptions, ...(ngDevMode ? [{ debugName: \"options\", alias: 'sequence', transform: mergeInputs(defaultOptions) }] : [{ alias: 'sequence', transform: mergeInputs(defaultOptions) }]));\n this.audioOptions = input(undefined, ...(ngDevMode ? [{ debugName: \"audioOptions\", alias: 'sequenceAudio' }] : [{ alias: 'sequenceAudio' }]));\n this.position = model(0, ...(ngDevMode ? [{ debugName: \"position\" }] : []));\n this.playing = model(false, ...(ngDevMode ? [{ debugName: \"playing\" }] : []));\n this.length = model(0, ...(ngDevMode ? [{ debugName: \"length\" }] : []));\n this.playOptions = omit(this.options, ['autoplay', 'autopause', 'delay', 'autoreset']);\n this.autoplay = pick(this.options, 'autoplay');\n this.autopause = pick(this.options, 'autopause');\n this.autoreset = pick(this.options, 'autoreset');\n this.delay = pick(this.options, 'delay');\n this.project = inject(TheatreProject);\n this.sheet = inject(TheatreSheet, { host: true });\n this.sequence = computed(() => this.sheet.sheet().sequence, ...(ngDevMode ? [{ debugName: \"sequence\" }] : []));\n effect((onCleanup) => {\n const autoplay = untracked(this.autoplay);\n if (!autoplay)\n return;\n const delay = untracked(this.delay);\n const id = setTimeout(() => {\n untracked(() => this.play());\n }, delay);\n onCleanup(() => {\n clearTimeout(id);\n });\n });\n effect((onCleanup) => {\n const autopause = untracked(this.autopause);\n onCleanup(() => {\n if (autopause) {\n this.pause();\n }\n });\n });\n effect((onCleanup) => {\n const autoreset = untracked(this.autoreset);\n if (autoreset === 'init' || autoreset === 'always') {\n untracked(() => this.reset());\n }\n onCleanup(() => {\n if (autoreset === 'destroy' || autoreset === 'always') {\n untracked(() => this.reset());\n }\n });\n });\n effect(() => {\n const [audioOptions, sequence] = [this.audioOptions(), untracked(this.sequence)];\n if (audioOptions)\n sequence.attachAudio(audioOptions);\n });\n effect(() => {\n const [playOptions, sequence] = [this.playOptions(), untracked(this.sequence)];\n const isPlaying = val(sequence.pointer.playing);\n if (isPlaying) {\n this.pause();\n this.play(playOptions);\n }\n });\n effect((onCleanup) => {\n const sequence = this.sequence();\n const cleanups = [];\n cleanups.push(onChange(sequence.pointer.position, (value) => this.position.set(value)), onChange(sequence.pointer.playing, (value) => this.playing.set(value)), onChange(sequence.pointer.length, (value) => this.length.set(value)));\n onCleanup(() => {\n cleanups.forEach((cleanup) => cleanup());\n });\n });\n }\n pause() {\n const sequence = this.sequence();\n sequence.pause();\n }\n play(options = {}) {\n const sequence = this.sequence();\n const project = this.project.project();\n project.ready.then(() => {\n sequence.play({ ...this.playOptions(), ...options });\n });\n }\n reset() {\n const sequence = this.sequence();\n const isPlaying = val(sequence.pointer.playing);\n sequence.position = 0;\n if (isPlaying)\n this.play();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TheatreSequence, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: TheatreSequence, isStandalone: true, selector: \"[sheet][sequence]\", inputs: { options: { classPropertyName: \"options\", publicName: \"sequence\", isSignal: true, isRequired: false, transformFunction: null }, audioOptions: { classPropertyName: \"audioOptions\", publicName: \"sequenceAudio\", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: \"position\", publicName: \"position\", isSignal: true, isRequired: false, transformFunction: null }, playing: { classPropertyName: \"playing\", publicName: \"playing\", isSignal: true, isRequired: false, transformFunction: null }, length: { classPropertyName: \"length\", publicName: \"length\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { position: \"positionChange\", playing: \"playingChange\", length: \"lengthChange\" }, exportAs: [\"sequence\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TheatreSequence, decorators: [{\n type: Directive,\n args: [{ selector: '[sheet][sequence]', exportAs: 'sequence' }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3RoZWF0cmUvc3JjL2xpYi9zZXF1ZW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBa0IsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDOztBQXdCdkMsTUFBTSxjQUFjLEdBQTJCO0lBQzlDLElBQUksRUFBRSxDQUFDO0lBQ1AsUUFBUSxFQUFFLEtBQUs7SUFDZixTQUFTLEVBQUUsS0FBSztJQUNoQixLQUFLLEVBQUUsQ0FBQztDQUNSLENBQUM7QUFHRixNQUFNLE9BQU8sZUFBZTtJQWtCM0I7UUFqQkEsWUFBTyxHQUFHLEtBQUssQ0FBQyxjQUFjLDJDQUFJLEtBQUssRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBM0QsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBQyxDQUFDO1FBQy9GLGlCQUFZLEdBQUcsS0FBSyxDQUFpQyxTQUFTLGdEQUFJLEtBQUssRUFBRSxlQUFlLE9BQXhCLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxHQUFDLENBQUM7UUFFNUYsYUFBUSxHQUFHLEtBQUssQ0FBUyxDQUFDLG9EQUFD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dCB7IGNvbXB1dGVkLCBEaXJlY3RpdmUsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgbW9kZWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdHlwZSBJU2VxdWVuY2UsIG9uQ2hhbmdlLCB2YWwgfSBmcm9tICdAdGhlYXRyZS9jb3JlJztcbmltcG9ydCB7IG9taXQsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IFRoZWF0cmVQcm9qZWN0IH0gZnJvbSAnLi9wcm9qZWN0JztcbmltcG9ydCB7IFRoZWF0cmVTaGVldCB9IGZyb20gJy4vc2hlZXQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF0dGFjaEF1ZGlvT3B0aW9ucyB7XG5cdC8qKlxuXHQgKiBFaXRoZXIgYSBVUkwgdG8gdGhlIGF1ZGlvIGZpbGUgKGVnIFwiaHR0cDovL2xvY2FsaG9zdDozMDAwL2F1ZGlvLm1wM1wiKSBvciBhbiBpbnN0YW5jZSBvZiBBdWRpb0J1ZmZlclxuXHQgKi9cblx0c291cmNlOiBzdHJpbmcgfCBBdWRpb0J1ZmZlcjtcblx0LyoqXG5cdCAqIEFuIG9wdGlvbmFsIEF1ZGlvQ29udGV4dC4gSWYgbm90IHByb3ZpZGVkLCBvbmUgd2lsbCBiZSBjcmVhdGVkLlxuXHQgKi9cblx0YXVkaW9Db250ZXh0PzogQXVkaW9Db250ZXh0O1xuXHQvKipcblx0ICogQW4gQXVkaW9Ob2RlIHRvIGZlZWQgdGhlIGF1ZGlvIGludG8uIFdpbGwgdXNlIGF1ZGlvQ29udGV4dC5kZXN0aW5hdGlvbiBpZiBub3QgcHJvdmlkZWQuXG5cdCAqL1xuXHRkZXN0aW5hdGlvbk5vZGU/OiBBdWRpb05vZGU7XG59XG5cbmV4cG9ydCB0eXBlIFRoZWF0cmVTZXF1ZW5jZU9wdGlvbnMgPSBQYXJhbWV0ZXJzPElTZXF1ZW5jZVsncGxheSddPlswXSAmIHtcblx0YXV0b3BsYXk6IGJvb2xlYW47XG5cdGF1dG9wYXVzZTogYm9vbGVhbjtcblx0ZGVsYXk6IG51bWJlcjtcblx0YXV0b3Jlc2V0PzogJ2luaXQnIHwgJ2Rlc3Ryb3knIHwgJ2Fsd2F5cyc7XG59O1xuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogVGhlYXRyZVNlcXVlbmNlT3B0aW9ucyA9IHtcblx0cmF0ZTogMSxcblx0YXV0b3BsYXk6IGZhbHNlLFxuXHRhdXRvcGF1c2U6IGZhbHNlLFxuXHRkZWxheTogMCxcbn07XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1tzaGVldF1bc2VxdWVuY2VdJywgZXhwb3J0QXM6ICdzZXF1ZW5jZScgfSlcbmV4cG9ydCBjbGFzcyBUaGVhdHJlU2VxdWVuY2Uge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgYWxpYXM6ICdzZXF1ZW5jZScsIHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXHRhdWRpb09wdGlvbnMgPSBpbnB1dDxBdHRhY2hBdWRpb09wdGlvbnMgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCwgeyBhbGlhczogJ3NlcXVlbmNlQXVkaW8nIH0pO1xuXG5cdHBvc2l0aW9uID0gbW9kZWw8bnVtYmVyPigwKTtcblx0cGxheWluZyA9IG1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcblx0bGVuZ3RoID0gbW9kZWw8bnVtYmVyPigwKTtcblxuXHRwcml2YXRlIHBsYXlPcHRpb25zID0gb21pdCh0aGlzLm9wdGlvbnMsIFsnYXV0b3BsYXknLCAnYXV0b3BhdXNlJywgJ2RlbGF5JywgJ2F1dG9yZXNldCddKTtcblx0cHJpdmF0ZSBhdXRvcGxheSA9IHBpY2sodGhpcy5vcHRpb25zLCAnYXV0b3BsYXknKTtcblx0cHJpdmF0ZSBhdXRvcGF1c2UgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2F1dG9wYXVzZScpO1xuXHRwcml2YXRlIGF1dG9yZXNldCA9IHBpY2sodGhpcy5vcHRpb25zLCAnYXV0b3Jlc2V0Jyk7XG5cdHByaXZhdGUgZGVsYXkgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2RlbGF5Jyk7XG5cblx0cHJpdmF0ZSBwcm9qZWN0ID0gaW5qZWN0KFRoZWF0cmVQcm9qZWN0KTtcblx0cHJpdmF0ZSBzaGVldCA9IGluamVjdChUaGVhdHJlU2hlZXQsIHsgaG9zdDogdHJ1ZSB9KTtcblx0c2VxdWVuY2UgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNoZWV0LnNoZWV0KCkuc2VxdWVuY2UpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBhdXRvcGxheSA9IHVudHJhY2tlZCh0aGlzLmF1dG9wbGF5KTtcblx0XHRcdGlmICghYXV0b3BsYXkpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgZGVsYXkgPSB1bnRyYWNrZWQodGhpcy5kZWxheSk7XG5cdFx0XHRjb25zdCBpZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHR1bnRyYWNrZWQoKCkgPT4gdGhpcy5wbGF5KCkpO1xuXHRcdFx0fSwgZGVsYXkpO1xuXG5cdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRjbGVhclRpbWVvdXQoaWQpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgYXV0b3BhdXNlID0gdW50cmFja2VkKHRoaXMuYXV0b3BhdXNlKTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XG5cdFx0XHRcdGlmIChhdXRvcGF1c2UpIHtcblx0XHRcdFx0XHR0aGlzLnBhdXNlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGF1dG9yZXNldCA9IHVudHJhY2tlZCh0aGlzLmF1dG9yZXNldCk7XG5cdFx0XHRpZiAoYXV0b3Jlc2V0ID09PSAnaW5pdCcgfHwgYXV0b3Jlc2V0ID09PSAnYWx3YXlzJykge1xuXHRcdFx0XHR1bnRyYWNrZWQoKCkgPT4gdGhpcy5yZXNldCgpKTtcblx0XHRcdH1cblxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0aWYgKGF1dG9yZXNldCA9PT0gJ2Rlc3Ryb3knIHx8IGF1dG9yZXNldCA9PT0gJ2Fsd2F5cycpIHtcblx0XHRcdFx0XHR1bnRyYWNrZWQoKCkgPT4gdGhpcy5yZXNldCgpKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW2F1ZGlvT3B0aW9ucywgc2VxdWVuY2VdID0gW3RoaXMuYXVkaW9PcHRpb25zKCksIHVudHJhY2tlZCh0aGlzLnNlcXVlbmNlKV07XG5cdFx0XHRpZiAoYXVkaW9PcHRpb25zKSBzZXF1ZW5jZS5hdHRhY2hBdWRpbyhhdWRpb09wdGlvbnMpO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IFtwbGF5T3B0aW9ucywgc2VxdWVuY2VdID0gW3RoaXMucGxheU9wdGlvbnMoKSwgdW50cmFja2VkKHRoaXMuc2VxdWVuY2UpXTtcblx0XHRcdGNvbnN0IGlzUGxheWluZyA9IHZhbChzZXF1ZW5jZS5wb2ludGVyLnBsYXlpbmcpO1xuXHRcdFx0aWYgKGlzUGxheWluZykge1xuXHRcdFx0XHR0aGlzLnBhdXNlKCk7XG5cdFx0XHRcdHRoaXMucGxheShwbGF5T3B0aW9ucyk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3Qgc2VxdWVuY2UgPSB0aGlzLnNlcXVlbmNlKCk7XG5cblx0XHRcdGNvbnN0IGNsZWFudXBzOiBBcnJheTwoKSA9PiB2b2lkPiA9IFtdO1xuXG5cdFx0XHRjbGVhbnVwcy5wdXNoKFxuXHRcdFx0XHRvbkNoYW5nZShzZXF1ZW5jZS5wb2ludGVyLnBvc2l0aW9uLCAodmFsdWUpID0+IHRoaXMucG9zaXRpb24uc2V0KHZhbHVlKSksXG5cdFx0XHRcdG9uQ2hhbmdlKHNlcXVlbmNlLnBvaW50ZXIucGxheWluZywgKHZhbHVlKSA9PiB0aGlzLnBsYXlpbmcuc2V0KHZhbHVlKSksXG5cdFx0XHRcdG9uQ2hhbmdlKHNlcXVlbmNlLnBvaW50ZXIubGVuZ3RoLCAodmFsdWUpID0+IHRoaXMubGVuZ3RoLnNldCh2YWx1ZSkpLFxuXHRcdFx0KTtcblxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0Y2xlYW51cHMuZm9yRWFjaCgoY2xlYW51cCkgPT4gY2xlYW51cCgpKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG5cblx0cGF1c2UoKSB7XG5cdFx0Y29uc3Qgc2VxdWVuY2UgPSB0aGlzLnNlcXVlbmNlKCk7XG5cdFx0c2VxdWVuY2UucGF1c2UoKTtcblx0fVxuXG5cdHBsYXkob3B0aW9uczogUGFyYW1ldGVyczxJU2VxdWVuY2VbJ3BsYXknXT5bMF0gPSB7fSkge1xuXHRcdGNvbnN0IHNlcXVlbmNlID0gdGhpcy5zZXF1ZW5jZSgpO1xuXHRcdGNvbnN0IHByb2plY3QgPSB0aGlzLnByb2plY3QucHJvamVjdCgpO1xuXG5cdFx0cHJvamVjdC5yZWFkeS50aGVuKCgpID0+IHtcblx0XHRcdHNlcXVlbmNlLnBsYXkoeyAuLi50aGlzLnBsYXlPcHRpb25zKCksIC4uLm9wdGlvbnMgfSk7XG5cdFx0fSk7XG5cdH1cblxuXHRyZXNldCgpIHtcblx0XHRjb25zdCBzZXF1ZW5jZSA9IHRoaXMuc2VxdWVuY2UoKTtcblx0XHRjb25zdCBpc1BsYXlpbmcgPSB2YWwoc2VxdWVuY2UucG9pbnRlci5wbGF5aW5nKTtcblx0XHRzZXF1ZW5jZS5wb3NpdGlvbiA9IDA7XG5cdFx0aWYgKGlzUGxheWluZykgdGhpcy5wbGF5KCk7XG5cdH1cbn1cbiJdfQ==","export * from './lib/project';\nexport * from './lib/sheet-object';\nexport * from './lib/studio/studio';\nexport * from './lib/sequence';\nexport { TheatreSheet as TheatreSheetImpl } from './lib/sheet';\nimport { TheatreSequence } from './lib/sequence';\nimport { TheatreSheet as Impl } from './lib/sheet';\nexport const TheatreSheet = [Impl, TheatreSequence];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3RoZWF0cmUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLElBQUksZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLElBQUksSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRW5ELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLElBQUksRUFBRSxlQUFlLENBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3Byb2plY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hlZXQtb2JqZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0dWRpby9zdHVkaW8nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXF1ZW5jZSc7XG5leHBvcnQgeyBUaGVhdHJlU2hlZXQgYXMgVGhlYXRyZVNoZWV0SW1wbCB9IGZyb20gJy4vbGliL3NoZWV0JztcblxuaW1wb3J0IHsgVGhlYXRyZVNlcXVlbmNlIH0gZnJvbSAnLi9saWIvc2VxdWVuY2UnO1xuaW1wb3J0IHsgVGhlYXRyZVNoZWV0IGFzIEltcGwgfSBmcm9tICcuL2xpYi9zaGVldCc7XG5cbmV4cG9ydCBjb25zdCBUaGVhdHJlU2hlZXQgPSBbSW1wbCwgVGhlYXRyZVNlcXVlbmNlXSBhcyBjb25zdDtcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS10aGVhdHJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy90aGVhdHJlL3NyYy9hbmd1bGFyLXRocmVlLXRoZWF0cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["TheatreSheet","TheatreSheetObject","Impl"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "angular-three-theatre",
|
|
3
|
-
"version": "4.0.0-next.
|
|
3
|
+
"version": "4.0.0-next.112",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -23,11 +23,11 @@
|
|
|
23
23
|
],
|
|
24
24
|
"license": "MIT",
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"@angular/common": ">=
|
|
27
|
-
"@angular/core": ">=
|
|
26
|
+
"@angular/common": ">=20.0.0 <21.0.0",
|
|
27
|
+
"@angular/core": ">=20.0.0 <21.0.0",
|
|
28
28
|
"@theatre/core": ">=0.7.0 <0.8.0",
|
|
29
29
|
"@theatre/studio": ">=0.7.0 <0.8.0",
|
|
30
|
-
"three": ">=0.157.0 <0.
|
|
30
|
+
"three": ">=0.157.0 <0.180.0"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"tslib": "^2.7.0"
|