@meshmakers/octo-process-diagrams 3.3.770 → 3.3.790

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.5", ngImport: i0, type: PrimitiveRendererRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3061
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: PrimitiveRendererRegistry, providedIn: 'root' });
3060
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: PrimitiveRendererRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3061
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: PrimitiveRendererRegistry, providedIn: 'root' });
3062
3062
  }
3063
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: PrimitiveRendererRegistry, decorators: [{
3063
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", 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.5", ngImport: i0, type: ExpressionEvaluatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3342
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ExpressionEvaluatorService, providedIn: 'root' });
3341
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ExpressionEvaluatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3342
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ExpressionEvaluatorService, providedIn: 'root' });
3343
3343
  }
3344
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ExpressionEvaluatorService, decorators: [{
3344
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", 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.5", ngImport: i0, type: SymbolRenderer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3723
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SymbolRenderer, providedIn: 'root' });
3722
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SymbolRenderer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3723
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SymbolRenderer, providedIn: 'root' });
3724
3724
  }
3725
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SymbolRenderer, decorators: [{
3725
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", 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.5", ngImport: i0, type: GetSymbolLibrariesDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
3819
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GetSymbolLibrariesDtoGQL, providedIn: 'root' });
3818
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: GetSymbolLibrariesDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
3819
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: GetSymbolLibrariesDtoGQL, providedIn: 'root' });
3820
3820
  }
3821
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GetSymbolLibrariesDtoGQL, decorators: [{
3821
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", 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.5", ngImport: i0, type: GetSymbolLibraryDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
3877
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GetSymbolLibraryDtoGQL, providedIn: 'root' });
3876
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: GetSymbolLibraryDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
3877
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: GetSymbolLibraryDtoGQL, providedIn: 'root' });
3878
3878
  }
3879
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GetSymbolLibraryDtoGQL, decorators: [{
3879
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", 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.5", ngImport: i0, type: CreateSymbolLibraryDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
3911
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: CreateSymbolLibraryDtoGQL, providedIn: 'root' });
3910
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: CreateSymbolLibraryDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
3911
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: CreateSymbolLibraryDtoGQL, providedIn: 'root' });
3912
3912
  }
3913
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: CreateSymbolLibraryDtoGQL, decorators: [{
3913
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", 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.5", ngImport: i0, type: UpdateSymbolLibraryDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
3945
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: UpdateSymbolLibraryDtoGQL, providedIn: 'root' });
3944
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: UpdateSymbolLibraryDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
3945
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: UpdateSymbolLibraryDtoGQL, providedIn: 'root' });
3946
3946
  }
3947
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: UpdateSymbolLibraryDtoGQL, decorators: [{
3947
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", 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.5", ngImport: i0, type: GetSymbolDefinitionDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
3989
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GetSymbolDefinitionDtoGQL, providedIn: 'root' });
3988
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: GetSymbolDefinitionDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
3989
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: GetSymbolDefinitionDtoGQL, providedIn: 'root' });
3990
3990
  }
3991
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GetSymbolDefinitionDtoGQL, decorators: [{
3991
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", 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.5", ngImport: i0, type: CreateSymbolDefinitionDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
4027
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: CreateSymbolDefinitionDtoGQL, providedIn: 'root' });
4026
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: CreateSymbolDefinitionDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
4027
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: CreateSymbolDefinitionDtoGQL, providedIn: 'root' });
4028
4028
  }
4029
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: CreateSymbolDefinitionDtoGQL, decorators: [{
4029
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", 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.5", ngImport: i0, type: UpdateSymbolDefinitionDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
4065
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: UpdateSymbolDefinitionDtoGQL, providedIn: 'root' });
4064
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: UpdateSymbolDefinitionDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
4065
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: UpdateSymbolDefinitionDtoGQL, providedIn: 'root' });
4066
4066
  }
4067
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: UpdateSymbolDefinitionDtoGQL, decorators: [{
4067
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", 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.5", ngImport: i0, type: DeleteSymbolDefinitionDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
4089
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DeleteSymbolDefinitionDtoGQL, providedIn: 'root' });
4088
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DeleteSymbolDefinitionDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
4089
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DeleteSymbolDefinitionDtoGQL, providedIn: 'root' });
4090
4090
  }
4091
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DeleteSymbolDefinitionDtoGQL, decorators: [{
4091
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", 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.5", ngImport: i0, type: SymbolLibraryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4555
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SymbolLibraryService, providedIn: 'root' });
4554
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SymbolLibraryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4555
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SymbolLibraryService, providedIn: 'root' });
4556
4556
  }
4557
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SymbolLibraryService, decorators: [{
4557
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", 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.5", ngImport: i0, type: SvgImportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5681
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SvgImportService, providedIn: 'root' });
5680
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SvgImportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5681
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SvgImportService, providedIn: 'root' });
5682
5682
  }
5683
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SvgImportService, decorators: [{
5683
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", 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.5", ngImport: i0, type: GetProcessDiagramDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
5725
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GetProcessDiagramDtoGQL, providedIn: 'root' });
5724
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: GetProcessDiagramDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
5725
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: GetProcessDiagramDtoGQL, providedIn: 'root' });
5726
5726
  }
5727
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GetProcessDiagramDtoGQL, decorators: [{
5727
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", 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.5", ngImport: i0, type: GetProcessDiagramsDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
5760
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GetProcessDiagramsDtoGQL, providedIn: 'root' });
5759
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: GetProcessDiagramsDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
5760
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: GetProcessDiagramsDtoGQL, providedIn: 'root' });
5761
5761
  }
5762
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GetProcessDiagramsDtoGQL, decorators: [{
5762
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", 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.5", ngImport: i0, type: CreateProcessDiagramDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
5793
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: CreateProcessDiagramDtoGQL, providedIn: 'root' });
5792
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: CreateProcessDiagramDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
5793
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: CreateProcessDiagramDtoGQL, providedIn: 'root' });
5794
5794
  }
5795
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: CreateProcessDiagramDtoGQL, decorators: [{
5795
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", 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.5", ngImport: i0, type: UpdateProcessDiagramDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
5826
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: UpdateProcessDiagramDtoGQL, providedIn: 'root' });
5825
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: UpdateProcessDiagramDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
5826
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: UpdateProcessDiagramDtoGQL, providedIn: 'root' });
5827
5827
  }
