|
22 | 22 | rows="2"></textarea> |
23 | 23 | </mat-form-field> |
24 | 24 |
|
25 | | - <text-field formControlName="component_include_patterns" |
26 | | - label="Component include patterns" |
27 | | - placeholder="Component include patterns"> |
28 | | - </text-field> |
29 | | - |
30 | | - <text-field formControlName="component_exclude_patterns" |
31 | | - label="Component exclude patterns" |
32 | | - placeholder="Component exclude patterns"> |
33 | | - </text-field> |
34 | | - |
35 | | - <div class="pattern-preview"> |
36 | | - <button mat-stroked-button |
37 | | - type="button" |
38 | | - (click)="previewComponents()" |
39 | | - [disabled]="previewing"> |
40 | | - {{ previewing ? 'Previewing...' : 'Preview matching components' }} |
41 | | - </button> |
| 25 | + <mat-expansion-panel class="mat-elevation-z0"> |
| 26 | + <mat-expansion-panel-header> |
| 27 | + <mat-panel-title> |
| 28 | + Component Autodiscovery |
| 29 | + </mat-panel-title> |
| 30 | + </mat-expansion-panel-header> |
42 | 31 |
|
43 | | - <div *ngIf="previewResults !== null" |
44 | | - class="preview-results"> |
45 | | - <span *ngIf="previewResults.length === 0" |
46 | | - class="text--secondary">No components match the current patterns.</span> |
47 | | - <ul *ngIf="previewResults.length > 0" |
48 | | - class="preview-list"> |
49 | | - <li *ngFor="let c of previewResults">{{ c.key }}</li> |
50 | | - </ul> |
| 32 | + <mat-form-field> |
| 33 | + <mat-label>Include patterns</mat-label> |
| 34 | + <textarea formControlName="component_include_patterns" |
| 35 | + placeholder="e.g. prod_*, staging_*" |
| 36 | + rows="2" |
| 37 | + matInput></textarea> |
| 38 | + <mat-hint>Matched against component keys. Comma or newline-separated. Wildcards: * ? [abc]</mat-hint> |
| 39 | + </mat-form-field> |
| 40 | + <mat-form-field> |
| 41 | + <mat-label>Exclude patterns</mat-label> |
| 42 | + <textarea formControlName="component_exclude_patterns" |
| 43 | + placeholder="e.g. test_*, dev_*" |
| 44 | + rows="2" |
| 45 | + matInput></textarea> |
| 46 | + <mat-hint>Components matching these are excluded even if they match an include pattern.</mat-hint> |
| 47 | + </mat-form-field> |
| 48 | + <div class="pattern-preview"> |
| 49 | + <button mat-stroked-button |
| 50 | + type="button" |
| 51 | + (click)="previewComponents()" |
| 52 | + [disabled]="previewing"> |
| 53 | + {{ previewing ? 'Previewing...' : 'Preview' }} |
| 54 | + </button> |
| 55 | + <div *ngIf="previewResults !== null" |
| 56 | + class="preview-results"> |
| 57 | + <span *ngIf="previewResults.length === 0" |
| 58 | + class="text--secondary">No components found matching patterns.</span> |
| 59 | + <ul *ngIf="previewResults.length > 0" |
| 60 | + class="preview-list"> |
| 61 | + <li *ngFor="let c of previewResults">{{ c.key }}</li> |
| 62 | + </ul> |
| 63 | + </div> |
51 | 64 | </div> |
52 | | - </div> |
| 65 | + </mat-expansion-panel> |
53 | 66 |
|
54 | 67 | <mat-expansion-panel class="mat-elevation-z0"> |
55 | 68 | <mat-expansion-panel-header> |
|
0 commit comments