@meshmakers/octo-process-diagrams 3.4.150 → 3.4.160
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.
|
@@ -3057,10 +3057,10 @@ class PrimitiveRendererRegistry {
|
|
|
3057
3057
|
}
|
|
3058
3058
|
return null;
|
|
3059
3059
|
}
|
|
3060
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3061
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
3060
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PrimitiveRendererRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3061
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PrimitiveRendererRegistry, providedIn: 'root' });
|
|
3062
3062
|
}
|
|
3063
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3063
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PrimitiveRendererRegistry, decorators: [{
|
|
3064
3064
|
type: Injectable,
|
|
3065
3065
|
args: [{
|
|
3066
3066
|
providedIn: 'root'
|
|
@@ -3338,10 +3338,10 @@ class ExpressionEvaluatorService {
|
|
|
3338
3338
|
clearCache() {
|
|
3339
3339
|
this.expressionCache.clear();
|
|
3340
3340
|
}
|
|
3341
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3342
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
3341
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ExpressionEvaluatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3342
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ExpressionEvaluatorService, providedIn: 'root' });
|
|
3343
3343
|
}
|
|
3344
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3344
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ExpressionEvaluatorService, decorators: [{
|
|
3345
3345
|
type: Injectable,
|
|
3346
3346
|
args: [{
|
|
3347
3347
|
providedIn: 'root'
|
|
@@ -3719,10 +3719,10 @@ class SymbolRenderer {
|
|
|
3719
3719
|
}
|
|
3720
3720
|
return result;
|
|
3721
3721
|
}
|
|
3722
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3723
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
3722
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolRenderer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3723
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolRenderer, providedIn: 'root' });
|
|
3724
3724
|
}
|
|
3725
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3725
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolRenderer, decorators: [{
|
|
3726
3726
|
type: Injectable,
|
|
3727
3727
|
args: [{
|
|
3728
3728
|
providedIn: 'root'
|
|
@@ -3815,10 +3815,10 @@ class GetSymbolLibrariesDtoGQL extends i1.Query {
|
|
|
3815
3815
|
constructor(apollo) {
|
|
3816
3816
|
super(apollo);
|
|
3817
3817
|
}
|
|
3818
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3819
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
3818
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GetSymbolLibrariesDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3819
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GetSymbolLibrariesDtoGQL, providedIn: 'root' });
|
|
3820
3820
|
}
|
|
3821
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3821
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GetSymbolLibrariesDtoGQL, decorators: [{
|
|
3822
3822
|
type: Injectable,
|
|
3823
3823
|
args: [{
|
|
3824
3824
|
providedIn: 'root'
|
|
@@ -3873,10 +3873,10 @@ class GetSymbolLibraryDtoGQL extends i1.Query {
|
|
|
3873
3873
|
constructor(apollo) {
|
|
3874
3874
|
super(apollo);
|
|
3875
3875
|
}
|
|
3876
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3877
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
3876
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GetSymbolLibraryDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3877
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GetSymbolLibraryDtoGQL, providedIn: 'root' });
|
|
3878
3878
|
}
|
|
3879
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3879
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GetSymbolLibraryDtoGQL, decorators: [{
|
|
3880
3880
|
type: Injectable,
|
|
3881
3881
|
args: [{
|
|
3882
3882
|
providedIn: 'root'
|
|
@@ -3907,10 +3907,10 @@ class CreateSymbolLibraryDtoGQL extends i1.Mutation {
|
|
|
3907
3907
|
constructor(apollo) {
|
|
3908
3908
|
super(apollo);
|
|
3909
3909
|
}
|
|
3910
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3911
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
3910
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: CreateSymbolLibraryDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3911
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: CreateSymbolLibraryDtoGQL, providedIn: 'root' });
|
|
3912
3912
|
}
|
|
3913
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3913
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: CreateSymbolLibraryDtoGQL, decorators: [{
|
|
3914
3914
|
type: Injectable,
|
|
3915
3915
|
args: [{
|
|
3916
3916
|
providedIn: 'root'
|
|
@@ -3941,10 +3941,10 @@ class UpdateSymbolLibraryDtoGQL extends i1.Mutation {
|
|
|
3941
3941
|
constructor(apollo) {
|
|
3942
3942
|
super(apollo);
|
|
3943
3943
|
}
|
|
3944
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3945
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
3944
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: UpdateSymbolLibraryDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3945
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: UpdateSymbolLibraryDtoGQL, providedIn: 'root' });
|
|
3946
3946
|
}
|
|
3947
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3947
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: UpdateSymbolLibraryDtoGQL, decorators: [{
|
|
3948
3948
|
type: Injectable,
|
|
3949
3949
|
args: [{
|
|
3950
3950
|
providedIn: 'root'
|
|
@@ -3985,10 +3985,10 @@ class GetSymbolDefinitionDtoGQL extends i1.Query {
|
|
|
3985
3985
|
constructor(apollo) {
|
|
3986
3986
|
super(apollo);
|
|
3987
3987
|
}
|
|
3988
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3989
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
3988
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GetSymbolDefinitionDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3989
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GetSymbolDefinitionDtoGQL, providedIn: 'root' });
|
|
3990
3990
|
}
|
|
3991
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3991
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GetSymbolDefinitionDtoGQL, decorators: [{
|
|
3992
3992
|
type: Injectable,
|
|
3993
3993
|
args: [{
|
|
3994
3994
|
providedIn: 'root'
|
|
@@ -4023,10 +4023,10 @@ class CreateSymbolDefinitionDtoGQL extends i1.Mutation {
|
|
|
4023
4023
|
constructor(apollo) {
|
|
4024
4024
|
super(apollo);
|
|
4025
4025
|
}
|
|
4026
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4027
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
4026
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: CreateSymbolDefinitionDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4027
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: CreateSymbolDefinitionDtoGQL, providedIn: 'root' });
|
|
4028
4028
|
}
|
|
4029
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4029
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: CreateSymbolDefinitionDtoGQL, decorators: [{
|
|
4030
4030
|
type: Injectable,
|
|
4031
4031
|
args: [{
|
|
4032
4032
|
providedIn: 'root'
|
|
@@ -4061,10 +4061,10 @@ class UpdateSymbolDefinitionDtoGQL extends i1.Mutation {
|
|
|
4061
4061
|
constructor(apollo) {
|
|
4062
4062
|
super(apollo);
|
|
4063
4063
|
}
|
|
4064
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4065
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
4064
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: UpdateSymbolDefinitionDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4065
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: UpdateSymbolDefinitionDtoGQL, providedIn: 'root' });
|
|
4066
4066
|
}
|
|
4067
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4067
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: UpdateSymbolDefinitionDtoGQL, decorators: [{
|
|
4068
4068
|
type: Injectable,
|
|
4069
4069
|
args: [{
|
|
4070
4070
|
providedIn: 'root'
|
|
@@ -4085,10 +4085,10 @@ class DeleteSymbolDefinitionDtoGQL extends i1.Mutation {
|
|
|
4085
4085
|
constructor(apollo) {
|
|
4086
4086
|
super(apollo);
|
|
4087
4087
|
}
|
|
4088
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4089
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
4088
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DeleteSymbolDefinitionDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4089
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DeleteSymbolDefinitionDtoGQL, providedIn: 'root' });
|
|
4090
4090
|
}
|
|
4091
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4091
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DeleteSymbolDefinitionDtoGQL, decorators: [{
|
|
4092
4092
|
type: Injectable,
|
|
4093
4093
|
args: [{
|
|
4094
4094
|
providedIn: 'root'
|
|
@@ -4551,10 +4551,10 @@ class SymbolLibraryService {
|
|
|
4551
4551
|
return defaultValue;
|
|
4552
4552
|
}
|
|
4553
4553
|
}
|
|
4554
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4555
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
4554
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolLibraryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4555
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolLibraryService, providedIn: 'root' });
|
|
4556
4556
|
}
|
|
4557
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4557
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolLibraryService, decorators: [{
|
|
4558
4558
|
type: Injectable,
|
|
4559
4559
|
args: [{
|
|
4560
4560
|
providedIn: 'root'
|
|
@@ -5677,10 +5677,10 @@ class SvgImportService {
|
|
|
5677
5677
|
return { x: pos.x, y: pos.y, width: 50, height: 50 };
|
|
5678
5678
|
}
|
|
5679
5679
|
}
|
|
5680
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5681
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
5680
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SvgImportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5681
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SvgImportService, providedIn: 'root' });
|
|
5682
5682
|
}
|
|
5683
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5683
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SvgImportService, decorators: [{
|
|
5684
5684
|
type: Injectable,
|
|
5685
5685
|
args: [{
|
|
5686
5686
|
providedIn: 'root'
|
|
@@ -5721,10 +5721,10 @@ class GetProcessDiagramDtoGQL extends i1.Query {
|
|
|
5721
5721
|
constructor(apollo) {
|
|
5722
5722
|
super(apollo);
|
|
5723
5723
|
}
|
|
5724
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5725
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
5724
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GetProcessDiagramDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5725
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GetProcessDiagramDtoGQL, providedIn: 'root' });
|
|
5726
5726
|
}
|
|
5727
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5727
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GetProcessDiagramDtoGQL, decorators: [{
|
|
5728
5728
|
type: Injectable,
|
|
5729
5729
|
args: [{
|
|
5730
5730
|
providedIn: 'root'
|
|
@@ -5756,10 +5756,10 @@ class GetProcessDiagramsDtoGQL extends i1.Query {
|
|
|
5756
5756
|
constructor(apollo) {
|
|
5757
5757
|
super(apollo);
|
|
5758
5758
|
}
|
|
5759
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5760
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
5759
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GetProcessDiagramsDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5760
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GetProcessDiagramsDtoGQL, providedIn: 'root' });
|
|
5761
5761
|
}
|
|
5762
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5762
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GetProcessDiagramsDtoGQL, decorators: [{
|
|
5763
5763
|
type: Injectable,
|
|
5764
5764
|
args: [{
|
|
5765
5765
|
providedIn: 'root'
|
|
@@ -5789,10 +5789,10 @@ class CreateProcessDiagramDtoGQL extends i1.Mutation {
|
|
|
5789
5789
|
constructor(apollo) {
|
|
5790
5790
|
super(apollo);
|
|
5791
5791
|
}
|
|
5792
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5793
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
5792
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: CreateProcessDiagramDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5793
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: CreateProcessDiagramDtoGQL, providedIn: 'root' });
|
|
5794
5794
|
}
|
|
5795
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5795
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: CreateProcessDiagramDtoGQL, decorators: [{
|
|
5796
5796
|
type: Injectable,
|
|
5797
5797
|
args: [{
|
|
5798
5798
|
providedIn: 'root'
|
|
@@ -5822,10 +5822,10 @@ class UpdateProcessDiagramDtoGQL extends i1.Mutation {
|
|
|
5822
5822
|
constructor(apollo) {
|
|
5823
5823
|
super(apollo);
|
|
5824
5824
|
}
|
|
5825
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5826
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
5825
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: UpdateProcessDiagramDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5826
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: UpdateProcessDiagramDtoGQL, providedIn: 'root' });
|
|
5827
5827
|
}
|
|
5828
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5828
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: UpdateProcessDiagramDtoGQL, decorators: [{
|
|
5829
5829
|
type: Injectable,
|
|
5830
5830
|
args: [{
|
|
5831
5831
|
providedIn: 'root'
|
|
@@ -5846,10 +5846,10 @@ class DeleteProcessDiagramDtoGQL extends i1.Mutation {
|
|
|
5846
5846
|
constructor(apollo) {
|
|
5847
5847
|
super(apollo);
|
|
5848
5848
|
}
|
|
5849
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5850
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
5849
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DeleteProcessDiagramDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5850
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DeleteProcessDiagramDtoGQL, providedIn: 'root' });
|
|
5851
5851
|
}
|
|
5852
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5852
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DeleteProcessDiagramDtoGQL, decorators: [{
|
|
5853
5853
|
type: Injectable,
|
|
5854
5854
|
args: [{
|
|
5855
5855
|
providedIn: 'root'
|
|
@@ -6084,10 +6084,10 @@ class ProcessDiagramDataService {
|
|
|
6084
6084
|
return defaultValue;
|
|
6085
6085
|
}
|
|
6086
6086
|
}
|
|
6087
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6088
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
6087
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ProcessDiagramDataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6088
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ProcessDiagramDataService, providedIn: 'root' });
|
|
6089
6089
|
}
|
|
6090
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
6090
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ProcessDiagramDataService, decorators: [{
|
|
6091
6091
|
type: Injectable,
|
|
6092
6092
|
args: [{
|
|
6093
6093
|
providedIn: 'root'
|
|
@@ -6324,10 +6324,10 @@ class DockviewComponent {
|
|
|
6324
6324
|
});
|
|
6325
6325
|
this.disposables.push(() => willDropDisposable.dispose());
|
|
6326
6326
|
}
|
|
6327
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6328
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: DockviewComponent, isStandalone: true, selector: "mm-dockview", inputs: { components: "components", tabComponents: "tabComponents", watermarkComponent: "watermarkComponent", defaultTabComponent: "defaultTabComponent", leftHeaderActionsComponent: "leftHeaderActionsComponent", rightHeaderActionsComponent: "rightHeaderActionsComponent", prefixHeaderActionsComponent: "prefixHeaderActionsComponent", className: "className", hideBorders: "hideBorders", locked: "locked", disableAutoResizing: "disableAutoResizing", disableFloatingGroups: "disableFloatingGroups" }, outputs: { ready: "ready", didDrop: "didDrop", willDrop: "willDrop" }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["dockviewContainer"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: '<div #dockviewContainer class="dv-dockview-container"></div>', isInline: true, styles: [".dv-scrollable{position:relative;overflow:hidden}.dv-scrollable .dv-scrollbar{position:absolute;border-radius:2px;background-color:transparent;will-change:background-color,transform;transform:translateZ(0);backface-visibility:hidden;transition-property:background-color;transition-timing-function:ease-in-out;transition-duration:1s;transition-delay:0s}.dv-scrollable .dv-scrollbar-horizontal{bottom:0;left:0;height:4px}.dv-scrollable .dv-scrollbar-vertical{right:0;top:0;width:4px}.dv-scrollable:hover .dv-scrollbar,.dv-scrollable.dv-scrollable-resizing .dv-scrollbar,.dv-scrollable.dv-scrollable-scrolling .dv-scrollbar{background-color:var(--dv-scrollbar-background-color, rgba(255, 255, 255, .25))}.dv-svg{display:inline-block;fill:currentcolor;line-height:1;stroke:currentcolor;stroke-width:0}.dockview-theme-dark{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-group-view-background-color: #1e1e1e;--dv-tabs-and-actions-container-background-color: #252526;--dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;--dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;--dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;--dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;--dv-tab-divider-color: #1e1e1e;--dv-activegroup-visiblepanel-tab-color: white;--dv-activegroup-hiddenpanel-tab-color: #969696;--dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;--dv-inactivegroup-hiddenpanel-tab-color: #626262;--dv-separator-border: rgb(68, 68, 68);--dv-paneview-header-border-color: rgba(204, 204, 204, .2)}.dockview-theme-dark .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-light{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-group-view-background-color: white;--dv-tabs-and-actions-container-background-color: #f3f3f3;--dv-activegroup-visiblepanel-tab-background-color: white;--dv-activegroup-hiddenpanel-tab-background-color: #ececec;--dv-inactivegroup-visiblepanel-tab-background-color: white;--dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;--dv-tab-divider-color: white;--dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);--dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, .7);--dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, .7);--dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, .35);--dv-separator-border: rgba(128, 128, 128, .35);--dv-paneview-header-border-color: rgb(51, 51, 51);--dv-scrollbar-background-color: rgba(0, 0, 0, .25)}.dockview-theme-light .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-vs{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-group-view-background-color: #1e1e1e;--dv-tabs-and-actions-container-background-color: #252526;--dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;--dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;--dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;--dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;--dv-tab-divider-color: #1e1e1e;--dv-activegroup-hiddenpanel-tab-color: #969696;--dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;--dv-inactivegroup-hiddenpanel-tab-color: #626262;--dv-separator-border: rgb(68, 68, 68);--dv-paneview-header-border-color: rgba(204, 204, 204, .2);--dv-tabs-and-actions-container-background-color: #2d2d30;--dv-tabs-and-actions-container-height: 20px;--dv-tabs-and-actions-container-font-size: 11px;--dv-activegroup-visiblepanel-tab-background-color: #007acc;--dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;--dv-activegroup-visiblepanel-tab-color: white;--dv-activegroup-hiddenpanel-tab-color: white;--dv-inactivegroup-visiblepanel-tab-color: white;--dv-inactivegroup-hiddenpanel-tab-color: white}.dockview-theme-vs .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container{box-sizing:content-box;border-bottom:2px solid var(--dv-activegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tab.dv-active-tab{border-top:2px solid var(--dv-activegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tab.dv-inactive-tab{border-top:2px solid var(--dv-activegroup-hiddenpanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container{box-sizing:content-box;border-bottom:2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tab.dv-active-tab{border-top:2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tab.dv-inactive-tab{border-top:2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color)}.dockview-theme-abyss{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-color-abyss-dark: #000c18;--dv-color-abyss: #10192c;--dv-color-abyss-light: #1c1c2a;--dv-color-abyss-lighter: #2b2b4a;--dv-color-abyss-accent: rgb(91, 30, 207);--dv-color-abyss-primary-text: white;--dv-color-abyss-secondary-text: rgb(148, 151, 169);--dv-group-view-background-color: var(--dv-color-abyss-dark);--dv-tabs-and-actions-container-background-color: var( --dv-color-abyss-light );--dv-activegroup-visiblepanel-tab-background-color: var( --dv-color-abyss-dark );--dv-activegroup-hiddenpanel-tab-background-color: var(--dv-color-abyss);--dv-inactivegroup-visiblepanel-tab-background-color: var( --dv-color-abyss-dark );--dv-inactivegroup-hiddenpanel-tab-background-color: var(--dv-color-abyss);--dv-tab-divider-color: var(--dv-color-abyss-lighter);--dv-activegroup-visiblepanel-tab-color: white;--dv-activegroup-hiddenpanel-tab-color: rgba(255, 255, 255, .5);--dv-inactivegroup-visiblepanel-tab-color: rgba(255, 255, 255, .5);--dv-inactivegroup-hiddenpanel-tab-color: rgba(255, 255, 255, .25);--dv-separator-border: var(--dv-color-abyss-lighter);--dv-paneview-header-border-color: var(--dv-color-abyss-lighter);--dv-paneview-active-outline-color: #596f99}.dockview-theme-abyss .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-dracula{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-group-view-background-color: #282a36;--dv-tabs-and-actions-container-background-color: #191a21;--dv-activegroup-visiblepanel-tab-background-color: #282a36;--dv-activegroup-hiddenpanel-tab-background-color: #21222c;--dv-inactivegroup-visiblepanel-tab-background-color: #282a36;--dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;--dv-tab-divider-color: #191a21;--dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);--dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);--dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, .5);--dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, .5);--dv-separator-border: #bd93f9;--dv-paneview-header-border-color: #bd93f9;--dv-paneview-active-outline-color: #6272a4}.dockview-theme-dracula .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-dracula .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-dracula .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{position:absolute;left:0;top:0;content:\"\";width:100%;height:1px;background-color:#94527e;z-index:999}.dockview-theme-dracula .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-dracula .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{position:absolute;left:0;bottom:0;content:\"\";width:100%;height:1px;background-color:#5e3d5a;z-index:999}.dockview-theme-replit{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;box-sizing:border-box;padding:10px;background-color:#ebeced;--dv-group-view-background-color: #ebeced;--dv-tabs-and-actions-container-background-color: #fcfcfc;--dv-activegroup-visiblepanel-tab-background-color: #f0f1f2;--dv-activegroup-hiddenpanel-tab-background-color: #fcfcfc;--dv-inactivegroup-visiblepanel-tab-background-color: #f0f1f2;--dv-inactivegroup-hiddenpanel-tab-background-color: #fcfcfc;--dv-tab-divider-color: transparent;--dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);--dv-activegroup-hiddenpanel-tab-color: rgb(51, 51, 51);--dv-inactivegroup-visiblepanel-tab-color: rgb(51, 51, 51);--dv-inactivegroup-hiddenpanel-tab-color: rgb(51, 51, 51);--dv-separator-border: transparent;--dv-paneview-header-border-color: rgb(51, 51, 51);--dv-sash-color: #cfd1d3;--dv-active-sash-color: #babbbb}.dockview-theme-replit .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-replit .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-replit .dv-resize-container{border-radius:10px!important;border:none}.dockview-theme-replit .dv-groupview{overflow:hidden;border-radius:10px}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container{border-bottom:1px solid rgba(128,128,128,.35)}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab{margin:4px;border-radius:8px}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab .dv-svg{height:8px;width:8px}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab:hover{background-color:#e4e5e6!important}.dockview-theme-replit .dv-groupview .dv-content-container{background-color:#fcfcfc}.dockview-theme-replit .dv-groupview.dv-active-group{border:1px solid rgba(128,128,128,.35)}.dockview-theme-replit .dv-groupview.dv-inactive-group{border:1px solid transparent}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash{background-color:transparent}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):after{content:\"\";height:4px;width:40px;border-radius:2px;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--dv-sash-color);position:absolute}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):hover,.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):active{background-color:transparent}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):hover:after,.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):active:after{background-color:var(--dv-active-sash-color)}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash{background-color:transparent}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):after{content:\"\";height:40px;width:4px;border-radius:2px;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--dv-sash-color);position:absolute}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):hover,.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):active{background-color:transparent}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):hover:after,.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):active:after{background-color:var(--dv-active-sash-color)}.dockview-theme-abyss-spaced{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-tab-font-size: 12px;--dv-tab-margin: .5rem .25rem;--dv-tabs-and-actions-container-height: 44px;--dv-border-radius: 20px;box-sizing:border-box;--dv-color-abyss-dark: rgb(11, 6, 17);--dv-color-abyss: #16121f;--dv-color-abyss-light: #201d2b;--dv-color-abyss-lighter: #2a2837;--dv-color-abyss-accent: rgb(91, 30, 207);--dv-color-abyss-primary-text: white;--dv-color-abyss-secondary-text: rgb(148, 151, 169);--dv-drag-over-border: 2px solid var(--dv-color-abyss-accent);--dv-drag-over-background-color: \"\";--dv-group-view-background-color: var(--dv-color-abyss-dark);--dv-tabs-and-actions-container-background-color: var(--dv-color-abyss);--dv-activegroup-visiblepanel-tab-background-color: var( --dv-color-abyss-lighter );--dv-activegroup-hiddenpanel-tab-background-color: var( --dv-color-abyss-light );--dv-inactivegroup-visiblepanel-tab-background-color: var( --dv-color-abyss-lighter );--dv-inactivegroup-hiddenpanel-tab-background-color: var( --dv-color-abyss-light );--dv-tab-divider-color: transparent;--dv-activegroup-visiblepanel-tab-color: var(--dv-color-abyss-primary-text);--dv-activegroup-hiddenpanel-tab-color: var( --dv-color-abyss-secondary-text );--dv-inactivegroup-visiblepanel-tab-color: var( --dv-color-abyss-primary-text );--dv-inactivegroup-hiddenpanel-tab-color: var( --dv-color-abyss-secondary-text );--dv-separator-border: transparent;--dv-paneview-header-border-color: rgb(51, 51, 51);--dv-active-sash-color: var(--dv-color-abyss-accent);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(0, 0, 0, .5);padding:10px;background-color:var(--dv-color-abyss-dark)}.dockview-theme-abyss-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-abyss-spaced .dv-sash{border-radius:4px}.dockview-theme-abyss-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius) / 4)}.dockview-theme-abyss-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-abyss-spaced .dv-resize-container{border-radius:var(--dv-border-radius)!important;border:none}.dockview-theme-abyss-spaced .dv-tabs-overflow-container,.dockview-theme-abyss-spaced .dv-tabs-overflow-dropdown-default{border-radius:8px;height:unset!important}.dockview-theme-abyss-spaced .dv-tab{border-radius:8px}.dockview-theme-abyss-spaced .dv-tab .dv-svg{height:8px;width:8px}.dockview-theme-abyss-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-abyss-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius) / 2)}.dockview-theme-abyss-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color)}.dockview-theme-abyss-spaced .dv-resize-container .dv-groupview{border:2px solid var(--dv-color-abyss-dark)}.dockview-theme-light-spaced{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-tab-font-size: 12px;--dv-tab-margin: .5rem .25rem;--dv-tabs-and-actions-container-height: 44px;--dv-border-radius: 20px;box-sizing:border-box;--dv-drag-over-border: 2px solid rgb(91, 30, 207);--dv-drag-over-background-color: \"\";--dv-group-view-background-color: #f6f5f9;--dv-tabs-and-actions-container-background-color: white;--dv-activegroup-visiblepanel-tab-background-color: #ededf0;--dv-activegroup-hiddenpanel-tab-background-color: #f9f9fa;--dv-inactivegroup-visiblepanel-tab-background-color: #ededf0;--dv-inactivegroup-hiddenpanel-tab-background-color: #f9f9fa;--dv-tab-divider-color: transparent;--dv-activegroup-visiblepanel-tab-color: rgb(104, 107, 130);--dv-activegroup-hiddenpanel-tab-color: rgb(148, 151, 169);--dv-inactivegroup-visiblepanel-tab-color: rgb(104, 107, 130);--dv-inactivegroup-hiddenpanel-tab-color: rgb(148, 151, 169);--dv-separator-border: transparent;--dv-paneview-header-border-color: rgb(51, 51, 51);--dv-active-sash-color: rgb(91, 30, 207);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(0, 0, 0, .1);padding:10px;background-color:#f6f5f9;--dv-scrollbar-background-color: rgba(0, 0, 0, .25)}.dockview-theme-light-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-light-spaced .dv-sash{border-radius:4px}.dockview-theme-light-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius) / 4)}.dockview-theme-light-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-light-spaced .dv-resize-container{border-radius:var(--dv-border-radius)!important;border:none}.dockview-theme-light-spaced .dv-tabs-overflow-container,.dockview-theme-light-spaced .dv-tabs-overflow-dropdown-default{border-radius:8px;height:unset!important}.dockview-theme-light-spaced .dv-tab{border-radius:8px}.dockview-theme-light-spaced .dv-tab .dv-svg{height:8px;width:8px}.dockview-theme-light-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-light-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius) / 2)}.dockview-theme-light-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color)}.dockview-theme-light-spaced .dv-resize-container .dv-groupview{border:2px solid rgba(255,255,255,.1)}.dv-drop-target-container{position:absolute;z-index:9999;top:0;left:0;height:100%;width:100%;pointer-events:none;overflow:hidden;--dv-transition-duration: .3s}.dv-drop-target-container .dv-drop-target-anchor{position:relative;border:var(--dv-drag-over-border);background-color:var(--dv-drag-over-background-color);opacity:1;will-change:transform,opacity;transform:translateZ(0);backface-visibility:hidden;contain:layout paint;transition:opacity var(--dv-transition-duration) ease-in,top var(--dv-transition-duration) ease-out,left var(--dv-transition-duration) ease-out,width var(--dv-transition-duration) ease-out,height var(--dv-transition-duration) ease-out}.dv-drop-target{position:relative;--dv-transition-duration: 70ms}.dv-drop-target>.dv-drop-target-dropzone{position:absolute;left:0;top:0;height:100%;width:100%;z-index:1000;pointer-events:none}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection{position:relative;box-sizing:border-box;height:100%;width:100%;border:var(--dv-drag-over-border);background-color:var(--dv-drag-over-background-color);transition:top var(--dv-transition-duration) ease-out,left var(--dv-transition-duration) ease-out,width var(--dv-transition-duration) ease-out,height var(--dv-transition-duration) ease-out,opacity var(--dv-transition-duration) ease-out;will-change:transform;pointer-events:none}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-top.dv-drop-target-small-vertical{border-top:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical{border-bottom:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal{border-left:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal{border-right:1px solid var(--dv-drag-over-border-color)}.dv-dockview{position:relative;background-color:var(--dv-group-view-background-color);contain:layout}.dv-dockview .dv-watermark-container{position:absolute;top:0;left:0;height:100%;width:100%;z-index:1}.dv-dockview .dv-overlay-render-container{position:relative}.dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-inactive-tab{background-color:var(--dv-activegroup-hiddenpanel-tab-background-color);color:var(--dv-activegroup-hiddenpanel-tab-color)}.dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{background-color:var(--dv-inactivegroup-visiblepanel-tab-background-color);color:var(--dv-inactivegroup-visiblepanel-tab-color)}.dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-inactive-tab{background-color:var(--dv-inactivegroup-hiddenpanel-tab-background-color);color:var(--dv-inactivegroup-hiddenpanel-tab-color)}.dv-tab.dv-tab-dragging{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-groupview{display:flex;height:100%;background-color:var(--dv-group-view-background-color);overflow:hidden;flex-direction:column}.dv-groupview:focus{outline:none}.dv-groupview>.dv-content-container{flex-grow:1;min-height:0;outline:none}.dv-groupview.dv-groupview-header-bottom{flex-direction:column-reverse}.dv-groupview.dv-groupview-header-left{flex-direction:row}.dv-groupview.dv-groupview-header-right{flex-direction:row-reverse}.dv-root-wrapper,.dv-grid-view,.dv-branch-node{height:100%;width:100%}.dv-debug .dv-resize-container .dv-resize-handle-top{background-color:red}.dv-debug .dv-resize-container .dv-resize-handle-bottom{background-color:green}.dv-debug .dv-resize-container .dv-resize-handle-left{background-color:#ff0}.dv-debug .dv-resize-container .dv-resize-handle-right{background-color:#00f}.dv-debug .dv-resize-container .dv-resize-handle-topleft,.dv-debug .dv-resize-container .dv-resize-handle-topright,.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,.dv-debug .dv-resize-container .dv-resize-handle-bottomright{background-color:#0ff}.dv-resize-container{--dv-overlay-z-index: var(--dv-overlay-z-index, 999);position:absolute;z-index:calc(var(--dv-overlay-z-index) - 2);border:1px solid var(--dv-tab-divider-color);box-shadow:var(--dv-floating-box-shadow);will-change:transform,opacity;transform:translateZ(0);backface-visibility:hidden}.dv-resize-container.dv-hidden{display:none}.dv-resize-container.dv-resize-container-dragging{opacity:.5;will-change:transform,opacity}.dv-resize-container .dv-resize-handle-top{height:4px;width:calc(100% - 8px);left:4px;top:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:ns-resize}.dv-resize-container .dv-resize-handle-bottom{height:4px;width:calc(100% - 8px);left:4px;bottom:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:ns-resize}.dv-resize-container .dv-resize-handle-left{height:calc(100% - 8px);width:4px;left:-2px;top:4px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:ew-resize}.dv-resize-container .dv-resize-handle-right{height:calc(100% - 8px);width:4px;right:-2px;top:4px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:ew-resize}.dv-resize-container .dv-resize-handle-topleft{height:4px;width:4px;top:-2px;left:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:nw-resize}.dv-resize-container .dv-resize-handle-topright{height:4px;width:4px;right:-2px;top:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:ne-resize}.dv-resize-container .dv-resize-handle-bottomleft{height:4px;width:4px;left:-2px;bottom:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:sw-resize}.dv-resize-container .dv-resize-handle-bottomright{height:4px;width:4px;right:-2px;bottom:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:se-resize}.dv-render-overlay{--dv-overlay-z-index: var(--dv-overlay-z-index, 999);position:absolute;z-index:1;width:100%;height:100%;contain:layout paint;isolation:isolate;will-change:transform;transform:translateZ(0);backface-visibility:hidden}.dv-render-overlay.dv-render-overlay-float{z-index:calc(var(--dv-overlay-z-index) - 1)}.dv-debug .dv-render-overlay{outline:1px solid red;outline-offset:-1}.dv-pane-container{height:100%;width:100%}.dv-pane-container.dv-animated .dv-view{will-change:transform;transform:translateZ(0);backface-visibility:hidden;transition:transform .15s ease-out}.dv-pane-container .dv-view{overflow:hidden;display:flex;flex-direction:column;padding:0!important}.dv-pane-container .dv-view:not(:first-child):before{background-color:transparent!important}.dv-pane-container .dv-view:not(:first-child) .dv-pane>.dv-pane-header{border-top:1px solid var(--dv-paneview-header-border-color)}.dv-pane-container .dv-view .dv-default-header{background-color:var(--dv-group-view-background-color);color:var(--dv-activegroup-visiblepanel-tab-color);display:flex;padding:0 8px;cursor:pointer}.dv-pane-container .dv-view .dv-default-header .dv-pane-header-icon{display:flex;justify-content:center;align-items:center}.dv-pane-container .dv-view .dv-default-header>span{padding-left:8px;flex-grow:1}.dv-pane-container:first-of-type>.dv-pane>.dv-pane-header{border-top:none!important}.dv-pane-container .dv-pane{display:flex;flex-direction:column;overflow:hidden;height:100%}.dv-pane-container .dv-pane .dv-pane-header{box-sizing:border-box;-webkit-user-select:none;user-select:none;position:relative;outline:none}.dv-pane-container .dv-pane .dv-pane-header.dv-pane-draggable{cursor:pointer}.dv-pane-container .dv-pane .dv-pane-header:focus:before,.dv-pane-container .dv-pane .dv-pane-header:focus-within:before{position:absolute;top:0;left:0;width:100%;height:100%;z-index:5;content:\"\";pointer-events:none;outline:1px solid;outline-width:-1px;outline-style:solid;outline-offset:-1px;outline-color:var(--dv-paneview-active-outline-color)}.dv-pane-container .dv-pane .dv-pane-body{overflow-y:auto;overflow-x:hidden;flex-grow:1;position:relative;outline:none}.dv-pane-container .dv-pane .dv-pane-body:focus:before,.dv-pane-container .dv-pane .dv-pane-body:focus-within:before{position:absolute;top:0;left:0;width:100%;height:100%;z-index:5;content:\"\";pointer-events:none;outline:1px solid;outline-width:-1px;outline-style:solid;outline-offset:-1px;outline-color:var(--dv-paneview-active-outline-color)}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-enabled{background-color:#000}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-disabled{background-color:orange}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-maximum{background-color:green}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-minimum{background-color:red}.dv-split-view-container{position:relative;overflow:hidden;height:100%;width:100%}.dv-split-view-container.dv-splitview-disabled>.dv-sash-container>.dv-sash{pointer-events:none}.dv-split-view-container.dv-animation .dv-view,.dv-split-view-container.dv-animation .dv-sash{will-change:transform;transform:translateZ(0);backface-visibility:hidden;transition:transform .15s ease-out}.dv-split-view-container.dv-horizontal{height:100%}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash{height:100%;width:4px}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-enabled{cursor:ew-resize}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-disabled{cursor:default}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-maximum{cursor:w-resize}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-minimum{cursor:e-resize}.dv-split-view-container.dv-horizontal>.dv-view-container>.dv-view:not(:first-child):before{height:100%;width:1px}.dv-split-view-container.dv-vertical{width:100%}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash{width:100%;height:4px}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-enabled{cursor:ns-resize}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-disabled{cursor:default}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-maximum{cursor:n-resize}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-minimum{cursor:s-resize}.dv-split-view-container.dv-vertical>.dv-view-container>.dv-view{width:100%}.dv-split-view-container.dv-vertical>.dv-view-container>.dv-view:not(:first-child):before{height:1px;width:100%}.dv-split-view-container .dv-sash-container{height:100%;width:100%;position:absolute}.dv-split-view-container .dv-sash-container .dv-sash{position:absolute;z-index:99;outline:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;touch-action:none;background-color:var(--dv-sash-color, transparent)}.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):active,.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):hover{background-color:var(--dv-active-sash-color, transparent);transition-property:background-color;transition-timing-function:ease-in-out;transition-duration:var(--dv-active-sash-transition-duration, .1s);transition-delay:var(--dv-active-sash-transition-delay, .5s)}.dv-split-view-container .dv-view-container{position:relative;height:100%;width:100%}.dv-split-view-container .dv-view-container .dv-view{height:100%;box-sizing:border-box;overflow:auto;position:absolute}.dv-split-view-container.dv-separator-border .dv-view:not(:first-child):before{content:\" \";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--dv-separator-border)}.dv-dragged{transform:translateZ(0)}.dv-tab{flex-shrink:0}.dv-tab:focus-within,.dv-tab:focus{position:relative}.dv-tab:focus-within:after,.dv-tab:focus:after{position:absolute;content:\"\";height:100%;width:100%;top:0;left:0;pointer-events:none;outline:1px solid var(--dv-tab-divider-color)!important;outline-offset:-1px;z-index:5}.dv-tab.dv-tab-dragging .dv-default-tab-action{background-color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-tab.dv-active-tab .dv-default-tab .dv-default-tab-action{visibility:visible}.dv-tab.dv-inactive-tab .dv-default-tab .dv-default-tab-action{visibility:hidden}.dv-tab.dv-inactive-tab .dv-default-tab:hover .dv-default-tab-action{visibility:visible}.dv-tab .dv-default-tab{position:relative;height:100%;width:100%;display:flex;align-items:center;white-space:nowrap;text-overflow:ellipsis}.dv-tab .dv-default-tab .dv-default-tab-content{flex-grow:1;margin-right:4px}.dv-tab .dv-default-tab .dv-default-tab-action{padding:4px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.dv-tab .dv-default-tab .dv-default-tab-action:hover{border-radius:2px;background-color:var(--dv-icon-hover-background-color)}.dv-tabs-overflow-dropdown-default{height:100%;color:var(--dv-activegroup-hiddenpanel-tab-color);margin:var(--dv-tab-margin);display:flex;align-items:center;flex-shrink:0;padding:.25rem .5rem;cursor:pointer}.dv-tabs-overflow-dropdown-default>span{padding-left:.25rem}.dv-tabs-overflow-dropdown-default>svg{transform:rotate(90deg)}.dv-tabs-overflow-dropdown-default:hover{border-radius:2px;background-color:var(--dv-icon-hover-background-color)}.dv-tabs-container{display:flex;height:100%;overflow:auto;scrollbar-width:thin;will-change:scroll-position;transform:translateZ(0)}.dv-tabs-container.dv-tabs-container-vertical{width:100%;height:fit-content;max-height:100%;writing-mode:vertical-rl}.dv-tabs-container.dv-horizontal .dv-tab:not(:first-child):before,.dv-tabs-container.dv-vertical .dv-tab:not(:first-child):before{content:\" \";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--dv-tab-divider-color)}.dv-tabs-container.dv-horizontal .dv-tab:not(:first-child):before{width:1px;height:100%}.dv-tabs-container.dv-vertical .dv-tab:not(:first-child):before{width:100%;height:1px}.dv-tabs-container::-webkit-scrollbar{height:3px}.dv-tabs-container::-webkit-scrollbar-track{background:transparent}.dv-tabs-container::-webkit-scrollbar-thumb{background:var(--dv-tabs-container-scrollbar-color)}.dv-scrollable>.dv-tabs-container{overflow:hidden}.dv-tab{-webkit-user-drag:element;outline:none;padding:.25rem .5rem;cursor:pointer;position:relative;box-sizing:border-box;font-size:var(--dv-tab-font-size);margin:var(--dv-tab-margin)}.dv-tab.dv-tab--shifting{will-change:margin-left;transition:transform var(--dv-transition-duration, .2s) ease-out,margin-left var(--dv-transition-duration, .2s) ease-out}.dv-tab.dv-tab--dragging{width:0!important;min-width:0!important;padding:0!important;margin:0!important;overflow:hidden;opacity:0;pointer-events:none;transition:width var(--dv-transition-duration, .2s) ease-out,padding var(--dv-transition-duration, .2s) ease-out,margin var(--dv-transition-duration, .2s) ease-out,opacity var(--dv-transition-duration, .2s) ease-out}@media(prefers-reduced-motion:reduce){.dv-tab{transition:none!important}}.dv-tabs-container-vertical .dv-tab{padding:.5rem .25rem}.dv-tabs-overflow-container{flex-direction:column;height:unset;font-size:var(--dv-tabs-and-actions-container-font-size);max-height:min(50vh,400px);overflow-y:auto;border:1px solid var(--dv-tab-divider-color);background-color:var(--dv-group-view-background-color);scrollbar-width:thin}.dv-tabs-overflow-container::-webkit-scrollbar{width:6px}.dv-tabs-overflow-container::-webkit-scrollbar-track{background:transparent}.dv-tabs-overflow-container::-webkit-scrollbar-thumb{background:var(--dv-tabs-container-scrollbar-color);border-radius:3px}.dv-tabs-overflow-container .dv-tab:not(:last-child){border-bottom:1px solid var(--dv-tab-divider-color)}.dv-tabs-overflow-container .dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-tabs-overflow-container .dv-inactive-tab{background-color:var(--dv-activegroup-hiddenpanel-tab-background-color);color:var(--dv-activegroup-hiddenpanel-tab-color)}.dv-tabs-and-actions-container{display:flex;background-color:var(--dv-tabs-and-actions-container-background-color);flex-shrink:0;box-sizing:border-box;height:var(--dv-tabs-and-actions-container-height);font-size:var(--dv-tabs-and-actions-container-font-size)}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-scrollable,.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container{flex-grow:1}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container .dv-tab{flex-grow:1;padding:0}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-void-container{flex-grow:0}.dv-tabs-and-actions-container .dv-void-container{display:flex;flex-grow:1}.dv-tabs-and-actions-container .dv-void-container.dv-draggable{cursor:grab}.dv-tabs-and-actions-container .dv-right-actions-container{display:flex}.dv-tabs-and-actions-container .dv-right-actions-container.dv-right-actions-container-vertical{flex-direction:column}.dv-tabs-and-actions-container.dv-groupview-header-vertical{flex-direction:column;height:auto;width:var(--dv-tabs-and-actions-container-height)}.dv-watermark{display:flex;height:100%}mm-dockview{display:block;width:100%;height:100%;position:relative}.dv-dockview-container{width:100%;height:100%;position:absolute;inset:0}.dv-dockview{width:100%;height:100%}.dv-dockview,.dv-grid-view{background-color:var(--dv-background-color, #fafafa);--dv-background-color: #fafafa;--dv-pane-background-color: #ffffff;--dv-tabs-and-actions-container-background-color: #f5f5f5;--dv-activegroup-visiblepanel-tab-background-color: #ffffff;--dv-activegroup-hiddenpanel-tab-background-color: #e8e8e8;--dv-inactivegroup-visiblepanel-tab-background-color: #f0f0f0;--dv-inactivegroup-hiddenpanel-tab-background-color: #e0e0e0;--dv-tab-divider-color: #e0e0e0;--dv-activegroup-visiblepanel-tab-color: #333333;--dv-activegroup-hiddenpanel-tab-color: #666666;--dv-inactivegroup-visiblepanel-tab-color: #666666;--dv-inactivegroup-hiddenpanel-tab-color: #999999;--dv-separator-border: 1px solid #e0e0e0;--dv-group-view-background-color: #ffffff;--dv-tabs-overflow-dropdown-background-color: #f5f5f5;--dv-icon-hover-background-color: #e0e0e0}.dv-tabs-overflow-container{background-color:var(--dv-tabs-overflow-dropdown-background-color, #f5f5f5);border:1px solid var(--dv-tab-divider-color, #e0e0e0);border-radius:4px;box-shadow:0 2px 8px #00000026}.dv-tabs-container{background-color:var(--dv-tabs-and-actions-container-background-color, #f5f5f5)}div[style*=--dv-overlay-z-index]{background-color:var(--dv-tabs-overflow-dropdown-background-color, #f5f5f5);border-radius:4px}div[style*=--dv-overlay-z-index] .dv-tabs-overflow-container{background-color:var(--dv-tabs-overflow-dropdown-background-color, #f5f5f5)}div[style*=--dv-overlay-z-index] .dv-tab{background-color:var(--dv-activegroup-hiddenpanel-tab-background-color, #e8e8e8);color:var(--dv-activegroup-hiddenpanel-tab-color, #666666)}div[style*=--dv-overlay-z-index] .dv-tab:hover{background-color:var(--dv-icon-hover-background-color, #d8d8d8)}div[style*=--dv-overlay-z-index] .dv-tab.dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color, #ffffff);color:var(--dv-activegroup-visiblepanel-tab-color, #333333)}div[style*=--dv-overlay-z-index] .dv-default-tab{background-color:transparent}.dv-tab{font-size:12px;font-weight:500;background-color:var(--dv-activegroup-hiddenpanel-tab-background-color, #e8e8e8);color:var(--dv-activegroup-hiddenpanel-tab-color, #666666)}.dv-tab.dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color, #ffffff);color:var(--dv-activegroup-visiblepanel-tab-color, #333333)}.dv-default-tab{display:flex;align-items:center}.dv-default-tab-content{flex:1}.dv-default-tab-action{flex-shrink:0;opacity:.5;transition:opacity .15s ease}.dv-default-tab-action:hover{opacity:1}.dv-sash{background:var(--dv-sash-color, #e0e0e0)}.dv-sash:hover,.dv-sash.dv-active{background:var(--dv-sash-hover-color, #1976d2)}.dv-drop-target-dropzone{background:var(--dv-drag-over-background-color, rgba(25, 118, 210, .15));border:2px dashed var(--dv-drag-over-border-color, #1976d2);border-radius:4px}.dv-floating-group{box-shadow:0 4px 20px #00000026;border-radius:4px;overflow:hidden}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6327
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DockviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6328
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: DockviewComponent, isStandalone: true, selector: "mm-dockview", inputs: { components: "components", tabComponents: "tabComponents", watermarkComponent: "watermarkComponent", defaultTabComponent: "defaultTabComponent", leftHeaderActionsComponent: "leftHeaderActionsComponent", rightHeaderActionsComponent: "rightHeaderActionsComponent", prefixHeaderActionsComponent: "prefixHeaderActionsComponent", className: "className", hideBorders: "hideBorders", locked: "locked", disableAutoResizing: "disableAutoResizing", disableFloatingGroups: "disableFloatingGroups" }, outputs: { ready: "ready", didDrop: "didDrop", willDrop: "willDrop" }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["dockviewContainer"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: '<div #dockviewContainer class="dv-dockview-container"></div>', isInline: true, styles: [".dv-scrollable{position:relative;overflow:hidden}.dv-scrollable .dv-scrollbar{position:absolute;border-radius:2px;background-color:transparent;will-change:background-color,transform;transform:translateZ(0);backface-visibility:hidden;transition-property:background-color;transition-timing-function:ease-in-out;transition-duration:1s;transition-delay:0s}.dv-scrollable .dv-scrollbar-horizontal{bottom:0;left:0;height:4px}.dv-scrollable .dv-scrollbar-vertical{right:0;top:0;width:4px}.dv-scrollable:hover .dv-scrollbar,.dv-scrollable.dv-scrollable-resizing .dv-scrollbar,.dv-scrollable.dv-scrollable-scrolling .dv-scrollbar{background-color:var(--dv-scrollbar-background-color, rgba(255, 255, 255, .25))}.dv-svg{display:inline-block;fill:currentcolor;line-height:1;stroke:currentcolor;stroke-width:0}.dockview-theme-dark{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-group-view-background-color: #1e1e1e;--dv-tabs-and-actions-container-background-color: #252526;--dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;--dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;--dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;--dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;--dv-tab-divider-color: #1e1e1e;--dv-activegroup-visiblepanel-tab-color: white;--dv-activegroup-hiddenpanel-tab-color: #969696;--dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;--dv-inactivegroup-hiddenpanel-tab-color: #626262;--dv-separator-border: rgb(68, 68, 68);--dv-paneview-header-border-color: rgba(204, 204, 204, .2)}.dockview-theme-dark .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-light{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-group-view-background-color: white;--dv-tabs-and-actions-container-background-color: #f3f3f3;--dv-activegroup-visiblepanel-tab-background-color: white;--dv-activegroup-hiddenpanel-tab-background-color: #ececec;--dv-inactivegroup-visiblepanel-tab-background-color: white;--dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;--dv-tab-divider-color: white;--dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);--dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, .7);--dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, .7);--dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, .35);--dv-separator-border: rgba(128, 128, 128, .35);--dv-paneview-header-border-color: rgb(51, 51, 51);--dv-scrollbar-background-color: rgba(0, 0, 0, .25)}.dockview-theme-light .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-vs{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-group-view-background-color: #1e1e1e;--dv-tabs-and-actions-container-background-color: #252526;--dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;--dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;--dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;--dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;--dv-tab-divider-color: #1e1e1e;--dv-activegroup-hiddenpanel-tab-color: #969696;--dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;--dv-inactivegroup-hiddenpanel-tab-color: #626262;--dv-separator-border: rgb(68, 68, 68);--dv-paneview-header-border-color: rgba(204, 204, 204, .2);--dv-tabs-and-actions-container-background-color: #2d2d30;--dv-tabs-and-actions-container-height: 20px;--dv-tabs-and-actions-container-font-size: 11px;--dv-activegroup-visiblepanel-tab-background-color: #007acc;--dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;--dv-activegroup-visiblepanel-tab-color: white;--dv-activegroup-hiddenpanel-tab-color: white;--dv-inactivegroup-visiblepanel-tab-color: white;--dv-inactivegroup-hiddenpanel-tab-color: white}.dockview-theme-vs .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container{box-sizing:content-box;border-bottom:2px solid var(--dv-activegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tab.dv-active-tab{border-top:2px solid var(--dv-activegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tab.dv-inactive-tab{border-top:2px solid var(--dv-activegroup-hiddenpanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container{box-sizing:content-box;border-bottom:2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tab.dv-active-tab{border-top:2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tab.dv-inactive-tab{border-top:2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color)}.dockview-theme-abyss{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-color-abyss-dark: #000c18;--dv-color-abyss: #10192c;--dv-color-abyss-light: #1c1c2a;--dv-color-abyss-lighter: #2b2b4a;--dv-color-abyss-accent: rgb(91, 30, 207);--dv-color-abyss-primary-text: white;--dv-color-abyss-secondary-text: rgb(148, 151, 169);--dv-group-view-background-color: var(--dv-color-abyss-dark);--dv-tabs-and-actions-container-background-color: var( --dv-color-abyss-light );--dv-activegroup-visiblepanel-tab-background-color: var( --dv-color-abyss-dark );--dv-activegroup-hiddenpanel-tab-background-color: var(--dv-color-abyss);--dv-inactivegroup-visiblepanel-tab-background-color: var( --dv-color-abyss-dark );--dv-inactivegroup-hiddenpanel-tab-background-color: var(--dv-color-abyss);--dv-tab-divider-color: var(--dv-color-abyss-lighter);--dv-activegroup-visiblepanel-tab-color: white;--dv-activegroup-hiddenpanel-tab-color: rgba(255, 255, 255, .5);--dv-inactivegroup-visiblepanel-tab-color: rgba(255, 255, 255, .5);--dv-inactivegroup-hiddenpanel-tab-color: rgba(255, 255, 255, .25);--dv-separator-border: var(--dv-color-abyss-lighter);--dv-paneview-header-border-color: var(--dv-color-abyss-lighter);--dv-paneview-active-outline-color: #596f99}.dockview-theme-abyss .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-dracula{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-group-view-background-color: #282a36;--dv-tabs-and-actions-container-background-color: #191a21;--dv-activegroup-visiblepanel-tab-background-color: #282a36;--dv-activegroup-hiddenpanel-tab-background-color: #21222c;--dv-inactivegroup-visiblepanel-tab-background-color: #282a36;--dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;--dv-tab-divider-color: #191a21;--dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);--dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);--dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, .5);--dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, .5);--dv-separator-border: #bd93f9;--dv-paneview-header-border-color: #bd93f9;--dv-paneview-active-outline-color: #6272a4}.dockview-theme-dracula .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-dracula .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-dracula .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{position:absolute;left:0;top:0;content:\"\";width:100%;height:1px;background-color:#94527e;z-index:999}.dockview-theme-dracula .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-dracula .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{position:absolute;left:0;bottom:0;content:\"\";width:100%;height:1px;background-color:#5e3d5a;z-index:999}.dockview-theme-replit{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;box-sizing:border-box;padding:10px;background-color:#ebeced;--dv-group-view-background-color: #ebeced;--dv-tabs-and-actions-container-background-color: #fcfcfc;--dv-activegroup-visiblepanel-tab-background-color: #f0f1f2;--dv-activegroup-hiddenpanel-tab-background-color: #fcfcfc;--dv-inactivegroup-visiblepanel-tab-background-color: #f0f1f2;--dv-inactivegroup-hiddenpanel-tab-background-color: #fcfcfc;--dv-tab-divider-color: transparent;--dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);--dv-activegroup-hiddenpanel-tab-color: rgb(51, 51, 51);--dv-inactivegroup-visiblepanel-tab-color: rgb(51, 51, 51);--dv-inactivegroup-hiddenpanel-tab-color: rgb(51, 51, 51);--dv-separator-border: transparent;--dv-paneview-header-border-color: rgb(51, 51, 51);--dv-sash-color: #cfd1d3;--dv-active-sash-color: #babbbb}.dockview-theme-replit .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-replit .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-replit .dv-resize-container{border-radius:10px!important;border:none}.dockview-theme-replit .dv-groupview{overflow:hidden;border-radius:10px}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container{border-bottom:1px solid rgba(128,128,128,.35)}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab{margin:4px;border-radius:8px}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab .dv-svg{height:8px;width:8px}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab:hover{background-color:#e4e5e6!important}.dockview-theme-replit .dv-groupview .dv-content-container{background-color:#fcfcfc}.dockview-theme-replit .dv-groupview.dv-active-group{border:1px solid rgba(128,128,128,.35)}.dockview-theme-replit .dv-groupview.dv-inactive-group{border:1px solid transparent}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash{background-color:transparent}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):after{content:\"\";height:4px;width:40px;border-radius:2px;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--dv-sash-color);position:absolute}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):hover,.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):active{background-color:transparent}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):hover:after,.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):active:after{background-color:var(--dv-active-sash-color)}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash{background-color:transparent}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):after{content:\"\";height:40px;width:4px;border-radius:2px;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--dv-sash-color);position:absolute}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):hover,.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):active{background-color:transparent}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):hover:after,.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):active:after{background-color:var(--dv-active-sash-color)}.dockview-theme-abyss-spaced{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-tab-font-size: 12px;--dv-tab-margin: .5rem .25rem;--dv-tabs-and-actions-container-height: 44px;--dv-border-radius: 20px;box-sizing:border-box;--dv-color-abyss-dark: rgb(11, 6, 17);--dv-color-abyss: #16121f;--dv-color-abyss-light: #201d2b;--dv-color-abyss-lighter: #2a2837;--dv-color-abyss-accent: rgb(91, 30, 207);--dv-color-abyss-primary-text: white;--dv-color-abyss-secondary-text: rgb(148, 151, 169);--dv-drag-over-border: 2px solid var(--dv-color-abyss-accent);--dv-drag-over-background-color: \"\";--dv-group-view-background-color: var(--dv-color-abyss-dark);--dv-tabs-and-actions-container-background-color: var(--dv-color-abyss);--dv-activegroup-visiblepanel-tab-background-color: var( --dv-color-abyss-lighter );--dv-activegroup-hiddenpanel-tab-background-color: var( --dv-color-abyss-light );--dv-inactivegroup-visiblepanel-tab-background-color: var( --dv-color-abyss-lighter );--dv-inactivegroup-hiddenpanel-tab-background-color: var( --dv-color-abyss-light );--dv-tab-divider-color: transparent;--dv-activegroup-visiblepanel-tab-color: var(--dv-color-abyss-primary-text);--dv-activegroup-hiddenpanel-tab-color: var( --dv-color-abyss-secondary-text );--dv-inactivegroup-visiblepanel-tab-color: var( --dv-color-abyss-primary-text );--dv-inactivegroup-hiddenpanel-tab-color: var( --dv-color-abyss-secondary-text );--dv-separator-border: transparent;--dv-paneview-header-border-color: rgb(51, 51, 51);--dv-active-sash-color: var(--dv-color-abyss-accent);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(0, 0, 0, .5);padding:10px;background-color:var(--dv-color-abyss-dark)}.dockview-theme-abyss-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-abyss-spaced .dv-sash{border-radius:4px}.dockview-theme-abyss-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius) / 4)}.dockview-theme-abyss-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-abyss-spaced .dv-resize-container{border-radius:var(--dv-border-radius)!important;border:none}.dockview-theme-abyss-spaced .dv-tabs-overflow-container,.dockview-theme-abyss-spaced .dv-tabs-overflow-dropdown-default{border-radius:8px;height:unset!important}.dockview-theme-abyss-spaced .dv-tab{border-radius:8px}.dockview-theme-abyss-spaced .dv-tab .dv-svg{height:8px;width:8px}.dockview-theme-abyss-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-abyss-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius) / 2)}.dockview-theme-abyss-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color)}.dockview-theme-abyss-spaced .dv-resize-container .dv-groupview{border:2px solid var(--dv-color-abyss-dark)}.dockview-theme-light-spaced{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-tab-font-size: 12px;--dv-tab-margin: .5rem .25rem;--dv-tabs-and-actions-container-height: 44px;--dv-border-radius: 20px;box-sizing:border-box;--dv-drag-over-border: 2px solid rgb(91, 30, 207);--dv-drag-over-background-color: \"\";--dv-group-view-background-color: #f6f5f9;--dv-tabs-and-actions-container-background-color: white;--dv-activegroup-visiblepanel-tab-background-color: #ededf0;--dv-activegroup-hiddenpanel-tab-background-color: #f9f9fa;--dv-inactivegroup-visiblepanel-tab-background-color: #ededf0;--dv-inactivegroup-hiddenpanel-tab-background-color: #f9f9fa;--dv-tab-divider-color: transparent;--dv-activegroup-visiblepanel-tab-color: rgb(104, 107, 130);--dv-activegroup-hiddenpanel-tab-color: rgb(148, 151, 169);--dv-inactivegroup-visiblepanel-tab-color: rgb(104, 107, 130);--dv-inactivegroup-hiddenpanel-tab-color: rgb(148, 151, 169);--dv-separator-border: transparent;--dv-paneview-header-border-color: rgb(51, 51, 51);--dv-active-sash-color: rgb(91, 30, 207);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(0, 0, 0, .1);padding:10px;background-color:#f6f5f9;--dv-scrollbar-background-color: rgba(0, 0, 0, .25)}.dockview-theme-light-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-light-spaced .dv-sash{border-radius:4px}.dockview-theme-light-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius) / 4)}.dockview-theme-light-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-light-spaced .dv-resize-container{border-radius:var(--dv-border-radius)!important;border:none}.dockview-theme-light-spaced .dv-tabs-overflow-container,.dockview-theme-light-spaced .dv-tabs-overflow-dropdown-default{border-radius:8px;height:unset!important}.dockview-theme-light-spaced .dv-tab{border-radius:8px}.dockview-theme-light-spaced .dv-tab .dv-svg{height:8px;width:8px}.dockview-theme-light-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-light-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius) / 2)}.dockview-theme-light-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color)}.dockview-theme-light-spaced .dv-resize-container .dv-groupview{border:2px solid rgba(255,255,255,.1)}.dv-drop-target-container{position:absolute;z-index:9999;top:0;left:0;height:100%;width:100%;pointer-events:none;overflow:hidden;--dv-transition-duration: .3s}.dv-drop-target-container .dv-drop-target-anchor{position:relative;border:var(--dv-drag-over-border);background-color:var(--dv-drag-over-background-color);opacity:1;will-change:transform,opacity;transform:translateZ(0);backface-visibility:hidden;contain:layout paint;transition:opacity var(--dv-transition-duration) ease-in,top var(--dv-transition-duration) ease-out,left var(--dv-transition-duration) ease-out,width var(--dv-transition-duration) ease-out,height var(--dv-transition-duration) ease-out}.dv-drop-target{position:relative;--dv-transition-duration: 70ms}.dv-drop-target>.dv-drop-target-dropzone{position:absolute;left:0;top:0;height:100%;width:100%;z-index:1000;pointer-events:none}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection{position:relative;box-sizing:border-box;height:100%;width:100%;border:var(--dv-drag-over-border);background-color:var(--dv-drag-over-background-color);transition:top var(--dv-transition-duration) ease-out,left var(--dv-transition-duration) ease-out,width var(--dv-transition-duration) ease-out,height var(--dv-transition-duration) ease-out,opacity var(--dv-transition-duration) ease-out;will-change:transform;pointer-events:none}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-top.dv-drop-target-small-vertical{border-top:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical{border-bottom:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal{border-left:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal{border-right:1px solid var(--dv-drag-over-border-color)}.dv-dockview{position:relative;background-color:var(--dv-group-view-background-color);contain:layout}.dv-dockview .dv-watermark-container{position:absolute;top:0;left:0;height:100%;width:100%;z-index:1}.dv-dockview .dv-overlay-render-container{position:relative}.dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-inactive-tab{background-color:var(--dv-activegroup-hiddenpanel-tab-background-color);color:var(--dv-activegroup-hiddenpanel-tab-color)}.dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{background-color:var(--dv-inactivegroup-visiblepanel-tab-background-color);color:var(--dv-inactivegroup-visiblepanel-tab-color)}.dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-inactive-tab{background-color:var(--dv-inactivegroup-hiddenpanel-tab-background-color);color:var(--dv-inactivegroup-hiddenpanel-tab-color)}.dv-tab.dv-tab-dragging{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-groupview{display:flex;height:100%;background-color:var(--dv-group-view-background-color);overflow:hidden;flex-direction:column}.dv-groupview:focus{outline:none}.dv-groupview>.dv-content-container{flex-grow:1;min-height:0;outline:none}.dv-groupview.dv-groupview-header-bottom{flex-direction:column-reverse}.dv-groupview.dv-groupview-header-left{flex-direction:row}.dv-groupview.dv-groupview-header-right{flex-direction:row-reverse}.dv-root-wrapper,.dv-grid-view,.dv-branch-node{height:100%;width:100%}.dv-debug .dv-resize-container .dv-resize-handle-top{background-color:red}.dv-debug .dv-resize-container .dv-resize-handle-bottom{background-color:green}.dv-debug .dv-resize-container .dv-resize-handle-left{background-color:#ff0}.dv-debug .dv-resize-container .dv-resize-handle-right{background-color:#00f}.dv-debug .dv-resize-container .dv-resize-handle-topleft,.dv-debug .dv-resize-container .dv-resize-handle-topright,.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,.dv-debug .dv-resize-container .dv-resize-handle-bottomright{background-color:#0ff}.dv-resize-container{--dv-overlay-z-index: var(--dv-overlay-z-index, 999);position:absolute;z-index:calc(var(--dv-overlay-z-index) - 2);border:1px solid var(--dv-tab-divider-color);box-shadow:var(--dv-floating-box-shadow);will-change:transform,opacity;transform:translateZ(0);backface-visibility:hidden}.dv-resize-container.dv-hidden{display:none}.dv-resize-container.dv-resize-container-dragging{opacity:.5;will-change:transform,opacity}.dv-resize-container .dv-resize-handle-top{height:4px;width:calc(100% - 8px);left:4px;top:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:ns-resize}.dv-resize-container .dv-resize-handle-bottom{height:4px;width:calc(100% - 8px);left:4px;bottom:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:ns-resize}.dv-resize-container .dv-resize-handle-left{height:calc(100% - 8px);width:4px;left:-2px;top:4px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:ew-resize}.dv-resize-container .dv-resize-handle-right{height:calc(100% - 8px);width:4px;right:-2px;top:4px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:ew-resize}.dv-resize-container .dv-resize-handle-topleft{height:4px;width:4px;top:-2px;left:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:nw-resize}.dv-resize-container .dv-resize-handle-topright{height:4px;width:4px;right:-2px;top:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:ne-resize}.dv-resize-container .dv-resize-handle-bottomleft{height:4px;width:4px;left:-2px;bottom:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:sw-resize}.dv-resize-container .dv-resize-handle-bottomright{height:4px;width:4px;right:-2px;bottom:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:se-resize}.dv-render-overlay{--dv-overlay-z-index: var(--dv-overlay-z-index, 999);position:absolute;z-index:1;width:100%;height:100%;contain:layout paint;isolation:isolate;will-change:transform;transform:translateZ(0);backface-visibility:hidden}.dv-render-overlay.dv-render-overlay-float{z-index:calc(var(--dv-overlay-z-index) - 1)}.dv-debug .dv-render-overlay{outline:1px solid red;outline-offset:-1}.dv-pane-container{height:100%;width:100%}.dv-pane-container.dv-animated .dv-view{will-change:transform;transform:translateZ(0);backface-visibility:hidden;transition:transform .15s ease-out}.dv-pane-container .dv-view{overflow:hidden;display:flex;flex-direction:column;padding:0!important}.dv-pane-container .dv-view:not(:first-child):before{background-color:transparent!important}.dv-pane-container .dv-view:not(:first-child) .dv-pane>.dv-pane-header{border-top:1px solid var(--dv-paneview-header-border-color)}.dv-pane-container .dv-view .dv-default-header{background-color:var(--dv-group-view-background-color);color:var(--dv-activegroup-visiblepanel-tab-color);display:flex;padding:0 8px;cursor:pointer}.dv-pane-container .dv-view .dv-default-header .dv-pane-header-icon{display:flex;justify-content:center;align-items:center}.dv-pane-container .dv-view .dv-default-header>span{padding-left:8px;flex-grow:1}.dv-pane-container:first-of-type>.dv-pane>.dv-pane-header{border-top:none!important}.dv-pane-container .dv-pane{display:flex;flex-direction:column;overflow:hidden;height:100%}.dv-pane-container .dv-pane .dv-pane-header{box-sizing:border-box;-webkit-user-select:none;user-select:none;position:relative;outline:none}.dv-pane-container .dv-pane .dv-pane-header.dv-pane-draggable{cursor:pointer}.dv-pane-container .dv-pane .dv-pane-header:focus:before,.dv-pane-container .dv-pane .dv-pane-header:focus-within:before{position:absolute;top:0;left:0;width:100%;height:100%;z-index:5;content:\"\";pointer-events:none;outline:1px solid;outline-width:-1px;outline-style:solid;outline-offset:-1px;outline-color:var(--dv-paneview-active-outline-color)}.dv-pane-container .dv-pane .dv-pane-body{overflow-y:auto;overflow-x:hidden;flex-grow:1;position:relative;outline:none}.dv-pane-container .dv-pane .dv-pane-body:focus:before,.dv-pane-container .dv-pane .dv-pane-body:focus-within:before{position:absolute;top:0;left:0;width:100%;height:100%;z-index:5;content:\"\";pointer-events:none;outline:1px solid;outline-width:-1px;outline-style:solid;outline-offset:-1px;outline-color:var(--dv-paneview-active-outline-color)}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-enabled{background-color:#000}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-disabled{background-color:orange}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-maximum{background-color:green}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-minimum{background-color:red}.dv-split-view-container{position:relative;overflow:hidden;height:100%;width:100%}.dv-split-view-container.dv-splitview-disabled>.dv-sash-container>.dv-sash{pointer-events:none}.dv-split-view-container.dv-animation .dv-view,.dv-split-view-container.dv-animation .dv-sash{will-change:transform;transform:translateZ(0);backface-visibility:hidden;transition:transform .15s ease-out}.dv-split-view-container.dv-horizontal{height:100%}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash{height:100%;width:4px}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-enabled{cursor:ew-resize}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-disabled{cursor:default}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-maximum{cursor:w-resize}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-minimum{cursor:e-resize}.dv-split-view-container.dv-horizontal>.dv-view-container>.dv-view:not(:first-child):before{height:100%;width:1px}.dv-split-view-container.dv-vertical{width:100%}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash{width:100%;height:4px}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-enabled{cursor:ns-resize}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-disabled{cursor:default}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-maximum{cursor:n-resize}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-minimum{cursor:s-resize}.dv-split-view-container.dv-vertical>.dv-view-container>.dv-view{width:100%}.dv-split-view-container.dv-vertical>.dv-view-container>.dv-view:not(:first-child):before{height:1px;width:100%}.dv-split-view-container .dv-sash-container{height:100%;width:100%;position:absolute}.dv-split-view-container .dv-sash-container .dv-sash{position:absolute;z-index:99;outline:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;touch-action:none;background-color:var(--dv-sash-color, transparent)}.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):active,.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):hover{background-color:var(--dv-active-sash-color, transparent);transition-property:background-color;transition-timing-function:ease-in-out;transition-duration:var(--dv-active-sash-transition-duration, .1s);transition-delay:var(--dv-active-sash-transition-delay, .5s)}.dv-split-view-container .dv-view-container{position:relative;height:100%;width:100%}.dv-split-view-container .dv-view-container .dv-view{height:100%;box-sizing:border-box;overflow:auto;position:absolute}.dv-split-view-container.dv-separator-border .dv-view:not(:first-child):before{content:\" \";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--dv-separator-border)}.dv-dragged{transform:translateZ(0)}.dv-tab{flex-shrink:0}.dv-tab:focus-within,.dv-tab:focus{position:relative}.dv-tab:focus-within:after,.dv-tab:focus:after{position:absolute;content:\"\";height:100%;width:100%;top:0;left:0;pointer-events:none;outline:1px solid var(--dv-tab-divider-color)!important;outline-offset:-1px;z-index:5}.dv-tab.dv-tab-dragging .dv-default-tab-action{background-color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-tab.dv-active-tab .dv-default-tab .dv-default-tab-action{visibility:visible}.dv-tab.dv-inactive-tab .dv-default-tab .dv-default-tab-action{visibility:hidden}.dv-tab.dv-inactive-tab .dv-default-tab:hover .dv-default-tab-action{visibility:visible}.dv-tab .dv-default-tab{position:relative;height:100%;width:100%;display:flex;align-items:center;white-space:nowrap;text-overflow:ellipsis}.dv-tab .dv-default-tab .dv-default-tab-content{flex-grow:1;margin-right:4px}.dv-tab .dv-default-tab .dv-default-tab-action{padding:4px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.dv-tab .dv-default-tab .dv-default-tab-action:hover{border-radius:2px;background-color:var(--dv-icon-hover-background-color)}.dv-tabs-overflow-dropdown-default{height:100%;color:var(--dv-activegroup-hiddenpanel-tab-color);margin:var(--dv-tab-margin);display:flex;align-items:center;flex-shrink:0;padding:.25rem .5rem;cursor:pointer}.dv-tabs-overflow-dropdown-default>span{padding-left:.25rem}.dv-tabs-overflow-dropdown-default>svg{transform:rotate(90deg)}.dv-tabs-overflow-dropdown-default:hover{border-radius:2px;background-color:var(--dv-icon-hover-background-color)}.dv-tabs-container{display:flex;height:100%;overflow:auto;scrollbar-width:thin;will-change:scroll-position;transform:translateZ(0)}.dv-tabs-container.dv-tabs-container-vertical{width:100%;height:fit-content;max-height:100%;writing-mode:vertical-rl}.dv-tabs-container.dv-horizontal .dv-tab:not(:first-child):before,.dv-tabs-container.dv-vertical .dv-tab:not(:first-child):before{content:\" \";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--dv-tab-divider-color)}.dv-tabs-container.dv-horizontal .dv-tab:not(:first-child):before{width:1px;height:100%}.dv-tabs-container.dv-vertical .dv-tab:not(:first-child):before{width:100%;height:1px}.dv-tabs-container::-webkit-scrollbar{height:3px}.dv-tabs-container::-webkit-scrollbar-track{background:transparent}.dv-tabs-container::-webkit-scrollbar-thumb{background:var(--dv-tabs-container-scrollbar-color)}.dv-scrollable>.dv-tabs-container{overflow:hidden}.dv-tab{-webkit-user-drag:element;outline:none;padding:.25rem .5rem;cursor:pointer;position:relative;box-sizing:border-box;font-size:var(--dv-tab-font-size);margin:var(--dv-tab-margin)}.dv-tab.dv-tab--shifting{will-change:margin-left;transition:transform var(--dv-transition-duration, .2s) ease-out,margin-left var(--dv-transition-duration, .2s) ease-out}.dv-tab.dv-tab--dragging{width:0!important;min-width:0!important;padding:0!important;margin:0!important;overflow:hidden;opacity:0;pointer-events:none;transition:width var(--dv-transition-duration, .2s) ease-out,padding var(--dv-transition-duration, .2s) ease-out,margin var(--dv-transition-duration, .2s) ease-out,opacity var(--dv-transition-duration, .2s) ease-out}@media(prefers-reduced-motion:reduce){.dv-tab{transition:none!important}}.dv-tabs-container-vertical .dv-tab{padding:.5rem .25rem}.dv-tabs-overflow-container{flex-direction:column;height:unset;font-size:var(--dv-tabs-and-actions-container-font-size);max-height:min(50vh,400px);overflow-y:auto;border:1px solid var(--dv-tab-divider-color);background-color:var(--dv-group-view-background-color);scrollbar-width:thin}.dv-tabs-overflow-container::-webkit-scrollbar{width:6px}.dv-tabs-overflow-container::-webkit-scrollbar-track{background:transparent}.dv-tabs-overflow-container::-webkit-scrollbar-thumb{background:var(--dv-tabs-container-scrollbar-color);border-radius:3px}.dv-tabs-overflow-container .dv-tab:not(:last-child){border-bottom:1px solid var(--dv-tab-divider-color)}.dv-tabs-overflow-container .dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-tabs-overflow-container .dv-inactive-tab{background-color:var(--dv-activegroup-hiddenpanel-tab-background-color);color:var(--dv-activegroup-hiddenpanel-tab-color)}.dv-tabs-and-actions-container{display:flex;background-color:var(--dv-tabs-and-actions-container-background-color);flex-shrink:0;box-sizing:border-box;height:var(--dv-tabs-and-actions-container-height);font-size:var(--dv-tabs-and-actions-container-font-size)}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-scrollable,.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container{flex-grow:1}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container .dv-tab{flex-grow:1;padding:0}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-void-container{flex-grow:0}.dv-tabs-and-actions-container .dv-void-container{display:flex;flex-grow:1}.dv-tabs-and-actions-container .dv-void-container.dv-draggable{cursor:grab}.dv-tabs-and-actions-container .dv-right-actions-container{display:flex}.dv-tabs-and-actions-container .dv-right-actions-container.dv-right-actions-container-vertical{flex-direction:column}.dv-tabs-and-actions-container.dv-groupview-header-vertical{flex-direction:column;height:auto;width:var(--dv-tabs-and-actions-container-height)}.dv-watermark{display:flex;height:100%}mm-dockview{display:block;width:100%;height:100%;position:relative}.dv-dockview-container{width:100%;height:100%;position:absolute;inset:0}.dv-dockview{width:100%;height:100%}.dv-dockview,.dv-grid-view{background-color:var(--dv-background-color, #fafafa);--dv-background-color: #fafafa;--dv-pane-background-color: #ffffff;--dv-tabs-and-actions-container-background-color: #f5f5f5;--dv-activegroup-visiblepanel-tab-background-color: #ffffff;--dv-activegroup-hiddenpanel-tab-background-color: #e8e8e8;--dv-inactivegroup-visiblepanel-tab-background-color: #f0f0f0;--dv-inactivegroup-hiddenpanel-tab-background-color: #e0e0e0;--dv-tab-divider-color: #e0e0e0;--dv-activegroup-visiblepanel-tab-color: #333333;--dv-activegroup-hiddenpanel-tab-color: #666666;--dv-inactivegroup-visiblepanel-tab-color: #666666;--dv-inactivegroup-hiddenpanel-tab-color: #999999;--dv-separator-border: 1px solid #e0e0e0;--dv-group-view-background-color: #ffffff;--dv-tabs-overflow-dropdown-background-color: #f5f5f5;--dv-icon-hover-background-color: #e0e0e0}.dv-tabs-overflow-container{background-color:var(--dv-tabs-overflow-dropdown-background-color, #f5f5f5);border:1px solid var(--dv-tab-divider-color, #e0e0e0);border-radius:4px;box-shadow:0 2px 8px #00000026}.dv-tabs-container{background-color:var(--dv-tabs-and-actions-container-background-color, #f5f5f5)}div[style*=--dv-overlay-z-index]{background-color:var(--dv-tabs-overflow-dropdown-background-color, #f5f5f5);border-radius:4px}div[style*=--dv-overlay-z-index] .dv-tabs-overflow-container{background-color:var(--dv-tabs-overflow-dropdown-background-color, #f5f5f5)}div[style*=--dv-overlay-z-index] .dv-tab{background-color:var(--dv-activegroup-hiddenpanel-tab-background-color, #e8e8e8);color:var(--dv-activegroup-hiddenpanel-tab-color, #666666)}div[style*=--dv-overlay-z-index] .dv-tab:hover{background-color:var(--dv-icon-hover-background-color, #d8d8d8)}div[style*=--dv-overlay-z-index] .dv-tab.dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color, #ffffff);color:var(--dv-activegroup-visiblepanel-tab-color, #333333)}div[style*=--dv-overlay-z-index] .dv-default-tab{background-color:transparent}.dv-tab{font-size:12px;font-weight:500;background-color:var(--dv-activegroup-hiddenpanel-tab-background-color, #e8e8e8);color:var(--dv-activegroup-hiddenpanel-tab-color, #666666)}.dv-tab.dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color, #ffffff);color:var(--dv-activegroup-visiblepanel-tab-color, #333333)}.dv-default-tab{display:flex;align-items:center}.dv-default-tab-content{flex:1}.dv-default-tab-action{flex-shrink:0;opacity:.5;transition:opacity .15s ease}.dv-default-tab-action:hover{opacity:1}.dv-sash{background:var(--dv-sash-color, #e0e0e0)}.dv-sash:hover,.dv-sash.dv-active{background:var(--dv-sash-hover-color, #1976d2)}.dv-drop-target-dropzone{background:var(--dv-drag-over-background-color, rgba(25, 118, 210, .15));border:2px dashed var(--dv-drag-over-border-color, #1976d2);border-radius:4px}.dv-floating-group{box-shadow:0 4px 20px #00000026;border-radius:4px;overflow:hidden}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6329
6329
|
}
|
|
6330
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
6330
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DockviewComponent, decorators: [{
|
|
6331
6331
|
type: Component,
|
|
6332
6332
|
args: [{ selector: 'mm-dockview', standalone: true, template: '<div #dockviewContainer class="dv-dockview-container"></div>', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".dv-scrollable{position:relative;overflow:hidden}.dv-scrollable .dv-scrollbar{position:absolute;border-radius:2px;background-color:transparent;will-change:background-color,transform;transform:translateZ(0);backface-visibility:hidden;transition-property:background-color;transition-timing-function:ease-in-out;transition-duration:1s;transition-delay:0s}.dv-scrollable .dv-scrollbar-horizontal{bottom:0;left:0;height:4px}.dv-scrollable .dv-scrollbar-vertical{right:0;top:0;width:4px}.dv-scrollable:hover .dv-scrollbar,.dv-scrollable.dv-scrollable-resizing .dv-scrollbar,.dv-scrollable.dv-scrollable-scrolling .dv-scrollbar{background-color:var(--dv-scrollbar-background-color, rgba(255, 255, 255, .25))}.dv-svg{display:inline-block;fill:currentcolor;line-height:1;stroke:currentcolor;stroke-width:0}.dockview-theme-dark{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-group-view-background-color: #1e1e1e;--dv-tabs-and-actions-container-background-color: #252526;--dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;--dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;--dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;--dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;--dv-tab-divider-color: #1e1e1e;--dv-activegroup-visiblepanel-tab-color: white;--dv-activegroup-hiddenpanel-tab-color: #969696;--dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;--dv-inactivegroup-hiddenpanel-tab-color: #626262;--dv-separator-border: rgb(68, 68, 68);--dv-paneview-header-border-color: rgba(204, 204, 204, .2)}.dockview-theme-dark .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-light{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-group-view-background-color: white;--dv-tabs-and-actions-container-background-color: #f3f3f3;--dv-activegroup-visiblepanel-tab-background-color: white;--dv-activegroup-hiddenpanel-tab-background-color: #ececec;--dv-inactivegroup-visiblepanel-tab-background-color: white;--dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;--dv-tab-divider-color: white;--dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);--dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, .7);--dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, .7);--dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, .35);--dv-separator-border: rgba(128, 128, 128, .35);--dv-paneview-header-border-color: rgb(51, 51, 51);--dv-scrollbar-background-color: rgba(0, 0, 0, .25)}.dockview-theme-light .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-vs{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-group-view-background-color: #1e1e1e;--dv-tabs-and-actions-container-background-color: #252526;--dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;--dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;--dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;--dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;--dv-tab-divider-color: #1e1e1e;--dv-activegroup-hiddenpanel-tab-color: #969696;--dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;--dv-inactivegroup-hiddenpanel-tab-color: #626262;--dv-separator-border: rgb(68, 68, 68);--dv-paneview-header-border-color: rgba(204, 204, 204, .2);--dv-tabs-and-actions-container-background-color: #2d2d30;--dv-tabs-and-actions-container-height: 20px;--dv-tabs-and-actions-container-font-size: 11px;--dv-activegroup-visiblepanel-tab-background-color: #007acc;--dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;--dv-activegroup-visiblepanel-tab-color: white;--dv-activegroup-hiddenpanel-tab-color: white;--dv-inactivegroup-visiblepanel-tab-color: white;--dv-inactivegroup-hiddenpanel-tab-color: white}.dockview-theme-vs .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container{box-sizing:content-box;border-bottom:2px solid var(--dv-activegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tab.dv-active-tab{border-top:2px solid var(--dv-activegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tab.dv-inactive-tab{border-top:2px solid var(--dv-activegroup-hiddenpanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container{box-sizing:content-box;border-bottom:2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tab.dv-active-tab{border-top:2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tab.dv-inactive-tab{border-top:2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color)}.dockview-theme-abyss{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-color-abyss-dark: #000c18;--dv-color-abyss: #10192c;--dv-color-abyss-light: #1c1c2a;--dv-color-abyss-lighter: #2b2b4a;--dv-color-abyss-accent: rgb(91, 30, 207);--dv-color-abyss-primary-text: white;--dv-color-abyss-secondary-text: rgb(148, 151, 169);--dv-group-view-background-color: var(--dv-color-abyss-dark);--dv-tabs-and-actions-container-background-color: var( --dv-color-abyss-light );--dv-activegroup-visiblepanel-tab-background-color: var( --dv-color-abyss-dark );--dv-activegroup-hiddenpanel-tab-background-color: var(--dv-color-abyss);--dv-inactivegroup-visiblepanel-tab-background-color: var( --dv-color-abyss-dark );--dv-inactivegroup-hiddenpanel-tab-background-color: var(--dv-color-abyss);--dv-tab-divider-color: var(--dv-color-abyss-lighter);--dv-activegroup-visiblepanel-tab-color: white;--dv-activegroup-hiddenpanel-tab-color: rgba(255, 255, 255, .5);--dv-inactivegroup-visiblepanel-tab-color: rgba(255, 255, 255, .5);--dv-inactivegroup-hiddenpanel-tab-color: rgba(255, 255, 255, .25);--dv-separator-border: var(--dv-color-abyss-lighter);--dv-paneview-header-border-color: var(--dv-color-abyss-lighter);--dv-paneview-active-outline-color: #596f99}.dockview-theme-abyss .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-dracula{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-group-view-background-color: #282a36;--dv-tabs-and-actions-container-background-color: #191a21;--dv-activegroup-visiblepanel-tab-background-color: #282a36;--dv-activegroup-hiddenpanel-tab-background-color: #21222c;--dv-inactivegroup-visiblepanel-tab-background-color: #282a36;--dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;--dv-tab-divider-color: #191a21;--dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);--dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);--dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, .5);--dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, .5);--dv-separator-border: #bd93f9;--dv-paneview-header-border-color: #bd93f9;--dv-paneview-active-outline-color: #6272a4}.dockview-theme-dracula .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-dracula .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-dracula .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{position:absolute;left:0;top:0;content:\"\";width:100%;height:1px;background-color:#94527e;z-index:999}.dockview-theme-dracula .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-dracula .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{position:absolute;left:0;bottom:0;content:\"\";width:100%;height:1px;background-color:#5e3d5a;z-index:999}.dockview-theme-replit{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;box-sizing:border-box;padding:10px;background-color:#ebeced;--dv-group-view-background-color: #ebeced;--dv-tabs-and-actions-container-background-color: #fcfcfc;--dv-activegroup-visiblepanel-tab-background-color: #f0f1f2;--dv-activegroup-hiddenpanel-tab-background-color: #fcfcfc;--dv-inactivegroup-visiblepanel-tab-background-color: #f0f1f2;--dv-inactivegroup-hiddenpanel-tab-background-color: #fcfcfc;--dv-tab-divider-color: transparent;--dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);--dv-activegroup-hiddenpanel-tab-color: rgb(51, 51, 51);--dv-inactivegroup-visiblepanel-tab-color: rgb(51, 51, 51);--dv-inactivegroup-hiddenpanel-tab-color: rgb(51, 51, 51);--dv-separator-border: transparent;--dv-paneview-header-border-color: rgb(51, 51, 51);--dv-sash-color: #cfd1d3;--dv-active-sash-color: #babbbb}.dockview-theme-replit .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-replit .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-replit .dv-resize-container{border-radius:10px!important;border:none}.dockview-theme-replit .dv-groupview{overflow:hidden;border-radius:10px}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container{border-bottom:1px solid rgba(128,128,128,.35)}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab{margin:4px;border-radius:8px}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab .dv-svg{height:8px;width:8px}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab:hover{background-color:#e4e5e6!important}.dockview-theme-replit .dv-groupview .dv-content-container{background-color:#fcfcfc}.dockview-theme-replit .dv-groupview.dv-active-group{border:1px solid rgba(128,128,128,.35)}.dockview-theme-replit .dv-groupview.dv-inactive-group{border:1px solid transparent}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash{background-color:transparent}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):after{content:\"\";height:4px;width:40px;border-radius:2px;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--dv-sash-color);position:absolute}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):hover,.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):active{background-color:transparent}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):hover:after,.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):active:after{background-color:var(--dv-active-sash-color)}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash{background-color:transparent}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):after{content:\"\";height:40px;width:4px;border-radius:2px;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--dv-sash-color);position:absolute}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):hover,.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):active{background-color:transparent}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):hover:after,.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):active:after{background-color:var(--dv-active-sash-color)}.dockview-theme-abyss-spaced{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-tab-font-size: 12px;--dv-tab-margin: .5rem .25rem;--dv-tabs-and-actions-container-height: 44px;--dv-border-radius: 20px;box-sizing:border-box;--dv-color-abyss-dark: rgb(11, 6, 17);--dv-color-abyss: #16121f;--dv-color-abyss-light: #201d2b;--dv-color-abyss-lighter: #2a2837;--dv-color-abyss-accent: rgb(91, 30, 207);--dv-color-abyss-primary-text: white;--dv-color-abyss-secondary-text: rgb(148, 151, 169);--dv-drag-over-border: 2px solid var(--dv-color-abyss-accent);--dv-drag-over-background-color: \"\";--dv-group-view-background-color: var(--dv-color-abyss-dark);--dv-tabs-and-actions-container-background-color: var(--dv-color-abyss);--dv-activegroup-visiblepanel-tab-background-color: var( --dv-color-abyss-lighter );--dv-activegroup-hiddenpanel-tab-background-color: var( --dv-color-abyss-light );--dv-inactivegroup-visiblepanel-tab-background-color: var( --dv-color-abyss-lighter );--dv-inactivegroup-hiddenpanel-tab-background-color: var( --dv-color-abyss-light );--dv-tab-divider-color: transparent;--dv-activegroup-visiblepanel-tab-color: var(--dv-color-abyss-primary-text);--dv-activegroup-hiddenpanel-tab-color: var( --dv-color-abyss-secondary-text );--dv-inactivegroup-visiblepanel-tab-color: var( --dv-color-abyss-primary-text );--dv-inactivegroup-hiddenpanel-tab-color: var( --dv-color-abyss-secondary-text );--dv-separator-border: transparent;--dv-paneview-header-border-color: rgb(51, 51, 51);--dv-active-sash-color: var(--dv-color-abyss-accent);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(0, 0, 0, .5);padding:10px;background-color:var(--dv-color-abyss-dark)}.dockview-theme-abyss-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-abyss-spaced .dv-sash{border-radius:4px}.dockview-theme-abyss-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius) / 4)}.dockview-theme-abyss-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-abyss-spaced .dv-resize-container{border-radius:var(--dv-border-radius)!important;border:none}.dockview-theme-abyss-spaced .dv-tabs-overflow-container,.dockview-theme-abyss-spaced .dv-tabs-overflow-dropdown-default{border-radius:8px;height:unset!important}.dockview-theme-abyss-spaced .dv-tab{border-radius:8px}.dockview-theme-abyss-spaced .dv-tab .dv-svg{height:8px;width:8px}.dockview-theme-abyss-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-abyss-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius) / 2)}.dockview-theme-abyss-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color)}.dockview-theme-abyss-spaced .dv-resize-container .dv-groupview{border:2px solid var(--dv-color-abyss-dark)}.dockview-theme-light-spaced{--dv-paneview-active-outline-color: dodgerblue;--dv-tabs-and-actions-container-font-size: 13px;--dv-tabs-and-actions-container-height: 35px;--dv-drag-over-background-color: rgba(83, 89, 93, .5);--dv-drag-over-border-color: transparent;--dv-tabs-container-scrollbar-color: #888;--dv-icon-hover-background-color: rgba(90, 93, 94, .31);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, .5);--dv-overlay-z-index: 999;--dv-tab-font-size: inherit;--dv-border-radius: 0px;--dv-tab-margin: 0;--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-duration: .1s;--dv-active-sash-transition-delay: .5s;--dv-tab-font-size: 12px;--dv-tab-margin: .5rem .25rem;--dv-tabs-and-actions-container-height: 44px;--dv-border-radius: 20px;box-sizing:border-box;--dv-drag-over-border: 2px solid rgb(91, 30, 207);--dv-drag-over-background-color: \"\";--dv-group-view-background-color: #f6f5f9;--dv-tabs-and-actions-container-background-color: white;--dv-activegroup-visiblepanel-tab-background-color: #ededf0;--dv-activegroup-hiddenpanel-tab-background-color: #f9f9fa;--dv-inactivegroup-visiblepanel-tab-background-color: #ededf0;--dv-inactivegroup-hiddenpanel-tab-background-color: #f9f9fa;--dv-tab-divider-color: transparent;--dv-activegroup-visiblepanel-tab-color: rgb(104, 107, 130);--dv-activegroup-hiddenpanel-tab-color: rgb(148, 151, 169);--dv-inactivegroup-visiblepanel-tab-color: rgb(104, 107, 130);--dv-inactivegroup-hiddenpanel-tab-color: rgb(148, 151, 169);--dv-separator-border: transparent;--dv-paneview-header-border-color: rgb(51, 51, 51);--dv-active-sash-color: rgb(91, 30, 207);--dv-floating-box-shadow: 8px 8px 8px 0px rgba(0, 0, 0, .1);padding:10px;background-color:#f6f5f9;--dv-scrollbar-background-color: rgba(0, 0, 0, .25)}.dockview-theme-light-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-light-spaced .dv-sash{border-radius:4px}.dockview-theme-light-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius) / 4)}.dockview-theme-light-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-light-spaced .dv-resize-container{border-radius:var(--dv-border-radius)!important;border:none}.dockview-theme-light-spaced .dv-tabs-overflow-container,.dockview-theme-light-spaced .dv-tabs-overflow-dropdown-default{border-radius:8px;height:unset!important}.dockview-theme-light-spaced .dv-tab{border-radius:8px}.dockview-theme-light-spaced .dv-tab .dv-svg{height:8px;width:8px}.dockview-theme-light-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-light-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius) / 2)}.dockview-theme-light-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color)}.dockview-theme-light-spaced .dv-resize-container .dv-groupview{border:2px solid rgba(255,255,255,.1)}.dv-drop-target-container{position:absolute;z-index:9999;top:0;left:0;height:100%;width:100%;pointer-events:none;overflow:hidden;--dv-transition-duration: .3s}.dv-drop-target-container .dv-drop-target-anchor{position:relative;border:var(--dv-drag-over-border);background-color:var(--dv-drag-over-background-color);opacity:1;will-change:transform,opacity;transform:translateZ(0);backface-visibility:hidden;contain:layout paint;transition:opacity var(--dv-transition-duration) ease-in,top var(--dv-transition-duration) ease-out,left var(--dv-transition-duration) ease-out,width var(--dv-transition-duration) ease-out,height var(--dv-transition-duration) ease-out}.dv-drop-target{position:relative;--dv-transition-duration: 70ms}.dv-drop-target>.dv-drop-target-dropzone{position:absolute;left:0;top:0;height:100%;width:100%;z-index:1000;pointer-events:none}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection{position:relative;box-sizing:border-box;height:100%;width:100%;border:var(--dv-drag-over-border);background-color:var(--dv-drag-over-background-color);transition:top var(--dv-transition-duration) ease-out,left var(--dv-transition-duration) ease-out,width var(--dv-transition-duration) ease-out,height var(--dv-transition-duration) ease-out,opacity var(--dv-transition-duration) ease-out;will-change:transform;pointer-events:none}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-top.dv-drop-target-small-vertical{border-top:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical{border-bottom:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal{border-left:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal{border-right:1px solid var(--dv-drag-over-border-color)}.dv-dockview{position:relative;background-color:var(--dv-group-view-background-color);contain:layout}.dv-dockview .dv-watermark-container{position:absolute;top:0;left:0;height:100%;width:100%;z-index:1}.dv-dockview .dv-overlay-render-container{position:relative}.dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-inactive-tab{background-color:var(--dv-activegroup-hiddenpanel-tab-background-color);color:var(--dv-activegroup-hiddenpanel-tab-color)}.dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{background-color:var(--dv-inactivegroup-visiblepanel-tab-background-color);color:var(--dv-inactivegroup-visiblepanel-tab-color)}.dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-inactive-tab{background-color:var(--dv-inactivegroup-hiddenpanel-tab-background-color);color:var(--dv-inactivegroup-hiddenpanel-tab-color)}.dv-tab.dv-tab-dragging{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-groupview{display:flex;height:100%;background-color:var(--dv-group-view-background-color);overflow:hidden;flex-direction:column}.dv-groupview:focus{outline:none}.dv-groupview>.dv-content-container{flex-grow:1;min-height:0;outline:none}.dv-groupview.dv-groupview-header-bottom{flex-direction:column-reverse}.dv-groupview.dv-groupview-header-left{flex-direction:row}.dv-groupview.dv-groupview-header-right{flex-direction:row-reverse}.dv-root-wrapper,.dv-grid-view,.dv-branch-node{height:100%;width:100%}.dv-debug .dv-resize-container .dv-resize-handle-top{background-color:red}.dv-debug .dv-resize-container .dv-resize-handle-bottom{background-color:green}.dv-debug .dv-resize-container .dv-resize-handle-left{background-color:#ff0}.dv-debug .dv-resize-container .dv-resize-handle-right{background-color:#00f}.dv-debug .dv-resize-container .dv-resize-handle-topleft,.dv-debug .dv-resize-container .dv-resize-handle-topright,.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,.dv-debug .dv-resize-container .dv-resize-handle-bottomright{background-color:#0ff}.dv-resize-container{--dv-overlay-z-index: var(--dv-overlay-z-index, 999);position:absolute;z-index:calc(var(--dv-overlay-z-index) - 2);border:1px solid var(--dv-tab-divider-color);box-shadow:var(--dv-floating-box-shadow);will-change:transform,opacity;transform:translateZ(0);backface-visibility:hidden}.dv-resize-container.dv-hidden{display:none}.dv-resize-container.dv-resize-container-dragging{opacity:.5;will-change:transform,opacity}.dv-resize-container .dv-resize-handle-top{height:4px;width:calc(100% - 8px);left:4px;top:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:ns-resize}.dv-resize-container .dv-resize-handle-bottom{height:4px;width:calc(100% - 8px);left:4px;bottom:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:ns-resize}.dv-resize-container .dv-resize-handle-left{height:calc(100% - 8px);width:4px;left:-2px;top:4px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:ew-resize}.dv-resize-container .dv-resize-handle-right{height:calc(100% - 8px);width:4px;right:-2px;top:4px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:ew-resize}.dv-resize-container .dv-resize-handle-topleft{height:4px;width:4px;top:-2px;left:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:nw-resize}.dv-resize-container .dv-resize-handle-topright{height:4px;width:4px;right:-2px;top:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:ne-resize}.dv-resize-container .dv-resize-handle-bottomleft{height:4px;width:4px;left:-2px;bottom:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:sw-resize}.dv-resize-container .dv-resize-handle-bottomright{height:4px;width:4px;right:-2px;bottom:-2px;z-index:var(--dv-overlay-z-index);position:absolute;cursor:se-resize}.dv-render-overlay{--dv-overlay-z-index: var(--dv-overlay-z-index, 999);position:absolute;z-index:1;width:100%;height:100%;contain:layout paint;isolation:isolate;will-change:transform;transform:translateZ(0);backface-visibility:hidden}.dv-render-overlay.dv-render-overlay-float{z-index:calc(var(--dv-overlay-z-index) - 1)}.dv-debug .dv-render-overlay{outline:1px solid red;outline-offset:-1}.dv-pane-container{height:100%;width:100%}.dv-pane-container.dv-animated .dv-view{will-change:transform;transform:translateZ(0);backface-visibility:hidden;transition:transform .15s ease-out}.dv-pane-container .dv-view{overflow:hidden;display:flex;flex-direction:column;padding:0!important}.dv-pane-container .dv-view:not(:first-child):before{background-color:transparent!important}.dv-pane-container .dv-view:not(:first-child) .dv-pane>.dv-pane-header{border-top:1px solid var(--dv-paneview-header-border-color)}.dv-pane-container .dv-view .dv-default-header{background-color:var(--dv-group-view-background-color);color:var(--dv-activegroup-visiblepanel-tab-color);display:flex;padding:0 8px;cursor:pointer}.dv-pane-container .dv-view .dv-default-header .dv-pane-header-icon{display:flex;justify-content:center;align-items:center}.dv-pane-container .dv-view .dv-default-header>span{padding-left:8px;flex-grow:1}.dv-pane-container:first-of-type>.dv-pane>.dv-pane-header{border-top:none!important}.dv-pane-container .dv-pane{display:flex;flex-direction:column;overflow:hidden;height:100%}.dv-pane-container .dv-pane .dv-pane-header{box-sizing:border-box;-webkit-user-select:none;user-select:none;position:relative;outline:none}.dv-pane-container .dv-pane .dv-pane-header.dv-pane-draggable{cursor:pointer}.dv-pane-container .dv-pane .dv-pane-header:focus:before,.dv-pane-container .dv-pane .dv-pane-header:focus-within:before{position:absolute;top:0;left:0;width:100%;height:100%;z-index:5;content:\"\";pointer-events:none;outline:1px solid;outline-width:-1px;outline-style:solid;outline-offset:-1px;outline-color:var(--dv-paneview-active-outline-color)}.dv-pane-container .dv-pane .dv-pane-body{overflow-y:auto;overflow-x:hidden;flex-grow:1;position:relative;outline:none}.dv-pane-container .dv-pane .dv-pane-body:focus:before,.dv-pane-container .dv-pane .dv-pane-body:focus-within:before{position:absolute;top:0;left:0;width:100%;height:100%;z-index:5;content:\"\";pointer-events:none;outline:1px solid;outline-width:-1px;outline-style:solid;outline-offset:-1px;outline-color:var(--dv-paneview-active-outline-color)}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-enabled{background-color:#000}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-disabled{background-color:orange}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-maximum{background-color:green}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-minimum{background-color:red}.dv-split-view-container{position:relative;overflow:hidden;height:100%;width:100%}.dv-split-view-container.dv-splitview-disabled>.dv-sash-container>.dv-sash{pointer-events:none}.dv-split-view-container.dv-animation .dv-view,.dv-split-view-container.dv-animation .dv-sash{will-change:transform;transform:translateZ(0);backface-visibility:hidden;transition:transform .15s ease-out}.dv-split-view-container.dv-horizontal{height:100%}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash{height:100%;width:4px}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-enabled{cursor:ew-resize}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-disabled{cursor:default}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-maximum{cursor:w-resize}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-minimum{cursor:e-resize}.dv-split-view-container.dv-horizontal>.dv-view-container>.dv-view:not(:first-child):before{height:100%;width:1px}.dv-split-view-container.dv-vertical{width:100%}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash{width:100%;height:4px}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-enabled{cursor:ns-resize}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-disabled{cursor:default}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-maximum{cursor:n-resize}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-minimum{cursor:s-resize}.dv-split-view-container.dv-vertical>.dv-view-container>.dv-view{width:100%}.dv-split-view-container.dv-vertical>.dv-view-container>.dv-view:not(:first-child):before{height:1px;width:100%}.dv-split-view-container .dv-sash-container{height:100%;width:100%;position:absolute}.dv-split-view-container .dv-sash-container .dv-sash{position:absolute;z-index:99;outline:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;touch-action:none;background-color:var(--dv-sash-color, transparent)}.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):active,.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):hover{background-color:var(--dv-active-sash-color, transparent);transition-property:background-color;transition-timing-function:ease-in-out;transition-duration:var(--dv-active-sash-transition-duration, .1s);transition-delay:var(--dv-active-sash-transition-delay, .5s)}.dv-split-view-container .dv-view-container{position:relative;height:100%;width:100%}.dv-split-view-container .dv-view-container .dv-view{height:100%;box-sizing:border-box;overflow:auto;position:absolute}.dv-split-view-container.dv-separator-border .dv-view:not(:first-child):before{content:\" \";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--dv-separator-border)}.dv-dragged{transform:translateZ(0)}.dv-tab{flex-shrink:0}.dv-tab:focus-within,.dv-tab:focus{position:relative}.dv-tab:focus-within:after,.dv-tab:focus:after{position:absolute;content:\"\";height:100%;width:100%;top:0;left:0;pointer-events:none;outline:1px solid var(--dv-tab-divider-color)!important;outline-offset:-1px;z-index:5}.dv-tab.dv-tab-dragging .dv-default-tab-action{background-color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-tab.dv-active-tab .dv-default-tab .dv-default-tab-action{visibility:visible}.dv-tab.dv-inactive-tab .dv-default-tab .dv-default-tab-action{visibility:hidden}.dv-tab.dv-inactive-tab .dv-default-tab:hover .dv-default-tab-action{visibility:visible}.dv-tab .dv-default-tab{position:relative;height:100%;width:100%;display:flex;align-items:center;white-space:nowrap;text-overflow:ellipsis}.dv-tab .dv-default-tab .dv-default-tab-content{flex-grow:1;margin-right:4px}.dv-tab .dv-default-tab .dv-default-tab-action{padding:4px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.dv-tab .dv-default-tab .dv-default-tab-action:hover{border-radius:2px;background-color:var(--dv-icon-hover-background-color)}.dv-tabs-overflow-dropdown-default{height:100%;color:var(--dv-activegroup-hiddenpanel-tab-color);margin:var(--dv-tab-margin);display:flex;align-items:center;flex-shrink:0;padding:.25rem .5rem;cursor:pointer}.dv-tabs-overflow-dropdown-default>span{padding-left:.25rem}.dv-tabs-overflow-dropdown-default>svg{transform:rotate(90deg)}.dv-tabs-overflow-dropdown-default:hover{border-radius:2px;background-color:var(--dv-icon-hover-background-color)}.dv-tabs-container{display:flex;height:100%;overflow:auto;scrollbar-width:thin;will-change:scroll-position;transform:translateZ(0)}.dv-tabs-container.dv-tabs-container-vertical{width:100%;height:fit-content;max-height:100%;writing-mode:vertical-rl}.dv-tabs-container.dv-horizontal .dv-tab:not(:first-child):before,.dv-tabs-container.dv-vertical .dv-tab:not(:first-child):before{content:\" \";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--dv-tab-divider-color)}.dv-tabs-container.dv-horizontal .dv-tab:not(:first-child):before{width:1px;height:100%}.dv-tabs-container.dv-vertical .dv-tab:not(:first-child):before{width:100%;height:1px}.dv-tabs-container::-webkit-scrollbar{height:3px}.dv-tabs-container::-webkit-scrollbar-track{background:transparent}.dv-tabs-container::-webkit-scrollbar-thumb{background:var(--dv-tabs-container-scrollbar-color)}.dv-scrollable>.dv-tabs-container{overflow:hidden}.dv-tab{-webkit-user-drag:element;outline:none;padding:.25rem .5rem;cursor:pointer;position:relative;box-sizing:border-box;font-size:var(--dv-tab-font-size);margin:var(--dv-tab-margin)}.dv-tab.dv-tab--shifting{will-change:margin-left;transition:transform var(--dv-transition-duration, .2s) ease-out,margin-left var(--dv-transition-duration, .2s) ease-out}.dv-tab.dv-tab--dragging{width:0!important;min-width:0!important;padding:0!important;margin:0!important;overflow:hidden;opacity:0;pointer-events:none;transition:width var(--dv-transition-duration, .2s) ease-out,padding var(--dv-transition-duration, .2s) ease-out,margin var(--dv-transition-duration, .2s) ease-out,opacity var(--dv-transition-duration, .2s) ease-out}@media(prefers-reduced-motion:reduce){.dv-tab{transition:none!important}}.dv-tabs-container-vertical .dv-tab{padding:.5rem .25rem}.dv-tabs-overflow-container{flex-direction:column;height:unset;font-size:var(--dv-tabs-and-actions-container-font-size);max-height:min(50vh,400px);overflow-y:auto;border:1px solid var(--dv-tab-divider-color);background-color:var(--dv-group-view-background-color);scrollbar-width:thin}.dv-tabs-overflow-container::-webkit-scrollbar{width:6px}.dv-tabs-overflow-container::-webkit-scrollbar-track{background:transparent}.dv-tabs-overflow-container::-webkit-scrollbar-thumb{background:var(--dv-tabs-container-scrollbar-color);border-radius:3px}.dv-tabs-overflow-container .dv-tab:not(:last-child){border-bottom:1px solid var(--dv-tab-divider-color)}.dv-tabs-overflow-container .dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-tabs-overflow-container .dv-inactive-tab{background-color:var(--dv-activegroup-hiddenpanel-tab-background-color);color:var(--dv-activegroup-hiddenpanel-tab-color)}.dv-tabs-and-actions-container{display:flex;background-color:var(--dv-tabs-and-actions-container-background-color);flex-shrink:0;box-sizing:border-box;height:var(--dv-tabs-and-actions-container-height);font-size:var(--dv-tabs-and-actions-container-font-size)}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-scrollable,.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container{flex-grow:1}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container .dv-tab{flex-grow:1;padding:0}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-void-container{flex-grow:0}.dv-tabs-and-actions-container .dv-void-container{display:flex;flex-grow:1}.dv-tabs-and-actions-container .dv-void-container.dv-draggable{cursor:grab}.dv-tabs-and-actions-container .dv-right-actions-container{display:flex}.dv-tabs-and-actions-container .dv-right-actions-container.dv-right-actions-container-vertical{flex-direction:column}.dv-tabs-and-actions-container.dv-groupview-header-vertical{flex-direction:column;height:auto;width:var(--dv-tabs-and-actions-container-height)}.dv-watermark{display:flex;height:100%}mm-dockview{display:block;width:100%;height:100%;position:relative}.dv-dockview-container{width:100%;height:100%;position:absolute;inset:0}.dv-dockview{width:100%;height:100%}.dv-dockview,.dv-grid-view{background-color:var(--dv-background-color, #fafafa);--dv-background-color: #fafafa;--dv-pane-background-color: #ffffff;--dv-tabs-and-actions-container-background-color: #f5f5f5;--dv-activegroup-visiblepanel-tab-background-color: #ffffff;--dv-activegroup-hiddenpanel-tab-background-color: #e8e8e8;--dv-inactivegroup-visiblepanel-tab-background-color: #f0f0f0;--dv-inactivegroup-hiddenpanel-tab-background-color: #e0e0e0;--dv-tab-divider-color: #e0e0e0;--dv-activegroup-visiblepanel-tab-color: #333333;--dv-activegroup-hiddenpanel-tab-color: #666666;--dv-inactivegroup-visiblepanel-tab-color: #666666;--dv-inactivegroup-hiddenpanel-tab-color: #999999;--dv-separator-border: 1px solid #e0e0e0;--dv-group-view-background-color: #ffffff;--dv-tabs-overflow-dropdown-background-color: #f5f5f5;--dv-icon-hover-background-color: #e0e0e0}.dv-tabs-overflow-container{background-color:var(--dv-tabs-overflow-dropdown-background-color, #f5f5f5);border:1px solid var(--dv-tab-divider-color, #e0e0e0);border-radius:4px;box-shadow:0 2px 8px #00000026}.dv-tabs-container{background-color:var(--dv-tabs-and-actions-container-background-color, #f5f5f5)}div[style*=--dv-overlay-z-index]{background-color:var(--dv-tabs-overflow-dropdown-background-color, #f5f5f5);border-radius:4px}div[style*=--dv-overlay-z-index] .dv-tabs-overflow-container{background-color:var(--dv-tabs-overflow-dropdown-background-color, #f5f5f5)}div[style*=--dv-overlay-z-index] .dv-tab{background-color:var(--dv-activegroup-hiddenpanel-tab-background-color, #e8e8e8);color:var(--dv-activegroup-hiddenpanel-tab-color, #666666)}div[style*=--dv-overlay-z-index] .dv-tab:hover{background-color:var(--dv-icon-hover-background-color, #d8d8d8)}div[style*=--dv-overlay-z-index] .dv-tab.dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color, #ffffff);color:var(--dv-activegroup-visiblepanel-tab-color, #333333)}div[style*=--dv-overlay-z-index] .dv-default-tab{background-color:transparent}.dv-tab{font-size:12px;font-weight:500;background-color:var(--dv-activegroup-hiddenpanel-tab-background-color, #e8e8e8);color:var(--dv-activegroup-hiddenpanel-tab-color, #666666)}.dv-tab.dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color, #ffffff);color:var(--dv-activegroup-visiblepanel-tab-color, #333333)}.dv-default-tab{display:flex;align-items:center}.dv-default-tab-content{flex:1}.dv-default-tab-action{flex-shrink:0;opacity:.5;transition:opacity .15s ease}.dv-default-tab-action:hover{opacity:1}.dv-sash{background:var(--dv-sash-color, #e0e0e0)}.dv-sash:hover,.dv-sash.dv-active{background:var(--dv-sash-hover-color, #1976d2)}.dv-drop-target-dropzone{background:var(--dv-drag-over-background-color, rgba(25, 118, 210, .15));border:2px dashed var(--dv-drag-over-border-color, #1976d2);border-radius:4px}.dv-floating-group{box-shadow:0 4px 20px #00000026;border-radius:4px;overflow:hidden}\n"] }]
|
|
6333
6333
|
}], propDecorators: { containerRef: [{
|
|
@@ -6491,8 +6491,8 @@ class ElementPaletteComponent {
|
|
|
6491
6491
|
onDragEnd(_event, item) {
|
|
6492
6492
|
this.elementDragEnd.emit(item);
|
|
6493
6493
|
}
|
|
6494
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6495
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
6494
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ElementPaletteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6495
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: ElementPaletteComponent, isStandalone: true, selector: "mm-element-palette", outputs: { elementDragStart: "elementDragStart", elementDragEnd: "elementDragEnd" }, ngImport: i0, template: `
|
|
6496
6496
|
<div class="element-palette" data-testid="element-palette">
|
|
6497
6497
|
<div class="palette-search">
|
|
6498
6498
|
<input type="text"
|
|
@@ -6569,7 +6569,7 @@ class ElementPaletteComponent {
|
|
|
6569
6569
|
</div>
|
|
6570
6570
|
`, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.element-palette{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.palette-search{flex-shrink:0;padding:.5rem;border-bottom:1px solid #e0e0e0}.palette-search input{width:100%;padding:.5rem;border:1px solid #e0e0e0;border-radius:4px;font-size:12px;box-sizing:border-box}.palette-search input:focus{outline:none;border-color:#1976d2}.palette-content{flex:1;min-height:0;overflow-y:auto;padding:.5rem}.palette-category{margin-bottom:.5rem}.category-header{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#f5f5f5;border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none}.category-header:hover{background:#eee}.category-icon{font-size:10px;color:#666}.category-name{font-size:12px;font-weight:500}.category-count{font-size:11px;color:#999}.category-elements{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;padding:.5rem 0}.palette-element{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem;background:#fff;border:1px solid #e0e0e0;border-radius:4px;cursor:grab;transition:all .15s ease}.palette-element:hover{border-color:#1976d2;box-shadow:0 2px 4px #0000001a}.palette-element:active{cursor:grabbing}.element-preview{width:32px;height:28px;display:flex;align-items:center;justify-content:center}.preview-svg{width:100%;height:100%}.element-label{font-size:10px;text-align:center;color:#666}.no-results{padding:1rem;text-align:center;color:#999;font-size:12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
6571
6571
|
}
|
|
6572
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
6572
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ElementPaletteComponent, decorators: [{
|
|
6573
6573
|
type: Component,
|
|
6574
6574
|
args: [{ selector: 'mm-element-palette', standalone: true, imports: [CommonModule, FormsModule], template: `
|
|
6575
6575
|
<div class="element-palette" data-testid="element-palette">
|
|
@@ -6839,8 +6839,8 @@ class SymbolLibraryPanelComponent {
|
|
|
6839
6839
|
const style = this.resolveStyle(primitive, styleClasses);
|
|
6840
6840
|
return style.stroke?.opacity ?? defaultOpacity;
|
|
6841
6841
|
}
|
|
6842
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6843
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
6842
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolLibraryPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6843
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SymbolLibraryPanelComponent, isStandalone: true, selector: "mm-symbol-library-panel", outputs: { symbolDragStart: "symbolDragStart", symbolDragEnd: "symbolDragEnd" }, ngImport: i0, template: `
|
|
6844
6844
|
<div class="symbol-library-panel">
|
|
6845
6845
|
<div class="panel-search">
|
|
6846
6846
|
<input type="text"
|
|
@@ -7017,7 +7017,7 @@ class SymbolLibraryPanelComponent {
|
|
|
7017
7017
|
</div>
|
|
7018
7018
|
`, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.symbol-library-panel{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.panel-search{flex-shrink:0;padding:.5rem;border-bottom:1px solid #e0e0e0}.panel-search input{width:100%;padding:.5rem;border:1px solid #e0e0e0;border-radius:4px;font-size:12px;box-sizing:border-box}.panel-search input:focus{outline:none;border-color:#9c27b0}.panel-content{flex:1;min-height:0;overflow-y:auto;padding:.5rem}.loading{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2rem 1rem;color:#666;font-size:12px}.loading-spinner{width:24px;height:24px;border:2px solid #e0e0e0;border-top-color:#9c27b0;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;color:#d32f2f;font-size:12px;text-align:center}.error-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#ffebee;border-radius:50%;font-weight:700;font-size:18px}.retry-btn{padding:.25rem .75rem;background:#fff;border:1px solid #d32f2f;border-radius:4px;color:#d32f2f;font-size:12px;cursor:pointer}.retry-btn:hover{background:#ffebee}.library-section{margin-bottom:.5rem}.library-header{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#f3e5f5;border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none}.library-header:hover{background:#e1bee7}.expand-icon{font-size:10px;color:#7b1fa2}.library-name{font-size:12px;font-weight:500;color:#7b1fa2}.library-count{font-size:11px;color:#9c27b0}.library-symbols{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;padding:.5rem 0}.symbol-item{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem;background:#fff;border:1px solid #e0e0e0;border-radius:4px;cursor:grab;transition:all .15s ease}.symbol-item:hover{border-color:#9c27b0;box-shadow:0 2px 4px #9c27b033}.symbol-item:active{cursor:grabbing}.symbol-preview{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#fafafa;border-radius:4px;overflow:hidden}.preview-image{max-width:100%;max-height:100%;object-fit:contain}.preview-svg{width:100%;height:100%}.symbol-label{font-size:10px;text-align:center;color:#666;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-library{grid-column:1 / -1;padding:1rem;text-align:center;color:#999;font-size:11px;font-style:italic}.no-results{padding:2rem 1rem;text-align:center;color:#999;font-size:12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
7019
7019
|
}
|
|
7020
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
7020
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolLibraryPanelComponent, decorators: [{
|
|
7021
7021
|
type: Component,
|
|
7022
7022
|
args: [{ selector: 'mm-symbol-library-panel', standalone: true, imports: [CommonModule, FormsModule], template: `
|
|
7023
7023
|
<div class="symbol-library-panel">
|
|
@@ -7358,8 +7358,8 @@ class PropertyInspectorComponent {
|
|
|
7358
7358
|
// Reset input so same file can be selected again
|
|
7359
7359
|
input.value = '';
|
|
7360
7360
|
}
|
|
7361
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
7362
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
7361
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PropertyInspectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7362
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: PropertyInspectorComponent, isStandalone: true, selector: "mm-property-inspector", inputs: { selectedElements: "selectedElements", selectedConnections: "selectedConnections", selectedPrimitives: "selectedPrimitives", selectedSymbolInstances: "selectedSymbolInstances", symbolDefinitions: "symbolDefinitions", availableStyleClasses: "availableStyleClasses" }, outputs: { propertyChange: "propertyChange" }, ngImport: i0, template: `
|
|
7363
7363
|
<div class="property-inspector">
|
|
7364
7364
|
<div class="inspector-content">
|
|
7365
7365
|
@if (selectedElements.length === 0 && selectedConnections.length === 0 && selectedPrimitives.length === 0 && selectedSymbolInstances.length === 0) {
|
|
@@ -8308,7 +8308,7 @@ class PropertyInspectorComponent {
|
|
|
8308
8308
|
</div>
|
|
8309
8309
|
`, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.property-inspector{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.inspector-content{flex:1;min-height:0;overflow-y:auto;padding:.5rem}.no-selection,.multi-selection{padding:1rem;text-align:center;color:#666}.hint{font-size:12px;color:#999;margin-top:.5rem}.property-section{margin-bottom:1rem}.section-header{font-size:12px;font-weight:500;color:#666;padding:.5rem 0;border-bottom:1px solid #e0e0e0;margin-bottom:.5rem}.property-group{display:flex;flex-direction:column;gap:.5rem}.property-row{display:flex;align-items:center;gap:.5rem}.property-row label{flex:0 0 80px;font-size:11px;color:#666}.property-row input[type=text],.property-row input[type=number],.property-row select{flex:1;padding:.25rem .5rem;border:1px solid #e0e0e0;border-radius:4px;font-size:12px}.property-row input[type=text]:focus,.property-row input[type=number]:focus,.property-row select:focus{outline:none;border-color:#1976d2}.property-row input[type=checkbox]{margin:0}.property-row input[type=color]{flex:1;height:28px;padding:2px;border:1px solid #e0e0e0;border-radius:4px}.color-with-opacity{display:flex;align-items:center;gap:.5rem;flex:1}.color-with-opacity input[type=color]{flex:0 0 40px;width:40px}.opacity-slider{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:linear-gradient(to right,transparent,#333);border-radius:2px;cursor:pointer}.opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#1976d2;cursor:pointer;border:2px solid #fff;box-shadow:0 1px 3px #0000004d}.opacity-slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#1976d2;cursor:pointer;border:2px solid #fff;box-shadow:0 1px 3px #0000004d}.opacity-value{flex:0 0 36px;font-size:11px;color:#666;text-align:right}.line-type-select,.style-class-select{flex:1;height:28px;padding:0 .5rem;border:1px solid #e0e0e0;border-radius:4px;font-size:12px;background:#fff;cursor:pointer}.style-class-select{width:100%}.line-preview{flex:0 0 60px;height:20px;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:4px}.property-row.two-col{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.property-row.two-col>div{display:flex;flex-direction:column;gap:.25rem}.property-row.two-col label{flex:none}.type-badge{display:inline-block;padding:.125rem .5rem;background:#e3f2fd;border-radius:4px;font-size:11px;color:#1976d2}.type-badge.small{padding:.0625rem .375rem;font-size:10px}.exposed-property{flex-direction:column;align-items:flex-start;gap:.25rem}.exposed-property label{font-weight:500;color:#333}.exposed-value{display:flex;align-items:center;gap:.5rem}.default-value{font-size:12px;color:#666}.exposed-hint{font-size:11px;color:#888;margin:.5rem .75rem 0;padding:0;font-style:italic}.info-value{font-size:12px;color:#333}.image-preview-container{display:flex;justify-content:center;padding:.5rem;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:4px;margin-bottom:.5rem}.image-preview{max-width:100%;max-height:100px;object-fit:contain}.file-upload-row{display:flex;align-items:center;gap:.5rem;flex:1}.file-input-hidden{display:none}.file-upload-button{padding:.25rem .75rem;font-size:12px;border:1px solid #1976d2;border-radius:4px;background:#e3f2fd;color:#1976d2;cursor:pointer;white-space:nowrap}.file-upload-button:hover{background:#bbdefb}.file-type-hint{font-size:10px;color:#999}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "ngmodule", type: InputsModule }, { kind: "ngmodule", type: DropDownsModule }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }] });
|
|
8310
8310
|
}
|
|
8311
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
8311
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PropertyInspectorComponent, decorators: [{
|
|
8312
8312
|
type: Component,
|
|
8313
8313
|
args: [{ selector: 'mm-property-inspector', standalone: true, imports: [CommonModule, FormsModule, InputsModule, DropDownsModule, DecimalPipe], template: `
|
|
8314
8314
|
<div class="property-inspector">
|
|
@@ -9320,8 +9320,8 @@ class ContextMenuComponent {
|
|
|
9320
9320
|
close() {
|
|
9321
9321
|
this.closed.emit();
|
|
9322
9322
|
}
|
|
9323
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
9324
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
9323
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9324
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: ContextMenuComponent, isStandalone: true, selector: "mm-context-menu", inputs: { position: "position", items: "items" }, outputs: { action: "action", closed: "closed" }, host: { listeners: { "document:keydown.escape": "onEscape()" }, properties: { "style.left.px": "position.x", "style.top.px": "position.y" } }, ngImport: i0, template: `
|
|
9325
9325
|
<div class="context-menu"
|
|
9326
9326
|
(click)="$event.stopPropagation()">
|
|
9327
9327
|
@for (item of items; track item.id) {
|
|
@@ -9345,7 +9345,7 @@ class ContextMenuComponent {
|
|
|
9345
9345
|
</div>
|
|
9346
9346
|
`, isInline: true, styles: [":host{position:fixed;z-index:10000}.context-menu{min-width:180px;background:var(--context-menu-bg, #1a2332);border:1px solid var(--context-menu-border, rgba(100, 206, 185, .3));border-radius:4px;box-shadow:0 4px 12px #0006;padding:4px 0;font-size:13px}.menu-item{display:flex;align-items:center;width:100%;padding:8px 12px;border:none;background:none;text-align:left;cursor:pointer;color:var(--context-menu-text, #e0e0e0);gap:8px}.menu-item:hover:not(.disabled){background:var(--context-menu-hover, rgba(100, 206, 185, .15))}.menu-item.disabled{color:var(--context-menu-disabled, #666);cursor:not-allowed}.menu-icon{width:20px;text-align:center;flex-shrink:0}.menu-label{flex:1}.menu-shortcut{color:var(--context-menu-shortcut, #888);font-size:11px;margin-left:16px}.menu-separator{height:1px;background:var(--context-menu-separator, rgba(100, 206, 185, .2));margin:4px 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
9347
9347
|
}
|
|
9348
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
9348
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ContextMenuComponent, decorators: [{
|
|
9349
9349
|
type: Component,
|
|
9350
9350
|
args: [{ selector: 'mm-context-menu', standalone: true, imports: [CommonModule], host: {
|
|
9351
9351
|
'[style.left.px]': 'position.x',
|
|
@@ -10158,10 +10158,10 @@ class PathEditorService {
|
|
|
10158
10158
|
return segment;
|
|
10159
10159
|
}
|
|
10160
10160
|
}
|
|
10161
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
10162
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
10161
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PathEditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
10162
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PathEditorService, providedIn: 'root' });
|
|
10163
10163
|
}
|
|
10164
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
10164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PathEditorService, decorators: [{
|
|
10165
10165
|
type: Injectable,
|
|
10166
10166
|
args: [{
|
|
10167
10167
|
providedIn: 'root'
|
|
@@ -10471,8 +10471,8 @@ class PathEditorComponent {
|
|
|
10471
10471
|
emitChange() {
|
|
10472
10472
|
this.pathChange.emit(this.pathService.getCurrentPathString());
|
|
10473
10473
|
}
|
|
10474
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
10475
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
10474
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PathEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10475
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: PathEditorComponent, isStandalone: true, selector: "mm-path-editor", inputs: { pathData: { classPropertyName: "pathData", publicName: "pathData", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, gridSize: { classPropertyName: "gridSize", publicName: "gridSize", isSignal: true, isRequired: false, transformFunction: null }, snapToGrid: { classPropertyName: "snapToGrid", publicName: "snapToGrid", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pathChange: "pathChange" }, viewQueries: [{ propertyName: "svgElement", first: true, predicate: ["svgElement"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
10476
10476
|
<div class="path-editor">
|
|
10477
10477
|
<!-- Visual Editor -->
|
|
10478
10478
|
<div class="visual-editor">
|
|
@@ -10590,7 +10590,7 @@ class PathEditorComponent {
|
|
|
10590
10590
|
</div>
|
|
10591
10591
|
`, isInline: true, styles: [".path-editor{display:flex;flex-direction:column;gap:12px;padding:8px;background:#f5f5f5;border-radius:4px;height:100%}.visual-editor{flex:1;display:flex;flex-direction:column;min-height:200px;background:#fff;border:1px solid #ddd;border-radius:4px;overflow:hidden}.path-canvas{flex:1;width:100%;cursor:crosshair}.point-node{fill:#4caf50;stroke:#fff;stroke-width:2;cursor:move}.point-node:hover{fill:#2e7d32}.control-node{fill:#2196f3;stroke:#fff;stroke-width:1.5;cursor:move}.control-node:hover{fill:#1565c0}.selected{stroke:#ff9800;stroke-width:3}.toolbar{display:flex;align-items:center;gap:4px;padding:4px 8px;background:#f9f9f9;border-top:1px solid #ddd}.toolbar-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid #ccc;border-radius:4px;background:#fff;cursor:pointer;font-size:12px;font-weight:700;color:#333}.toolbar-btn:hover:not(:disabled){background:#e8e8e8}.toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.separator{width:1px;height:20px;background:#ddd;margin:0 4px}.text-editor{display:flex;flex-direction:column;gap:4px}.text-editor label{font-size:12px;font-weight:500;color:#666}.path-textarea{font-family:Monaco,Consolas,monospace;font-size:12px;padding:8px;border:1px solid #ddd;border-radius:4px;resize:vertical;min-height:60px}.path-textarea:focus{outline:none;border-color:#2196f3}.text-editor-footer{display:flex;justify-content:space-between;font-size:11px;color:#888}.status.dirty{color:#ff9800}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
10592
10592
|
}
|
|
10593
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
10593
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PathEditorComponent, decorators: [{
|
|
10594
10594
|
type: Component,
|
|
10595
10595
|
args: [{ selector: 'mm-path-editor', standalone: true, imports: [CommonModule, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
10596
10596
|
<div class="path-editor">
|
|
@@ -11347,8 +11347,8 @@ class BindingEditorDialogComponent {
|
|
|
11347
11347
|
this.saved.emit(mergedBindings);
|
|
11348
11348
|
this._visible.set(false);
|
|
11349
11349
|
}
|
|
11350
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
11351
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
11350
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: BindingEditorDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11351
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: BindingEditorDialogComponent, isStandalone: true, selector: "mm-binding-editor-dialog", inputs: { show: "show", property: "property", existingBindings: "existingBindings", primitives: "primitives", symbolInstances: "symbolInstances", symbolDefinitions: "symbolDefinitions" }, outputs: { closed: "closed", saved: "saved" }, ngImport: i0, template: `
|
|
11352
11352
|
@if (visible()) {
|
|
11353
11353
|
<kendo-dialog title="Bindings for: {{ currentProperty()?.name }}"
|
|
11354
11354
|
[width]="550"
|
|
@@ -11530,7 +11530,7 @@ class BindingEditorDialogComponent {
|
|
|
11530
11530
|
}
|
|
11531
11531
|
`, isInline: true, styles: [".binding-editor-content{display:flex;flex-direction:column;height:100%;min-height:300px}.bindings-list{flex:1;overflow-y:auto}.list-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid #e0e0e0;margin-bottom:.5rem;font-weight:500;font-size:13px}.empty-state{padding:1.5rem;text-align:center;color:#666;background:#f9f9f9;border-radius:8px}.hint{font-size:12px;color:#999;margin-top:.5rem}.binding-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:.5rem;overflow:hidden}.binding-card.expanded{border-color:#1976d2}.binding-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem;cursor:pointer;background:#fafafa}.binding-header:hover{background:#f5f5f5}.binding-summary{display:flex;align-items:center;gap:.5rem}.target-name{font-weight:500;font-size:13px}.effect-badge{display:inline-block;padding:.125rem .5rem;background:#e8f5e9;border-radius:4px;font-size:10px;color:#2e7d32}.binding-actions{display:flex;gap:.25rem}.binding-form{padding:.75rem;border-top:1px solid #e0e0e0;display:flex;flex-direction:column;gap:.75rem}.form-row{display:flex;align-items:flex-start;gap:.5rem}.form-row label{flex:0 0 90px;font-size:11px;color:#666;padding-top:.5rem}.form-row select,.form-row input[type=text],.form-row input[type=number]{flex:1;padding:.375rem .5rem;border:1px solid #e0e0e0;border-radius:4px;font-size:12px}.form-row select:focus,.form-row input:focus{outline:none;border-color:#1976d2}.expression-row{flex-direction:column;align-items:stretch}.expression-row label{flex:none;padding-top:0;margin-bottom:.25rem}.expression-input{width:100%}.expression-input input{width:100%;font-family:Consolas,Monaco,monospace}.expression-hint{font-size:10px;color:#999;margin-top:.25rem}.expression-hint code{background:#f5f5f5;padding:.125rem .25rem;border-radius:3px;font-family:Consolas,Monaco,monospace}.expression-preview{background:#f9f9f9;border-radius:6px;padding:.75rem}.expression-preview>label{display:block;font-size:11px;color:#666;margin-bottom:.5rem}.preview-content{display:flex;align-items:center;gap:.75rem}.preview-input,.preview-output{display:flex;align-items:center;gap:.5rem;font-size:12px}.preview-input input[type=number]{width:80px;padding:.25rem .5rem;border:1px solid #e0e0e0;border-radius:4px;font-size:12px}.boolean-toggle{display:flex;align-items:center;gap:.5rem;cursor:pointer}.boolean-toggle input[type=checkbox]{width:16px;height:16px;cursor:pointer}.boolean-label{font-family:monospace;font-size:12px;color:#333}.preview-arrow{color:#666;font-size:16px}.preview-output .output-value{font-weight:500;color:#1976d2;font-family:Consolas,Monaco,monospace}.preview-output.error .output-value{color:#d32f2f}.anchor-row{align-items:flex-start}.anchor-selector{display:flex;align-items:center;gap:.75rem}.anchor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;width:54px;height:54px;background:#e0e0e0;border-radius:4px;padding:2px}.anchor-point{display:flex;align-items:center;justify-content:center;background:#fff;border:none;cursor:pointer;padding:0;border-radius:2px}.anchor-point:hover{background:#e3f2fd}.anchor-point.selected{background:#1976d2}.anchor-dot{width:6px;height:6px;border-radius:50%;background:#999}.anchor-point.selected .anchor-dot{background:#fff}.anchor-point:hover .anchor-dot{background:#1976d2}.anchor-point.selected:hover .anchor-dot{background:#fff}.anchor-label{font-size:11px;color:#666}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i2$1.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "ngmodule", type: InputsModule }, { kind: "ngmodule", type: DropDownsModule }, { kind: "ngmodule", type: DialogsModule }, { kind: "component", type: i3.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "component", type: i3.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }] });
|
|
11532
11532
|
}
|
|
11533
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
11533
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: BindingEditorDialogComponent, decorators: [{
|
|
11534
11534
|
type: Component,
|
|
11535
11535
|
args: [{ selector: 'mm-binding-editor-dialog', standalone: true, imports: [CommonModule, FormsModule, ButtonsModule, InputsModule, DropDownsModule, DialogsModule], template: `
|
|
11536
11536
|
@if (visible()) {
|
|
@@ -12100,10 +12100,10 @@ class DesignerSelectionService {
|
|
|
12100
12100
|
setSelectionRect(rect) {
|
|
12101
12101
|
this._selectionRect.set(rect);
|
|
12102
12102
|
}
|
|
12103
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
12104
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
12103
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerSelectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12104
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerSelectionService });
|
|
12105
12105
|
}
|
|
12106
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
12106
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerSelectionService, decorators: [{
|
|
12107
12107
|
type: Injectable
|
|
12108
12108
|
}] });
|
|
12109
12109
|
|
|
@@ -12270,10 +12270,10 @@ class DesignerHistoryService {
|
|
|
12270
12270
|
deepClone(obj) {
|
|
12271
12271
|
return JSON.parse(JSON.stringify(obj));
|
|
12272
12272
|
}
|
|
12273
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
12274
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
12273
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerHistoryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12274
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerHistoryService });
|
|
12275
12275
|
}
|
|
12276
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
12276
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerHistoryService, decorators: [{
|
|
12277
12277
|
type: Injectable
|
|
12278
12278
|
}] });
|
|
12279
12279
|
|
|
@@ -12487,10 +12487,10 @@ class DesignerClipboardService {
|
|
|
12487
12487
|
deepClone(obj) {
|
|
12488
12488
|
return JSON.parse(JSON.stringify(obj));
|
|
12489
12489
|
}
|
|
12490
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
12491
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
12490
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerClipboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12491
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerClipboardService });
|
|
12492
12492
|
}
|
|
12493
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
12493
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerClipboardService, decorators: [{
|
|
12494
12494
|
type: Injectable
|
|
12495
12495
|
}] });
|
|
12496
12496
|
|
|
@@ -12731,10 +12731,10 @@ class DesignerStateService {
|
|
|
12731
12731
|
this._showElementNames.set(false);
|
|
12732
12732
|
this._hasChanges.set(false);
|
|
12733
12733
|
}
|
|
12734
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
12735
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
12734
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12735
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerStateService });
|
|
12736
12736
|
}
|
|
12737
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
12737
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerStateService, decorators: [{
|
|
12738
12738
|
type: Injectable
|
|
12739
12739
|
}] });
|
|
12740
12740
|
|
|
@@ -12995,10 +12995,10 @@ class DesignerCoordinateService {
|
|
|
12995
12995
|
y: bounds.y + bounds.height / 2
|
|
12996
12996
|
};
|
|
12997
12997
|
}
|
|
12998
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
12999
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
12998
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerCoordinateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12999
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerCoordinateService });
|
|
13000
13000
|
}
|
|
13001
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
13001
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerCoordinateService, decorators: [{
|
|
13002
13002
|
type: Injectable
|
|
13003
13003
|
}] });
|
|
13004
13004
|
|
|
@@ -13249,10 +13249,10 @@ class DesignerDragService {
|
|
|
13249
13249
|
hasMovedBeyondThreshold(threshold = 3) {
|
|
13250
13250
|
return this.getDragDistance() > threshold;
|
|
13251
13251
|
}
|
|
13252
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
13253
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
13252
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerDragService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
13253
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerDragService });
|
|
13254
13254
|
}
|
|
13255
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
13255
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerDragService, decorators: [{
|
|
13256
13256
|
type: Injectable
|
|
13257
13257
|
}] });
|
|
13258
13258
|
|
|
@@ -13637,10 +13637,10 @@ class DesignerResizeService {
|
|
|
13637
13637
|
};
|
|
13638
13638
|
return cursors[handle];
|
|
13639
13639
|
}
|
|
13640
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
13641
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
13640
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerResizeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
13641
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerResizeService });
|
|
13642
13642
|
}
|
|
13643
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
13643
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerResizeService, decorators: [{
|
|
13644
13644
|
type: Injectable
|
|
13645
13645
|
}] });
|
|
13646
13646
|
|
|
@@ -13869,10 +13869,10 @@ class DesignerZOrderService {
|
|
|
13869
13869
|
return true;
|
|
13870
13870
|
return false;
|
|
13871
13871
|
}
|
|
13872
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
13873
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
13872
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerZOrderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
13873
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerZOrderService });
|
|
13874
13874
|
}
|
|
13875
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
13875
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerZOrderService, decorators: [{
|
|
13876
13876
|
type: Injectable
|
|
13877
13877
|
}] });
|
|
13878
13878
|
|
|
@@ -14117,10 +14117,10 @@ class DesignerDeletionService {
|
|
|
14117
14117
|
const expanded = this.expandWithGroupChildren(diagram, itemIds);
|
|
14118
14118
|
return expanded.size;
|
|
14119
14119
|
}
|
|
14120
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
14121
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
14120
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerDeletionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14121
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerDeletionService });
|
|
14122
14122
|
}
|
|
14123
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
14123
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerDeletionService, decorators: [{
|
|
14124
14124
|
type: Injectable
|
|
14125
14125
|
}] });
|
|
14126
14126
|
|
|
@@ -14544,10 +14544,10 @@ class DesignerGroupingService {
|
|
|
14544
14544
|
}
|
|
14545
14545
|
return itemId;
|
|
14546
14546
|
}
|
|
14547
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
14548
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
14547
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerGroupingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14548
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerGroupingService });
|
|
14549
14549
|
}
|
|
14550
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
14550
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerGroupingService, decorators: [{
|
|
14551
14551
|
type: Injectable
|
|
14552
14552
|
}] });
|
|
14553
14553
|
|
|
@@ -14921,10 +14921,10 @@ class DesignerContextMenuService {
|
|
|
14921
14921
|
return baseItems;
|
|
14922
14922
|
}
|
|
14923
14923
|
}
|
|
14924
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
14925
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
14924
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerContextMenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14925
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerContextMenuService });
|
|
14926
14926
|
}
|
|
14927
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
14927
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerContextMenuService, decorators: [{
|
|
14928
14928
|
type: Injectable
|
|
14929
14929
|
}] });
|
|
14930
14930
|
|
|
@@ -15343,10 +15343,10 @@ class DesignerKeyboardService {
|
|
|
15343
15343
|
}
|
|
15344
15344
|
return lines.join('\n');
|
|
15345
15345
|
}
|
|
15346
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
15347
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
15346
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerKeyboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15347
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerKeyboardService });
|
|
15348
15348
|
}
|
|
15349
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
15349
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerKeyboardService, decorators: [{
|
|
15350
15350
|
type: Injectable
|
|
15351
15351
|
}], ctorParameters: () => [] });
|
|
15352
15352
|
|
|
@@ -15767,10 +15767,10 @@ class DesignerCreationService {
|
|
|
15767
15767
|
PrimitiveType.Text
|
|
15768
15768
|
];
|
|
15769
15769
|
}
|
|
15770
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
15771
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
15770
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerCreationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15771
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerCreationService });
|
|
15772
15772
|
}
|
|
15773
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
15773
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerCreationService, decorators: [{
|
|
15774
15774
|
type: Injectable
|
|
15775
15775
|
}] });
|
|
15776
15776
|
|
|
@@ -16263,10 +16263,10 @@ class DesignerRenderingService {
|
|
|
16263
16263
|
height: bounds.height + padding * 2
|
|
16264
16264
|
};
|
|
16265
16265
|
}
|
|
16266
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
16267
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
16266
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerRenderingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16267
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerRenderingService });
|
|
16268
16268
|
}
|
|
16269
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
16269
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerRenderingService, decorators: [{
|
|
16270
16270
|
type: Injectable
|
|
16271
16271
|
}] });
|
|
16272
16272
|
|
|
@@ -16417,10 +16417,10 @@ class GeometryUtilService {
|
|
|
16417
16417
|
y: vector.x
|
|
16418
16418
|
};
|
|
16419
16419
|
}
|
|
16420
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
16421
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
16420
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GeometryUtilService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16421
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GeometryUtilService, providedIn: 'root' });
|
|
16422
16422
|
}
|
|
16423
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
16423
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GeometryUtilService, decorators: [{
|
|
16424
16424
|
type: Injectable,
|
|
16425
16425
|
args: [{ providedIn: 'root' }]
|
|
16426
16426
|
}] });
|
|
@@ -16786,10 +16786,10 @@ class DesignerDiagramService {
|
|
|
16786
16786
|
reset() {
|
|
16787
16787
|
this._diagram.set(this.createEmptyDiagram());
|
|
16788
16788
|
}
|
|
16789
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
16790
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
16789
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerDiagramService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16790
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerDiagramService });
|
|
16791
16791
|
}
|
|
16792
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
16792
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerDiagramService, decorators: [{
|
|
16793
16793
|
type: Injectable
|
|
16794
16794
|
}], ctorParameters: () => [] });
|
|
16795
16795
|
|
|
@@ -17446,10 +17446,10 @@ class DesignerPrimitiveService {
|
|
|
17446
17446
|
isPath(type) {
|
|
17447
17447
|
return type === PrimitiveType.Path;
|
|
17448
17448
|
}
|
|
17449
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
17450
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
17449
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerPrimitiveService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17450
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerPrimitiveService });
|
|
17451
17451
|
}
|
|
17452
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
17452
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerPrimitiveService, decorators: [{
|
|
17453
17453
|
type: Injectable
|
|
17454
17454
|
}], ctorParameters: () => [] });
|
|
17455
17455
|
|
|
@@ -17695,10 +17695,10 @@ class DesignerBoundsService {
|
|
|
17695
17695
|
}
|
|
17696
17696
|
return childIds;
|
|
17697
17697
|
}
|
|
17698
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
17699
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
17698
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerBoundsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17699
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerBoundsService });
|
|
17700
17700
|
}
|
|
17701
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
17701
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerBoundsService, decorators: [{
|
|
17702
17702
|
type: Injectable
|
|
17703
17703
|
}] });
|
|
17704
17704
|
|
|
@@ -17982,10 +17982,10 @@ class DesignerAlignmentService {
|
|
|
17982
17982
|
canDistribute(selectedIds) {
|
|
17983
17983
|
return selectedIds.size >= 3;
|
|
17984
17984
|
}
|
|
17985
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
17986
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
17985
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerAlignmentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17986
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerAlignmentService });
|
|
17987
17987
|
}
|
|
17988
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
17988
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerAlignmentService, decorators: [{
|
|
17989
17989
|
type: Injectable
|
|
17990
17990
|
}] });
|
|
17991
17991
|
|
|
@@ -18268,10 +18268,10 @@ class DesignerAlignmentGuideService {
|
|
|
18268
18268
|
// Round to avoid floating point precision issues
|
|
18269
18269
|
return Math.round(result);
|
|
18270
18270
|
}
|
|
18271
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
18272
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
18271
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerAlignmentGuideService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
18272
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerAlignmentGuideService });
|
|
18273
18273
|
}
|
|
18274
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
18274
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerAlignmentGuideService, decorators: [{
|
|
18275
18275
|
type: Injectable
|
|
18276
18276
|
}] });
|
|
18277
18277
|
|
|
@@ -18400,10 +18400,10 @@ class DesignerLayoutService {
|
|
|
18400
18400
|
const panels = isSymbolEditor ? this.symbolEditorDefaultPanels : this.defaultPanels;
|
|
18401
18401
|
return panels.find(p => p.id === panelId);
|
|
18402
18402
|
}
|
|
18403
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
18404
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
18403
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerLayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
18404
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerLayoutService, providedIn: 'root' });
|
|
18405
18405
|
}
|
|
18406
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
18406
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DesignerLayoutService, decorators: [{
|
|
18407
18407
|
type: Injectable,
|
|
18408
18408
|
args: [{ providedIn: 'root' }]
|
|
18409
18409
|
}] });
|
|
@@ -18422,8 +18422,8 @@ class ElementsPanelComponent {
|
|
|
18422
18422
|
onDragEnd(item) {
|
|
18423
18423
|
this.params.onElementDragEnd?.(item);
|
|
18424
18424
|
}
|
|
18425
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
18426
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
18425
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ElementsPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18426
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: ElementsPanelComponent, isStandalone: true, selector: "mm-elements-panel", inputs: { params: "params" }, ngImport: i0, template: `
|
|
18427
18427
|
<div class="panel-container">
|
|
18428
18428
|
<mm-element-palette
|
|
18429
18429
|
(elementDragStart)="onDragStart($event)"
|
|
@@ -18432,7 +18432,7 @@ class ElementsPanelComponent {
|
|
|
18432
18432
|
</div>
|
|
18433
18433
|
`, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.panel-container{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;background:var(--dv-pane-background-color, #1f2e40)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ElementPaletteComponent, selector: "mm-element-palette", outputs: ["elementDragStart", "elementDragEnd"] }] });
|
|
18434
18434
|
}
|
|
18435
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
18435
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ElementsPanelComponent, decorators: [{
|
|
18436
18436
|
type: Component,
|
|
18437
18437
|
args: [{ selector: 'mm-elements-panel', standalone: true, imports: [CommonModule, ElementPaletteComponent], template: `
|
|
18438
18438
|
<div class="panel-container">
|
|
@@ -18460,8 +18460,8 @@ class SymbolsPanelComponent {
|
|
|
18460
18460
|
onDragEnd() {
|
|
18461
18461
|
this.params.onSymbolDragEnd?.();
|
|
18462
18462
|
}
|
|
18463
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
18464
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
18463
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolsPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18464
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: SymbolsPanelComponent, isStandalone: true, selector: "mm-symbols-panel", inputs: { params: "params" }, ngImport: i0, template: `
|
|
18465
18465
|
<div class="panel-container">
|
|
18466
18466
|
<mm-symbol-library-panel
|
|
18467
18467
|
(symbolDragStart)="onDragStart($event)"
|
|
@@ -18470,7 +18470,7 @@ class SymbolsPanelComponent {
|
|
|
18470
18470
|
</div>
|
|
18471
18471
|
`, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.panel-container{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;background:var(--dv-pane-background-color, #1f2e40)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SymbolLibraryPanelComponent, selector: "mm-symbol-library-panel", outputs: ["symbolDragStart", "symbolDragEnd"] }] });
|
|
18472
18472
|
}
|
|
18473
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
18473
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolsPanelComponent, decorators: [{
|
|
18474
18474
|
type: Component,
|
|
18475
18475
|
args: [{ selector: 'mm-symbols-panel', standalone: true, imports: [CommonModule, SymbolLibraryPanelComponent], template: `
|
|
18476
18476
|
<div class="panel-container">
|
|
@@ -18520,8 +18520,8 @@ class PropertiesPanelComponent {
|
|
|
18520
18520
|
onPropertyChange(event) {
|
|
18521
18521
|
this._params().onPropertyChange?.(event);
|
|
18522
18522
|
}
|
|
18523
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
18524
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
18523
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PropertiesPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18524
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: PropertiesPanelComponent, isStandalone: true, selector: "mm-properties-panel", inputs: { params: "params" }, ngImport: i0, template: `
|
|
18525
18525
|
<div class="panel-container">
|
|
18526
18526
|
<mm-property-inspector
|
|
18527
18527
|
[selectedElements]="selectedElements()"
|
|
@@ -18535,7 +18535,7 @@ class PropertiesPanelComponent {
|
|
|
18535
18535
|
</div>
|
|
18536
18536
|
`, isInline: true, styles: [":host{display:block;height:100%}.panel-container{height:100%;overflow:hidden;background:var(--dv-pane-background-color, #1f2e40)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: PropertyInspectorComponent, selector: "mm-property-inspector", inputs: ["selectedElements", "selectedConnections", "selectedPrimitives", "selectedSymbolInstances", "symbolDefinitions", "availableStyleClasses"], outputs: ["propertyChange"] }] });
|
|
18537
18537
|
}
|
|
18538
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
18538
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PropertiesPanelComponent, decorators: [{
|
|
18539
18539
|
type: Component,
|
|
18540
18540
|
args: [{ selector: 'mm-properties-panel', standalone: true, imports: [CommonModule, PropertyInspectorComponent], template: `
|
|
18541
18541
|
<div class="panel-container">
|
|
@@ -18722,8 +18722,8 @@ class TransformPropertyEditorComponent {
|
|
|
18722
18722
|
* Helper for template
|
|
18723
18723
|
*/
|
|
18724
18724
|
String = String;
|
|
18725
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
18726
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
18725
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TransformPropertyEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18726
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: TransformPropertyEditorComponent, isStandalone: true, selector: "mm-transform-property-editor", inputs: { transformProperties: "transformProperties", propertyBindings: "propertyBindings", primitives: "primitives", symbolInstances: "symbolInstances" }, outputs: { propertiesChange: "propertiesChange", openBindings: "openBindings" }, ngImport: i0, template: `
|
|
18727
18727
|
<div class="transform-property-editor">
|
|
18728
18728
|
<div class="editor-toolbar">
|
|
18729
18729
|
<button kendoButton [svgIcon]="plusIcon" look="flat" (click)="addProperty()">
|
|
@@ -18980,7 +18980,7 @@ class TransformPropertyEditorComponent {
|
|
|
18980
18980
|
</div>
|
|
18981
18981
|
`, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.transform-property-editor{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.editor-toolbar{flex-shrink:0;display:flex;justify-content:flex-end;padding:.5rem;border-bottom:1px solid #e0e0e0}.properties-list{flex:1;min-height:0;overflow-y:auto;padding:.5rem}.empty-state{padding:1rem;text-align:center;color:#666}.hint{font-size:12px;color:#999;margin-top:.5rem}.property-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:.5rem;padding:.75rem;transition:box-shadow .2s}.property-card:hover{box-shadow:0 2px 8px #00000014}.property-card.editing{border-color:#1976d2;box-shadow:0 2px 8px #1976d233}.property-header{display:flex;justify-content:space-between;align-items:center}.property-info{display:flex;align-items:center;gap:.5rem}.property-name{font-weight:500;font-size:13px}.property-type-badge{display:inline-block;padding:.125rem .5rem;background:#e3f2fd;border-radius:4px;font-size:10px;color:#1976d2;text-transform:uppercase}.property-unit{font-size:11px;color:#666}.property-actions{display:flex;gap:.25rem}.property-details{display:flex;gap:1rem;margin-top:.5rem;font-size:11px;color:#666}.detail{display:flex;align-items:center;gap:.25rem}.color-swatch{display:inline-block;width:14px;height:14px;border-radius:3px;border:1px solid #ccc}.bindings-count{padding:.125rem .5rem;background:#f5f5f5;border-radius:4px}.property-description{margin-top:.5rem;font-size:11px;color:#999;font-style:italic}.property-edit-form{display:flex;flex-direction:column;gap:.5rem}.form-row{display:flex;align-items:center;gap:.5rem}.form-row label{flex:0 0 80px;font-size:11px;color:#666}.form-row input[type=text],.form-row input[type=number],.form-row select{flex:1;padding:.375rem .5rem;border:1px solid #e0e0e0;border-radius:4px;font-size:12px}.form-row input:focus,.form-row select:focus{outline:none;border-color:#1976d2}.form-row input[type=color]{flex:0 0 50px;height:32px;padding:2px;border:1px solid #e0e0e0;border-radius:4px}.form-row input[type=checkbox]{margin:0}.form-row.two-col{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.form-row.two-col>div{display:flex;flex-direction:column;gap:.25rem}.form-row.two-col label{flex:none}.form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #e0e0e0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i2$1.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "ngmodule", type: InputsModule }, { kind: "ngmodule", type: DropDownsModule }] });
|
|
18982
18982
|
}
|
|
18983
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
18983
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TransformPropertyEditorComponent, decorators: [{
|
|
18984
18984
|
type: Component,
|
|
18985
18985
|
args: [{ selector: 'mm-transform-property-editor', standalone: true, imports: [CommonModule, FormsModule, ButtonsModule, InputsModule, DropDownsModule, DecimalPipe], template: `
|
|
18986
18986
|
<div class="transform-property-editor">
|
|
@@ -19283,8 +19283,8 @@ class TransformPanelComponent {
|
|
|
19283
19283
|
onOpenBindings(property) {
|
|
19284
19284
|
this._params().onOpenBindings?.(property);
|
|
19285
19285
|
}
|
|
19286
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
19287
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
19286
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TransformPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
19287
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: TransformPanelComponent, isStandalone: true, selector: "mm-transform-panel", inputs: { params: "params" }, ngImport: i0, template: `
|
|
19288
19288
|
<div class="panel-container">
|
|
19289
19289
|
<mm-transform-property-editor
|
|
19290
19290
|
[transformProperties]="transformProperties()"
|
|
@@ -19297,7 +19297,7 @@ class TransformPanelComponent {
|
|
|
19297
19297
|
</div>
|
|
19298
19298
|
`, isInline: true, styles: [":host{display:block;height:100%}.panel-container{height:100%;overflow:hidden;background:var(--dv-pane-background-color, #1f2e40)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: TransformPropertyEditorComponent, selector: "mm-transform-property-editor", inputs: ["transformProperties", "propertyBindings", "primitives", "symbolInstances"], outputs: ["propertiesChange", "openBindings"] }] });
|
|
19299
19299
|
}
|
|
19300
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
19300
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TransformPanelComponent, decorators: [{
|
|
19301
19301
|
type: Component,
|
|
19302
19302
|
args: [{ selector: 'mm-transform-panel', standalone: true, imports: [CommonModule, TransformPropertyEditorComponent], template: `
|
|
19303
19303
|
<div class="panel-container">
|
|
@@ -19618,8 +19618,8 @@ class AnimationEditorComponent {
|
|
|
19618
19618
|
const unit = match[2] || 's';
|
|
19619
19619
|
return unit === 'ms' ? value / 1000 : value;
|
|
19620
19620
|
}
|
|
19621
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
19622
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
19621
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: AnimationEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
19622
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: AnimationEditorComponent, isStandalone: true, selector: "mm-animation-editor", inputs: { primitiveId: "primitiveId", animations: "animations", availableProperties: "availableProperties", availablePaths: "availablePaths" }, outputs: { animationsChange: "animationsChange" }, ngImport: i0, template: `
|
|
19623
19623
|
<div class="animation-editor">
|
|
19624
19624
|
<!-- Toolbar -->
|
|
19625
19625
|
<div class="editor-toolbar">
|
|
@@ -19918,7 +19918,7 @@ class AnimationEditorComponent {
|
|
|
19918
19918
|
</div>
|
|
19919
19919
|
`, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.animation-editor{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;border:1px solid #e0e0e0;border-radius:4px;background:#fafafa}.editor-toolbar{flex-shrink:0;display:flex;justify-content:flex-end;padding:.5rem;border-bottom:1px solid #e0e0e0}.section-content{flex:1;min-height:0;overflow-y:auto;padding:.5rem}.empty-state{text-align:center;padding:1rem;color:#666}.empty-state p{margin:0 0 .5rem;font-size:12px}.animation-item{background:#fff;border:1px solid #e0e0e0;border-radius:4px;margin-bottom:.5rem}.animation-item:last-child{margin-bottom:0}.item-header{display:flex;align-items:center;gap:.5rem;padding:.5rem;cursor:pointer}.item-header:hover{background:#f5f5f5}.item-icon{font-size:14px}.item-name{font-size:12px;font-weight:500;flex:1}.item-info{font-size:11px;color:#666}.item-actions{display:flex;gap:.25rem;opacity:0;transition:opacity .15s}.item-header:hover .item-actions{opacity:1}.item-edit-form{padding:.75rem;border-top:1px solid #e0e0e0;background:#fafafa}.form-row{margin-bottom:.75rem}.form-row:last-child{margin-bottom:0}.form-row label{display:block;font-size:11px;color:#666;margin-bottom:.25rem}.form-row input[type=checkbox]{margin-right:.5rem}.form-row-group{display:flex;gap:.5rem}.form-row.half{flex:1}.form-row.hint-row{background:#e3f2fd;padding:.5rem;border-radius:4px;margin-top:.5rem}.hint-text{font-size:11px;color:#1565c0;line-height:1.4}.input-with-unit{display:flex;align-items:center;gap:.25rem}.input-with-unit .unit{font-size:11px;color:#666}.anchor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;width:72px}.anchor-point{width:20px;height:20px;border:1px solid #ccc;border-radius:2px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.anchor-point:hover{border-color:#1976d2}.anchor-point.selected{border-color:#1976d2;background:#e3f2fd}.anchor-dot{width:6px;height:6px;border-radius:50%;background:#666}.anchor-point.selected .anchor-dot{background:#1976d2}.preset-picker{background:#fff;border:1px solid #1976d2;border-radius:4px;margin-top:.5rem}.preset-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:#e3f2fd;border-bottom:1px solid #1976d2;font-size:12px;font-weight:500}.preset-groups{padding:.5rem;max-height:200px;overflow-y:auto}.preset-group{margin-bottom:.75rem}.preset-group:last-child{margin-bottom:0}.group-name{font-size:10px;text-transform:uppercase;color:#666;margin-bottom:.25rem}.group-presets{display:flex;flex-wrap:wrap;gap:.25rem}.preset-button{font-size:11px;padding:.25rem .5rem;border:1px solid #e0e0e0;border-radius:3px;background:#fff;cursor:pointer}.preset-button:hover{border-color:#1976d2;background:#e3f2fd}.path-textarea{width:100%;min-height:60px;font-family:monospace;font-size:11px;padding:.5rem;border:1px solid #ccc;border-radius:4px;resize:vertical;line-height:1.4;box-sizing:border-box}.path-preview{margin:.5rem 0}.motion-path-preview{width:100%;height:60px;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:4px}.path-select{width:100%;padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:12px;background:#fff}.flow-particles-hint{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#e8f5e9;border-radius:4px;margin-bottom:.75rem;font-size:11px;color:#2e7d32}.hint-icon{font-size:14px}.color-input{width:40px;height:24px;border:1px solid #ccc;border-radius:4px;cursor:pointer;padding:0}.color-hint{font-size:10px;color:#666;margin-left:.5rem}:host ::ng-deep .k-dropdownlist,:host ::ng-deep .k-textbox,:host ::ng-deep .k-numerictextbox{width:100%}:host ::ng-deep .k-input-sm{font-size:12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i2$1.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "ngmodule", type: InputsModule }, { kind: "directive", type: i3$1.TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { kind: "component", type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { kind: "ngmodule", type: DropDownsModule }, { kind: "component", type: i4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "ngmodule", type: IconsModule }] });
|
|
19920
19920
|
}
|
|
19921
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
19921
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: AnimationEditorComponent, decorators: [{
|
|
19922
19922
|
type: Component,
|
|
19923
19923
|
args: [{ selector: 'mm-animation-editor', standalone: true, imports: [
|
|
19924
19924
|
CommonModule,
|
|
@@ -20267,8 +20267,8 @@ class AnimationsPanelComponent {
|
|
|
20267
20267
|
onAnimationsChange(event) {
|
|
20268
20268
|
this._params().onAnimationsChange?.(event);
|
|
20269
20269
|
}
|
|
20270
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
20271
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
20270
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: AnimationsPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20271
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: AnimationsPanelComponent, isStandalone: true, selector: "mm-animations-panel", inputs: { params: "params" }, ngImport: i0, template: `
|
|
20272
20272
|
<div class="panel-container">
|
|
20273
20273
|
@if (primitiveId()) {
|
|
20274
20274
|
@if (supportsAnimations()) {
|
|
@@ -20294,7 +20294,7 @@ class AnimationsPanelComponent {
|
|
|
20294
20294
|
</div>
|
|
20295
20295
|
`, isInline: true, styles: [":host{display:block;height:100%}.panel-container{height:100%;overflow:hidden;background:var(--dv-pane-background-color, #1f2e40)}.no-selection,.not-supported{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:1rem;text-align:center;color:var(--text-secondary, #9292a6)}.no-selection p,.not-supported p{margin:0}.no-selection .hint,.not-supported .hint{margin-top:.5rem;font-size:.85rem;opacity:.7}.not-supported{color:var(--text-muted, #6c757d)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AnimationEditorComponent, selector: "mm-animation-editor", inputs: ["primitiveId", "animations", "availableProperties", "availablePaths"], outputs: ["animationsChange"] }] });
|
|
20296
20296
|
}
|
|
20297
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
20297
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: AnimationsPanelComponent, decorators: [{
|
|
20298
20298
|
type: Component,
|
|
20299
20299
|
args: [{ selector: 'mm-animations-panel', standalone: true, imports: [CommonModule, AnimationEditorComponent], template: `
|
|
20300
20300
|
<div class="panel-container">
|
|
@@ -20398,8 +20398,8 @@ class SimulationPanelComponent {
|
|
|
20398
20398
|
this._localValues.set({});
|
|
20399
20399
|
this.resetValues.emit();
|
|
20400
20400
|
}
|
|
20401
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
20402
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
20401
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SimulationPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20402
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SimulationPanelComponent, isStandalone: true, selector: "mm-simulation-panel", inputs: { properties: "properties", values: "values" }, outputs: { valueChange: "valueChange", resetValues: "resetValues" }, ngImport: i0, template: `
|
|
20403
20403
|
@if (hasProperties()) {
|
|
20404
20404
|
<div class="simulation-panel" data-testid="simulation-panel">
|
|
20405
20405
|
<div class="panel-toolbar">
|
|
@@ -20492,7 +20492,7 @@ class SimulationPanelComponent {
|
|
|
20492
20492
|
}
|
|
20493
20493
|
`, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.simulation-panel{background:#fff;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.panel-toolbar{flex-shrink:0;display:flex;justify-content:flex-end;padding:.5rem;border-bottom:1px solid #e0e0e0}.panel-content{padding:1rem;flex:1;min-height:0;overflow-y:auto}.properties-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.property-control{position:relative;background:#fafafa;border:1px solid #e0e0e0;border-radius:8px;padding:.75rem 2rem .75rem .75rem}.property-control:hover{border-color:#bdbdbd}.property-control.color-type{min-width:180px}.control-header{display:flex;align-items:baseline;gap:.25rem;margin-bottom:.5rem}.property-name{font-size:12px;font-weight:500;color:#333}.property-unit{font-size:10px;color:#666}.number-control{display:flex;align-items:center;gap:.5rem;min-width:0}.value-slider{flex:1;min-width:0;height:6px;-webkit-appearance:none;appearance:none;background:linear-gradient(to right,#e3f2fd,#1976d2);border-radius:3px;cursor:pointer}.value-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#1976d2;cursor:pointer;border:2px solid #fff;box-shadow:0 1px 4px #0000004d}.value-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#1976d2;cursor:pointer;border:2px solid #fff;box-shadow:0 1px 4px #0000004d}.value-input{flex:0 0 50px;width:50px;padding:.25rem .375rem;border:1px solid #e0e0e0;border-radius:4px;font-size:12px;text-align:right;box-sizing:border-box}.value-input:focus{outline:none;border-color:#1976d2}.value-range{display:flex;justify-content:space-between;font-size:9px;color:#999;margin-top:.25rem}.color-control{display:flex;align-items:center;gap:.5rem}.color-control input[type=color]{width:40px;height:32px;padding:2px;border:1px solid #e0e0e0;border-radius:4px;cursor:pointer}.color-input{flex:1;padding:.25rem .5rem;border:1px solid #e0e0e0;border-radius:4px;font-size:11px;font-family:Consolas,Monaco,monospace}.color-input:focus{outline:none;border-color:#1976d2}.boolean-control{display:flex;align-items:center}.toggle-label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.toggle-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.toggle-text{font-size:12px;color:#666}.string-control input{width:100%;padding:.375rem .5rem;border:1px solid #e0e0e0;border-radius:4px;font-size:12px}.string-control input:focus{outline:none;border-color:#1976d2}.reset-button{position:absolute;top:.5rem;right:.25rem;opacity:0;transition:opacity .15s}.property-control:hover .reset-button{opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i2$1.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "ngmodule", type: InputsModule }] });
|
|
20494
20494
|
}
|
|
20495
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
20495
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SimulationPanelComponent, decorators: [{
|
|
20496
20496
|
type: Component,
|
|
20497
20497
|
args: [{ selector: 'mm-simulation-panel', standalone: true, imports: [CommonModule, FormsModule, ButtonsModule, InputsModule, DecimalPipe], template: `
|
|
20498
20498
|
@if (hasProperties()) {
|
|
@@ -20623,8 +20623,8 @@ class SimulationPanelWrapperComponent {
|
|
|
20623
20623
|
onResetValues() {
|
|
20624
20624
|
this._params().onResetValues?.();
|
|
20625
20625
|
}
|
|
20626
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
20627
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
20626
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SimulationPanelWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20627
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SimulationPanelWrapperComponent, isStandalone: true, selector: "mm-simulation-panel-wrapper", inputs: { params: "params" }, ngImport: i0, template: `
|
|
20628
20628
|
<div class="panel-container">
|
|
20629
20629
|
@if (properties().length > 0) {
|
|
20630
20630
|
<mm-simulation-panel
|
|
@@ -20642,7 +20642,7 @@ class SimulationPanelWrapperComponent {
|
|
|
20642
20642
|
</div>
|
|
20643
20643
|
`, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.panel-container{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;background:var(--dv-pane-background-color, #1f2e40)}.no-properties{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:1rem;text-align:center;color:var(--text-secondary, #9292a6)}.no-properties p{margin:0}.no-properties .hint{margin-top:.5rem;font-size:.85rem;opacity:.7}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SimulationPanelComponent, selector: "mm-simulation-panel", inputs: ["properties", "values"], outputs: ["valueChange", "resetValues"] }] });
|
|
20644
20644
|
}
|
|
20645
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
20645
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SimulationPanelWrapperComponent, decorators: [{
|
|
20646
20646
|
type: Component,
|
|
20647
20647
|
args: [{ selector: 'mm-simulation-panel-wrapper', standalone: true, imports: [CommonModule, SimulationPanelComponent], template: `
|
|
20648
20648
|
<div class="panel-container">
|
|
@@ -20688,8 +20688,8 @@ class SettingsPanelComponent {
|
|
|
20688
20688
|
this.onSettingsChange(key, value);
|
|
20689
20689
|
}
|
|
20690
20690
|
}
|
|
20691
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
20692
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
20691
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SettingsPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20692
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: SettingsPanelComponent, isStandalone: true, selector: "mm-settings-panel", ngImport: i0, template: `
|
|
20693
20693
|
<div class="panel-container">
|
|
20694
20694
|
<div class="settings-section">
|
|
20695
20695
|
<h4>Symbol</h4>
|
|
@@ -20764,7 +20764,7 @@ class SettingsPanelComponent {
|
|
|
20764
20764
|
</div>
|
|
20765
20765
|
`, isInline: true, styles: [".panel-container{padding:.5rem;background:#fff}.settings-section{margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #e0e0e0}.settings-section:last-child{border-bottom:none;margin-bottom:0}.settings-section h4{font-size:11px;font-weight:600;text-transform:uppercase;color:#666;margin:0 0 .5rem;letter-spacing:.5px}.form-group{margin-bottom:.5rem}.form-group label{display:block;font-size:11px;color:#666;margin-bottom:.25rem}.form-group input,.form-group textarea,.form-group kendo-numerictextbox{width:100%}.form-row{display:flex;gap:.5rem}.form-row .form-group{flex:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: InputsModule }, { kind: "directive", type: i3$1.TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { kind: "component", type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { kind: "directive", type: i3$1.TextAreaDirective, selector: "textarea[kendoTextArea]", inputs: ["autoSize", "value"], outputs: ["valueChange"] }, { kind: "ngmodule", type: NumericTextBoxModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
20766
20766
|
}
|
|
20767
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
20767
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SettingsPanelComponent, decorators: [{
|
|
20768
20768
|
type: Component,
|
|
20769
20769
|
args: [{ selector: 'mm-settings-panel', standalone: true, imports: [CommonModule, FormsModule, InputsModule, NumericTextBoxModule], template: `
|
|
20770
20770
|
<div class="panel-container">
|
|
@@ -21073,8 +21073,8 @@ class StylesPanelComponent {
|
|
|
21073
21073
|
setTimeout(() => document.body.removeChild(preview), 0);
|
|
21074
21074
|
}
|
|
21075
21075
|
}
|
|
21076
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
21077
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
21076
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: StylesPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
21077
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: StylesPanelComponent, isStandalone: true, selector: "mm-styles-panel", ngImport: i0, template: `
|
|
21078
21078
|
<div class="panel-container">
|
|
21079
21079
|
<div class="panel-toolbar">
|
|
21080
21080
|
<button class="add-button" (click)="addStyle()">+ Add Style</button>
|
|
@@ -21198,7 +21198,7 @@ class StylesPanelComponent {
|
|
|
21198
21198
|
</div>
|
|
21199
21199
|
`, isInline: true, styles: [":host{--panel-bg: var(--designer-panel-bg, #fff);--panel-bg-elevated: var(--designer-panel-bg-elevated, #fafafa);--panel-border: var(--designer-panel-border, #e0e0e0);--panel-text: var(--designer-panel-text, #333);--panel-text-secondary: var(--designer-panel-text-secondary, #666);--panel-text-muted: var(--designer-panel-text-muted, #999);--panel-accent: var(--designer-panel-accent, #1976d2);--panel-accent-hover-bg: var(--designer-panel-accent-hover-bg, #e3f2fd);--panel-input-bg: var(--designer-panel-input-bg, #fff);--panel-delete-hover-bg: var(--designer-panel-delete-hover-bg, #ffebee);--panel-delete-color: var(--designer-panel-delete-color, #d32f2f)}.panel-container{display:flex;flex-direction:column;height:100%;min-height:0;overflow-y:auto;background:var(--panel-bg)}.panel-toolbar{display:flex;padding:.5rem;border-bottom:1px solid var(--panel-border);flex-shrink:0}.add-button{flex:1;padding:.375rem .75rem;font-size:12px;border:1px dashed var(--panel-border);background:var(--panel-bg-elevated);border-radius:4px;cursor:pointer;color:var(--panel-text-secondary);transition:all .15s ease}.add-button:hover{border-color:var(--panel-accent);background:var(--panel-accent-hover-bg);color:var(--panel-accent)}.style-list{flex:0 0 auto;padding:.5rem}.style-item{display:flex;align-items:center;gap:.5rem;padding:.375rem .5rem;border:1px solid var(--panel-border);border-radius:4px;margin-bottom:.375rem;cursor:grab;background:var(--panel-bg);transition:all .15s ease}.style-item:hover{border-color:var(--panel-accent);background:var(--panel-bg-elevated)}.style-item.selected{border-color:var(--panel-accent);background:var(--panel-accent-hover-bg)}.style-item:active{cursor:grabbing}.style-preview{width:24px;height:24px;flex-shrink:0;border-radius:3px;overflow:hidden;background:repeating-conic-gradient(#555 0% 25%,#333 0% 50%) 50% / 8px 8px}.style-preview svg{display:block;width:100%;height:100%}.style-name{flex:1;font-size:12px;color:var(--panel-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.delete-button{width:20px;height:20px;padding:0;border:none;background:transparent;cursor:pointer;color:var(--panel-text-muted);border-radius:3px;display:flex;align-items:center;justify-content:center;opacity:.5;transition:all .15s ease}.delete-button:hover{background:var(--panel-delete-hover-bg);color:var(--panel-delete-color);opacity:1}.empty-state{padding:1.5rem 1rem;text-align:center;color:var(--panel-text-muted)}.empty-state p{margin:0;font-size:12px}.empty-state .hint{margin-top:.25rem;font-size:11px}.style-editor{border-top:1px solid var(--panel-border);padding:.5rem;background:var(--panel-bg-elevated)}.editor-section h4{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--panel-text-secondary);margin:0 0 .5rem;letter-spacing:.5px}.form-group{margin-bottom:.5rem}.form-group label{display:block;font-size:11px;color:var(--panel-text-secondary);margin-bottom:.25rem}.form-group input[type=text]{width:150px;padding:.25rem .5rem;border:1px solid var(--panel-border);border-radius:4px;font-size:12px;background:var(--panel-input-bg);color:var(--panel-text)}.form-group input[type=text]:focus{outline:none;border-color:var(--panel-accent)}.form-group input[type=number]{width:80px;padding:.25rem .5rem;border:1px solid var(--panel-border);border-radius:4px;font-size:12px;background:var(--panel-input-bg);color:var(--panel-text)}.form-group input[type=number]:focus{outline:none;border-color:var(--panel-accent)}.color-row{display:flex;align-items:center;gap:.5rem}.color-row input[type=color]{width:32px;height:24px;padding:2px;border:1px solid var(--panel-border);border-radius:4px;cursor:pointer}.opacity-slider{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:linear-gradient(to right,transparent,var(--panel-accent));border-radius:2px;cursor:pointer}.opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--panel-accent);cursor:pointer;border:2px solid var(--panel-bg);box-shadow:0 1px 3px #0000004d}.opacity-slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--panel-accent);cursor:pointer;border:2px solid var(--panel-bg);box-shadow:0 1px 3px #0000004d}.opacity-value{width:36px;font-size:11px;color:var(--panel-text-secondary);text-align:right}.line-type-row{display:flex;align-items:center;gap:.5rem}.line-type-select{flex:1;padding:.25rem .5rem;border:1px solid var(--panel-border);border-radius:4px;font-size:12px;background:var(--panel-input-bg);color:var(--panel-text)}.line-type-select:focus{outline:none;border-color:var(--panel-accent)}.line-preview{width:50px;height:16px;border:1px solid var(--panel-border);border-radius:3px;background:var(--panel-input-bg)}.panel-footer{padding:.5rem;border-top:1px solid var(--panel-border);background:var(--panel-bg-elevated)}.panel-footer .hint{margin:0;font-size:10px;color:var(--panel-text-muted);text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "ngmodule", type: InputsModule }, { kind: "ngmodule", type: ButtonsModule }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
21200
21200
|
}
|
|
21201
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
21201
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: StylesPanelComponent, decorators: [{
|
|
21202
21202
|
type: Component,
|
|
21203
21203
|
args: [{ selector: 'mm-styles-panel', standalone: true, imports: [CommonModule, FormsModule, InputsModule, ButtonsModule, DecimalPipe], template: `
|
|
21204
21204
|
<div class="panel-container">
|
|
@@ -27296,8 +27296,8 @@ class ProcessDesignerComponent {
|
|
|
27296
27296
|
return '';
|
|
27297
27297
|
}
|
|
27298
27298
|
}
|
|
27299
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
27300
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
27299
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ProcessDesignerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
27300
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: ProcessDesignerComponent, isStandalone: true, selector: "mm-process-designer", inputs: { diagramConfig: "diagramConfig", editorMode: "editorMode", showSaveButtons: "showSaveButtons", transformProperties: "transformProperties", propertyBindings: "propertyBindings", simulationPropertyValues: "simulationPropertyValues", useDockview: "useDockview", symbolSettings: "symbolSettings", styleClasses: "styleClasses" }, outputs: { diagramChange: "diagramChange", saveRequest: "saveRequest", transformPropertiesChange: "transformPropertiesChange", simulationValueChange: "simulationValueChange", simulationReset: "simulationReset", symbolSettingsChange: "symbolSettingsChange", styleClassesChange: "styleClassesChange" }, host: { listeners: { "keydown": "onKeyDown($event)" } }, providers: [
|
|
27301
27301
|
DesignerDiagramService,
|
|
27302
27302
|
DesignerSelectionService,
|
|
27303
27303
|
DesignerClipboardService,
|
|
@@ -27319,7 +27319,7 @@ class ProcessDesignerComponent {
|
|
|
27319
27319
|
DesignerAlignmentGuideService
|
|
27320
27320
|
], viewQueries: [{ propertyName: "canvasContainerRef", first: true, predicate: ["canvasContainer"], descendants: true }, { propertyName: "svgFileInputRef", first: true, predicate: ["svgFileInput"], descendants: true }], ngImport: i0, template: "<div class=\"process-designer\" tabindex=\"0\" data-testid=\"process-designer\">\n <!-- Toolbar -->\n <kendo-toolbar class=\"designer-toolbar\">\n @if (showSaveButtons) {\n <kendo-toolbar-buttongroup>\n <kendo-toolbar-button [svgIcon]=\"saveIcon\" (click)=\"save()\" title=\"Save (Ctrl+S)\" [disabled]=\"!hasChanges()\"></kendo-toolbar-button>\n <kendo-toolbar-button [svgIcon]=\"fileTxtIcon\" (click)=\"saveAs()\" title=\"Save As...\"></kendo-toolbar-button>\n <kendo-toolbar-button [svgIcon]=\"pencilIcon\" (click)=\"rename()\" title=\"Rename...\"></kendo-toolbar-button>\n </kendo-toolbar-buttongroup>\n <kendo-toolbar-separator></kendo-toolbar-separator>\n }\n\n <kendo-toolbar-buttongroup>\n <kendo-toolbar-button [svgIcon]=\"undoIcon\" (click)=\"undo()\" title=\"Undo (Ctrl+Z)\" [disabled]=\"!canUndo()\"></kendo-toolbar-button>\n <kendo-toolbar-button [svgIcon]=\"redoIcon\" (click)=\"redo()\" title=\"Redo (Ctrl+Shift+Z)\" [disabled]=\"!canRedo()\"></kendo-toolbar-button>\n </kendo-toolbar-buttongroup>\n\n <kendo-toolbar-separator></kendo-toolbar-separator>\n\n <kendo-toolbar-buttongroup>\n <kendo-toolbar-button [svgIcon]=\"arrowsNoRepeatIcon\"\n [toggleable]=\"true\"\n [selected]=\"mode() === 'select'\"\n (click)=\"setMode('select')\"\n title=\"Select tool (V)\"></kendo-toolbar-button>\n <kendo-toolbar-button [svgIcon]=\"handIcon\"\n [toggleable]=\"true\"\n [selected]=\"mode() === 'pan'\"\n (click)=\"setMode('pan')\"\n title=\"Pan tool (H)\"></kendo-toolbar-button>\n <kendo-toolbar-button [svgIcon]=\"linkIcon\"\n [toggleable]=\"true\"\n [selected]=\"mode() === 'connect'\"\n (click)=\"setMode('connect')\"\n title=\"Connect tool (C)\"></kendo-toolbar-button>\n </kendo-toolbar-buttongroup>\n\n <kendo-toolbar-separator></kendo-toolbar-separator>\n\n <kendo-toolbar-buttongroup>\n <kendo-toolbar-button [svgIcon]=\"zoomInIcon\" (click)=\"zoomIn()\" title=\"Zoom in\"></kendo-toolbar-button>\n <span class=\"zoom-level\">{{ zoomPercentage() }}%</span>\n <kendo-toolbar-button [svgIcon]=\"zoomOutIcon\" (click)=\"zoomOut()\" title=\"Zoom out\"></kendo-toolbar-button>\n <kendo-toolbar-button [svgIcon]=\"zoomBestFitIcon\" (click)=\"fitToView()\" title=\"Fit content to view\"></kendo-toolbar-button>\n </kendo-toolbar-buttongroup>\n\n <kendo-toolbar-separator></kendo-toolbar-separator>\n\n <kendo-toolbar-buttongroup>\n <kendo-toolbar-button [svgIcon]=\"gridIcon\"\n [toggleable]=\"true\"\n [selected]=\"showGrid()\"\n (selectedChange)=\"toggleGrid()\"\n title=\"Show/hide grid\"></kendo-toolbar-button>\n <kendo-toolbar-button text=\"\u2316\"\n [toggleable]=\"true\"\n [selected]=\"snapToGrid()\"\n (selectedChange)=\"toggleSnapToGrid()\"\n title=\"Snap to grid\"></kendo-toolbar-button>\n <kendo-toolbar-button [svgIcon]=\"eyeIcon\"\n [toggleable]=\"true\"\n [selected]=\"showElementNames()\"\n (selectedChange)=\"toggleElementNames()\"\n title=\"Show element names\"></kendo-toolbar-button>\n </kendo-toolbar-buttongroup>\n\n <kendo-toolbar-separator></kendo-toolbar-separator>\n\n <kendo-toolbar-button [svgIcon]=\"uploadIcon\" (click)=\"onImportSvgClick()\" title=\"Import SVG file\"></kendo-toolbar-button>\n <input #svgFileInput\n type=\"file\"\n accept=\".svg,image/svg+xml\"\n style=\"display: none\"\n (change)=\"onSvgFileSelected($event)\"/>\n\n <kendo-toolbar-spacer></kendo-toolbar-spacer>\n\n <kendo-toolbar-buttongroup>\n <kendo-toolbar-button [svgIcon]=\"groupIcon\" (click)=\"groupSelected()\" title=\"Group (Ctrl+G)\"\n [disabled]=\"!canGroup()\"></kendo-toolbar-button>\n <kendo-toolbar-button [svgIcon]=\"ungroupIcon\" (click)=\"ungroupSelected()\" title=\"Ungroup (Ctrl+Shift+G)\"\n [disabled]=\"!canUngroup()\"></kendo-toolbar-button>\n </kendo-toolbar-buttongroup>\n\n <kendo-toolbar-separator></kendo-toolbar-separator>\n\n <kendo-toolbar-button [svgIcon]=\"trashIcon\" (click)=\"deleteSelected()\" title=\"Delete selected\"\n [disabled]=\"!hasSelection()\"></kendo-toolbar-button>\n\n <kendo-toolbar-separator></kendo-toolbar-separator>\n\n @if (useDockview) {\n <!-- View menu for dockview panel controls -->\n <kendo-toolbar-dropdownbutton\n [svgIcon]=\"eyeIcon\"\n [data]=\"viewMenuItems()\"\n title=\"View panels\"\n (itemClick)=\"onViewMenuItemClick($event)\">\n </kendo-toolbar-dropdownbutton>\n } @else {\n <!-- Legacy panel toggle buttons -->\n <kendo-toolbar-buttongroup>\n <kendo-toolbar-button [svgIcon]=\"menuIcon\"\n [toggleable]=\"true\"\n [selected]=\"showLeftPanel()\"\n (selectedChange)=\"toggleLeftPanel()\"\n title=\"Toggle element palette (Alt+1)\"></kendo-toolbar-button>\n <kendo-toolbar-button [svgIcon]=\"gearsIcon\"\n [toggleable]=\"true\"\n [selected]=\"showRightPanel()\"\n (selectedChange)=\"toggleRightPanel()\"\n title=\"Toggle property inspector (Alt+2)\"></kendo-toolbar-button>\n </kendo-toolbar-buttongroup>\n }\n </kendo-toolbar>\n\n <!-- Main content area -->\n <div class=\"designer-content\" [class.dockview-enabled]=\"useDockview\"\n [style.display]=\"useDockview ? 'flex' : null\"\n [style.height]=\"useDockview ? '100%' : null\"\n [style.minHeight]=\"useDockview ? '0' : null\">\n <!-- Dockview panels container (when dockview enabled) -->\n @if (useDockview) {\n <div class=\"dockview-panels-container\"\n [style.width.px]=\"dockviewPanelWidth()\"\n [style.flex]=\"'0 0 ' + dockviewPanelWidth() + 'px'\">\n <mm-dockview\n class=\"designer-dockview\"\n [components]=\"panelComponents\"\n (ready)=\"onDockviewReady($event)\">\n </mm-dockview>\n </div>\n <!-- Resize handle for dockview panels -->\n <div class=\"dockview-resize-handle\"\n (mousedown)=\"onDockviewResizeStart($event)\"\n title=\"Drag to resize panels\">\n </div>\n }\n\n <!-- Legacy left sidebar (when dockview disabled) -->\n @if (!useDockview) {\n @if (showLeftPanel()) {\n <div class=\"designer-sidebar\">\n <div class=\"sidebar-header\">\n <div class=\"sidebar-tabs\">\n <button class=\"sidebar-tab\"\n [class.active]=\"activeSidebarTab() === 'elements'\"\n (click)=\"setActiveSidebarTab('elements')\">\n {{ editorMode === 'symbol' ? 'Primitives' : 'Elements' }}\n </button>\n <button class=\"sidebar-tab\"\n [class.active]=\"activeSidebarTab() === 'symbols'\"\n (click)=\"setActiveSidebarTab('symbols')\">\n Symbols\n </button>\n </div>\n <button class=\"sidebar-close\" (click)=\"toggleLeftPanel()\" title=\"Close panel\">\u00D7</button>\n </div>\n <div class=\"sidebar-content\">\n @if (activeSidebarTab() === 'elements') {\n <mm-element-palette\n (elementDragStart)=\"onPaletteDragStart($event)\"\n (elementDragEnd)=\"onPaletteDragEnd($event)\">\n </mm-element-palette>\n } @else {\n <mm-symbol-library-panel\n (symbolDragStart)=\"onSymbolDragStart($event)\"\n (symbolDragEnd)=\"onSymbolDragEnd()\">\n </mm-symbol-library-panel>\n }\n </div>\n </div>\n } @else {\n <div class=\"sidebar-collapsed left\" (click)=\"toggleLeftPanel()\" title=\"Show element palette\">\n <span class=\"collapsed-icon\">\u2630</span>\n </div>\n }\n } <!-- End of legacy left sidebar -->\n\n <!-- Canvas area (always visible) -->\n <div class=\"designer-canvas-container\"\n #canvasContainer\n data-testid=\"designer-canvas-container\"\n (mousedown)=\"onCanvasMouseDown($event)\"\n (mousemove)=\"onCanvasMouseMove($event)\"\n (mouseup)=\"onCanvasMouseUp($event)\"\n (wheel)=\"onCanvasWheel($event)\"\n (dragover)=\"onCanvasDragOver($event)\"\n (drop)=\"onCanvasDrop($event)\"\n (contextmenu)=\"onCanvasContextMenu($event)\">\n <svg class=\"designer-canvas\"\n data-testid=\"designer-canvas\"\n [attr.width]=\"scaledCanvasWidth()\"\n [attr.height]=\"scaledCanvasHeight()\"\n [attr.viewBox]=\"viewBox()\"\n preserveAspectRatio=\"xMinYMin meet\"\n [style.cursor]=\"canvasCursor()\"\n (mousedown)=\"onSvgMouseDown($event)\">\n\n <!-- Background (rendered first, behind everything) -->\n <!-- Canvas background color is set via CSS variable --designer-canvas-color for theme support -->\n <rect x=\"0\" y=\"0\"\n [attr.width]=\"canvasConfig().width\"\n [attr.height]=\"canvasConfig().height\"\n class=\"canvas-background\"\n pointer-events=\"none\"/>\n\n <!-- Grid (on top of background) -->\n <!-- Grid color is set via CSS variable --designer-grid-color for theme support -->\n @if (showGrid()) {\n <defs>\n <pattern id=\"designerGrid\" [attr.width]=\"gridSize()\" [attr.height]=\"gridSize()\"\n patternUnits=\"userSpaceOnUse\">\n <path [attr.d]=\"'M ' + gridSize() + ' 0 L 0 0 0 ' + gridSize()\"\n fill=\"none\" class=\"designer-grid-line\" stroke-width=\"0.5\"/>\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\"\n [attr.width]=\"canvasConfig().width\"\n [attr.height]=\"canvasConfig().height\"\n fill=\"url(#designerGrid)\"\n pointer-events=\"none\"/>\n }\n\n <!-- Invisible click capture layer (for clicking on empty canvas) -->\n <rect x=\"0\" y=\"0\"\n [attr.width]=\"canvasConfig().width\"\n [attr.height]=\"canvasConfig().height\"\n fill=\"transparent\"\n class=\"canvas-click-layer\"/>\n\n <!-- Connections (only in diagram mode) -->\n @if (editorMode === 'diagram') {\n @for (connection of diagram().connections; track connection.id) {\n <g class=\"connection\"\n [class.selected]=\"isConnectionSelected(connection.id)\"\n (mousedown)=\"onConnectionClick($event, connection)\">\n <path [attr.d]=\"getConnectionPath(connection)\"\n [attr.stroke]=\"connection.style.strokeColor\"\n [attr.stroke-width]=\"isConnectionSelected(connection.id) ? connection.style.strokeWidth + 2 : connection.style.strokeWidth\"\n fill=\"none\"\n stroke-linecap=\"round\"/>\n </g>\n }\n\n <!-- Elements in their actual z-order -->\n @for (element of orderedElements(); track element.id) {\n <g class=\"element\"\n [class.selected]=\"isElementSelected(element.id)\"\n [class.dragging]=\"dragState().isDragging && dragState().elementId === element.id\"\n [attr.transform]=\"getElementTransform(element)\"\n (mousedown)=\"onElementMouseDown($event, element)\"\n (contextmenu)=\"onElementContextMenu($event, element)\">\n\n <!-- Invisible hit area (larger than visual for easier clicking) -->\n <rect x=\"-4\" y=\"-4\"\n [attr.width]=\"element.size.width + 8\"\n [attr.height]=\"element.size.height + 8\"\n fill=\"transparent\"\n class=\"element-hit-area\"/>\n\n <!-- Element visual (simplified for designer) -->\n <rect x=\"0\" y=\"0\"\n [attr.width]=\"element.size.width\"\n [attr.height]=\"element.size.height\"\n [attr.fill]=\"getElementFill(element)\"\n [attr.stroke]=\"isElementSelected(element.id) ? '#1976d2' : getElementStroke(element)\"\n [attr.stroke-width]=\"isElementSelected(element.id) ? 2 : (element.style?.strokeWidth ?? 1)\"\n [attr.rx]=\"getElementRadius(element)\"\n [attr.opacity]=\"element.style?.opacity ?? 1\"\n pointer-events=\"none\"/>\n\n <!-- Element type icon/label -->\n <text class=\"element-label\"\n [attr.x]=\"element.size.width / 2\"\n [attr.y]=\"element.size.height / 2\"\n text-anchor=\"middle\"\n dominant-baseline=\"middle\"\n font-size=\"10\"\n fill=\"#666\">\n {{ getElementTypeLabel(element) }}\n </text>\n\n <!-- Element name -->\n @if (showElementNames()) {\n <text class=\"element-label\"\n [attr.x]=\"element.size.width / 2\"\n [attr.y]=\"element.size.height + 10\"\n text-anchor=\"middle\">\n {{ element.name }}\n </text>\n }\n\n <!-- Selection handles (zoom-scaled) -->\n @if (isElementSelected(element.id)) {\n <!-- Corner resize handles -->\n <rect class=\"resize-handle nw\" [attr.x]=\"-handleOffset()\" [attr.y]=\"-handleOffset()\" [attr.width]=\"handleSize()\" [attr.height]=\"handleSize()\" fill=\"#1976d2\"\n (mousedown)=\"onResizeHandleMouseDown($event, element, 'nw')\"/>\n <rect class=\"resize-handle ne\" [attr.x]=\"element.size.width - handleOffset()\" [attr.y]=\"-handleOffset()\" [attr.width]=\"handleSize()\" [attr.height]=\"handleSize()\" fill=\"#1976d2\"\n (mousedown)=\"onResizeHandleMouseDown($event, element, 'ne')\"/>\n <rect class=\"resize-handle sw\" [attr.x]=\"-handleOffset()\" [attr.y]=\"element.size.height - handleOffset()\" [attr.width]=\"handleSize()\" [attr.height]=\"handleSize()\" fill=\"#1976d2\"\n (mousedown)=\"onResizeHandleMouseDown($event, element, 'sw')\"/>\n <rect class=\"resize-handle se\" [attr.x]=\"element.size.width - handleOffset()\" [attr.y]=\"element.size.height - handleOffset()\" [attr.width]=\"handleSize()\" [attr.height]=\"handleSize()\" fill=\"#1976d2\"\n (mousedown)=\"onResizeHandleMouseDown($event, element, 'se')\"/>\n\n <!-- Connection ports -->\n <circle class=\"connection-port\" [attr.cx]=\"element.size.width / 2\" cy=\"0\" [attr.r]=\"portRadius()\" fill=\"#4caf50\"/>\n <circle class=\"connection-port\" [attr.cx]=\"element.size.width / 2\" [attr.cy]=\"element.size.height\" [attr.r]=\"portRadius()\" fill=\"#4caf50\"/>\n <circle class=\"connection-port\" cx=\"0\" [attr.cy]=\"element.size.height / 2\" [attr.r]=\"portRadius()\" fill=\"#4caf50\"/>\n <circle class=\"connection-port\" [attr.cx]=\"element.size.width\" [attr.cy]=\"element.size.height / 2\" [attr.r]=\"portRadius()\" fill=\"#4caf50\"/>\n }\n </g>\n }\n }\n\n <!-- Primitives in their actual z-order -->\n @for (primitive of orderedPrimitives(); track primitive.id) {\n <g class=\"primitive\"\n [attr.data-testid]=\"'primitive-' + primitive.type + '-' + primitive.id\"\n [class.selected]=\"isPrimitiveSelected(primitive.id)\"\n [class.dragging]=\"dragState().isDragging && dragState().elementId === primitive.id\"\n [attr.transform]=\"getPrimitiveTransform(primitive)\"\n (mousedown)=\"onPrimitiveMouseDown($event, primitive)\"\n (dblclick)=\"onPrimitiveDoubleClick(primitive)\"\n (contextmenu)=\"onPrimitiveContextMenu($event, primitive)\">\n\n <!-- Render based on primitive type -->\n <!-- Resolve style once for this primitive (class + inline merged) -->\n @let rs = resolveStyle(primitive);\n\n @switch (primitive.type) {\n @case ('rectangle') {\n @if (primitiveHasAnimations(primitive) || hasFillLevel(primitive)) {\n <!-- Rectangle with animations or fillLevel - use innerHTML for clip-path support -->\n <g [innerHTML]=\"getPrimitiveWithAnimationsSvg(primitive)\"></g>\n } @else {\n <rect [attr.x]=\"primitive.position.x\"\n [attr.y]=\"primitive.position.y\"\n [attr.width]=\"$any(primitive).config.width\"\n [attr.height]=\"$any(primitive).config.height\"\n [attr.fill]=\"rs.fill?.color ?? 'none'\"\n [attr.fill-opacity]=\"rs.fill?.opacity ?? 1\"\n [attr.stroke]=\"isPrimitiveSelected(primitive.id) ? '#1976d2' : (rs.stroke?.color ?? 'none')\"\n [attr.stroke-opacity]=\"rs.stroke?.opacity ?? 1\"\n [attr.stroke-width]=\"isPrimitiveSelected(primitive.id) ? selectionHighlightWidth() : (rs.stroke?.width ?? 1)\"\n [attr.stroke-dasharray]=\"getStrokeDashArray(rs.stroke?.dashArray)\"\n [attr.rx]=\"$any(primitive).config.cornerRadiusX ?? $any(primitive).config.cornerRadius ?? 0\"\n [attr.ry]=\"$any(primitive).config.cornerRadiusY ?? $any(primitive).config.cornerRadius ?? 0\"/>\n }\n }\n @case ('ellipse') {\n @if (primitiveHasAnimations(primitive)) {\n <!-- Ellipse with animations -->\n <g [innerHTML]=\"getPrimitiveWithAnimationsSvg(primitive)\"></g>\n } @else {\n <ellipse [attr.cx]=\"primitive.position.x\"\n [attr.cy]=\"primitive.position.y\"\n [attr.rx]=\"$any(primitive).config.radiusX\"\n [attr.ry]=\"$any(primitive).config.radiusY\"\n [attr.fill]=\"rs.fill?.color ?? 'none'\"\n [attr.fill-opacity]=\"rs.fill?.opacity ?? 1\"\n [attr.stroke]=\"isPrimitiveSelected(primitive.id) ? '#1976d2' : (rs.stroke?.color ?? 'none')\"\n [attr.stroke-opacity]=\"rs.stroke?.opacity ?? 1\"\n [attr.stroke-width]=\"isPrimitiveSelected(primitive.id) ? selectionHighlightWidth() : (rs.stroke?.width ?? 1)\"\n [attr.stroke-dasharray]=\"getStrokeDashArray(rs.stroke?.dashArray)\"/>\n }\n }\n @case ('line') {\n @if (primitiveHasAnimations(primitive)) {\n <!-- Line with animations -->\n <g [innerHTML]=\"getPrimitiveWithAnimationsSvg(primitive)\"></g>\n } @else {\n <line [attr.x1]=\"$any(primitive).config.start.x + primitive.position.x\"\n [attr.y1]=\"$any(primitive).config.start.y + primitive.position.y\"\n [attr.x2]=\"$any(primitive).config.end.x + primitive.position.x\"\n [attr.y2]=\"$any(primitive).config.end.y + primitive.position.y\"\n [attr.stroke]=\"isPrimitiveSelected(primitive.id) ? '#1976d2' : (rs.stroke?.color ?? 'none')\"\n [attr.stroke-opacity]=\"rs.stroke?.opacity ?? 1\"\n [attr.stroke-width]=\"isPrimitiveSelected(primitive.id) ? 3 : (rs.stroke?.width ?? 2)\"\n [attr.stroke-dasharray]=\"getStrokeDashArray(rs.stroke?.dashArray)\"/>\n }\n }\n @case ('path') {\n @if (primitiveHasAnimations(primitive)) {\n <!-- Path with animations -->\n <g [innerHTML]=\"getPrimitiveWithAnimationsSvg(primitive)\"></g>\n } @else {\n <path [attr.d]=\"$any(primitive).config.d\"\n [attr.transform]=\"'translate(' + primitive.position.x + ',' + primitive.position.y + ')'\"\n [attr.fill]=\"rs.fill?.color ?? 'none'\"\n [attr.fill-opacity]=\"rs.fill?.opacity ?? 1\"\n [attr.fill-rule]=\"$any(primitive).config.fillRule\"\n [attr.stroke]=\"isPrimitiveSelected(primitive.id) ? '#1976d2' : (rs.stroke?.color ?? 'none')\"\n [attr.stroke-opacity]=\"rs.stroke?.opacity ?? 1\"\n [attr.stroke-width]=\"isPrimitiveSelected(primitive.id) ? selectionHighlightWidth() : (rs.stroke?.width ?? 1)\"\n [attr.stroke-dasharray]=\"getStrokeDashArray(rs.stroke?.dashArray)\"/>\n }\n }\n @case ('polygon') {\n @if (primitiveHasAnimations(primitive)) {\n <!-- Polygon with animations -->\n <g [innerHTML]=\"getPrimitiveWithAnimationsSvg(primitive)\"></g>\n } @else {\n <polygon [attr.points]=\"getPolygonPoints($any(primitive))\"\n [attr.fill]=\"rs.fill?.color ?? 'none'\"\n [attr.fill-opacity]=\"rs.fill?.opacity ?? 1\"\n [attr.stroke]=\"isPrimitiveSelected(primitive.id) ? '#1976d2' : (rs.stroke?.color ?? 'none')\"\n [attr.stroke-opacity]=\"rs.stroke?.opacity ?? 1\"\n [attr.stroke-width]=\"isPrimitiveSelected(primitive.id) ? selectionHighlightWidth() : (rs.stroke?.width ?? 1)\"\n [attr.stroke-dasharray]=\"getStrokeDashArray(rs.stroke?.dashArray)\"/>\n }\n }\n @case ('polyline') {\n @if (primitiveHasAnimations(primitive)) {\n <!-- Polyline with animations -->\n <g [innerHTML]=\"getPrimitiveWithAnimationsSvg(primitive)\"></g>\n } @else {\n <polyline [attr.points]=\"getPolylinePoints($any(primitive))\"\n fill=\"none\"\n [attr.stroke]=\"isPrimitiveSelected(primitive.id) ? '#1976d2' : (rs.stroke?.color ?? '#333')\"\n [attr.stroke-opacity]=\"rs.stroke?.opacity ?? 1\"\n [attr.stroke-width]=\"isPrimitiveSelected(primitive.id) ? 3 : (rs.stroke?.width ?? 2)\"\n [attr.stroke-dasharray]=\"getStrokeDashArray(rs.stroke?.dashArray)\"/>\n }\n }\n @case ('text') {\n <text [attr.x]=\"primitive.position.x\"\n [attr.y]=\"primitive.position.y\"\n [attr.fill]=\"$any(primitive).config.textStyle?.color ?? '#333'\"\n [attr.font-size]=\"$any(primitive).config.textStyle?.fontSize ?? 14\"\n [attr.font-family]=\"$any(primitive).config.textStyle?.fontFamily ?? 'Arial, sans-serif'\">\n {{ $any(primitive).config.content }}\n </text>\n }\n @case ('image') {\n @if ($any(primitive).config.src) {\n <!-- Render actual image when src is available -->\n <image [attr.x]=\"primitive.position.x\"\n [attr.y]=\"primitive.position.y\"\n [attr.width]=\"$any(primitive).config.width\"\n [attr.height]=\"$any(primitive).config.height\"\n [attr.href]=\"$any(primitive).config.src\"\n [attr.preserveAspectRatio]=\"$any(primitive).config.preserveAspectRatio !== false ? 'xMidYMid meet' : 'none'\"/>\n <!-- Selection border overlay -->\n @if (isPrimitiveSelected(primitive.id)) {\n <rect [attr.x]=\"primitive.position.x\"\n [attr.y]=\"primitive.position.y\"\n [attr.width]=\"$any(primitive).config.width\"\n [attr.height]=\"$any(primitive).config.height\"\n fill=\"none\"\n stroke=\"#1976d2\"\n [attr.stroke-width]=\"selectionHighlightWidth()\"\n stroke-dasharray=\"4 2\"/>\n }\n } @else {\n <!-- Placeholder when no src -->\n <rect [attr.x]=\"primitive.position.x\"\n [attr.y]=\"primitive.position.y\"\n [attr.width]=\"$any(primitive).config.width\"\n [attr.height]=\"$any(primitive).config.height\"\n fill=\"#f5f5f5\"\n [attr.stroke]=\"isPrimitiveSelected(primitive.id) ? '#1976d2' : '#ccc'\"\n [attr.stroke-width]=\"isPrimitiveSelected(primitive.id) ? selectionHighlightWidth() : 1\"\n stroke-dasharray=\"4 2\"/>\n <text class=\"primitive-label\"\n [attr.x]=\"primitive.position.x + $any(primitive).config.width / 2\"\n [attr.y]=\"primitive.position.y + $any(primitive).config.height / 2\"\n text-anchor=\"middle\"\n dominant-baseline=\"middle\"\n font-size=\"10\"\n fill=\"#999\">Image</text>\n }\n }\n @case ('group') {\n <!-- Groups render their fill/stroke if defined, children render separately -->\n @if (primitiveHasAnimations(primitive)) {\n <!-- Group with animations -->\n <g [innerHTML]=\"getPrimitiveWithAnimationsSvg(primitive)\"></g>\n } @else {\n @let groupBounds = getPrimitiveBoundingBox(primitive);\n <rect [attr.x]=\"groupBounds.x\"\n [attr.y]=\"groupBounds.y\"\n [attr.width]=\"groupBounds.width\"\n [attr.height]=\"groupBounds.height\"\n [attr.fill]=\"rs.fill?.color ?? 'none'\"\n [attr.fill-opacity]=\"rs.fill?.opacity ?? 1\"\n [attr.stroke]=\"isPrimitiveSelected(primitive.id) ? '#1976d2' : (rs.stroke?.color ?? 'none')\"\n [attr.stroke-opacity]=\"rs.stroke?.opacity ?? 1\"\n [attr.stroke-width]=\"isPrimitiveSelected(primitive.id) ? 1.5 : (rs.stroke?.width ?? 0)\"\n [attr.stroke-dasharray]=\"isPrimitiveSelected(primitive.id) ? '6 3' : (getStrokeDashArray(rs.stroke?.dashArray))\"\n pointer-events=\"all\"/>\n }\n }\n }\n\n <!-- Primitive name label -->\n @if (showElementNames() && primitive.name) {\n <text class=\"primitive-label\"\n [attr.x]=\"getPrimitiveBoundingBox(primitive).x + getPrimitiveBoundingBox(primitive).width / 2\"\n [attr.y]=\"getPrimitiveBoundingBox(primitive).y + getPrimitiveBoundingBox(primitive).height + 10\"\n text-anchor=\"middle\">\n {{ primitive.name }}\n </text>\n }\n\n <!-- Selection handles for primitives -->\n @if (isPrimitiveSelected(primitive.id)) {\n @let bbox = getPrimitiveBoundingBox(primitive);\n @if (primitive.type === 'line') {\n <!-- Line-specific endpoint handles -->\n @let lineConfig = $any(primitive).config;\n <!-- Start endpoint handle (zoom-scaled) -->\n <circle class=\"endpoint-handle\"\n [attr.cx]=\"lineConfig.start.x + primitive.position.x\"\n [attr.cy]=\"lineConfig.start.y + primitive.position.y\"\n [attr.r]=\"portRadius() + 1\"\n fill=\"#1976d2\"\n stroke=\"white\"\n [attr.stroke-width]=\"selectionHighlightWidth()\"\n (mousedown)=\"onLineEndpointMouseDown($event, primitive, 'start')\"/>\n <!-- End endpoint handle (zoom-scaled) -->\n <circle class=\"endpoint-handle\"\n [attr.cx]=\"lineConfig.end.x + primitive.position.x\"\n [attr.cy]=\"lineConfig.end.y + primitive.position.y\"\n [attr.r]=\"portRadius() + 1\"\n fill=\"#1976d2\"\n stroke=\"white\"\n [attr.stroke-width]=\"selectionHighlightWidth()\"\n (mousedown)=\"onLineEndpointMouseDown($event, primitive, 'end')\"/>\n } @else if (primitive.type === 'polyline' || primitive.type === 'polygon') {\n <!-- Polyline/Polygon point handles (zoom-scaled) -->\n @for (point of getPolyPoints(primitive); track point.index) {\n <circle class=\"endpoint-handle\"\n [class.selected]=\"isPolyPointSelected(primitive.id, point.index)\"\n [attr.cx]=\"point.x\"\n [attr.cy]=\"point.y\"\n [attr.r]=\"portRadius()\"\n [attr.fill]=\"isPolyPointSelected(primitive.id, point.index) ? '#ff5722' : '#1976d2'\"\n stroke=\"white\"\n [attr.stroke-width]=\"selectionHighlightWidth()\"\n (mousedown)=\"onPolyPointMouseDown($event, primitive, point.index)\"/>\n }\n } @else {\n <!-- Selection outline (zoom-scaled) -->\n <rect [attr.x]=\"bbox.x - selectionPadding()\"\n [attr.y]=\"bbox.y - selectionPadding()\"\n [attr.width]=\"bbox.width + selectionPadding() * 2\"\n [attr.height]=\"bbox.height + selectionPadding() * 2\"\n fill=\"none\"\n stroke=\"#1976d2\"\n [attr.stroke-width]=\"selectionStrokeWidth()\"\n [attr.stroke-dasharray]=\"selectionDashArray()\"\n pointer-events=\"none\"/>\n <!-- Corner handles (zoom-scaled) -->\n <rect class=\"resize-handle nw\" [attr.x]=\"bbox.x - handleOffset()\" [attr.y]=\"bbox.y - handleOffset()\" [attr.width]=\"handleSize()\" [attr.height]=\"handleSize()\" fill=\"#1976d2\"\n (mousedown)=\"onPrimitiveResizeHandleMouseDown($event, primitive, 'nw')\"/>\n <rect class=\"resize-handle ne\" [attr.x]=\"bbox.x + bbox.width - handleOffset()\" [attr.y]=\"bbox.y - handleOffset()\" [attr.width]=\"handleSize()\" [attr.height]=\"handleSize()\" fill=\"#1976d2\"\n (mousedown)=\"onPrimitiveResizeHandleMouseDown($event, primitive, 'ne')\"/>\n <rect class=\"resize-handle sw\" [attr.x]=\"bbox.x - handleOffset()\" [attr.y]=\"bbox.y + bbox.height - handleOffset()\" [attr.width]=\"handleSize()\" [attr.height]=\"handleSize()\" fill=\"#1976d2\"\n (mousedown)=\"onPrimitiveResizeHandleMouseDown($event, primitive, 'sw')\"/>\n <rect class=\"resize-handle se\" [attr.x]=\"bbox.x + bbox.width - handleOffset()\" [attr.y]=\"bbox.y + bbox.height - handleOffset()\" [attr.width]=\"handleSize()\" [attr.height]=\"handleSize()\" fill=\"#1976d2\"\n (mousedown)=\"onPrimitiveResizeHandleMouseDown($event, primitive, 'se')\"/>\n\n <!-- Animation origin indicator (crosshair, zoom-scaled) -->\n @if (primitiveHasAnimations(primitive)) {\n @let origin = getAnimationOrigin(primitive);\n @if (origin) {\n <g class=\"animation-origin-indicator\" pointer-events=\"none\">\n <!-- Outer circle -->\n <circle [attr.cx]=\"origin.x\" [attr.cy]=\"origin.y\" [attr.r]=\"handleSize()\"\n fill=\"none\" stroke=\"#ff5722\" [attr.stroke-width]=\"selectionHighlightWidth()\" opacity=\"0.8\"/>\n <!-- Inner dot -->\n <circle [attr.cx]=\"origin.x\" [attr.cy]=\"origin.y\" [attr.r]=\"selectionPadding()\"\n fill=\"#ff5722\" opacity=\"0.9\"/>\n <!-- Crosshair lines -->\n <line [attr.x1]=\"origin.x - handleSize() * 1.5\" [attr.y1]=\"origin.y\"\n [attr.x2]=\"origin.x - portRadius()\" [attr.y2]=\"origin.y\"\n stroke=\"#ff5722\" [attr.stroke-width]=\"selectionHighlightWidth()\" opacity=\"0.8\"/>\n <line [attr.x1]=\"origin.x + portRadius()\" [attr.y1]=\"origin.y\"\n [attr.x2]=\"origin.x + handleSize() * 1.5\" [attr.y2]=\"origin.y\"\n stroke=\"#ff5722\" [attr.stroke-width]=\"selectionHighlightWidth()\" opacity=\"0.8\"/>\n <line [attr.x1]=\"origin.x\" [attr.y1]=\"origin.y - handleSize() * 1.5\"\n [attr.x2]=\"origin.x\" [attr.y2]=\"origin.y - portRadius()\"\n stroke=\"#ff5722\" [attr.stroke-width]=\"selectionHighlightWidth()\" opacity=\"0.8\"/>\n <line [attr.x1]=\"origin.x\" [attr.y1]=\"origin.y + portRadius()\"\n [attr.x2]=\"origin.x\" [attr.y2]=\"origin.y + handleSize() * 1.5\"\n stroke=\"#ff5722\" [attr.stroke-width]=\"selectionHighlightWidth()\" opacity=\"0.8\"/>\n </g>\n }\n }\n }\n }\n </g>\n }\n\n <!-- Symbol Instances -->\n @for (symbolInstance of orderedSymbols(); track symbolInstance.id) {\n @let symbolDef = getSymbolDefinition(symbolInstance);\n @let instanceDirectEffects = symbolInstanceDirectEffects().get(symbolInstance.id);\n @if (symbolDef) {\n <g class=\"symbol-instance\"\n [class.selected]=\"isSymbolSelected(symbolInstance.id)\"\n [class.dragging]=\"dragState().isDragging && dragState().elementId === symbolInstance.id\"\n [attr.transform]=\"getSymbolTransform(symbolInstance, symbolDef)\"\n [attr.opacity]=\"instanceDirectEffects?.['style.opacity'] ?? 1\"\n (mousedown)=\"onSymbolMouseDown($event, symbolInstance)\"\n (contextmenu)=\"onSymbolContextMenu($event, symbolInstance)\">\n\n <!-- Invisible hit area for easier selection -->\n <rect x=\"-4\" y=\"-4\"\n [attr.width]=\"symbolDef.bounds.width + 8\"\n [attr.height]=\"symbolDef.bounds.height + 8\"\n fill=\"transparent\"\n class=\"symbol-hit-area\"/>\n\n <!-- Render symbol primitives (including nested symbol instances) with direct effects applied -->\n @let symPropValues = symbolInstancePropertyValues().get(symbolInstance.id) ?? symbolInstance.propertyValues ?? {};\n @let symPrimitives = getSymbolPrimitivesWithDirectEffects(symbolInstance, symbolDef, symPropValues);\n @let animatedGroupChildIds = getAnimatedGroupChildIds(symbolDef);\n @for (primitive of symPrimitives; track primitive.id) {\n <!-- Skip invisible primitives and children of animated groups (rendered inside their group) -->\n @if (primitive.visible !== false && !animatedGroupChildIds.has(primitive.id)) {\n <!-- Check if primitive has animations - use innerHTML binding for animated primitives -->\n @if (symbolPrimitiveHasAnimations(primitive) || (primitive.fillLevel !== undefined && primitive.fillLevel >= 0 && primitive.fillLevel <= 1)) {\n <!-- Primitive with animations or fillLevel - use innerHTML for SVG animation support -->\n <g [attr.transform]=\"getPrimitiveTransform(primitive)\"\n [attr.opacity]=\"primitive.style?.opacity ?? 1\"\n [innerHTML]=\"getSymbolPrimitiveWithAnimationsSvg(primitive, symbolDef, symPropValues, symbolDef.styleClasses, symPrimitives)\"></g>\n } @else {\n <!-- Static primitive without animations -->\n <!-- Resolve style using symbol's styleClasses -->\n @let srs = resolveStyleWithClasses(primitive, symbolDef.styleClasses);\n <!-- Wrapper group for transform effects and overall opacity -->\n <g [attr.transform]=\"getPrimitiveTransform(primitive)\"\n [attr.opacity]=\"primitive.style?.opacity ?? 1\">\n @switch (primitive.type) {\n @case ('rectangle') {\n <!-- Standard rectangle without fillLevel -->\n <rect [attr.x]=\"primitive.position.x\"\n [attr.y]=\"primitive.position.y\"\n [attr.width]=\"$any(primitive).config.width\"\n [attr.height]=\"$any(primitive).config.height\"\n [attr.fill]=\"srs.fill?.color ?? 'none'\"\n [attr.fill-opacity]=\"srs.fill?.opacity ?? 1\"\n [attr.stroke]=\"srs.stroke?.color ?? 'none'\"\n [attr.stroke-opacity]=\"srs.stroke?.opacity ?? 1\"\n [attr.stroke-width]=\"srs.stroke?.width ?? 1\"\n [attr.stroke-dasharray]=\"getStrokeDashArray(srs.stroke?.dashArray)\"\n [attr.rx]=\"$any(primitive).config.cornerRadiusX ?? $any(primitive).config.cornerRadius ?? 0\"\n [attr.ry]=\"$any(primitive).config.cornerRadiusY ?? $any(primitive).config.cornerRadius ?? 0\"/>\n }\n @case ('ellipse') {\n <ellipse [attr.cx]=\"primitive.position.x\"\n [attr.cy]=\"primitive.position.y\"\n [attr.rx]=\"$any(primitive).config.radiusX\"\n [attr.ry]=\"$any(primitive).config.radiusY\"\n [attr.fill]=\"srs.fill?.color ?? 'none'\"\n [attr.fill-opacity]=\"srs.fill?.opacity ?? 1\"\n [attr.stroke]=\"srs.stroke?.color ?? 'none'\"\n [attr.stroke-opacity]=\"srs.stroke?.opacity ?? 1\"\n [attr.stroke-width]=\"srs.stroke?.width ?? 1\"\n [attr.stroke-dasharray]=\"getStrokeDashArray(srs.stroke?.dashArray)\"/>\n }\n @case ('line') {\n <line [attr.x1]=\"$any(primitive).config.start.x + primitive.position.x\"\n [attr.y1]=\"$any(primitive).config.start.y + primitive.position.y\"\n [attr.x2]=\"$any(primitive).config.end.x + primitive.position.x\"\n [attr.y2]=\"$any(primitive).config.end.y + primitive.position.y\"\n [attr.stroke]=\"srs.stroke?.color ?? 'none'\"\n [attr.stroke-opacity]=\"srs.stroke?.opacity ?? 1\"\n [attr.stroke-width]=\"srs.stroke?.width ?? 2\"\n [attr.stroke-dasharray]=\"getStrokeDashArray(srs.stroke?.dashArray)\"/>\n }\n @case ('path') {\n <path [attr.d]=\"$any(primitive).config.d\"\n [attr.transform]=\"'translate(' + primitive.position.x + ',' + primitive.position.y + ')'\"\n [attr.fill]=\"srs.fill?.color ?? 'none'\"\n [attr.fill-opacity]=\"srs.fill?.opacity ?? 1\"\n [attr.fill-rule]=\"$any(primitive).config.fillRule\"\n [attr.stroke]=\"srs.stroke?.color ?? 'none'\"\n [attr.stroke-opacity]=\"srs.stroke?.opacity ?? 1\"\n [attr.stroke-width]=\"srs.stroke?.width ?? 1\"\n [attr.stroke-dasharray]=\"getStrokeDashArray(srs.stroke?.dashArray)\"/>\n }\n @case ('polygon') {\n <polygon [attr.points]=\"getPolygonPoints($any(primitive))\"\n [attr.fill]=\"srs.fill?.color ?? 'none'\"\n [attr.fill-opacity]=\"srs.fill?.opacity ?? 1\"\n [attr.stroke]=\"srs.stroke?.color ?? 'none'\"\n [attr.stroke-opacity]=\"srs.stroke?.opacity ?? 1\"\n [attr.stroke-width]=\"srs.stroke?.width ?? 1\"\n [attr.stroke-dasharray]=\"getStrokeDashArray(srs.stroke?.dashArray)\"/>\n }\n @case ('polyline') {\n <polyline [attr.points]=\"getPolylinePoints($any(primitive))\"\n fill=\"none\"\n [attr.stroke]=\"srs.stroke?.color ?? 'none'\"\n [attr.stroke-opacity]=\"srs.stroke?.opacity ?? 1\"\n [attr.stroke-width]=\"srs.stroke?.width ?? 2\"\n [attr.stroke-dasharray]=\"getStrokeDashArray(srs.stroke?.dashArray)\"/>\n }\n @case ('text') {\n <text [attr.x]=\"primitive.position.x\"\n [attr.y]=\"primitive.position.y\"\n [attr.fill]=\"$any(primitive).config.textStyle?.color ?? '#333'\"\n [attr.font-size]=\"$any(primitive).config.textStyle?.fontSize ?? 14\"\n [attr.font-family]=\"$any(primitive).config.textStyle?.fontFamily ?? 'Arial, sans-serif'\">\n {{ $any(primitive).config.content }}\n </text>\n }\n @case ('image') {\n @if ($any(primitive).config.src) {\n @if ($any(primitive).config.sourceType === 'svg') {\n <!-- SVG content embedded via foreignObject -->\n <foreignObject [attr.x]=\"primitive.position.x\"\n [attr.y]=\"primitive.position.y\"\n [attr.width]=\"$any(primitive).config.width\"\n [attr.height]=\"$any(primitive).config.height\"\n [innerHTML]=\"getSafeHtml($any(primitive).config.src)\"></foreignObject>\n } @else {\n <!-- URL or data URL image -->\n <image [attr.x]=\"primitive.position.x\"\n [attr.y]=\"primitive.position.y\"\n [attr.width]=\"$any(primitive).config.width\"\n [attr.height]=\"$any(primitive).config.height\"\n [attr.href]=\"$any(primitive).config.src\"\n [attr.preserveAspectRatio]=\"$any(primitive).config.preserveAspectRatio !== false ? 'xMidYMid meet' : 'none'\"/>\n }\n } @else {\n <!-- Placeholder when no src -->\n <rect [attr.x]=\"primitive.position.x\"\n [attr.y]=\"primitive.position.y\"\n [attr.width]=\"$any(primitive).config.width\"\n [attr.height]=\"$any(primitive).config.height\"\n fill=\"#f5f5f5\"\n stroke=\"#ccc\"\n stroke-width=\"1\"\n stroke-dasharray=\"4 2\"/>\n <text [attr.x]=\"primitive.position.x + $any(primitive).config.width / 2\"\n [attr.y]=\"primitive.position.y + $any(primitive).config.height / 2\"\n text-anchor=\"middle\"\n dominant-baseline=\"middle\"\n font-size=\"10\"\n fill=\"#999\">Image</text>\n }\n }\n }\n </g>\n }\n }\n }\n\n <!-- Symbol name label -->\n @if (showElementNames() && symbolInstance.name) {\n <text class=\"symbol-label\"\n [attr.x]=\"symbolDef.bounds.width / 2\"\n [attr.y]=\"symbolDef.bounds.height + 10\"\n text-anchor=\"middle\">\n {{ symbolInstance.name }}\n </text>\n }\n\n <!-- Selection handles for symbols (zoom-scaled) -->\n @if (isSymbolSelected(symbolInstance.id)) {\n <!-- Selection outline -->\n <rect [attr.x]=\"-selectionPadding()\" [attr.y]=\"-selectionPadding()\"\n [attr.width]=\"symbolDef.bounds.width + selectionPadding() * 2\"\n [attr.height]=\"symbolDef.bounds.height + selectionPadding() * 2\"\n fill=\"none\"\n stroke=\"#1976d2\"\n [attr.stroke-width]=\"selectionHighlightWidth()\"\n [attr.stroke-dasharray]=\"selectionDashArray()\"\n pointer-events=\"none\"/>\n <!-- Corner handles -->\n <rect class=\"resize-handle nw\" [attr.x]=\"-handleOffset()\" [attr.y]=\"-handleOffset()\"\n [attr.width]=\"handleSize()\" [attr.height]=\"handleSize()\" fill=\"#1976d2\"\n (mousedown)=\"onSymbolResizeHandleMouseDown($event, symbolInstance, 'nw')\"/>\n <rect class=\"resize-handle ne\" [attr.x]=\"symbolDef.bounds.width - handleOffset()\" [attr.y]=\"-handleOffset()\"\n [attr.width]=\"handleSize()\" [attr.height]=\"handleSize()\" fill=\"#1976d2\"\n (mousedown)=\"onSymbolResizeHandleMouseDown($event, symbolInstance, 'ne')\"/>\n <rect class=\"resize-handle sw\" [attr.x]=\"-handleOffset()\" [attr.y]=\"symbolDef.bounds.height - handleOffset()\"\n [attr.width]=\"handleSize()\" [attr.height]=\"handleSize()\" fill=\"#1976d2\"\n (mousedown)=\"onSymbolResizeHandleMouseDown($event, symbolInstance, 'sw')\"/>\n <rect class=\"resize-handle se\" [attr.x]=\"symbolDef.bounds.width - handleOffset()\" [attr.y]=\"symbolDef.bounds.height - handleOffset()\"\n [attr.width]=\"handleSize()\" [attr.height]=\"handleSize()\" fill=\"#1976d2\"\n (mousedown)=\"onSymbolResizeHandleMouseDown($event, symbolInstance, 'se')\"/>\n }\n </g>\n }\n }\n\n <!-- Selection Overlay Layer (always on top for visual feedback, zoom-scaled) -->\n <g class=\"selection-overlay\" pointer-events=\"none\">\n <!-- Element selection indicators (only in diagram mode) -->\n @if (editorMode === 'diagram') {\n @for (element of selectedElements(); track element.id) {\n <rect [attr.x]=\"element.position.x - selectionPadding()\"\n [attr.y]=\"element.position.y - selectionPadding()\"\n [attr.width]=\"element.size.width + selectionPadding() * 2\"\n [attr.height]=\"element.size.height + selectionPadding() * 2\"\n fill=\"none\"\n stroke=\"#1976d2\"\n [attr.stroke-width]=\"selectionStrokeWidth()\"\n [attr.stroke-dasharray]=\"selectionDashArray()\"\n class=\"selection-indicator\"/>\n }\n }\n <!-- Primitive selection indicators -->\n @for (primitive of selectedPrimitives(); track primitive.id) {\n @let bbox = getPrimitiveBoundingBox(primitive);\n <rect [attr.x]=\"bbox.x - selectionPadding()\"\n [attr.y]=\"bbox.y - selectionPadding()\"\n [attr.width]=\"bbox.width + selectionPadding() * 2\"\n [attr.height]=\"bbox.height + selectionPadding() * 2\"\n fill=\"none\"\n stroke=\"#1976d2\"\n [attr.stroke-width]=\"selectionStrokeWidth()\"\n [attr.stroke-dasharray]=\"selectionDashArray()\"\n class=\"selection-indicator\"/>\n }\n <!-- Symbol selection indicators -->\n @for (symbolInstance of selectedSymbols(); track symbolInstance.id) {\n @let symbolDef = getSymbolDefinition(symbolInstance);\n @if (symbolDef) {\n @let bbox = getSymbolBoundingBox(symbolInstance, symbolDef);\n <rect [attr.x]=\"bbox.x - selectionPadding()\"\n [attr.y]=\"bbox.y - selectionPadding()\"\n [attr.width]=\"bbox.width + selectionPadding() * 2\"\n [attr.height]=\"bbox.height + selectionPadding() * 2\"\n fill=\"none\"\n stroke=\"#1976d2\"\n [attr.stroke-width]=\"selectionStrokeWidth()\"\n [attr.stroke-dasharray]=\"selectionDashArray()\"\n class=\"selection-indicator\"/>\n }\n }\n </g>\n\n <!-- Selection rectangle (for marquee selection, zoom-scaled) -->\n @if (selectionRect()) {\n <rect [attr.x]=\"selectionRect()!.x\"\n [attr.y]=\"selectionRect()!.y\"\n [attr.width]=\"selectionRect()!.width\"\n [attr.height]=\"selectionRect()!.height\"\n fill=\"rgba(25, 118, 210, 0.1)\"\n stroke=\"#1976d2\"\n [attr.stroke-width]=\"selectionStrokeWidth()\"\n [attr.stroke-dasharray]=\"selectionDashArray()\"/>\n }\n\n <!-- Alignment Guides (shown during drag) -->\n @for (guide of alignmentGuides(); track $index) {\n @if (guide.type === 'horizontal') {\n <line [attr.x1]=\"guide.start\"\n [attr.y1]=\"guide.position\"\n [attr.x2]=\"guide.end\"\n [attr.y2]=\"guide.position\"\n stroke=\"#ff4081\"\n [attr.stroke-width]=\"guideStrokeWidth()\"\n pointer-events=\"none\"/>\n } @else {\n <line [attr.x1]=\"guide.position\"\n [attr.y1]=\"guide.start\"\n [attr.x2]=\"guide.position\"\n [attr.y2]=\"guide.end\"\n stroke=\"#ff4081\"\n [attr.stroke-width]=\"guideStrokeWidth()\"\n pointer-events=\"none\"/>\n }\n }\n </svg>\n </div>\n\n <!-- Property Inspector (right sidebar - legacy mode only) -->\n @if (!useDockview) {\n @if (showRightPanel()) {\n <div class=\"designer-inspector-container\">\n <div class=\"inspector-header\">\n <span class=\"inspector-title\">Properties</span>\n <button class=\"sidebar-close\" (click)=\"toggleRightPanel()\" title=\"Close panel\">\u00D7</button>\n </div>\n <mm-property-inspector\n class=\"designer-inspector\"\n [selectedElements]=\"selectedElements()\"\n [selectedConnections]=\"selectedConnections()\"\n [selectedPrimitives]=\"selectedPrimitives()\"\n [selectedSymbolInstances]=\"selectedSymbols()\"\n [symbolDefinitions]=\"symbolDefinitionsMap()\"\n [availableStyleClasses]=\"styleClasses\"\n (propertyChange)=\"onPropertyChange($event)\">\n </mm-property-inspector>\n </div>\n } @else {\n <div class=\"sidebar-collapsed right\" (click)=\"toggleRightPanel()\" title=\"Show properties\">\n <span class=\"collapsed-icon\">\u2699</span>\n </div>\n }\n }\n </div>\n\n <!-- Context Menu -->\n @if (contextMenu().visible) {\n <mm-context-menu\n [position]=\"contextMenu().position\"\n [items]=\"contextMenuItems()\"\n (action)=\"onContextMenuAction($event)\"\n (closed)=\"closeContextMenu()\">\n </mm-context-menu>\n }\n\n <!-- Path Editor Dialog -->\n @if (pathEditorVisible()) {\n <kendo-dialog\n title=\"Edit Path\"\n [width]=\"500\"\n [height]=\"500\"\n (close)=\"closePathEditor()\">\n <mm-path-editor\n [pathData]=\"editingPathData()\"\n [width]=\"460\"\n [height]=\"280\"\n (pathChange)=\"onPathEditorChange($event)\">\n </mm-path-editor>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"closePathEditor()\">Done</button>\n </kendo-dialog-actions>\n </kendo-dialog>\n }\n\n <!-- Binding Editor Dialog -->\n <mm-binding-editor-dialog\n [show]=\"showBindingEditor()\"\n [property]=\"editingBindingProperty()\"\n [existingBindings]=\"effectivePropertyBindings()\"\n [primitives]=\"diagram().primitives ?? []\"\n [symbolInstances]=\"diagram().symbolInstances ?? []\"\n [symbolDefinitions]=\"symbolDefinitionsMap()\"\n (closed)=\"closeBindingEditor()\"\n (saved)=\"onBindingsSaved($event)\">\n </mm-binding-editor-dialog>\n\n <!-- Status bar -->\n <div class=\"designer-statusbar\">\n <span class=\"diagram-name\" title=\"Diagram name\">{{ diagram().name }}</span>\n <span class=\"statusbar-divider\">|</span>\n <span>Primitives: {{ (diagram().primitives ?? []).length }}</span>\n <span>Symbols: {{ (diagram().symbolInstances ?? []).length }}</span>\n @if (editorMode === 'diagram') {\n <span>Elements: {{ diagram().elements.length }}</span>\n <span>Connections: {{ diagram().connections.length }}</span>\n }\n <span>Selected: {{ selection().elements.size + selection().connections.size }}</span>\n @if (hasChanges()) {\n <span class=\"unsaved-indicator\">* Unsaved</span>\n }\n </div>\n</div>\n", styles: [":host{--designer-bg: #f5f5f5;--designer-surface: #ffffff;--designer-surface-alt: #f5f5f5;--designer-border: #e0e0e0;--designer-text: #333333;--designer-text-muted: #666666;--designer-accent: #1976d2;--designer-accent-secondary: #1565c0;--designer-canvas-bg: #e8e8e8;--designer-hover-bg: #eeeeee;--designer-canvas-color: #fafafa;--designer-grid-color: #e0e0e0;display:flex;flex-direction:column;flex:1;width:100%;height:100%;min-height:0;overflow:hidden}.process-designer{display:flex;flex-direction:column;flex:1;height:100%;min-height:0;background:var(--designer-bg);outline:none;overflow:hidden}.designer-toolbar{flex-shrink:0;border-bottom:1px solid var(--designer-border)}.zoom-level{min-width:40px;text-align:center;font-size:12px;padding:0 .25rem;color:var(--designer-text)}.k-menu-separator{height:1px;margin:4px 0;background-color:var(--designer-border)}.designer-content{display:flex;flex:1;height:100%;min-height:0;overflow:hidden}.designer-sidebar{width:220px;display:flex;flex-direction:column;border-right:1px solid var(--designer-border);background:var(--designer-surface)}.sidebar-header{display:flex;align-items:stretch;border-bottom:1px solid var(--designer-border)}.sidebar-tabs{display:flex;flex:1}.sidebar-tab{flex:1;padding:.5rem;background:var(--designer-surface-alt);border:none;border-bottom:2px solid transparent;font-size:12px;font-weight:500;color:var(--designer-text-muted);cursor:pointer;transition:all .15s ease}.sidebar-tab:hover{background:var(--designer-hover-bg);color:var(--designer-text)}.sidebar-tab.active{background:var(--designer-surface);border-bottom-color:var(--designer-accent);color:var(--designer-accent)}.sidebar-content{flex:1;overflow-y:auto}.sidebar-close{width:28px;background:transparent;border:none;border-left:1px solid var(--designer-border);cursor:pointer;font-size:16px;color:var(--designer-text-muted);display:flex;align-items:center;justify-content:center}.sidebar-close:hover{background:var(--designer-hover-bg);color:var(--designer-accent)}.sidebar-collapsed{width:28px;background:var(--designer-surface);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease;writing-mode:vertical-rl;text-orientation:mixed}.sidebar-collapsed.left{border-right:1px solid var(--designer-border)}.sidebar-collapsed.right{border-left:1px solid var(--designer-border)}.sidebar-collapsed:hover{background:var(--designer-surface-alt)}.sidebar-collapsed .collapsed-icon{font-size:14px;color:var(--designer-text-muted)}.designer-inspector-container{width:280px;display:flex;flex-direction:column;border-left:1px solid var(--designer-border);background:var(--designer-surface)}.inspector-header{display:flex;align-items:center;padding:0 .5rem;height:32px;border-bottom:1px solid var(--designer-border);background:var(--designer-surface-alt)}.inspector-header .inspector-title{flex:1;font-size:12px;font-weight:500;color:var(--designer-text)}.designer-canvas-container{flex:1 1 auto;min-width:0;min-height:0;height:100%;overflow:auto;background:var(--designer-canvas-bg);position:relative;box-sizing:border-box;display:flex;padding:20px}.designer-canvas{display:block;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;box-shadow:0 2px 8px #0000001a;margin:auto;flex-shrink:0}.designer-canvas .element-label,.designer-canvas .primitive-label,.designer-canvas .symbol-label{user-select:none;-webkit-user-select:none;pointer-events:none;fill:#aaa;font-size:8px}.canvas-background{cursor:default;fill:var(--designer-canvas-color)}.designer-grid-line{stroke:var(--designer-grid-color)}.designer-inspector{flex:1;overflow-y:auto}.element,.element.selected{cursor:move}.element.dragging{opacity:.7}.element.dragging .element-hit-area{cursor:grabbing}.element-hit-area,.primitive,.primitive.selected{cursor:move}.primitive.dragging{opacity:.7}.symbol-instance,.symbol-instance.selected{cursor:move}.symbol-instance.dragging{opacity:.7}.symbol-instance.dragging .symbol-hit-area{cursor:grabbing}.symbol-hit-area{cursor:move}.resize-handle{cursor:pointer}.resize-handle.nw,.resize-handle.se{cursor:nwse-resize}.resize-handle.ne,.resize-handle.sw{cursor:nesw-resize}.endpoint-handle{cursor:move;transition:r .15s ease,fill .15s ease}.endpoint-handle:hover{r:8}.endpoint-handle.selected{r:7}.connection-port{cursor:crosshair;opacity:.7}.connection-port:hover{opacity:1}.connection{cursor:pointer}.connection.selected path{stroke:#1976d2!important}.selection-overlay .selection-indicator{animation:marching-ants .5s linear infinite}@keyframes marching-ants{0%{stroke-dashoffset:0}to{stroke-dashoffset:6}}.designer-statusbar{flex-shrink:0;display:flex;gap:1rem;padding:.25rem .5rem;background:var(--designer-surface);border-top:1px solid var(--designer-border);font-size:11px;color:var(--designer-text-muted)}.diagram-name{font-weight:500;color:var(--designer-text)}.statusbar-divider{color:var(--designer-border)}.unsaved-indicator{color:#f57c00;font-weight:500}:host{--dv-background-color: var(--designer-bg, #f5f5f5);--dv-pane-background-color: var(--designer-surface, #ffffff);--dv-activegroup-visiblepanel-tab-background-color: var(--designer-surface, #ffffff);--dv-activegroup-hiddenpanel-tab-background-color: var(--designer-surface-alt, #f0f0f0);--dv-inactivegroup-visiblepanel-tab-background-color: var(--designer-surface-alt, #f5f5f5);--dv-inactivegroup-hiddenpanel-tab-background-color: #e8e8e8;--dv-activegroup-visiblepanel-tab-color: var(--designer-accent, #1976d2);--dv-activegroup-hiddenpanel-tab-color: var(--designer-text-muted, #666666);--dv-inactivegroup-visiblepanel-tab-color: var(--designer-text, #333333);--dv-inactivegroup-hiddenpanel-tab-color: #888888;--dv-separator-border: 1px solid var(--designer-border, #e0e0e0);--dv-tabs-and-actions-container-background-color: var(--designer-surface-alt, #f5f5f5);--dv-group-view-background-color: var(--designer-surface, #ffffff);--dv-tab-active-border-bottom: 2px solid var(--designer-accent, #1976d2);--dv-drag-over-background-color: rgba(25, 118, 210, .15);--dv-drag-over-border-color: var(--designer-accent, #1976d2);--dv-sash-color: var(--designer-border, #e0e0e0);--dv-sash-hover-color: var(--designer-accent, #1976d2)}.designer-content.dockview-enabled{display:flex;position:relative;height:100%;min-height:0}.dockview-panels-container{width:400px;min-width:280px;max-width:600px;flex:0 0 400px;height:100%;border-right:1px solid var(--designer-border);position:relative;overflow:hidden}.designer-dockview{position:absolute;inset:0;width:100%;height:100%}.dockview-resize-handle{width:6px;height:100%;cursor:ew-resize;background:transparent;position:relative;flex-shrink:0;z-index:10;transition:background-color .2s ease}.dockview-resize-handle:before{content:\"\";position:absolute;top:0;left:50%;transform:translate(-50%);width:2px;height:100%;background:var(--designer-border, rgba(100, 206, 185, .3));transition:background-color .2s ease,width .2s ease}.dockview-resize-handle:hover{background:#64ceb91a}.dockview-resize-handle:hover:before{width:4px;background:var(--octo-mint, #64ceb9)}.dockview-resize-handle:active{background:#64ceb926}.dockview-resize-handle:active:before{width:4px;background:var(--octo-mint, #64ceb9)}::ng-deep mm-elements-panel,::ng-deep mm-symbols-panel,::ng-deep mm-properties-panel,::ng-deep mm-transform-panel,::ng-deep mm-animations-panel,::ng-deep mm-styles-panel,::ng-deep mm-settings-panel,::ng-deep mm-simulation-panel-wrapper{display:block;height:100%;overflow:hidden}::ng-deep mm-elements-panel .panel-container,::ng-deep mm-symbols-panel .panel-container,::ng-deep mm-properties-panel .panel-container,::ng-deep mm-transform-panel .panel-container,::ng-deep mm-animations-panel .panel-container,::ng-deep mm-styles-panel .panel-container,::ng-deep mm-settings-panel .panel-container,::ng-deep mm-simulation-panel-wrapper .panel-container{height:100%;overflow:auto;background:var(--dv-pane-background-color, var(--designer-surface, #ffffff));color:var(--designer-text, #333333)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i2$1.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: i2$2.ToolBarComponent, selector: "kendo-toolbar", inputs: ["overflow", "resizable", "popupSettings", "fillMode", "tabindex", "size", "tabIndex", "showIcon", "showText"], outputs: ["open", "close"], exportAs: ["kendoToolBar"] }, { kind: "component", type: i2$2.ToolBarButtonComponent, selector: "kendo-toolbar-button", inputs: ["showText", "showIcon", "text", "style", "className", "title", "disabled", "toggleable", "look", "togglable", "selected", "fillMode", "rounded", "themeColor", "icon", "iconClass", "svgIcon", "imageUrl"], outputs: ["click", "pointerdown", "selectedChange"], exportAs: ["kendoToolBarButton"] }, { kind: "component", type: i2$2.ToolBarButtonGroupComponent, selector: "kendo-toolbar-buttongroup", inputs: ["disabled", "fillMode", "selection", "width", "look"], exportAs: ["kendoToolBarButtonGroup"] }, { kind: "component", type: i2$2.ToolBarDropDownButtonComponent, selector: "kendo-toolbar-dropdownbutton", inputs: ["arrowIcon", "title", "showText", "showIcon", "text", "icon", "svgIcon", "iconClass", "imageUrl", "popupSettings", "look", "primary", "fillMode", "themeColor", "buttonClass", "textField", "disabled", "data"], outputs: ["itemClick", "open", "close"], exportAs: ["kendoToolBarDropDownButton"] }, { kind: "component", type: i2$2.ToolBarSeparatorComponent, selector: "kendo-toolbar-separator", exportAs: ["kendoToolBarSeparator"] }, { kind: "component", type: i2$2.ToolBarSpacerComponent, selector: "kendo-toolbar-spacer", exportAs: ["kendoToolBarSpacer"] }, { kind: "ngmodule", type: SVGIconModule }, { kind: "ngmodule", type: InputsModule }, { kind: "ngmodule", type: DropDownsModule }, { kind: "ngmodule", type: DialogsModule }, { kind: "component", type: i3.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "component", type: i3.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: ElementPaletteComponent, selector: "mm-element-palette", outputs: ["elementDragStart", "elementDragEnd"] }, { kind: "component", type: SymbolLibraryPanelComponent, selector: "mm-symbol-library-panel", outputs: ["symbolDragStart", "symbolDragEnd"] }, { kind: "component", type: PropertyInspectorComponent, selector: "mm-property-inspector", inputs: ["selectedElements", "selectedConnections", "selectedPrimitives", "selectedSymbolInstances", "symbolDefinitions", "availableStyleClasses"], outputs: ["propertyChange"] }, { kind: "component", type: ContextMenuComponent, selector: "mm-context-menu", inputs: ["position", "items"], outputs: ["action", "closed"] }, { kind: "component", type: PathEditorComponent, selector: "mm-path-editor", inputs: ["pathData", "width", "height", "gridSize", "snapToGrid"], outputs: ["pathChange"] }, { kind: "component", type: DockviewComponent, selector: "mm-dockview", inputs: ["components", "tabComponents", "watermarkComponent", "defaultTabComponent", "leftHeaderActionsComponent", "rightHeaderActionsComponent", "prefixHeaderActionsComponent", "className", "hideBorders", "locked", "disableAutoResizing", "disableFloatingGroups"], outputs: ["ready", "didDrop", "willDrop"] }, { kind: "component", type: BindingEditorDialogComponent, selector: "mm-binding-editor-dialog", inputs: ["show", "property", "existingBindings", "primitives", "symbolInstances", "symbolDefinitions"], outputs: ["closed", "saved"] }] });
|
|
27321
27321
|
}
|
|
27322
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
27322
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ProcessDesignerComponent, decorators: [{
|
|
27323
27323
|
type: Component,
|
|
27324
27324
|
args: [{ selector: 'mm-process-designer', standalone: true, imports: [
|
|
27325
27325
|
CommonModule,
|
|
@@ -28411,8 +28411,8 @@ class SymbolEditorComponent {
|
|
|
28411
28411
|
clearChanges() {
|
|
28412
28412
|
this.processDesigner?.clearChanges();
|
|
28413
28413
|
}
|
|
28414
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
28415
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
28414
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
28415
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SymbolEditorComponent, isStandalone: true, selector: "mm-symbol-editor", inputs: { symbol: "symbol", canvasWidth: "canvasWidth", canvasHeight: "canvasHeight", gridSize: "gridSize", showPropertyEditorPanel: "showPropertyEditorPanel", useDockview: "useDockview", symbolSettings: "symbolSettings" }, outputs: { symbolChange: "symbolChange", saveRequest: "saveRequest", symbolSettingsChange: "symbolSettingsChange" }, viewQueries: [{ propertyName: "processDesigner", first: true, predicate: ProcessDesignerComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
28416
28416
|
<div class="symbol-editor-container" [class.dockview-enabled]="useDockview">
|
|
28417
28417
|
<div class="editor-main">
|
|
28418
28418
|
<div class="editor-canvas">
|
|
@@ -28491,7 +28491,7 @@ class SymbolEditorComponent {
|
|
|
28491
28491
|
</mm-binding-editor-dialog>
|
|
28492
28492
|
`, isInline: true, styles: [":host{--editor-bg: var(--designer-bg, #f5f5f5);--editor-surface: var(--designer-surface, #ffffff);--editor-surface-alt: var(--designer-surface-alt, #f5f5f5);--editor-border: var(--designer-border, #e0e0e0);--editor-text: var(--designer-text, #333333);--editor-text-muted: var(--designer-text-muted, #666666);--editor-accent: var(--designer-accent, #1976d2);--editor-hover-bg: var(--designer-hover-bg, #eeeeee);display:flex;flex-direction:column;flex:1;width:100%;height:100%;min-height:0;overflow:hidden}.symbol-editor-container{display:flex;flex-direction:column;flex:1;height:100%;min-height:0;overflow:hidden;background:var(--editor-bg)}.editor-main{display:flex;flex:1;height:100%;min-height:0;min-width:0;position:relative;overflow:hidden}.editor-canvas{display:flex;flex:1;height:100%;min-width:0;min-height:0;overflow:hidden}mm-process-designer{flex:1;height:100%;min-height:0;min-width:0}.properties-panel{width:300px;display:flex;flex-direction:column;border-left:1px solid var(--editor-border);background:var(--editor-surface)}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--editor-surface-alt);border-bottom:1px solid var(--editor-border);flex-shrink:0}.panel-title{font-size:13px;font-weight:500;color:var(--editor-text)}.panel-close{width:24px;height:24px;border:none;background:transparent;cursor:pointer;font-size:18px;color:var(--editor-text-muted);border-radius:4px;display:flex;align-items:center;justify-content:center;padding:0}.panel-close:hover{background:var(--editor-hover-bg);color:var(--editor-accent)}.panel-content{flex:1;overflow-y:auto;min-height:0}mm-transform-property-editor{display:block}.panel-collapsed{width:28px;background:var(--editor-surface-alt);border-left:1px solid var(--editor-border);display:flex;flex-direction:column;align-items:center;padding-top:12px;cursor:pointer;transition:background .15s ease}.panel-collapsed:hover{background:var(--editor-hover-bg)}.collapsed-icon{color:var(--editor-text-muted);margin-bottom:8px}.collapsed-label{writing-mode:vertical-rl;text-orientation:mixed;font-size:11px;font-weight:500;color:var(--editor-text-muted);letter-spacing:.5px}mm-simulation-panel{flex-shrink:0}.symbol-editor-container.dockview-enabled .editor-main,.symbol-editor-container.dockview-enabled .editor-canvas{flex:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ProcessDesignerComponent, selector: "mm-process-designer", inputs: ["diagramConfig", "editorMode", "showSaveButtons", "transformProperties", "propertyBindings", "simulationPropertyValues", "useDockview", "symbolSettings", "styleClasses"], outputs: ["diagramChange", "saveRequest", "transformPropertiesChange", "simulationValueChange", "simulationReset", "symbolSettingsChange", "styleClassesChange"] }, { kind: "component", type: TransformPropertyEditorComponent, selector: "mm-transform-property-editor", inputs: ["transformProperties", "propertyBindings", "primitives", "symbolInstances"], outputs: ["propertiesChange", "openBindings"] }, { kind: "component", type: BindingEditorDialogComponent, selector: "mm-binding-editor-dialog", inputs: ["show", "property", "existingBindings", "primitives", "symbolInstances", "symbolDefinitions"], outputs: ["closed", "saved"] }, { kind: "component", type: SimulationPanelComponent, selector: "mm-simulation-panel", inputs: ["properties", "values"], outputs: ["valueChange", "resetValues"] }] });
|
|
28493
28493
|
}
|
|
28494
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
28494
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolEditorComponent, decorators: [{
|
|
28495
28495
|
type: Component,
|
|
28496
28496
|
args: [{ selector: 'mm-symbol-editor', standalone: true, imports: [
|
|
28497
28497
|
CommonModule,
|
|
@@ -29507,8 +29507,8 @@ class SymbolLibraryAdminComponent {
|
|
|
29507
29507
|
return { x: pos.x, y: pos.y, width: 50, height: 50 };
|
|
29508
29508
|
}
|
|
29509
29509
|
}
|
|
29510
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
29511
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
29510
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolLibraryAdminComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
29511
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SymbolLibraryAdminComponent, isStandalone: true, selector: "mm-symbol-library-admin", viewQueries: [{ propertyName: "symbolEditor", first: true, predicate: ["symbolEditor"], descendants: true }, { propertyName: "svgFileInputRef", first: true, predicate: ["svgFileInput"], descendants: true }], ngImport: i0, template: `
|
|
29512
29512
|
<div class="symbol-admin">
|
|
29513
29513
|
<div class="admin-header">
|
|
29514
29514
|
<h2>Symbol Library Admin</h2>
|
|
@@ -29995,7 +29995,7 @@ class SymbolLibraryAdminComponent {
|
|
|
29995
29995
|
</div>
|
|
29996
29996
|
`, isInline: true, styles: [":host{display:flex;flex-direction:column;flex:1;height:100%;min-height:0;overflow:hidden}.symbol-admin{display:flex;flex-direction:column;flex:1;height:100%;min-height:0;overflow:hidden;background:#f5f5f5}.admin-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:1rem;background:#fff;border-bottom:1px solid #e0e0e0}.admin-header h2{margin:0;font-size:18px;font-weight:500}.header-actions{display:flex;align-items:center;gap:.75rem}.edit-label{font-size:14px;color:#666;margin-right:.5rem}.admin-content{display:flex;flex:1;overflow:hidden;gap:1px;background:#e0e0e0}.edit-mode-container{display:flex;flex:1;height:100%;min-height:0;overflow:hidden}.edit-settings{width:220px;background:#fff;border-right:1px solid #e0e0e0;overflow-y:auto;flex-shrink:0}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:#f5f5f5;border-bottom:1px solid #e0e0e0;font-size:12px;font-weight:600;color:#333}.settings-close{width:20px;height:20px;background:transparent;border:none;cursor:pointer;font-size:16px;color:#666;padding:0;display:flex;align-items:center;justify-content:center;border-radius:2px}.settings-close:hover{background:#e0e0e0;color:#333}.settings-collapsed{width:28px;background:#fff;border-right:1px solid #e0e0e0;display:flex;flex-direction:column;align-items:center;padding:.5rem 0;cursor:pointer;flex-shrink:0;writing-mode:vertical-rl;text-orientation:mixed}.settings-collapsed:hover{background:#f0f0f0}.settings-collapsed .collapsed-icon{font-size:14px;color:#666;margin-bottom:.5rem}.settings-collapsed .collapsed-label{font-size:11px;color:#666;font-weight:500}.settings-section{margin-bottom:1rem;padding:0 .75rem .75rem;border-bottom:1px solid #f0f0f0}.settings-section:first-of-type{padding-top:.75rem}.settings-section:last-child{border-bottom:none;margin-bottom:0}.settings-section h4{margin:0 0 .5rem;font-size:12px;font-weight:600;color:#666;text-transform:uppercase}.editor-container{flex:1;display:flex;height:100%;min-width:0;min-height:0}.libraries-panel,.symbols-panel,.editor-panel{display:flex;flex-direction:column;background:#fff}.libraries-panel{width:250px}.symbols-panel{width:300px}.editor-panel{flex:1}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem;border-bottom:1px solid #e0e0e0;background:#fafafa}.panel-header h3{margin:0;font-size:14px;font-weight:500}.panel-content{flex:1;overflow-y:auto;padding:.5rem}.loading,.empty-state{padding:2rem 1rem;text-align:center;color:#999;font-size:13px}.library-item{padding:.75rem;border:1px solid #e0e0e0;border-radius:4px;margin-bottom:.5rem;cursor:pointer;transition:all .15s ease}.library-item:hover{border-color:#1976d2;background:#f5f5f5}.library-item.selected{border-color:#1976d2;background:#e3f2fd}.library-name{font-weight:500;margin-bottom:.25rem}.library-info{font-size:11px;color:#666}.symbol-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;border:1px solid #e0e0e0;border-radius:4px;margin-bottom:.5rem;cursor:pointer;transition:all .15s ease}.symbol-item:hover,.symbol-item.selected{border-color:#9c27b0;background:#f3e5f5}.symbol-preview{width:48px;height:48px;background:#fafafa;border-radius:4px;overflow:hidden;display:flex;align-items:center;justify-content:center}.symbol-preview img{max-width:100%;max-height:100%;object-fit:contain}.preview-svg{width:100%;height:100%}.symbol-info{flex:1}.symbol-name{font-weight:500;margin-bottom:.25rem}.symbol-size{font-size:11px;color:#666}.symbol-details{margin-bottom:1rem}.detail-row{display:flex;padding:.5rem 0;border-bottom:1px solid #f0f0f0}.detail-row label{width:100px;color:#666;font-size:12px}.detail-row span{flex:1;font-size:13px}.symbol-preview-large{background:#fafafa;border:1px solid #e0e0e0;border-radius:4px;padding:1rem;display:flex;align-items:center;justify-content:center;min-height:200px}.symbol-preview-large svg{max-width:100%;max-height:300px}.edit-form{display:flex;flex-direction:column;gap:.5rem}.dialog-content{padding:1rem}.form-group{margin-bottom:.75rem}.form-group label{display:block;margin-bottom:.25rem;font-size:12px;font-weight:500;color:#666}.form-group input,.form-group textarea,.form-group select{width:100%;box-sizing:border-box}.form-group textarea{min-height:40px}.form-row{display:flex;gap:.5rem}.form-row .form-group{flex:1}.template-select{padding:.5rem;border:1px solid #e0e0e0;border-radius:4px;font-size:14px}.svg-import-group{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background:#f5f5f5;border-radius:4px;margin-top:.5rem}.svg-filename{font-weight:500;color:#1976d2}.svg-info{font-size:12px;color:#666}.svg-scale-group{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:#e3f2fd;border-radius:4px;margin-top:.25rem}.svg-scale-group label{font-weight:500;margin:0}.scale-info{font-size:12px;color:#666;flex:1}.warning-text{color:#d32f2f;font-size:14px;margin-top:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i2$1.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "ngmodule", type: InputsModule }, { kind: "directive", type: i3$1.TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { kind: "component", type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { kind: "directive", type: i3$1.TextAreaDirective, selector: "textarea[kendoTextArea]", inputs: ["autoSize", "value"], outputs: ["valueChange"] }, { kind: "ngmodule", type: NumericTextBoxModule }, { kind: "ngmodule", type: DialogsModule }, { kind: "component", type: i3.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "component", type: i3.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: SymbolEditorComponent, selector: "mm-symbol-editor", inputs: ["symbol", "canvasWidth", "canvasHeight", "gridSize", "showPropertyEditorPanel", "useDockview", "symbolSettings"], outputs: ["symbolChange", "saveRequest", "symbolSettingsChange"] }] });
|
|
29997
29997
|
}
|
|
29998
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
29998
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolLibraryAdminComponent, decorators: [{
|
|
29999
29999
|
type: Component,
|
|
30000
30000
|
args: [{ selector: 'mm-symbol-library-admin', standalone: true, imports: [
|
|
30001
30001
|
CommonModule,
|
|
@@ -30539,10 +30539,10 @@ class SymbolLibraryDataSourceDirective extends DataSourceBase {
|
|
|
30539
30539
|
refresh() {
|
|
30540
30540
|
this.fetchAgain();
|
|
30541
30541
|
}
|
|
30542
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
30543
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
30542
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolLibraryDataSourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
30543
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.17", type: SymbolLibraryDataSourceDirective, isStandalone: true, selector: "[mmSymbolLibraryDataSource]", providers: [{ provide: DataSourceBase, useExisting: forwardRef(() => SymbolLibraryDataSourceDirective) }], exportAs: ["mmSymbolLibraryDataSource"], usesInheritance: true, ngImport: i0 });
|
|
30544
30544
|
}
|
|
30545
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
30545
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolLibraryDataSourceDirective, decorators: [{
|
|
30546
30546
|
type: Directive,
|
|
30547
30547
|
args: [{
|
|
30548
30548
|
selector: "[mmSymbolLibraryDataSource]",
|
|
@@ -30669,10 +30669,10 @@ class SymbolLibraryListComponent {
|
|
|
30669
30669
|
}
|
|
30670
30670
|
}
|
|
30671
30671
|
};
|
|
30672
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
30673
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
30672
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolLibraryListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30673
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: SymbolLibraryListComponent, isStandalone: true, selector: "mm-symbol-library-list", viewQueries: [{ propertyName: "dataSource", first: true, predicate: ["dir"], descendants: true }], ngImport: i0, template: "<div class=\"symbol-library-list-container\">\n <mm-list-view\n mmSymbolLibraryDataSource\n #dir=\"mmSymbolLibraryDataSource\"\n [sortable]=\"true\"\n [searchTextBoxEnabled]=\"true\"\n [selectable]=\"{mode: 'multiple', enabled: true}\"\n [pageable]=\"{buttonCount: 3, pageSizes: [10, 20, 50, 100]}\"\n [pageSize]=\"20\"\n [columns]=\"[\n {field: 'name', displayName: 'Name', dataType: 'text'},\n {field: 'description', displayName: 'Description', dataType: 'text'},\n {field: 'symbolCount', displayName: 'Symbols', dataType: 'numeric'},\n {field: 'isReadOnly', displayName: 'Read Only', dataType: 'boolean'}\n ]\"\n [actionCommandItems]=\"[\n {id: 'view', type:'link', text: 'View Symbols', svgIcon: viewIcon, onClick: onViewClick}\n ]\"\n [leftToolbarActions]=\"[\n {id: 'new', type:'link', text: 'New Library', svgIcon: plusIcon, onClick: onNewLibrary}\n ]\"\n [contextMenuCommandItems]=\"[\n {id: 'delete', type:'link', text: 'Delete', onClick: onDeleteClick, svgIcon: deleteIcon}\n ]\"\n (rowClicked)=\"onRowClick($event)\">\n </mm-list-view>\n</div>\n", styles: [".symbol-library-list-container{display:flex;flex-direction:column;height:100%;padding:16px;gap:16px}\n"], dependencies: [{ kind: "directive", type: SymbolLibraryDataSourceDirective, selector: "[mmSymbolLibraryDataSource]", exportAs: ["mmSymbolLibraryDataSource"] }, { kind: "component", type: ListViewComponent, selector: "mm-list-view", inputs: ["pageSize", "skip", "rowIsClickable", "showRowCheckBoxes", "showRowSelectAllCheckBox", "contextMenuType", "leftToolbarActions", "rightToolbarActions", "actionCommandItems", "contextMenuCommandItems", "excelExportFileName", "pdfExportFileName", "pageable", "sortable", "rowFilterEnabled", "searchTextBoxEnabled", "rowClass", "messages", "selectable", "columns"], outputs: ["rowClicked"] }] });
|
|
30674
30674
|
}
|
|
30675
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
30675
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolLibraryListComponent, decorators: [{
|
|
30676
30676
|
type: Component,
|
|
30677
30677
|
args: [{ selector: 'mm-symbol-library-list', standalone: true, imports: [
|
|
30678
30678
|
SymbolLibraryDataSourceDirective,
|
|
@@ -31208,10 +31208,10 @@ class SymbolLibraryDetailComponent {
|
|
|
31208
31208
|
const style = this.resolveStyle(primitive, styleClasses);
|
|
31209
31209
|
return style.stroke?.opacity ?? defaultOpacity;
|
|
31210
31210
|
}
|
|
31211
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
31212
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SymbolLibraryDetailComponent, isStandalone: true, selector: "mm-symbol-library-detail", viewQueries: [{ propertyName: "svgFileInputRef", first: true, predicate: ["svgFileInput"], descendants: true }], ngImport: i0, template: "<div class=\"symbol-library-detail-container\">\n @if (isLoading()) {\n <div class=\"loading-container\">\n <div class=\"loading-spinner\"></div>\n <span>Loading library...</span>\n </div>\n } @else if (library()) {\n <!-- Header -->\n <div class=\"detail-header\">\n <div class=\"header-left\">\n <button kendoButton\n [svgIcon]=\"backIcon\"\n fillMode=\"flat\"\n title=\"Back to library list\"\n (click)=\"navigateBack()\">\n </button>\n <h2 class=\"library-title\">{{ libraryName() }}</h2>\n @if (library()?.isReadOnly) {\n <span class=\"readonly-badge\">Read Only</span>\n }\n </div>\n <div class=\"header-right\">\n <button kendoButton\n [svgIcon]=\"uploadIcon\"\n fillMode=\"outline\"\n title=\"Import SVG\"\n (click)=\"showSvgImportDialogFn()\"\n [disabled]=\"!!library()?.isReadOnly\">\n </button>\n <button kendoButton\n [svgIcon]=\"plusIcon\"\n themeColor=\"primary\"\n title=\"New Symbol\"\n (click)=\"showCreateSymbolDialog()\"\n [disabled]=\"!!library()?.isReadOnly\">\n </button>\n </div>\n </div>\n\n <!-- Symbols Grid -->\n <div class=\"symbols-grid\">\n @for (symbol of symbols(); track symbol.rtId) {\n <div class=\"symbol-card\"\n [class.selected]=\"selectedSymbol()?.rtId === symbol.rtId\"\n (click)=\"selectSymbol(symbol)\">\n <div class=\"symbol-preview\">\n <svg [attr.viewBox]=\"'0 0 ' + symbol.bounds.width + ' ' + symbol.bounds.height\" preserveAspectRatio=\"xMidYMid meet\">\n @for (primitive of symbol.primitives; track primitive.id) {\n @switch (primitive.type) {\n @case ('rectangle') {\n <rect\n [attr.x]=\"primitive.position.x\"\n [attr.y]=\"primitive.position.y\"\n [attr.width]=\"$any(primitive).config?.width\"\n [attr.height]=\"$any(primitive).config?.height\"\n [attr.fill]=\"getFillColor(primitive, symbol.styleClasses)\"\n [attr.stroke]=\"getStrokeColor(primitive, symbol.styleClasses)\"\n [attr.stroke-width]=\"getStrokeWidth(primitive, symbol.styleClasses)\"\n [attr.fill-opacity]=\"getFillOpacity(primitive, symbol.styleClasses)\"\n [attr.stroke-opacity]=\"getStrokeOpacity(primitive, symbol.styleClasses)\"\n [attr.rx]=\"$any(primitive).config?.cornerRadius || 0\"\n [attr.ry]=\"$any(primitive).config?.cornerRadius || 0\"\n />\n }\n @case ('ellipse') {\n <ellipse\n [attr.cx]=\"primitive.position.x + ($any(primitive).config?.radiusX || 0)\"\n [attr.cy]=\"primitive.position.y + ($any(primitive).config?.radiusY || 0)\"\n [attr.rx]=\"$any(primitive).config?.radiusX\"\n [attr.ry]=\"$any(primitive).config?.radiusY\"\n [attr.fill]=\"getFillColor(primitive, symbol.styleClasses)\"\n [attr.stroke]=\"getStrokeColor(primitive, symbol.styleClasses)\"\n [attr.stroke-width]=\"getStrokeWidth(primitive, symbol.styleClasses)\"\n [attr.fill-opacity]=\"getFillOpacity(primitive, symbol.styleClasses)\"\n [attr.stroke-opacity]=\"getStrokeOpacity(primitive, symbol.styleClasses)\"\n />\n }\n @case ('line') {\n <line\n [attr.x1]=\"$any(primitive).config?.start?.x\"\n [attr.y1]=\"$any(primitive).config?.start?.y\"\n [attr.x2]=\"$any(primitive).config?.end?.x\"\n [attr.y2]=\"$any(primitive).config?.end?.y\"\n [attr.stroke]=\"getStrokeColor(primitive, symbol.styleClasses)\"\n [attr.stroke-width]=\"getStrokeWidth(primitive, symbol.styleClasses)\"\n [attr.stroke-opacity]=\"getStrokeOpacity(primitive, symbol.styleClasses)\"\n />\n }\n @case ('path') {\n <path\n [attr.d]=\"$any(primitive).config?.d\"\n [attr.transform]=\"'translate(' + primitive.position.x + ',' + primitive.position.y + ')'\"\n [attr.fill]=\"getFillColor(primitive, symbol.styleClasses, 'none')\"\n [attr.stroke]=\"getStrokeColor(primitive, symbol.styleClasses)\"\n [attr.stroke-width]=\"getStrokeWidth(primitive, symbol.styleClasses)\"\n [attr.fill-opacity]=\"getFillOpacity(primitive, symbol.styleClasses)\"\n [attr.stroke-opacity]=\"getStrokeOpacity(primitive, symbol.styleClasses)\"\n />\n }\n @case ('text') {\n <text\n [attr.x]=\"primitive.position.x\"\n [attr.y]=\"primitive.position.y\"\n [attr.fill]=\"getFillColor(primitive, symbol.styleClasses, '#333333')\"\n [attr.fill-opacity]=\"getFillOpacity(primitive, symbol.styleClasses)\"\n [attr.font-size]=\"$any(primitive).config?.fontSize || 12\"\n [attr.font-family]=\"$any(primitive).config?.fontFamily || 'sans-serif'\"\n >{{ $any(primitive).config?.text }}</text>\n }\n @case ('polyline') {\n <polyline\n [attr.points]=\"getPointsWithOffset(primitive)\"\n [attr.fill]=\"getFillColor(primitive, symbol.styleClasses, 'none')\"\n [attr.stroke]=\"getStrokeColor(primitive, symbol.styleClasses)\"\n [attr.stroke-width]=\"getStrokeWidth(primitive, symbol.styleClasses)\"\n [attr.fill-opacity]=\"getFillOpacity(primitive, symbol.styleClasses)\"\n [attr.stroke-opacity]=\"getStrokeOpacity(primitive, symbol.styleClasses)\"\n />\n }\n @case ('polygon') {\n <polygon\n [attr.points]=\"getPointsWithOffset(primitive)\"\n [attr.fill]=\"getFillColor(primitive, symbol.styleClasses)\"\n [attr.stroke]=\"getStrokeColor(primitive, symbol.styleClasses)\"\n [attr.stroke-width]=\"getStrokeWidth(primitive, symbol.styleClasses)\"\n [attr.fill-opacity]=\"getFillOpacity(primitive, symbol.styleClasses)\"\n [attr.stroke-opacity]=\"getStrokeOpacity(primitive, symbol.styleClasses)\"\n />\n }\n }\n }\n </svg>\n </div>\n <div class=\"symbol-info\">\n <span class=\"symbol-name\">{{ symbol.name }}</span>\n <div class=\"symbol-actions\">\n <button kendoButton [svgIcon]=\"editIcon\" fillMode=\"flat\" size=\"small\" (click)=\"editSymbol(symbol); $event.stopPropagation()\">\n </button>\n <button kendoButton [svgIcon]=\"deleteIcon\" fillMode=\"flat\" size=\"small\"\n [disabled]=\"!!library()?.isReadOnly\"\n (click)=\"deleteSymbol(symbol); $event.stopPropagation()\">\n </button>\n </div>\n </div>\n </div>\n } @empty {\n <div class=\"no-symbols\">\n <p>No symbols in this library</p>\n <button kendoButton [svgIcon]=\"plusIcon\" themeColor=\"primary\" (click)=\"showCreateSymbolDialog()\" [disabled]=\"!!library()?.isReadOnly\">\n Create First Symbol\n </button>\n </div>\n }\n </div>\n } @else {\n <div class=\"error-container\">\n <p>Library not found</p>\n <button kendoButton (click)=\"navigateBack()\">Go Back</button>\n </div>\n }\n</div>\n\n<!-- Create Symbol Dialog -->\n@if (showSymbolDialog()) {\n <kendo-dialog title=\"Create Symbol\" (close)=\"closeSymbolDialog()\" [width]=\"450\">\n <div class=\"dialog-content\">\n <div class=\"form-group\">\n <label>Name *</label>\n <input kendoTextBox [(ngModel)]=\"newSymbol.name\" placeholder=\"Symbol name\"/>\n </div>\n <div class=\"form-group\">\n <label>Description</label>\n <textarea kendoTextArea [(ngModel)]=\"newSymbol.description\" placeholder=\"Optional description\" rows=\"2\"></textarea>\n </div>\n <div class=\"form-row\">\n <div class=\"form-group\">\n <label>Width</label>\n <kendo-numerictextbox [(ngModel)]=\"newSymbol.width\" [min]=\"10\" [max]=\"2000\" [step]=\"10\" [format]=\"'n0'\"></kendo-numerictextbox>\n </div>\n <div class=\"form-group\">\n <label>Height</label>\n <kendo-numerictextbox [(ngModel)]=\"newSymbol.height\" [min]=\"10\" [max]=\"2000\" [step]=\"10\" [format]=\"'n0'\"></kendo-numerictextbox>\n </div>\n </div>\n <div class=\"form-group\">\n <label>Category</label>\n <input kendoTextBox [(ngModel)]=\"newSymbol.category\" placeholder=\"e.g., Basic, Flow, Equipment\"/>\n </div>\n </div>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"closeSymbolDialog()\">Cancel</button>\n <button kendoButton themeColor=\"primary\" (click)=\"createSymbol()\" [disabled]=\"!newSymbol.name\">\n Create\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n}\n\n<!-- Import SVG Dialog -->\n@if (showSvgImportDialog()) {\n <kendo-dialog title=\"Import Symbol from SVG\" (close)=\"closeSvgImportDialog()\" [width]=\"500\">\n <div class=\"dialog-content\">\n <!-- Hidden file input -->\n <input #svgFileInput\n type=\"file\"\n accept=\".svg,image/svg+xml\"\n style=\"display: none\"\n (change)=\"onSvgFileSelected($event)\"/>\n\n <!-- File Selection -->\n <div class=\"form-group svg-file-group\">\n <button kendoButton (click)=\"svgFileInputRef.nativeElement.click()\">\n {{ svgImport.svgFileName ? 'Change SVG file...' : 'Select SVG file...' }}\n </button>\n @if (svgImport.svgFileName) {\n <div class=\"svg-file-info\">\n <span class=\"svg-filename\">{{ svgImport.svgFileName }}</span>\n <span class=\"svg-stats\">\n {{ svgImport.svgPrimitives?.length || 0 }} elements\n @if (svgImport.styleClasses && svgImport.styleClasses.length > 0) {\n , {{ svgImport.styleClasses.length }} style(s)\n }\n </span>\n </div>\n }\n </div>\n\n @if (svgImport.svgPrimitives) {\n <!-- Scale Control -->\n <div class=\"form-group svg-scale-group\">\n <label>Scale:</label>\n <kendo-numerictextbox\n [(ngModel)]=\"svgImport.svgScale\"\n [min]=\"0.1\"\n [max]=\"10\"\n [step]=\"0.1\"\n [decimals]=\"1\"\n [format]=\"'n1'\"\n (valueChange)=\"onSvgScaleChange($event)\"\n style=\"width: 100px\">\n </kendo-numerictextbox>\n <span class=\"scale-info\">\n Original: {{ svgImport.svgOriginalWidth }}\u00D7{{ svgImport.svgOriginalHeight }}px\n \u2192 {{ svgImport.width }}\u00D7{{ svgImport.height }}px\n </span>\n <button kendoButton look=\"flat\" (click)=\"resetSvgScale()\" title=\"Reset to 1x\">\n Reset\n </button>\n </div>\n\n <!-- Symbol Properties -->\n <div class=\"form-group\">\n <label>Name *</label>\n <input kendoTextBox [(ngModel)]=\"svgImport.name\" placeholder=\"Symbol name\"/>\n </div>\n <div class=\"form-group\">\n <label>Description</label>\n <textarea kendoTextArea [(ngModel)]=\"svgImport.description\" placeholder=\"Optional description\" rows=\"2\"></textarea>\n </div>\n <div class=\"form-group\">\n <label>Category</label>\n <input kendoTextBox [(ngModel)]=\"svgImport.category\" placeholder=\"e.g., Basic, Flow, Equipment\"/>\n </div>\n }\n </div>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"closeSvgImportDialog()\">Cancel</button>\n <button kendoButton themeColor=\"primary\"\n (click)=\"createSymbolFromSvg()\"\n [disabled]=\"!svgImport.name || !svgImport.svgPrimitives?.length\">\n Import\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n}\n", styles: [":host{--card-bg: var(--symbol-card-bg, #1a2332);--card-border: var(--symbol-card-border, rgba(100, 206, 185, .3));--card-hover-border: var(--symbol-card-hover-border, #64ceb9);--card-preview-bg: var(--symbol-card-preview-bg, #394555);--card-info-border: var(--symbol-card-info-border, rgba(100, 206, 185, .2));--text-primary: var(--symbol-text-primary, #e0e0e0);--text-secondary: var(--symbol-text-secondary, #999);--accent-color: var(--symbol-accent-color, #64ceb9)}.symbol-library-detail-container{display:flex;flex-direction:column;height:100%;padding:12px 16px;gap:12px}.loading-container,.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:16px}.loading-spinner{width:40px;height:40px;border:3px solid var(--card-border);border-top-color:var(--accent-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.detail-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--card-border)}.header-left{display:flex;align-items:center;gap:8px}.library-title{margin:0;font-size:1.25rem;font-weight:500;color:var(--text-primary)}.readonly-badge{padding:4px 8px;font-size:.75rem;background:var(--card-preview-bg);border:1px solid var(--card-border);border-radius:4px;color:var(--text-secondary)}.symbols-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;flex:1;overflow-y:auto;padding:4px;align-content:start}.symbol-card{display:flex;flex-direction:column;background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;overflow:hidden;cursor:pointer;transition:border-color .2s,box-shadow .2s}.symbol-card:hover{border-color:var(--card-hover-border);box-shadow:0 2px 8px #0000004d}.symbol-card.selected{border-color:var(--accent-color);box-shadow:0 0 0 2px #64ceb94d}.symbol-preview{display:flex;align-items:center;justify-content:center;height:120px;padding:12px;background:var(--card-preview-bg)}.symbol-preview svg{width:100%;height:100%;max-width:120px;max-height:100px}.symbol-info{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-top:1px solid var(--card-info-border)}.symbol-name{font-size:.875rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.symbol-actions{display:flex;gap:4px}.no-symbols{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;gap:16px;color:var(--text-secondary)}.header-right{display:flex;gap:4px}.dialog-content{padding:16px 0}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-size:13px;font-weight:500;color:#333}.form-group input,.form-group textarea,.form-group kendo-numerictextbox{width:100%}.form-row{display:flex;gap:16px}.form-row .form-group{flex:1}.svg-file-group{display:flex;flex-direction:column;gap:8px;padding:16px;background:#f5f5f5;border-radius:6px;margin-bottom:16px}.svg-file-info{display:flex;flex-direction:column;gap:4px}.svg-filename{font-weight:500;color:#1976d2}.svg-stats{font-size:12px;color:#666}.svg-scale-group{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#e3f2fd;border-radius:6px;margin-bottom:16px}.svg-scale-group label{font-weight:500;margin:0;white-space:nowrap}.svg-scale-group kendo-numerictextbox{width:100px}.svg-scale-group .scale-info{flex:1;font-size:12px;color:#666}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i2$1.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "ngmodule", type: SVGIconModule }, { kind: "ngmodule", type: InputsModule }, { kind: "directive", type: i3$1.TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { kind: "component", type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { kind: "directive", type: i3$1.TextAreaDirective, selector: "textarea[kendoTextArea]", inputs: ["autoSize", "value"], outputs: ["valueChange"] }, { kind: "ngmodule", type: NumericTextBoxModule }, { kind: "ngmodule", type: DialogsModule }, { kind: "component", type: i3.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "component", type: i3.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }] });
|
|
31211
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolLibraryDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
31212
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SymbolLibraryDetailComponent, isStandalone: true, selector: "mm-symbol-library-detail", viewQueries: [{ propertyName: "svgFileInputRef", first: true, predicate: ["svgFileInput"], descendants: true }], ngImport: i0, template: "<div class=\"symbol-library-detail-container\">\n @if (isLoading()) {\n <div class=\"loading-container\">\n <div class=\"loading-spinner\"></div>\n <span>Loading library...</span>\n </div>\n } @else if (library()) {\n <!-- Header -->\n <div class=\"detail-header\">\n <div class=\"header-left\">\n <button kendoButton\n [svgIcon]=\"backIcon\"\n fillMode=\"flat\"\n title=\"Back to library list\"\n (click)=\"navigateBack()\">\n </button>\n <h2 class=\"library-title\">{{ libraryName() }}</h2>\n @if (library()?.isReadOnly) {\n <span class=\"readonly-badge\">Read Only</span>\n }\n </div>\n <div class=\"header-right\">\n <button kendoButton\n [svgIcon]=\"uploadIcon\"\n fillMode=\"outline\"\n title=\"Import SVG\"\n (click)=\"showSvgImportDialogFn()\"\n [disabled]=\"!!library()?.isReadOnly\">\n </button>\n <button kendoButton\n [svgIcon]=\"plusIcon\"\n themeColor=\"primary\"\n title=\"New Symbol\"\n (click)=\"showCreateSymbolDialog()\"\n [disabled]=\"!!library()?.isReadOnly\">\n </button>\n </div>\n </div>\n\n <!-- Symbols Grid -->\n <div class=\"symbols-grid\">\n @for (symbol of symbols(); track symbol.rtId) {\n <div class=\"symbol-card\"\n [class.selected]=\"selectedSymbol()?.rtId === symbol.rtId\"\n (click)=\"selectSymbol(symbol)\">\n <div class=\"symbol-preview\">\n <svg [attr.viewBox]=\"'0 0 ' + symbol.bounds.width + ' ' + symbol.bounds.height\" preserveAspectRatio=\"xMidYMid meet\">\n @for (primitive of symbol.primitives; track primitive.id) {\n @switch (primitive.type) {\n @case ('rectangle') {\n <rect\n [attr.x]=\"primitive.position.x\"\n [attr.y]=\"primitive.position.y\"\n [attr.width]=\"$any(primitive).config?.width\"\n [attr.height]=\"$any(primitive).config?.height\"\n [attr.fill]=\"getFillColor(primitive, symbol.styleClasses)\"\n [attr.stroke]=\"getStrokeColor(primitive, symbol.styleClasses)\"\n [attr.stroke-width]=\"getStrokeWidth(primitive, symbol.styleClasses)\"\n [attr.fill-opacity]=\"getFillOpacity(primitive, symbol.styleClasses)\"\n [attr.stroke-opacity]=\"getStrokeOpacity(primitive, symbol.styleClasses)\"\n [attr.rx]=\"$any(primitive).config?.cornerRadius || 0\"\n [attr.ry]=\"$any(primitive).config?.cornerRadius || 0\"\n />\n }\n @case ('ellipse') {\n <ellipse\n [attr.cx]=\"primitive.position.x + ($any(primitive).config?.radiusX || 0)\"\n [attr.cy]=\"primitive.position.y + ($any(primitive).config?.radiusY || 0)\"\n [attr.rx]=\"$any(primitive).config?.radiusX\"\n [attr.ry]=\"$any(primitive).config?.radiusY\"\n [attr.fill]=\"getFillColor(primitive, symbol.styleClasses)\"\n [attr.stroke]=\"getStrokeColor(primitive, symbol.styleClasses)\"\n [attr.stroke-width]=\"getStrokeWidth(primitive, symbol.styleClasses)\"\n [attr.fill-opacity]=\"getFillOpacity(primitive, symbol.styleClasses)\"\n [attr.stroke-opacity]=\"getStrokeOpacity(primitive, symbol.styleClasses)\"\n />\n }\n @case ('line') {\n <line\n [attr.x1]=\"$any(primitive).config?.start?.x\"\n [attr.y1]=\"$any(primitive).config?.start?.y\"\n [attr.x2]=\"$any(primitive).config?.end?.x\"\n [attr.y2]=\"$any(primitive).config?.end?.y\"\n [attr.stroke]=\"getStrokeColor(primitive, symbol.styleClasses)\"\n [attr.stroke-width]=\"getStrokeWidth(primitive, symbol.styleClasses)\"\n [attr.stroke-opacity]=\"getStrokeOpacity(primitive, symbol.styleClasses)\"\n />\n }\n @case ('path') {\n <path\n [attr.d]=\"$any(primitive).config?.d\"\n [attr.transform]=\"'translate(' + primitive.position.x + ',' + primitive.position.y + ')'\"\n [attr.fill]=\"getFillColor(primitive, symbol.styleClasses, 'none')\"\n [attr.stroke]=\"getStrokeColor(primitive, symbol.styleClasses)\"\n [attr.stroke-width]=\"getStrokeWidth(primitive, symbol.styleClasses)\"\n [attr.fill-opacity]=\"getFillOpacity(primitive, symbol.styleClasses)\"\n [attr.stroke-opacity]=\"getStrokeOpacity(primitive, symbol.styleClasses)\"\n />\n }\n @case ('text') {\n <text\n [attr.x]=\"primitive.position.x\"\n [attr.y]=\"primitive.position.y\"\n [attr.fill]=\"getFillColor(primitive, symbol.styleClasses, '#333333')\"\n [attr.fill-opacity]=\"getFillOpacity(primitive, symbol.styleClasses)\"\n [attr.font-size]=\"$any(primitive).config?.fontSize || 12\"\n [attr.font-family]=\"$any(primitive).config?.fontFamily || 'sans-serif'\"\n >{{ $any(primitive).config?.text }}</text>\n }\n @case ('polyline') {\n <polyline\n [attr.points]=\"getPointsWithOffset(primitive)\"\n [attr.fill]=\"getFillColor(primitive, symbol.styleClasses, 'none')\"\n [attr.stroke]=\"getStrokeColor(primitive, symbol.styleClasses)\"\n [attr.stroke-width]=\"getStrokeWidth(primitive, symbol.styleClasses)\"\n [attr.fill-opacity]=\"getFillOpacity(primitive, symbol.styleClasses)\"\n [attr.stroke-opacity]=\"getStrokeOpacity(primitive, symbol.styleClasses)\"\n />\n }\n @case ('polygon') {\n <polygon\n [attr.points]=\"getPointsWithOffset(primitive)\"\n [attr.fill]=\"getFillColor(primitive, symbol.styleClasses)\"\n [attr.stroke]=\"getStrokeColor(primitive, symbol.styleClasses)\"\n [attr.stroke-width]=\"getStrokeWidth(primitive, symbol.styleClasses)\"\n [attr.fill-opacity]=\"getFillOpacity(primitive, symbol.styleClasses)\"\n [attr.stroke-opacity]=\"getStrokeOpacity(primitive, symbol.styleClasses)\"\n />\n }\n }\n }\n </svg>\n </div>\n <div class=\"symbol-info\">\n <span class=\"symbol-name\">{{ symbol.name }}</span>\n <div class=\"symbol-actions\">\n <button kendoButton [svgIcon]=\"editIcon\" fillMode=\"flat\" size=\"small\" (click)=\"editSymbol(symbol); $event.stopPropagation()\">\n </button>\n <button kendoButton [svgIcon]=\"deleteIcon\" fillMode=\"flat\" size=\"small\"\n [disabled]=\"!!library()?.isReadOnly\"\n (click)=\"deleteSymbol(symbol); $event.stopPropagation()\">\n </button>\n </div>\n </div>\n </div>\n } @empty {\n <div class=\"no-symbols\">\n <p>No symbols in this library</p>\n <button kendoButton [svgIcon]=\"plusIcon\" themeColor=\"primary\" (click)=\"showCreateSymbolDialog()\" [disabled]=\"!!library()?.isReadOnly\">\n Create First Symbol\n </button>\n </div>\n }\n </div>\n } @else {\n <div class=\"error-container\">\n <p>Library not found</p>\n <button kendoButton (click)=\"navigateBack()\">Go Back</button>\n </div>\n }\n</div>\n\n<!-- Create Symbol Dialog -->\n@if (showSymbolDialog()) {\n <kendo-dialog title=\"Create Symbol\" (close)=\"closeSymbolDialog()\" [width]=\"450\">\n <div class=\"dialog-content\">\n <div class=\"form-group\">\n <label>Name *</label>\n <input kendoTextBox [(ngModel)]=\"newSymbol.name\" placeholder=\"Symbol name\"/>\n </div>\n <div class=\"form-group\">\n <label>Description</label>\n <textarea kendoTextArea [(ngModel)]=\"newSymbol.description\" placeholder=\"Optional description\" rows=\"2\"></textarea>\n </div>\n <div class=\"form-row\">\n <div class=\"form-group\">\n <label>Width</label>\n <kendo-numerictextbox [(ngModel)]=\"newSymbol.width\" [min]=\"10\" [max]=\"2000\" [step]=\"10\" [format]=\"'n0'\"></kendo-numerictextbox>\n </div>\n <div class=\"form-group\">\n <label>Height</label>\n <kendo-numerictextbox [(ngModel)]=\"newSymbol.height\" [min]=\"10\" [max]=\"2000\" [step]=\"10\" [format]=\"'n0'\"></kendo-numerictextbox>\n </div>\n </div>\n <div class=\"form-group\">\n <label>Category</label>\n <input kendoTextBox [(ngModel)]=\"newSymbol.category\" placeholder=\"e.g., Basic, Flow, Equipment\"/>\n </div>\n </div>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"closeSymbolDialog()\">Cancel</button>\n <button kendoButton themeColor=\"primary\" (click)=\"createSymbol()\" [disabled]=\"!newSymbol.name\">\n Create\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n}\n\n<!-- Import SVG Dialog -->\n@if (showSvgImportDialog()) {\n <kendo-dialog title=\"Import Symbol from SVG\" (close)=\"closeSvgImportDialog()\" [width]=\"500\">\n <div class=\"dialog-content\">\n <!-- Hidden file input -->\n <input #svgFileInput\n type=\"file\"\n accept=\".svg,image/svg+xml\"\n style=\"display: none\"\n (change)=\"onSvgFileSelected($event)\"/>\n\n <!-- File Selection -->\n <div class=\"form-group svg-file-group\">\n <button kendoButton (click)=\"svgFileInputRef.nativeElement.click()\">\n {{ svgImport.svgFileName ? 'Change SVG file...' : 'Select SVG file...' }}\n </button>\n @if (svgImport.svgFileName) {\n <div class=\"svg-file-info\">\n <span class=\"svg-filename\">{{ svgImport.svgFileName }}</span>\n <span class=\"svg-stats\">\n {{ svgImport.svgPrimitives?.length || 0 }} elements\n @if (svgImport.styleClasses && svgImport.styleClasses.length > 0) {\n , {{ svgImport.styleClasses.length }} style(s)\n }\n </span>\n </div>\n }\n </div>\n\n @if (svgImport.svgPrimitives) {\n <!-- Scale Control -->\n <div class=\"form-group svg-scale-group\">\n <label>Scale:</label>\n <kendo-numerictextbox\n [(ngModel)]=\"svgImport.svgScale\"\n [min]=\"0.1\"\n [max]=\"10\"\n [step]=\"0.1\"\n [decimals]=\"1\"\n [format]=\"'n1'\"\n (valueChange)=\"onSvgScaleChange($event)\"\n style=\"width: 100px\">\n </kendo-numerictextbox>\n <span class=\"scale-info\">\n Original: {{ svgImport.svgOriginalWidth }}\u00D7{{ svgImport.svgOriginalHeight }}px\n \u2192 {{ svgImport.width }}\u00D7{{ svgImport.height }}px\n </span>\n <button kendoButton look=\"flat\" (click)=\"resetSvgScale()\" title=\"Reset to 1x\">\n Reset\n </button>\n </div>\n\n <!-- Symbol Properties -->\n <div class=\"form-group\">\n <label>Name *</label>\n <input kendoTextBox [(ngModel)]=\"svgImport.name\" placeholder=\"Symbol name\"/>\n </div>\n <div class=\"form-group\">\n <label>Description</label>\n <textarea kendoTextArea [(ngModel)]=\"svgImport.description\" placeholder=\"Optional description\" rows=\"2\"></textarea>\n </div>\n <div class=\"form-group\">\n <label>Category</label>\n <input kendoTextBox [(ngModel)]=\"svgImport.category\" placeholder=\"e.g., Basic, Flow, Equipment\"/>\n </div>\n }\n </div>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"closeSvgImportDialog()\">Cancel</button>\n <button kendoButton themeColor=\"primary\"\n (click)=\"createSymbolFromSvg()\"\n [disabled]=\"!svgImport.name || !svgImport.svgPrimitives?.length\">\n Import\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n}\n", styles: [":host{--card-bg: var(--symbol-card-bg, #1a2332);--card-border: var(--symbol-card-border, rgba(100, 206, 185, .3));--card-hover-border: var(--symbol-card-hover-border, #64ceb9);--card-preview-bg: var(--symbol-card-preview-bg, #394555);--card-info-border: var(--symbol-card-info-border, rgba(100, 206, 185, .2));--text-primary: var(--symbol-text-primary, #e0e0e0);--text-secondary: var(--symbol-text-secondary, #999);--accent-color: var(--symbol-accent-color, #64ceb9)}.symbol-library-detail-container{display:flex;flex-direction:column;height:100%;padding:12px 16px;gap:12px}.loading-container,.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:16px}.loading-spinner{width:40px;height:40px;border:3px solid var(--card-border);border-top-color:var(--accent-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.detail-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--card-border)}.header-left{display:flex;align-items:center;gap:8px}.library-title{margin:0;font-size:1.25rem;font-weight:500;color:var(--text-primary)}.readonly-badge{padding:4px 8px;font-size:.75rem;background:var(--card-preview-bg);border:1px solid var(--card-border);border-radius:4px;color:var(--text-secondary)}.symbols-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;flex:1;overflow-y:auto;padding:4px;align-content:start}.symbol-card{display:flex;flex-direction:column;background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;overflow:hidden;cursor:pointer;transition:border-color .2s,box-shadow .2s}.symbol-card:hover{border-color:var(--card-hover-border);box-shadow:0 2px 8px #0000004d}.symbol-card.selected{border-color:var(--accent-color);box-shadow:0 0 0 2px #64ceb94d}.symbol-preview{display:flex;align-items:center;justify-content:center;height:120px;padding:12px;background:var(--card-preview-bg)}.symbol-preview svg{width:100%;height:100%;max-width:120px;max-height:100px}.symbol-info{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-top:1px solid var(--card-info-border)}.symbol-name{font-size:.875rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.symbol-actions{display:flex;gap:4px}.no-symbols{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;gap:16px;color:var(--text-secondary)}.header-right{display:flex;gap:4px}.dialog-content{padding:16px 0}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-size:13px;font-weight:500;color:#333}.form-group input,.form-group textarea,.form-group kendo-numerictextbox{width:100%}.form-row{display:flex;gap:16px}.form-row .form-group{flex:1}.svg-file-group{display:flex;flex-direction:column;gap:8px;padding:16px;background:#f5f5f5;border-radius:6px;margin-bottom:16px}.svg-file-info{display:flex;flex-direction:column;gap:4px}.svg-filename{font-weight:500;color:#1976d2}.svg-stats{font-size:12px;color:#666}.svg-scale-group{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#e3f2fd;border-radius:6px;margin-bottom:16px}.svg-scale-group label{font-weight:500;margin:0;white-space:nowrap}.svg-scale-group kendo-numerictextbox{width:100px}.svg-scale-group .scale-info{flex:1;font-size:12px;color:#666}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i2$1.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "ngmodule", type: SVGIconModule }, { kind: "ngmodule", type: InputsModule }, { kind: "directive", type: i3$1.TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { kind: "component", type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { kind: "directive", type: i3$1.TextAreaDirective, selector: "textarea[kendoTextArea]", inputs: ["autoSize", "value"], outputs: ["valueChange"] }, { kind: "ngmodule", type: NumericTextBoxModule }, { kind: "ngmodule", type: DialogsModule }, { kind: "component", type: i3.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "component", type: i3.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }] });
|
|
31213
31213
|
}
|
|
31214
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
31214
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolLibraryDetailComponent, decorators: [{
|
|
31215
31215
|
type: Component,
|
|
31216
31216
|
args: [{ selector: 'mm-symbol-library-detail', standalone: true, imports: [
|
|
31217
31217
|
CommonModule,
|
|
@@ -31445,12 +31445,12 @@ class SymbolEditorPageComponent {
|
|
|
31445
31445
|
event.returnValue = '';
|
|
31446
31446
|
}
|
|
31447
31447
|
}
|
|
31448
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
31449
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
31448
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolEditorPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
31449
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SymbolEditorPageComponent, isStandalone: true, selector: "mm-symbol-editor-page", host: { listeners: { "window:beforeunload": "handleBeforeUnload($event)" } }, providers: [
|
|
31450
31450
|
{ provide: HAS_UNSAVED_CHANGES, useExisting: SymbolEditorPageComponent }
|
|
31451
31451
|
], viewQueries: [{ propertyName: "symbolEditor", first: true, predicate: SymbolEditorComponent, descendants: true }], ngImport: i0, template: "<div class=\"symbol-editor-page-container\">\n @if (isLoading()) {\n <div class=\"loading-container\">\n <div class=\"loading-spinner\"></div>\n <span>Loading symbol editor...</span>\n </div>\n } @else if (symbol()) {\n <!-- Editor Header -->\n <div class=\"editor-header\">\n <div class=\"header-left\">\n <button kendoButton [svgIcon]=\"backIcon\" fillMode=\"flat\" (click)=\"navigateBack()\">\n Back\n </button>\n <div class=\"symbol-title\">\n <span class=\"library-name\">{{ library()?.name }}</span>\n <span class=\"separator\">/</span>\n <span class=\"symbol-name\">{{ symbol()?.name }}</span>\n @if (hasUnsavedChanges()) {\n <span class=\"unsaved-indicator\">*</span>\n }\n </div>\n </div>\n <div class=\"header-right\">\n <button kendoButton\n [svgIcon]=\"saveIcon\"\n themeColor=\"primary\"\n [disabled]=\"isSaving() || !hasUnsavedChanges()\"\n (click)=\"saveSymbol()\">\n {{ isSaving() ? 'Saving...' : 'Save' }}\n </button>\n </div>\n </div>\n\n <!-- Symbol Editor -->\n <div class=\"editor-content\">\n <mm-symbol-editor\n [symbol]=\"symbol()\"\n [canvasWidth]=\"symbol()?.canvasSize?.width ?? symbol()?.bounds?.width ?? 400\"\n [canvasHeight]=\"symbol()?.canvasSize?.height ?? symbol()?.bounds?.height ?? 300\"\n [gridSize]=\"symbol()?.gridSize ?? 10\"\n [useDockview]=\"true\"\n [symbolSettings]=\"symbolSettings()\"\n (symbolChange)=\"onSymbolChange($event)\"\n (saveRequest)=\"onSaveRequest($event)\"\n (symbolSettingsChange)=\"onSymbolSettingsChange($event)\">\n </mm-symbol-editor>\n </div>\n } @else {\n <div class=\"error-container\">\n <p>Symbol not found</p>\n <button kendoButton (click)=\"navigateBack()\">Go Back</button>\n </div>\n }\n</div>\n", styles: [":host{display:flex;flex-direction:column;flex:1;height:100%;min-height:0;overflow:hidden;--editor-bg: var(--designer-bg, #f5f5f5);--editor-surface: var(--designer-surface, #ffffff);--editor-surface-alt: var(--designer-surface-alt, #f5f5f5);--editor-border: var(--designer-border, #e0e0e0);--editor-text: var(--designer-text, #333333);--editor-text-muted: var(--designer-text-muted, #666666);--editor-accent: var(--designer-accent, #1976d2)}.symbol-editor-page-container{display:flex;flex-direction:column;flex:1;height:100%;min-height:0;overflow:hidden;background:var(--editor-bg)}.loading-container,.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:16px;color:var(--editor-text)}.loading-spinner{width:40px;height:40px;border:3px solid var(--editor-border);border-top-color:var(--editor-accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.editor-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:var(--editor-surface);border-bottom:1px solid var(--editor-border);flex-shrink:0}.header-left{display:flex;align-items:center;gap:16px}.symbol-title{display:flex;align-items:center;gap:8px;font-size:1rem;color:var(--editor-text)}.library-name{color:var(--editor-text-muted)}.separator{color:var(--editor-border)}.symbol-name{font-weight:500;color:var(--editor-text)}.unsaved-indicator{color:#f44336;font-weight:700;font-size:1.2rem}.editor-content{display:flex;flex-direction:column;flex:1;overflow:hidden;min-height:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i2$1.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "ngmodule", type: SVGIconModule }, { kind: "component", type: SymbolEditorComponent, selector: "mm-symbol-editor", inputs: ["symbol", "canvasWidth", "canvasHeight", "gridSize", "showPropertyEditorPanel", "useDockview", "symbolSettings"], outputs: ["symbolChange", "saveRequest", "symbolSettingsChange"] }] });
|
|
31452
31452
|
}
|
|
31453
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
31453
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SymbolEditorPageComponent, decorators: [{
|
|
31454
31454
|
type: Component,
|
|
31455
31455
|
args: [{ selector: 'mm-symbol-editor-page', standalone: true, imports: [
|
|
31456
31456
|
CommonModule,
|
|
@@ -31508,10 +31508,10 @@ class ProcessDiagramDataSourceDirective extends DataSourceBase {
|
|
|
31508
31508
|
refresh() {
|
|
31509
31509
|
this.fetchAgain();
|
|
31510
31510
|
}
|
|
31511
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
31512
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
31511
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ProcessDiagramDataSourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
31512
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.17", type: ProcessDiagramDataSourceDirective, isStandalone: true, selector: "[mmProcessDiagramDataSource]", providers: [{ provide: DataSourceBase, useExisting: forwardRef(() => ProcessDiagramDataSourceDirective) }], exportAs: ["mmProcessDiagramDataSource"], usesInheritance: true, ngImport: i0 });
|
|
31513
31513
|
}
|
|
31514
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
31514
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ProcessDiagramDataSourceDirective, decorators: [{
|
|
31515
31515
|
type: Directive,
|
|
31516
31516
|
args: [{
|
|
31517
31517
|
selector: "[mmProcessDiagramDataSource]",
|
|
@@ -31637,10 +31637,10 @@ class ProcessDiagramListComponent {
|
|
|
31637
31637
|
}
|
|
31638
31638
|
}
|
|
31639
31639
|
};
|
|
31640
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
31641
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
31640
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ProcessDiagramListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
31641
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: ProcessDiagramListComponent, isStandalone: true, selector: "mm-process-diagram-list", viewQueries: [{ propertyName: "dataSource", first: true, predicate: ["dir"], descendants: true }], ngImport: i0, template: "<div class=\"process-diagram-list-container\">\n <mm-list-view\n mmProcessDiagramDataSource\n #dir=\"mmProcessDiagramDataSource\"\n [sortable]=\"true\"\n [searchTextBoxEnabled]=\"true\"\n [selectable]=\"{mode: 'multiple', enabled: true}\"\n [pageable]=\"{buttonCount: 3, pageSizes: [10, 20, 50, 100]}\"\n [pageSize]=\"20\"\n [columns]=\"[\n {field: 'name', displayName: 'Name', dataType: 'text'},\n {field: 'description', displayName: 'Description', dataType: 'text'},\n {field: 'version', displayName: 'Version', dataType: 'text'},\n {field: 'canvasWidth', displayName: 'Width', dataType: 'numeric'},\n {field: 'canvasHeight', displayName: 'Height', dataType: 'numeric'}\n ]\"\n [actionCommandItems]=\"[\n {id: 'edit', type:'link', text: 'Edit', svgIcon: editIcon, onClick: onEditClick}\n ]\"\n [leftToolbarActions]=\"[\n {id: 'new', type:'link', text: 'New Diagram', svgIcon: plusIcon, onClick: onNewDiagram}\n ]\"\n [contextMenuCommandItems]=\"[\n {id: 'delete', type:'link', text: 'Delete', onClick: onDeleteClick, svgIcon: deleteIcon}\n ]\"\n (rowClicked)=\"onRowClick($event)\">\n </mm-list-view>\n</div>\n", styles: [".process-diagram-list-container{display:flex;flex-direction:column;height:100%;padding:16px;gap:16px}\n"], dependencies: [{ kind: "directive", type: ProcessDiagramDataSourceDirective, selector: "[mmProcessDiagramDataSource]", exportAs: ["mmProcessDiagramDataSource"] }, { kind: "component", type: ListViewComponent, selector: "mm-list-view", inputs: ["pageSize", "skip", "rowIsClickable", "showRowCheckBoxes", "showRowSelectAllCheckBox", "contextMenuType", "leftToolbarActions", "rightToolbarActions", "actionCommandItems", "contextMenuCommandItems", "excelExportFileName", "pdfExportFileName", "pageable", "sortable", "rowFilterEnabled", "searchTextBoxEnabled", "rowClass", "messages", "selectable", "columns"], outputs: ["rowClicked"] }] });
|
|
31642
31642
|
}
|
|
31643
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
31643
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ProcessDiagramListComponent, decorators: [{
|
|
31644
31644
|
type: Component,
|
|
31645
31645
|
args: [{ selector: 'mm-process-diagram-list', standalone: true, imports: [
|
|
31646
31646
|
ProcessDiagramDataSourceDirective,
|
|
@@ -31679,10 +31679,10 @@ class GetSymbolDefinitionsDtoGQL extends i1.Query {
|
|
|
31679
31679
|
constructor(apollo) {
|
|
31680
31680
|
super(apollo);
|
|
31681
31681
|
}
|
|
31682
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
31683
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
31682
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GetSymbolDefinitionsDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
31683
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GetSymbolDefinitionsDtoGQL, providedIn: 'root' });
|
|
31684
31684
|
}
|
|
31685
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
31685
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GetSymbolDefinitionsDtoGQL, decorators: [{
|
|
31686
31686
|
type: Injectable,
|
|
31687
31687
|
args: [{
|
|
31688
31688
|
providedIn: 'root'
|