5828
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: UpdateProcessDiagramDtoGQL, decorators: [{
5828
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", 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.5", ngImport: i0, type: DeleteProcessDiagramDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
5850
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DeleteProcessDiagramDtoGQL, providedIn: 'root' });
5849
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DeleteProcessDiagramDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
5850
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DeleteProcessDiagramDtoGQL, providedIn: 'root' });
5851
5851
  }
5852
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DeleteProcessDiagramDtoGQL, decorators: [{
5852
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", 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.5", ngImport: i0, type: ProcessDiagramDataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6088
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ProcessDiagramDataService, providedIn: 'root' });
6087
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ProcessDiagramDataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6088
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ProcessDiagramDataService, providedIn: 'root' });
6089
6089
  }
6090
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ProcessDiagramDataService, decorators: [{
6090
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ProcessDiagramDataService, decorators: [{
6091
6091
  type: Injectable,
6092
6092
  args: [{
6093
6093
  providedIn: 'root'
@@ -6269,12 +6269,12 @@ class DockviewComponent {
6269
6269
  });
6270
6270
  this.disposables.push(() => willDropDisposable.dispose());
6271
6271
  }
6272
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DockviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6273
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.5", 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,transform 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-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-tabs-container-vertical .dv-tab{padding:.5rem .25rem}.dv-tabs-overflow-container{flex-direction:column;height:unset;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 });
6272
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DockviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6273
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", 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 });
6274
6274
  }
6275
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DockviewComponent, decorators: [{
6275
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DockviewComponent, decorators: [{
6276
6276
  type: Component,
6277
- 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,transform 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-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-tabs-container-vertical .dv-tab{padding:.5rem .25rem}.dv-tabs-overflow-container{flex-direction:column;height:unset;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"] }]
6277
+ 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"] }]
6278
6278
  }], propDecorators: { containerRef: [{
6279
6279
  type: ViewChild,
6280
6280
  args: ['dockviewContainer', { static: true }]
@@ -6436,8 +6436,8 @@ class ElementPaletteComponent {
6436
6436
  onDragEnd(_event, item) {
6437
6437
  this.elementDragEnd.emit(item);
6438
6438
  }
6439
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ElementPaletteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6440
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ElementPaletteComponent, isStandalone: true, selector: "mm-element-palette", outputs: { elementDragStart: "elementDragStart", elementDragEnd: "elementDragEnd" }, ngImport: i0, template: `
6439
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ElementPaletteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6440
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: ElementPaletteComponent, isStandalone: true, selector: "mm-element-palette", outputs: { elementDragStart: "elementDragStart", elementDragEnd: "elementDragEnd" }, ngImport: i0, template: `
6441
6441
  <div class="element-palette" data-testid="element-palette">
6442
6442
  <div class="palette-search">
6443
6443
  <input type="text"
@@ -6514,7 +6514,7 @@ class ElementPaletteComponent {
6514
6514
  </div>
6515
6515
  `, 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"] }] });
6516
6516
  }
6517
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ElementPaletteComponent, decorators: [{
6517
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ElementPaletteComponent, decorators: [{
6518
6518
  type: Component,
6519
6519
  args: [{ selector: 'mm-element-palette', standalone: true, imports: [CommonModule, FormsModule], template: `
6520
6520
  <div class="element-palette" data-testid="element-palette">
@@ -6784,8 +6784,8 @@ class SymbolLibraryPanelComponent {
6784
6784
  const style = this.resolveStyle(primitive, styleClasses);
6785
6785
  return style.stroke?.opacity ?? defaultOpacity;
6786
6786
  }
6787
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SymbolLibraryPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6788
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: SymbolLibraryPanelComponent, isStandalone: true, selector: "mm-symbol-library-panel", outputs: { symbolDragStart: "symbolDragStart", symbolDragEnd: "symbolDragEnd" }, ngImport: i0, template: `
6787
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SymbolLibraryPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6788
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: SymbolLibraryPanelComponent, isStandalone: true, selector: "mm-symbol-library-panel", outputs: { symbolDragStart: "symbolDragStart", symbolDragEnd: "symbolDragEnd" }, ngImport: i0, template: `
6789
6789
  <div class="symbol-library-panel">
6790
6790
  <div class="panel-search">
6791
6791
  <input type="text"
@@ -6962,7 +6962,7 @@ class SymbolLibraryPanelComponent {
6962
6962
  </div>
6963
6963
  `, 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"] }] });
6964
6964
  }
6965
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SymbolLibraryPanelComponent, decorators: [{
6965
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SymbolLibraryPanelComponent, decorators: [{
6966
6966
  type: Component,
6967
6967
  args: [{ selector: 'mm-symbol-library-panel', standalone: true, imports: [CommonModule, FormsModule], template: `
6968
6968
  <div class="symbol-library-panel">
@@ -7303,8 +7303,8 @@ class PropertyInspectorComponent {
7303
7303
  // Reset input so same file can be selected again
7304
7304
  input.value = '';
7305
7305
  }
7306
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: PropertyInspectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7307
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", 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: `
7306
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: PropertyInspectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7307
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", 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: `
7308
7308
  <div class="property-inspector">
7309
7309
  <div class="inspector-content">
7310
7310
  @if (selectedElements.length === 0 && selectedConnections.length === 0 && selectedPrimitives.length === 0 && selectedSymbolInstances.length === 0) {
@@ -8253,7 +8253,7 @@ class PropertyInspectorComponent {
8253
8253
  </div>
8254
8254
  `, 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" }] });
8255
8255
  }
8256
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: PropertyInspectorComponent, decorators: [{
8256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: PropertyInspectorComponent, decorators: [{
8257
8257
  type: Component,
8258
8258
  args: [{ selector: 'mm-property-inspector', standalone: true, imports: [CommonModule, FormsModule, InputsModule, DropDownsModule, DecimalPipe], template: `
8259
8259
  <div class="property-inspector">
@@ -9265,8 +9265,8 @@ class ContextMenuComponent {
9265
9265
  close() {
9266
9266
  this.closed.emit();
9267
9267
  }
9268
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9269
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", 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: `
9268
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9269
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", 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: `
9270
9270
  <div class="context-menu"
9271
9271
  (click)="$event.stopPropagation()">
9272
9272
  @for (item of items; track item.id) {
@@ -9290,7 +9290,7 @@ class ContextMenuComponent {
9290
9290
  </div>
9291
9291
  `, 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 }] });
9292
9292
  }
9293
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ContextMenuComponent, decorators: [{
9293
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ContextMenuComponent, decorators: [{
9294
9294
  type: Component,
9295
9295
  args: [{ selector: 'mm-context-menu', standalone: true, imports: [CommonModule], host: {
9296
9296
  '[style.left.px]': 'position.x',
@@ -10103,10 +10103,10 @@ class PathEditorService {
10103
10103
  return segment;
10104
10104
  }
10105
10105
  }
10106
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: PathEditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
10107
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: PathEditorService, providedIn: 'root' });
10106
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: PathEditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
10107
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: PathEditorService, providedIn: 'root' });
10108
10108
  }
10109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: PathEditorService, decorators: [{
10109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: PathEditorService, decorators: [{
10110
10110
  type: Injectable,
10111
10111
  args: [{
10112
10112
  providedIn: 'root'
@@ -10416,8 +10416,8 @@ class PathEditorComponent {
10416
10416
  emitChange() {
10417
10417
  this.pathChange.emit(this.pathService.getCurrentPathString());
10418
10418
  }
10419
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: PathEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10420
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", 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: `
10419
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: PathEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10420
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", 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: `
10421
10421
  <div class="path-editor">
10422
10422
  <!-- Visual Editor -->
10423
10423
  <div class="visual-editor">
@@ -10535,7 +10535,7 @@ class PathEditorComponent {
10535
10535
  </div>
10536
10536
  `, 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 });
10537
10537
  }
10538
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: PathEditorComponent, decorators: [{
10538
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: PathEditorComponent, decorators: [{
10539
10539
  type: Component,
10540
10540
  args: [{ selector: 'mm-path-editor', standalone: true, imports: [CommonModule, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
10541
10541
  <div class="path-editor">
@@ -11292,8 +11292,8 @@ class BindingEditorDialogComponent {
11292
11292
  this.saved.emit(mergedBindings);
11293
11293
  this._visible.set(false);
11294
11294
  }
11295
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: BindingEditorDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11296
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", 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: `
11295
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: BindingEditorDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11296
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", 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: `
11297
11297
  @if (visible()) {
11298
11298
  <kendo-dialog title="Bindings for: {{ currentProperty()?.name }}"
11299
11299
  [width]="550"
@@ -11475,7 +11475,7 @@ class BindingEditorDialogComponent {
11475
11475
  }
11476
11476
  `, 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"] }] });
11477
11477
  }
11478
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: BindingEditorDialogComponent, decorators: [{
11478
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: BindingEditorDialogComponent, decorators: [{
11479
11479
  type: Component,
11480
11480
  args: [{ selector: 'mm-binding-editor-dialog', standalone: true, imports: [CommonModule, FormsModule, ButtonsModule, InputsModule, DropDownsModule, DialogsModule], template: `
11481
11481
  @if (visible()) {
@@ -12045,10 +12045,10 @@ class DesignerSelectionService {
12045
12045
  setSelectionRect(rect) {
12046
12046
  this._selectionRect.set(rect);
12047
12047
  }
12048
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerSelectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
12049
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerSelectionService });
12048
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerSelectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
12049
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerSelectionService });
12050
12050
  }
12051
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerSelectionService, decorators: [{
12051
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerSelectionService, decorators: [{
12052
12052
  type: Injectable
12053
12053
  }] });
12054
12054
 
@@ -12215,10 +12215,10 @@ class DesignerHistoryService {
12215
12215
  deepClone(obj) {
12216
12216
  return JSON.parse(JSON.stringify(obj));
12217
12217
  }
12218
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerHistoryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
12219
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerHistoryService });
12218
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerHistoryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
12219
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerHistoryService });
12220
12220
  }
12221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerHistoryService, decorators: [{
12221
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerHistoryService, decorators: [{
12222
12222
  type: Injectable
12223
12223
  }] });
12224
12224
 
@@ -12432,10 +12432,10 @@ class DesignerClipboardService {
12432
12432
  deepClone(obj) {
12433
12433
  return JSON.parse(JSON.stringify(obj));
12434
12434
  }
12435
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerClipboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
12436
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerClipboardService });
12435
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerClipboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
12436
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerClipboardService });
12437
12437
  }
12438
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerClipboardService, decorators: [{
12438
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerClipboardService, decorators: [{
12439
12439
  type: Injectable
12440
12440
  }] });
12441
12441
 
@@ -12676,10 +12676,10 @@ class DesignerStateService {
12676
12676
  this._showElementNames.set(false);
12677
12677
  this._hasChanges.set(false);
12678
12678
  }
12679
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
12680
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerStateService });
12679
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
12680
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerStateService });
12681
12681
  }
12682
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerStateService, decorators: [{
12682
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerStateService, decorators: [{
12683
12683
  type: Injectable
12684
12684
  }] });
12685
12685
 
@@ -12940,10 +12940,10 @@ class DesignerCoordinateService {
12940
12940
  y: bounds.y + bounds.height / 2
12941
12941
  };
12942
12942
  }
12943
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerCoordinateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
12944
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerCoordinateService });
12943
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerCoordinateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
12944
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerCoordinateService });
12945
12945
  }
12946
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerCoordinateService, decorators: [{
12946
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerCoordinateService, decorators: [{
12947
12947
  type: Injectable
12948
12948
  }] });
12949
12949
 
@@ -13194,10 +13194,10 @@ class DesignerDragService {
13194
13194
  hasMovedBeyondThreshold(threshold = 3) {
13195
13195
  return this.getDragDistance() > threshold;
13196
13196
  }
13197
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerDragService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
13198
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerDragService });
13197
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerDragService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
13198
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerDragService });
13199
13199
  }
13200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerDragService, decorators: [{
13200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerDragService, decorators: [{
13201
13201
  type: Injectable
13202
13202
  }] });
13203
13203
 
@@ -13582,10 +13582,10 @@ class DesignerResizeService {
13582
13582
  };
13583
13583
  return cursors[handle];
13584
13584
  }
13585
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerResizeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
13586
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerResizeService });
13585
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerResizeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
13586
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerResizeService });
13587
13587
  }
13588
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerResizeService, decorators: [{
13588
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerResizeService, decorators: [{
13589
13589
  type: Injectable
13590
13590
  }] });
13591
13591
 
@@ -13814,10 +13814,10 @@ class DesignerZOrderService {
13814
13814
  return true;
13815
13815
  return false;
13816
13816
  }
13817
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerZOrderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
13818
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerZOrderService });
13817
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerZOrderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
13818
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerZOrderService });
13819
13819
  }
13820
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerZOrderService, decorators: [{
13820
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerZOrderService, decorators: [{
13821
13821
  type: Injectable
13822
13822
  }] });
13823
13823
 
@@ -14062,10 +14062,10 @@ class DesignerDeletionService {
14062
14062
  const expanded = this.expandWithGroupChildren(diagram, itemIds);
14063
14063
  return expanded.size;
14064
14064
  }
14065
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerDeletionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14066
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerDeletionService });
14065
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerDeletionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14066
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerDeletionService });
14067
14067
  }
14068
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerDeletionService, decorators: [{
14068
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerDeletionService, decorators: [{
14069
14069
  type: Injectable
14070
14070
  }] });
14071
14071
 
@@ -14489,10 +14489,10 @@ class DesignerGroupingService {
14489
14489
  }
14490
14490
  return itemId;
14491
14491
  }
14492
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerGroupingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14493
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerGroupingService });
14492
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerGroupingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14493
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerGroupingService });
14494
14494
  }
14495
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerGroupingService, decorators: [{
14495
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerGroupingService, decorators: [{
14496
14496
  type: Injectable
14497
14497
  }] });
14498
14498
 
@@ -14866,10 +14866,10 @@ class DesignerContextMenuService {
14866
14866
  return baseItems;
14867
14867
  }
14868
14868
  }
14869
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerContextMenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14870
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerContextMenuService });
14869
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerContextMenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14870
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerContextMenuService });
14871
14871
  }
14872
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerContextMenuService, decorators: [{
14872
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerContextMenuService, decorators: [{
14873
14873
  type: Injectable
14874
14874
  }] });
14875
14875
 
@@ -15288,10 +15288,10 @@ class DesignerKeyboardService {
15288
15288
  }
15289
15289
  return lines.join('\n');
15290
15290
  }
15291
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerKeyboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
15292
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerKeyboardService });
15291
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerKeyboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
15292
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerKeyboardService });
15293
15293
  }
15294
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerKeyboardService, decorators: [{
15294
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerKeyboardService, decorators: [{
15295
15295
  type: Injectable
15296
15296
  }], ctorParameters: () => [] });
15297
15297
 
@@ -15712,10 +15712,10 @@ class DesignerCreationService {
15712
15712
  PrimitiveType.Text
15713
15713
  ];
15714
15714
  }
15715
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerCreationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
15716
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerCreationService });
15715
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerCreationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
15716
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerCreationService });
15717
15717
  }
15718
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerCreationService, decorators: [{
15718
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerCreationService, decorators: [{
15719
15719
  type: Injectable
15720
15720
  }] });
15721
15721
 
@@ -16208,10 +16208,10 @@ class DesignerRenderingService {
16208
16208
  height: bounds.height + padding * 2
16209
16209
  };
16210
16210
  }
16211
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerRenderingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16212
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerRenderingService });
16211
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerRenderingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16212
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerRenderingService });
16213
16213
  }
16214
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerRenderingService, decorators: [{
16214
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerRenderingService, decorators: [{
16215
16215
  type: Injectable
16216
16216
  }] });
16217
16217
 
@@ -16362,10 +16362,10 @@ class GeometryUtilService {
16362
16362
  y: vector.x
16363
16363
  };
16364
16364
  }
16365
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GeometryUtilService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16366
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GeometryUtilService, providedIn: 'root' });
16365
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: GeometryUtilService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16366
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: GeometryUtilService, providedIn: 'root' });
16367
16367
  }
16368
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GeometryUtilService, decorators: [{
16368
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: GeometryUtilService, decorators: [{
16369
16369
  type: Injectable,
16370
16370
  args: [{ providedIn: 'root' }]
16371
16371
  }] });
@@ -16731,10 +16731,10 @@ class DesignerDiagramService {
16731
16731
  reset() {
16732
16732
  this._diagram.set(this.createEmptyDiagram());
16733
16733
  }
16734
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerDiagramService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16735
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerDiagramService });
16734
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerDiagramService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16735
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerDiagramService });
16736
16736
  }
16737
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerDiagramService, decorators: [{
16737
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerDiagramService, decorators: [{
16738
16738
  type: Injectable
16739
16739
  }], ctorParameters: () => [] });
16740
16740
 
@@ -17391,10 +17391,10 @@ class DesignerPrimitiveService {
17391
17391
  isPath(type) {
17392
17392
  return type === PrimitiveType.Path;
17393
17393
  }
17394
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerPrimitiveService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17395
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerPrimitiveService });
17394
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerPrimitiveService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17395
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerPrimitiveService });
17396
17396
  }
17397
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerPrimitiveService, decorators: [{
17397
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerPrimitiveService, decorators: [{
17398
17398
  type: Injectable
17399
17399
  }], ctorParameters: () => [] });
17400
17400
 
@@ -17640,10 +17640,10 @@ class DesignerBoundsService {
17640
17640
  }
17641
17641
  return childIds;
17642
17642
  }
17643
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerBoundsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17644
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerBoundsService });
17643
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerBoundsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17644
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerBoundsService });
17645
17645
  }
17646
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerBoundsService, decorators: [{
17646
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerBoundsService, decorators: [{
17647
17647
  type: Injectable
17648
17648
  }] });
17649
17649
 
@@ -17927,10 +17927,10 @@ class DesignerAlignmentService {
17927
17927
  canDistribute(selectedIds) {
17928
17928
  return selectedIds.size >= 3;
17929
17929
  }
17930
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerAlignmentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17931
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerAlignmentService });
17930
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerAlignmentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17931
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerAlignmentService });
17932
17932
  }
17933
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerAlignmentService, decorators: [{
17933
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerAlignmentService, decorators: [{
17934
17934
  type: Injectable
17935
17935
  }] });
17936
17936
 
@@ -18213,10 +18213,10 @@ class DesignerAlignmentGuideService {
18213
18213
  // Round to avoid floating point precision issues
18214
18214
  return Math.round(result);
18215
18215
  }
18216
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerAlignmentGuideService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
18217
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerAlignmentGuideService });
18216
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerAlignmentGuideService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
18217
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerAlignmentGuideService });
18218
18218
  }
18219
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerAlignmentGuideService, decorators: [{
18219
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerAlignmentGuideService, decorators: [{
18220
18220
  type: Injectable
18221
18221
  }] });
18222
18222
 
@@ -18345,10 +18345,10 @@ class DesignerLayoutService {
18345
18345
  const panels = isSymbolEditor ? this.symbolEditorDefaultPanels : this.defaultPanels;
18346
18346
  return panels.find(p => p.id === panelId);
18347
18347
  }
18348
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerLayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
18349
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerLayoutService, providedIn: 'root' });
18348
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerLayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
18349
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerLayoutService, providedIn: 'root' });
18350
18350
  }
18351
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DesignerLayoutService, decorators: [{
18351
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DesignerLayoutService, decorators: [{
18352
18352
  type: Injectable,
18353
18353
  args: [{ providedIn: 'root' }]
18354
18354
  }] });
@@ -18367,8 +18367,8 @@ class ElementsPanelComponent {
18367
18367
  onDragEnd(item) {
18368
18368
  this.params.onElementDragEnd?.(item);
18369
18369
  }
18370
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ElementsPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18371
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.5", type: ElementsPanelComponent, isStandalone: true, selector: "mm-elements-panel", inputs: { params: "params" }, ngImport: i0, template: `
18370
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ElementsPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18371
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ElementsPanelComponent, isStandalone: true, selector: "mm-elements-panel", inputs: { params: "params" }, ngImport: i0, template: `
18372
18372
  <div class="panel-container">
18373
18373
  <mm-element-palette
18374
18374
  (elementDragStart)="onDragStart($event)"
@@ -18377,7 +18377,7 @@ class ElementsPanelComponent {
18377
18377
  </div>
18378
18378
  `, 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"] }] });
18379
18379
  }
18380
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ElementsPanelComponent, decorators: [{
18380
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ElementsPanelComponent, decorators: [{
18381
18381
  type: Component,
18382
18382
  args: [{ selector: 'mm-elements-panel', standalone: true, imports: [CommonModule, ElementPaletteComponent], template: `
18383
18383
  <div class="panel-container">
@@ -18405,8 +18405,8 @@ class SymbolsPanelComponent {
18405
18405
  onDragEnd() {
18406
18406
  this.params.onSymbolDragEnd?.();
18407
18407
  }
18408
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SymbolsPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18409
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.5", type: SymbolsPanelComponent, isStandalone: true, selector: "mm-symbols-panel", inputs: { params: "params" }, ngImport: i0, template: `
18408
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SymbolsPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18409
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: SymbolsPanelComponent, isStandalone: true, selector: "mm-symbols-panel", inputs: { params: "params" }, ngImport: i0, template: `
18410
18410
  <div class="panel-container">
18411
18411
  <mm-symbol-library-panel
18412
18412
  (symbolDragStart)="onDragStart($event)"
@@ -18415,7 +18415,7 @@ class SymbolsPanelComponent {
18415
18415
  </div>
18416
18416
  `, 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"] }] });
18417
18417
  }
18418
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SymbolsPanelComponent, decorators: [{
18418
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SymbolsPanelComponent, decorators: [{
18419
18419
  type: Component,
18420
18420
  args: [{ selector: 'mm-symbols-panel', standalone: true, imports: [CommonModule, SymbolLibraryPanelComponent], template: `
18421
18421
  <div class="panel-container">
@@ -18465,8 +18465,8 @@ class PropertiesPanelComponent {
18465
18465
  onPropertyChange(event) {
18466
18466
  this._params().onPropertyChange?.(event);
18467
18467
  }
18468
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: PropertiesPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18469
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.5", type: PropertiesPanelComponent, isStandalone: true, selector: "mm-properties-panel", inputs: { params: "params" }, ngImport: i0, template: `
18468
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: PropertiesPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18469
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: PropertiesPanelComponent, isStandalone: true, selector: "mm-properties-panel", inputs: { params: "params" }, ngImport: i0, template: `
18470
18470
  <div class="panel-container">
18471
18471
  <mm-property-inspector
18472
18472
  [selectedElements]="selectedElements()"
@@ -18480,7 +18480,7 @@ class PropertiesPanelComponent {
18480
18480
  </div>
18481
18481
  `, 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"] }] });
18482
18482
  }
18483
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: PropertiesPanelComponent, decorators: [{
18483
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: PropertiesPanelComponent, decorators: [{
18484
18484
  type: Component,
18485
18485
  args: [{ selector: 'mm-properties-panel', standalone: true, imports: [CommonModule, PropertyInspectorComponent], template: `
18486
18486
  <div class="panel-container">
@@ -18667,8 +18667,8 @@ class TransformPropertyEditorComponent {
18667
18667
  * Helper for template
18668
18668
  */
18669
18669
  String = String;
18670
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: TransformPropertyEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18671
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", 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: `
18670
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: TransformPropertyEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18671
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", 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: `
18672
18672
  <div class="transform-property-editor">
18673
18673
  <div class="editor-toolbar">
18674
18674
  <button kendoButton [svgIcon]="plusIcon" look="flat" (click)="addProperty()">
@@ -18925,7 +18925,7 @@ class TransformPropertyEditorComponent {
18925
18925
  </div>
18926
18926
  `, 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 }] });
18927
18927
  }
18928
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: TransformPropertyEditorComponent, decorators: [{
18928
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: TransformPropertyEditorComponent, decorators: [{
18929
18929
  type: Component,
18930
18930
  args: [{ selector: 'mm-transform-property-editor', standalone: true, imports: [CommonModule, FormsModule, ButtonsModule, InputsModule, DropDownsModule, DecimalPipe], template: `
18931
18931
  <div class="transform-property-editor">
@@ -19228,8 +19228,8 @@ class TransformPanelComponent {
19228
19228
  onOpenBindings(property) {
19229
19229
  this._params().onOpenBindings?.(property);
19230
19230
  }
19231
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: TransformPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19232
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.5", type: TransformPanelComponent, isStandalone: true, selector: "mm-transform-panel", inputs: { params: "params" }, ngImport: i0, template: `
19231
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: TransformPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19232
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: TransformPanelComponent, isStandalone: true, selector: "mm-transform-panel", inputs: { params: "params" }, ngImport: i0, template: `
19233
19233
  <div class="panel-container">
19234
19234
  <mm-transform-property-editor
19235
19235
  [transformProperties]="transformProperties()"
@@ -19242,7 +19242,7 @@ class TransformPanelComponent {
19242
19242
  </div>
19243
19243
  `, 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"] }] });
19244
19244
  }
19245
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: TransformPanelComponent, decorators: [{
19245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: TransformPanelComponent, decorators: [{
19246
19246
  type: Component,
19247
19247
  args: [{ selector: 'mm-transform-panel', standalone: true, imports: [CommonModule, TransformPropertyEditorComponent], template: `
19248
19248
  <div class="panel-container">
@@ -19563,8 +19563,8 @@ class AnimationEditorComponent {
19563
19563
  const unit = match[2] || 's';
19564
19564
  return unit === 'ms' ? value / 1000 : value;
19565
19565
  }
19566
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: AnimationEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19567
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: AnimationEditorComponent, isStandalone: true, selector: "mm-animation-editor", inputs: { primitiveId: "primitiveId", animations: "animations", availableProperties: "availableProperties", availablePaths: "availablePaths" }, outputs: { animationsChange: "animationsChange" }, ngImport: i0, template: `
19566
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: AnimationEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19567
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: AnimationEditorComponent, isStandalone: true, selector: "mm-animation-editor", inputs: { primitiveId: "primitiveId", animations: "animations", availableProperties: "availableProperties", availablePaths: "availablePaths" }, outputs: { animationsChange: "animationsChange" }, ngImport: i0, template: `
19568
19568
  <div class="animation-editor">
19569
19569
  <!-- Toolbar -->
19570
19570
  <div class="editor-toolbar">
@@ -19863,7 +19863,7 @@ class AnimationEditorComponent {
19863
19863
  </div>
19864
19864
  `, 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 }] });
19865
19865
  }
19866
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: AnimationEditorComponent, decorators: [{
19866
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: AnimationEditorComponent, decorators: [{
19867
19867
  type: Component,
19868
19868
  args: [{ selector: 'mm-animation-editor', standalone: true, imports: [
19869
19869
  CommonModule,
@@ -20212,8 +20212,8 @@ class AnimationsPanelComponent {
20212
20212
  onAnimationsChange(event) {
20213
20213
  this._params().onAnimationsChange?.(event);
20214
20214
  }
20215
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: AnimationsPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20216
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: AnimationsPanelComponent, isStandalone: true, selector: "mm-animations-panel", inputs: { params: "params" }, ngImport: i0, template: `
20215
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: AnimationsPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20216
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: AnimationsPanelComponent, isStandalone: true, selector: "mm-animations-panel", inputs: { params: "params" }, ngImport: i0, template: `
20217
20217
  <div class="panel-container">
20218
20218
  @if (primitiveId()) {
20219
20219
  @if (supportsAnimations()) {
@@ -20239,7 +20239,7 @@ class AnimationsPanelComponent {
20239
20239
  </div>
20240
20240
  `, 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"] }] });
20241
20241
  }
20242
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: AnimationsPanelComponent, decorators: [{
20242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: AnimationsPanelComponent, decorators: [{
20243
20243
  type: Component,
20244
20244
  args: [{ selector: 'mm-animations-panel', standalone: true, imports: [CommonModule, AnimationEditorComponent], template: `
20245
20245
  <div class="panel-container">
@@ -20343,8 +20343,8 @@ class SimulationPanelComponent {
20343
20343
  this._localValues.set({});
20344
20344
  this.resetValues.emit();
20345
20345
  }
20346
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SimulationPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20347
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: SimulationPanelComponent, isStandalone: true, selector: "mm-simulation-panel", inputs: { properties: "properties", values: "values" }, outputs: { valueChange: "valueChange", resetValues: "resetValues" }, ngImport: i0, template: `
20346
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SimulationPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20347
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: SimulationPanelComponent, isStandalone: true, selector: "mm-simulation-panel", inputs: { properties: "properties", values: "values" }, outputs: { valueChange: "valueChange", resetValues: "resetValues" }, ngImport: i0, template: `
20348
20348
  @if (hasProperties()) {
20349
20349
  <div class="simulation-panel" data-testid="simulation-panel">
20350
20350
  <div class="panel-toolbar">
@@ -20437,7 +20437,7 @@ class SimulationPanelComponent {
20437
20437
  }
20438
20438
  `, 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 }] });
20439
20439
  }
20440
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SimulationPanelComponent, decorators: [{
20440
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SimulationPanelComponent, decorators: [{
20441
20441
  type: Component,
20442
20442
  args: [{ selector: 'mm-simulation-panel', standalone: true, imports: [CommonModule, FormsModule, ButtonsModule, InputsModule, DecimalPipe], template: `
20443
20443
  @if (hasProperties()) {
@@ -20568,8 +20568,8 @@ class SimulationPanelWrapperComponent {
20568
20568
  onResetValues() {
20569
20569
  this._params().onResetValues?.();
20570
20570
  }
20571
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SimulationPanelWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20572
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: SimulationPanelWrapperComponent, isStandalone: true, selector: "mm-simulation-panel-wrapper", inputs: { params: "params" }, ngImport: i0, template: `
20571
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SimulationPanelWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20572
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: SimulationPanelWrapperComponent, isStandalone: true, selector: "mm-simulation-panel-wrapper", inputs: { params: "params" }, ngImport: i0, template: `
20573
20573
  <div class="panel-container">
20574
20574
  @if (properties().length > 0) {
20575
20575
  <mm-simulation-panel
@@ -20587,7 +20587,7 @@ class SimulationPanelWrapperComponent {
20587
20587
  </div>
20588
20588
  `, 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"] }] });
20589
20589
  }
20590
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SimulationPanelWrapperComponent, decorators: [{
20590
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SimulationPanelWrapperComponent, decorators: [{
20591
20591
  type: Component,
20592
20592
  args: [{ selector: 'mm-simulation-panel-wrapper', standalone: true, imports: [CommonModule, SimulationPanelComponent], template: `
20593
20593
  <div class="panel-container">
@@ -20633,8 +20633,8 @@ class SettingsPanelComponent {
20633
20633
  this.onSettingsChange(key, value);
20634
20634
  }
20635
20635
  }
20636
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SettingsPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20637
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.5", type: SettingsPanelComponent, isStandalone: true, selector: "mm-settings-panel", ngImport: i0, template: `
20636
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SettingsPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20637
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: SettingsPanelComponent, isStandalone: true, selector: "mm-settings-panel", ngImport: i0, template: `
20638
20638
  <div class="panel-container">
20639
20639
  <div class="settings-section">
20640
20640
  <h4>Symbol</h4>
@@ -20709,7 +20709,7 @@ class SettingsPanelComponent {
20709
20709
  </div>
20710
20710
  `, 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 });
20711
20711
  }
20712
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SettingsPanelComponent, decorators: [{
20712
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SettingsPanelComponent, decorators: [{
20713
20713
  type: Component,
20714
20714
  args: [{ selector: 'mm-settings-panel', standalone: true, imports: [CommonModule, FormsModule, InputsModule, NumericTextBoxModule], template: `
20715
20715
  <div class="panel-container">
@@ -21018,8 +21018,8 @@ class StylesPanelComponent {
21018
21018
  setTimeout(() => document.body.removeChild(preview), 0);
21019
21019
  }
21020
21020
  }
21021
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: StylesPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21022
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: StylesPanelComponent, isStandalone: true, selector: "mm-styles-panel", ngImport: i0, template: `
21021
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: StylesPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21022
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: StylesPanelComponent, isStandalone: true, selector: "mm-styles-panel", ngImport: i0, template: `
21023
21023
  <div class="panel-container">
21024
21024
  <div class="panel-toolbar">
21025
21025
  <button class="add-button" (click)="addStyle()">+ Add Style</button>
@@ -21143,7 +21143,7 @@ class StylesPanelComponent {
21143
21143
  </div>
21144
21144
  `, 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 });
21145
21145
  }
21146
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: StylesPanelComponent, decorators: [{
21146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: StylesPanelComponent, decorators: [{
21147
21147
  type: Component,
21148
21148
  args: [{ selector: 'mm-styles-panel', standalone: true, imports: [CommonModule, FormsModule, InputsModule, ButtonsModule, DecimalPipe], template: `
21149
21149
  <div class="panel-container">
@@ -27241,8 +27241,8 @@ class ProcessDesignerComponent {
27241
27241
  return '';
27242
27242
  }
27243
27243
  }
27244
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ProcessDesignerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
27245
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", 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: [
27244
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ProcessDesignerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
27245
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", 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: [
27246
27246
  DesignerDiagramService,
27247
27247
  DesignerSelectionService,
27248
27248
  DesignerClipboardService,
@@ -27264,7 +27264,7 @@ class ProcessDesignerComponent {
27264
27264
  DesignerAlignmentGuideService
27265
27265
  ], 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"] }] });
27266
27266
  }
27267
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ProcessDesignerComponent, decorators: [{
27267
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ProcessDesignerComponent, decorators: [{
27268
27268
  type: Component,
27269
27269
  args: [{ selector: 'mm-process-designer', standalone: true, imports: [
27270
27270
  CommonModule,
@@ -28356,8 +28356,8 @@ class SymbolEditorComponent {
28356
28356
  clearChanges() {
28357
28357
  this.processDesigner?.clearChanges();
28358
28358
  }
28359
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SymbolEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28360
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", 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: `
28359
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SymbolEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28360
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", 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: `
28361
28361
  <div class="symbol-editor-container" [class.dockview-enabled]="useDockview">
28362
28362
  <div class="editor-main">
28363
28363
  <div class="editor-canvas">
@@ -28436,7 +28436,7 @@ class SymbolEditorComponent {
28436
28436
  </mm-binding-editor-dialog>
28437
28437
  `, 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"] }] });
28438
28438
  }
28439
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SymbolEditorComponent, decorators: [{
28439
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SymbolEditorComponent, decorators: [{
28440
28440
  type: Component,
28441
28441
  args: [{ selector: 'mm-symbol-editor', standalone: true, imports: [
28442
28442
  CommonModule,
@@ -29452,8 +29452,8 @@ class SymbolLibraryAdminComponent {
29452
29452
  return { x: pos.x, y: pos.y, width: 50, height: 50 };
29453
29453
  }
29454
29454
  }
29455
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SymbolLibraryAdminComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29456
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", 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: `
29455
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SymbolLibraryAdminComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29456
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", 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: `
29457
29457
  <div class="symbol-admin">
29458
29458
  <div class="admin-header">
29459
29459
  <h2>Symbol Library Admin</h2>
@@ -29940,7 +29940,7 @@ class SymbolLibraryAdminComponent {
29940
29940
  </div>
29941
29941
  `, 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"] }] });
29942
29942
  }
29943
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SymbolLibraryAdminComponent, decorators: [{
29943
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SymbolLibraryAdminComponent, decorators: [{
29944
29944
  type: Component,
29945
29945
  args: [{ selector: 'mm-symbol-library-admin', standalone: true, imports: [
29946
29946
  CommonModule,
@@ -30484,10 +30484,10 @@ class SymbolLibraryDataSourceDirective extends DataSourceBase {
30484
30484
  refresh() {
30485
30485
  this.fetchAgain();
30486
30486
  }
30487
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SymbolLibraryDataSourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
30488
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.5", type: SymbolLibraryDataSourceDirective, isStandalone: true, selector: "[mmSymbolLibraryDataSource]", providers: [{ provide: DataSourceBase, useExisting: forwardRef(() => SymbolLibraryDataSourceDirective) }], exportAs: ["mmSymbolLibraryDataSource"], usesInheritance: true, ngImport: i0 });
30487
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SymbolLibraryDataSourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
30488
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: SymbolLibraryDataSourceDirective, isStandalone: true, selector: "[mmSymbolLibraryDataSource]", providers: [{ provide: DataSourceBase, useExisting: forwardRef(() => SymbolLibraryDataSourceDirective) }], exportAs: ["mmSymbolLibraryDataSource"], usesInheritance: true, ngImport: i0 });
30489
30489
  }
30490
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SymbolLibraryDataSourceDirective, decorators: [{
30490
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SymbolLibraryDataSourceDirective, decorators: [{
30491
30491
  type: Directive,
30492
30492
  args: [{
30493
30493
  selector: "[mmSymbolLibraryDataSource]",
@@ -30614,10 +30614,10 @@ class SymbolLibraryListComponent {
30614
30614
  }
30615
30615
  }
30616
30616
  };
30617
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SymbolLibraryListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30618
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.5", 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"] }] });
30617
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SymbolLibraryListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30618
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", 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"] }] });
30619
30619
  }
30620
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SymbolLibraryListComponent, decorators: [{
30620
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SymbolLibraryListComponent, decorators: [{
30621
30621
  type: Component,
30622
30622
  args: [{ selector: 'mm-symbol-library-list', standalone: true, imports: [
30623
30623
  SymbolLibraryDataSourceDirective,
@@ -31153,10 +31153,10 @@ class SymbolLibraryDetailComponent {
31153
31153
  const style = this.resolveStyle(primitive, styleClasses);
31154
31154
  return style.stroke?.opacity ?? defaultOpacity;
31155
31155
  }
31156
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SymbolLibraryDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31157
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", 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"] }] });
31156
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SymbolLibraryDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31157
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", 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"] }] });
31158
31158
  }
31159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SymbolLibraryDetailComponent, decorators: [{
31159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SymbolLibraryDetailComponent, decorators: [{
31160
31160
  type: Component,
31161
31161
  args: [{ selector: 'mm-symbol-library-detail', standalone: true, imports: [
31162
31162
  CommonModule,
@@ -31390,12 +31390,12 @@ class SymbolEditorPageComponent {
31390
31390
  event.returnValue = '';
31391
31391
  }
31392
31392
  }
31393
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SymbolEditorPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31394
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: SymbolEditorPageComponent, isStandalone: true, selector: "mm-symbol-editor-page", host: { listeners: { "window:beforeunload": "handleBeforeUnload($event)" } }, providers: [
31393
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SymbolEditorPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31394
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: SymbolEditorPageComponent, isStandalone: true, selector: "mm-symbol-editor-page", host: { listeners: { "window:beforeunload": "handleBeforeUnload($event)" } }, providers: [
31395
31395
  { provide: HAS_UNSAVED_CHANGES, useExisting: SymbolEditorPageComponent }
31396
31396
  ], 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"] }] });
31397
31397
  }
31398
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SymbolEditorPageComponent, decorators: [{
31398
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SymbolEditorPageComponent, decorators: [{
31399
31399
  type: Component,
31400
31400
  args: [{ selector: 'mm-symbol-editor-page', standalone: true, imports: [
31401
31401
  CommonModule,
@@ -31453,10 +31453,10 @@ class ProcessDiagramDataSourceDirective extends DataSourceBase {
31453
31453
  refresh() {
31454
31454
  this.fetchAgain();
31455
31455
  }
31456
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ProcessDiagramDataSourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
31457
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.5", type: ProcessDiagramDataSourceDirective, isStandalone: true, selector: "[mmProcessDiagramDataSource]", providers: [{ provide: DataSourceBase, useExisting: forwardRef(() => ProcessDiagramDataSourceDirective) }], exportAs: ["mmProcessDiagramDataSource"], usesInheritance: true, ngImport: i0 });
31456
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ProcessDiagramDataSourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
31457
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: ProcessDiagramDataSourceDirective, isStandalone: true, selector: "[mmProcessDiagramDataSource]", providers: [{ provide: DataSourceBase, useExisting: forwardRef(() => ProcessDiagramDataSourceDirective) }], exportAs: ["mmProcessDiagramDataSource"], usesInheritance: true, ngImport: i0 });
31458
31458
  }
31459
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ProcessDiagramDataSourceDirective, decorators: [{
31459
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ProcessDiagramDataSourceDirective, decorators: [{
31460
31460
  type: Directive,
31461
31461
  args: [{
31462
31462
  selector: "[mmProcessDiagramDataSource]",
@@ -31582,10 +31582,10 @@ class ProcessDiagramListComponent {
31582
31582
  }
31583
31583
  }
31584
31584
  };
31585
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ProcessDiagramListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31586
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.5", 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"] }] });
31585
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ProcessDiagramListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31586
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", 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"] }] });
31587
31587
  }
31588
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ProcessDiagramListComponent, decorators: [{
31588
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ProcessDiagramListComponent, decorators: [{
31589
31589
  type: Component,
31590
31590
  args: [{ selector: 'mm-process-diagram-list', standalone: true, imports: [
31591
31591
  ProcessDiagramDataSourceDirective,
@@ -31624,10 +31624,10 @@ class GetSymbolDefinitionsDtoGQL extends i1.Query {
31624
31624
  constructor(apollo) {
31625
31625
  super(apollo);
31626
31626
  }
31627
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GetSymbolDefinitionsDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
31628
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GetSymbolDefinitionsDtoGQL, providedIn: 'root' });
31627
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: GetSymbolDefinitionsDtoGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
31628
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: GetSymbolDefinitionsDtoGQL, providedIn: 'root' });
31629
31629
  }
31630
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GetSymbolDefinitionsDtoGQL, decorators: [{
31630
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: GetSymbolDefinitionsDtoGQL, decorators: [{
31631
31631
  type: Injectable,
31632
31632
  args: [{
31633
31633
  providedIn: 'root'