|  |  | @ -1,9 +1,4 @@ | 
			
		
	
		
			
				
					|  |  |  | <form | 
			
		
	
		
			
				
					|  |  |  |   class="d-flex flex-column h-100" | 
			
		
	
		
			
				
					|  |  |  |   [formGroup]="assetProfileForm" | 
			
		
	
		
			
				
					|  |  |  |   (keyup.enter)="assetProfileForm.valid && onSubmit()" | 
			
		
	
		
			
				
					|  |  |  |   (ngSubmit)="onSubmit()" | 
			
		
	
		
			
				
					|  |  |  | > | 
			
		
	
		
			
				
					|  |  |  | <div class="d-flex flex-column h-100"> | 
			
		
	
		
			
				
					|  |  |  |   <div class="d-flex mb-3"> | 
			
		
	
		
			
				
					|  |  |  |     <h1 class="flex-grow-1 m-0" mat-dialog-title> | 
			
		
	
		
			
				
					|  |  |  |       {{ assetProfile?.name ?? data.symbol }} | 
			
		
	
	
		
			
				
					|  |  | @ -91,21 +86,55 @@ | 
			
		
	
		
			
				
					|  |  |  |     /> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     <div class="row"> | 
			
		
	
		
			
				
					|  |  |  |       <div class="col-6 mb-3"> | 
			
		
	
		
			
				
					|  |  |  |         <gf-value i18n size="medium" [value]="assetProfile?.symbol" | 
			
		
	
		
			
				
					|  |  |  |           >Symbol</gf-value | 
			
		
	
		
			
				
					|  |  |  |         > | 
			
		
	
		
			
				
					|  |  |  |       </div> | 
			
		
	
		
			
				
					|  |  |  |       <div class="col-6 mb-3"> | 
			
		
	
		
			
				
					|  |  |  |         <gf-value | 
			
		
	
		
			
				
					|  |  |  |           i18n | 
			
		
	
		
			
				
					|  |  |  |           size="medium" | 
			
		
	
		
			
				
					|  |  |  |           [value]=" | 
			
		
	
		
			
				
					|  |  |  |             assetProfile?.dataProviderInfo?.name ?? assetProfile?.dataSource | 
			
		
	
		
			
				
					|  |  |  |           " | 
			
		
	
		
			
				
					|  |  |  |           >Data Source</gf-value | 
			
		
	
		
			
				
					|  |  |  |         > | 
			
		
	
		
			
				
					|  |  |  |       </div> | 
			
		
	
		
			
				
					|  |  |  |       @if (isEditSymbolMode) { | 
			
		
	
		
			
				
					|  |  |  |         <div class="col-12 mb-3"> | 
			
		
	
		
			
				
					|  |  |  |           <mat-form-field appearance="outline"> | 
			
		
	
		
			
				
					|  |  |  |             <mat-label i18n>Name, symbol or ISIN</mat-label> | 
			
		
	
		
			
				
					|  |  |  |             <gf-symbol-autocomplete | 
			
		
	
		
			
				
					|  |  |  |               formControlName="searchSymbol" | 
			
		
	
		
			
				
					|  |  |  |               [includeIndices]="true" | 
			
		
	
		
			
				
					|  |  |  |             /> | 
			
		
	
		
			
				
					|  |  |  |           </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |           <button class="mx-1 no-min-width px-2" mat-button type="button"> | 
			
		
	
		
			
				
					|  |  |  |             Apply | 
			
		
	
		
			
				
					|  |  |  |           </button> | 
			
		
	
		
			
				
					|  |  |  |           <button | 
			
		
	
		
			
				
					|  |  |  |             class="mx-1 no-min-width px-2" | 
			
		
	
		
			
				
					|  |  |  |             mat-button | 
			
		
	
		
			
				
					|  |  |  |             type="button" | 
			
		
	
		
			
				
					|  |  |  |             (click)="onCancelEditSymboleMode()" | 
			
		
	
		
			
				
					|  |  |  |           > | 
			
		
	
		
			
				
					|  |  |  |             Cancel | 
			
		
	
		
			
				
					|  |  |  |           </button> | 
			
		
	
		
			
				
					|  |  |  |         </div> | 
			
		
	
		
			
				
					|  |  |  |       } @else { | 
			
		
	
		
			
				
					|  |  |  |         <div class="col-6 mb-3"> | 
			
		
	
		
			
				
					|  |  |  |           <gf-value i18n size="medium" [value]="assetProfile?.symbol" | 
			
		
	
		
			
				
					|  |  |  |             >Symbol</gf-value | 
			
		
	
		
			
				
					|  |  |  |           > | 
			
		
	
		
			
				
					|  |  |  |         </div> | 
			
		
	
		
			
				
					|  |  |  |         <div class="col-4 mb-3"> | 
			
		
	
		
			
				
					|  |  |  |           <gf-value | 
			
		
	
		
			
				
					|  |  |  |             i18n | 
			
		
	
		
			
				
					|  |  |  |             size="medium" | 
			
		
	
		
			
				
					|  |  |  |             [value]=" | 
			
		
	
		
			
				
					|  |  |  |               assetProfile?.dataProviderInfo?.name ?? assetProfile?.dataSource | 
			
		
	
		
			
				
					|  |  |  |             " | 
			
		
	
		
			
				
					|  |  |  |             >Data Source</gf-value | 
			
		
	
		
			
				
					|  |  |  |           > | 
			
		
	
		
			
				
					|  |  |  |         </div> | 
			
		
	
		
			
				
					|  |  |  |         <div class="col-1 mb-3"> | 
			
		
	
		
			
				
					|  |  |  |           <button | 
			
		
	
		
			
				
					|  |  |  |             class="mx-1 no-min-width px-2" | 
			
		
	
		
			
				
					|  |  |  |             mat-button | 
			
		
	
		
			
				
					|  |  |  |             type="button" | 
			
		
	
		
			
				
					|  |  |  |             [disabled]="assetProfileForm.dirty" | 
			
		
	
		
			
				
					|  |  |  |             (click)="onSetEditSymboleMode()" | 
			
		
	
		
			
				
					|  |  |  |           > | 
			
		
	
		
			
				
					|  |  |  |             <ion-icon name="create-outline"></ion-icon> | 
			
		
	
		
			
				
					|  |  |  |           </button> | 
			
		
	
		
			
				
					|  |  |  |         </div> | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |       <div class="col-6 mb-3"> | 
			
		
	
		
			
				
					|  |  |  |         <gf-value i18n size="medium" [value]="assetProfile?.currency" | 
			
		
	
		
			
				
					|  |  |  |           >Currency</gf-value | 
			
		
	
	
		
			
				
					|  |  | @ -202,230 +231,255 @@ | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |     </div> | 
			
		
	
		
			
				
					|  |  |  |     <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |       <mat-form-field appearance="outline" class="w-100 without-hint"> | 
			
		
	
		
			
				
					|  |  |  |         <mat-label i18n>Name</mat-label> | 
			
		
	
		
			
				
					|  |  |  |         <input formControlName="name" matInput type="text" /> | 
			
		
	
		
			
				
					|  |  |  |       </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |     </div> | 
			
		
	
		
			
				
					|  |  |  |     @if (assetProfile?.dataSource === 'MANUAL') { | 
			
		
	
		
			
				
					|  |  |  |     <form | 
			
		
	
		
			
				
					|  |  |  |       [formGroup]="assetProfileForm" | 
			
		
	
		
			
				
					|  |  |  |       (keyup.enter)="assetProfileForm.valid && onSubmitAssetProfileForm()" | 
			
		
	
		
			
				
					|  |  |  |       (ngSubmit)="onSubmitAssetProfileForm()" | 
			
		
	
		
			
				
					|  |  |  |     > | 
			
		
	
		
			
				
					|  |  |  |       <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |         <mat-form-field appearance="outline" class="w-100 without-hint"> | 
			
		
	
		
			
				
					|  |  |  |           <mat-label i18n>Currency</mat-label> | 
			
		
	
		
			
				
					|  |  |  |           <gf-currency-selector | 
			
		
	
		
			
				
					|  |  |  |             formControlName="currency" | 
			
		
	
		
			
				
					|  |  |  |             [currencies]="currencies" | 
			
		
	
		
			
				
					|  |  |  |           /> | 
			
		
	
		
			
				
					|  |  |  |           <mat-label i18n>Name</mat-label> | 
			
		
	
		
			
				
					|  |  |  |           <input formControlName="name" matInput type="text" /> | 
			
		
	
		
			
				
					|  |  |  |         </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |       </div> | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |     <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |       <mat-form-field appearance="outline" class="w-100 without-hint"> | 
			
		
	
		
			
				
					|  |  |  |         <mat-label i18n>Asset Class</mat-label> | 
			
		
	
		
			
				
					|  |  |  |         <mat-select formControlName="assetClass"> | 
			
		
	
		
			
				
					|  |  |  |           <mat-option [value]="null" /> | 
			
		
	
		
			
				
					|  |  |  |           @for (assetClass of assetClasses; track assetClass) { | 
			
		
	
		
			
				
					|  |  |  |             <mat-option [value]="assetClass.id">{{ | 
			
		
	
		
			
				
					|  |  |  |               assetClass.label | 
			
		
	
		
			
				
					|  |  |  |             }}</mat-option> | 
			
		
	
		
			
				
					|  |  |  |           } | 
			
		
	
		
			
				
					|  |  |  |         </mat-select> | 
			
		
	
		
			
				
					|  |  |  |       </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |     </div> | 
			
		
	
		
			
				
					|  |  |  |     <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |       <mat-form-field appearance="outline" class="w-100 without-hint"> | 
			
		
	
		
			
				
					|  |  |  |         <mat-label i18n>Asset Sub Class</mat-label> | 
			
		
	
		
			
				
					|  |  |  |         <mat-select formControlName="assetSubClass"> | 
			
		
	
		
			
				
					|  |  |  |           <mat-option [value]="null" /> | 
			
		
	
		
			
				
					|  |  |  |           @for (assetSubClass of assetSubClasses; track assetSubClass) { | 
			
		
	
		
			
				
					|  |  |  |             <mat-option [value]="assetSubClass.id">{{ | 
			
		
	
		
			
				
					|  |  |  |               assetSubClass.label | 
			
		
	
		
			
				
					|  |  |  |             }}</mat-option> | 
			
		
	
		
			
				
					|  |  |  |           } | 
			
		
	
		
			
				
					|  |  |  |         </mat-select> | 
			
		
	
		
			
				
					|  |  |  |       </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |     </div> | 
			
		
	
		
			
				
					|  |  |  |     <div class="d-flex my-3"> | 
			
		
	
		
			
				
					|  |  |  |       <div class="w-50"> | 
			
		
	
		
			
				
					|  |  |  |         <mat-checkbox | 
			
		
	
		
			
				
					|  |  |  |           color="primary" | 
			
		
	
		
			
				
					|  |  |  |           i18n | 
			
		
	
		
			
				
					|  |  |  |           [checked]="isBenchmark" | 
			
		
	
		
			
				
					|  |  |  |           (change)=" | 
			
		
	
		
			
				
					|  |  |  |             isBenchmark | 
			
		
	
		
			
				
					|  |  |  |               ? onUnsetBenchmark({ | 
			
		
	
		
			
				
					|  |  |  |                   dataSource: data.dataSource, | 
			
		
	
		
			
				
					|  |  |  |                   symbol: data.symbol | 
			
		
	
		
			
				
					|  |  |  |                 }) | 
			
		
	
		
			
				
					|  |  |  |               : onSetBenchmark({ | 
			
		
	
		
			
				
					|  |  |  |                   dataSource: data.dataSource, | 
			
		
	
		
			
				
					|  |  |  |                   symbol: data.symbol | 
			
		
	
		
			
				
					|  |  |  |                 }) | 
			
		
	
		
			
				
					|  |  |  |           " | 
			
		
	
		
			
				
					|  |  |  |           >Benchmark</mat-checkbox | 
			
		
	
		
			
				
					|  |  |  |         > | 
			
		
	
		
			
				
					|  |  |  |       @if (assetProfile?.dataSource === 'MANUAL') { | 
			
		
	
		
			
				
					|  |  |  |         <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |           <mat-form-field appearance="outline" class="w-100 without-hint"> | 
			
		
	
		
			
				
					|  |  |  |             <mat-label i18n>Currency</mat-label> | 
			
		
	
		
			
				
					|  |  |  |             <gf-currency-selector | 
			
		
	
		
			
				
					|  |  |  |               formControlName="currency" | 
			
		
	
		
			
				
					|  |  |  |               [currencies]="currencies" | 
			
		
	
		
			
				
					|  |  |  |             /> | 
			
		
	
		
			
				
					|  |  |  |           </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |         </div> | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |       <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |         <mat-form-field appearance="outline" class="w-100 without-hint"> | 
			
		
	
		
			
				
					|  |  |  |           <mat-label i18n>Asset Class</mat-label> | 
			
		
	
		
			
				
					|  |  |  |           <mat-select formControlName="assetClass"> | 
			
		
	
		
			
				
					|  |  |  |             <mat-option [value]="null" /> | 
			
		
	
		
			
				
					|  |  |  |             @for (assetClass of assetClasses; track assetClass) { | 
			
		
	
		
			
				
					|  |  |  |               <mat-option [value]="assetClass.id">{{ | 
			
		
	
		
			
				
					|  |  |  |                 assetClass.label | 
			
		
	
		
			
				
					|  |  |  |               }}</mat-option> | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |           </mat-select> | 
			
		
	
		
			
				
					|  |  |  |         </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |       </div> | 
			
		
	
		
			
				
					|  |  |  |     </div> | 
			
		
	
		
			
				
					|  |  |  |     <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |       <mat-form-field appearance="outline" class="w-100"> | 
			
		
	
		
			
				
					|  |  |  |         <mat-label i18n>Symbol Mapping</mat-label> | 
			
		
	
		
			
				
					|  |  |  |         <textarea | 
			
		
	
		
			
				
					|  |  |  |           cdkTextareaAutosize | 
			
		
	
		
			
				
					|  |  |  |           formControlName="symbolMapping" | 
			
		
	
		
			
				
					|  |  |  |           matInput | 
			
		
	
		
			
				
					|  |  |  |           type="text" | 
			
		
	
		
			
				
					|  |  |  |         ></textarea> | 
			
		
	
		
			
				
					|  |  |  |       </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |     </div> | 
			
		
	
		
			
				
					|  |  |  |     @if (assetProfile?.dataSource === 'MANUAL') { | 
			
		
	
		
			
				
					|  |  |  |       <div class="mb-3"> | 
			
		
	
		
			
				
					|  |  |  |         <mat-accordion class="my-3"> | 
			
		
	
		
			
				
					|  |  |  |           <mat-expansion-panel | 
			
		
	
		
			
				
					|  |  |  |             class="shadow-none" | 
			
		
	
		
			
				
					|  |  |  |             [expanded]=" | 
			
		
	
		
			
				
					|  |  |  |               assetProfileForm.controls.scraperConfiguration.controls.selector | 
			
		
	
		
			
				
					|  |  |  |                 .value !== '' && | 
			
		
	
		
			
				
					|  |  |  |               assetProfileForm.controls.scraperConfiguration.controls.url | 
			
		
	
		
			
				
					|  |  |  |                 .value !== '' | 
			
		
	
		
			
				
					|  |  |  |       <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |         <mat-form-field appearance="outline" class="w-100 without-hint"> | 
			
		
	
		
			
				
					|  |  |  |           <mat-label i18n>Asset Sub Class</mat-label> | 
			
		
	
		
			
				
					|  |  |  |           <mat-select formControlName="assetSubClass"> | 
			
		
	
		
			
				
					|  |  |  |             <mat-option [value]="null" /> | 
			
		
	
		
			
				
					|  |  |  |             @for (assetSubClass of assetSubClasses; track assetSubClass) { | 
			
		
	
		
			
				
					|  |  |  |               <mat-option [value]="assetSubClass.id">{{ | 
			
		
	
		
			
				
					|  |  |  |                 assetSubClass.label | 
			
		
	
		
			
				
					|  |  |  |               }}</mat-option> | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |           </mat-select> | 
			
		
	
		
			
				
					|  |  |  |         </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |       </div> | 
			
		
	
		
			
				
					|  |  |  |       <div class="d-flex my-3"> | 
			
		
	
		
			
				
					|  |  |  |         <div class="w-50"> | 
			
		
	
		
			
				
					|  |  |  |           <mat-checkbox | 
			
		
	
		
			
				
					|  |  |  |             color="primary" | 
			
		
	
		
			
				
					|  |  |  |             i18n | 
			
		
	
		
			
				
					|  |  |  |             [checked]="isBenchmark" | 
			
		
	
		
			
				
					|  |  |  |             [disabled]="isEditSymbolMode" | 
			
		
	
		
			
				
					|  |  |  |             (change)=" | 
			
		
	
		
			
				
					|  |  |  |               isBenchmark | 
			
		
	
		
			
				
					|  |  |  |                 ? onUnsetBenchmark({ | 
			
		
	
		
			
				
					|  |  |  |                     dataSource: data.dataSource, | 
			
		
	
		
			
				
					|  |  |  |                     symbol: data.symbol | 
			
		
	
		
			
				
					|  |  |  |                   }) | 
			
		
	
		
			
				
					|  |  |  |                 : onSetBenchmark({ | 
			
		
	
		
			
				
					|  |  |  |                     dataSource: data.dataSource, | 
			
		
	
		
			
				
					|  |  |  |                     symbol: data.symbol | 
			
		
	
		
			
				
					|  |  |  |                   }) | 
			
		
	
		
			
				
					|  |  |  |             " | 
			
		
	
		
			
				
					|  |  |  |             (closed)="scraperConfiguationIsExpanded.set(false)" | 
			
		
	
		
			
				
					|  |  |  |             (opened)="scraperConfiguationIsExpanded.set(true)" | 
			
		
	
		
			
				
					|  |  |  |             >Benchmark</mat-checkbox | 
			
		
	
		
			
				
					|  |  |  |           > | 
			
		
	
		
			
				
					|  |  |  |             <mat-expansion-panel-header class="p-0"> | 
			
		
	
		
			
				
					|  |  |  |               <mat-panel-title i18n>Scraper Configuration</mat-panel-title> | 
			
		
	
		
			
				
					|  |  |  |             </mat-expansion-panel-header> | 
			
		
	
		
			
				
					|  |  |  |             <div formGroupName="scraperConfiguration"> | 
			
		
	
		
			
				
					|  |  |  |               <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |                 <mat-form-field appearance="outline" class="w-100 without-hint"> | 
			
		
	
		
			
				
					|  |  |  |                   <mat-label i18n>Default Market Price</mat-label> | 
			
		
	
		
			
				
					|  |  |  |                   <input | 
			
		
	
		
			
				
					|  |  |  |                     formControlName="defaultMarketPrice" | 
			
		
	
		
			
				
					|  |  |  |                     matInput | 
			
		
	
		
			
				
					|  |  |  |                     type="number" | 
			
		
	
		
			
				
					|  |  |  |                   /> | 
			
		
	
		
			
				
					|  |  |  |                 </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |               </div> | 
			
		
	
		
			
				
					|  |  |  |               <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |                 <mat-form-field appearance="outline" class="w-100 without-hint"> | 
			
		
	
		
			
				
					|  |  |  |                   <mat-label i18n>HTTP Request Headers</mat-label> | 
			
		
	
		
			
				
					|  |  |  |                   <textarea | 
			
		
	
		
			
				
					|  |  |  |                     cdkTextareaAutosize | 
			
		
	
		
			
				
					|  |  |  |                     formControlName="headers" | 
			
		
	
		
			
				
					|  |  |  |                     matInput | 
			
		
	
		
			
				
					|  |  |  |                     type="text" | 
			
		
	
		
			
				
					|  |  |  |                     [matAutocomplete]="auto" | 
			
		
	
		
			
				
					|  |  |  |                   ></textarea> | 
			
		
	
		
			
				
					|  |  |  |                 </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |               </div> | 
			
		
	
		
			
				
					|  |  |  |               <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |                 <mat-form-field appearance="outline" class="w-100 without-hint"> | 
			
		
	
		
			
				
					|  |  |  |                   <mat-label i18n>Locale</mat-label> | 
			
		
	
		
			
				
					|  |  |  |                   <input formControlName="locale" matInput type="text" /> | 
			
		
	
		
			
				
					|  |  |  |                 </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |               </div> | 
			
		
	
		
			
				
					|  |  |  |               <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |                 <mat-form-field appearance="outline" class="w-100 without-hint"> | 
			
		
	
		
			
				
					|  |  |  |                   <mat-label i18n>Mode</mat-label> | 
			
		
	
		
			
				
					|  |  |  |                   <mat-select formControlName="mode"> | 
			
		
	
		
			
				
					|  |  |  |                     @for (modeValue of modeValues; track modeValue) { | 
			
		
	
		
			
				
					|  |  |  |                       <mat-option [value]="modeValue.value">{{ | 
			
		
	
		
			
				
					|  |  |  |                         modeValue.viewValue | 
			
		
	
		
			
				
					|  |  |  |                       }}</mat-option> | 
			
		
	
		
			
				
					|  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |                   </mat-select> | 
			
		
	
		
			
				
					|  |  |  |                 </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |               </div> | 
			
		
	
		
			
				
					|  |  |  |               <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |                 <mat-form-field appearance="outline" class="w-100 without-hint"> | 
			
		
	
		
			
				
					|  |  |  |                   <mat-label> | 
			
		
	
		
			
				
					|  |  |  |                     <ng-container i18n>Selector</ng-container>* | 
			
		
	
		
			
				
					|  |  |  |                   </mat-label> | 
			
		
	
		
			
				
					|  |  |  |                   <textarea | 
			
		
	
		
			
				
					|  |  |  |                     cdkTextareaAutosize | 
			
		
	
		
			
				
					|  |  |  |                     formControlName="selector" | 
			
		
	
		
			
				
					|  |  |  |                     matInput | 
			
		
	
		
			
				
					|  |  |  |                     type="text" | 
			
		
	
		
			
				
					|  |  |  |                   ></textarea> | 
			
		
	
		
			
				
					|  |  |  |                 </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |               </div> | 
			
		
	
		
			
				
					|  |  |  |               <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |                 <mat-form-field appearance="outline" class="w-100 without-hint"> | 
			
		
	
		
			
				
					|  |  |  |                   <mat-label> | 
			
		
	
		
			
				
					|  |  |  |                     <ng-container i18n>Url</ng-container>* | 
			
		
	
		
			
				
					|  |  |  |                   </mat-label> | 
			
		
	
		
			
				
					|  |  |  |                   <input formControlName="url" matInput type="text" /> | 
			
		
	
		
			
				
					|  |  |  |                 </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |               </div> | 
			
		
	
		
			
				
					|  |  |  |               <div class="my-3 text-right"> | 
			
		
	
		
			
				
					|  |  |  |                 <button | 
			
		
	
		
			
				
					|  |  |  |                   color="accent" | 
			
		
	
		
			
				
					|  |  |  |                   mat-flat-button | 
			
		
	
		
			
				
					|  |  |  |                   type="button" | 
			
		
	
		
			
				
					|  |  |  |                   [disabled]=" | 
			
		
	
		
			
				
					|  |  |  |                     assetProfileForm.controls.scraperConfiguration.controls | 
			
		
	
		
			
				
					|  |  |  |                       .selector.value === '' || | 
			
		
	
		
			
				
					|  |  |  |                     assetProfileForm.controls.scraperConfiguration.controls.url | 
			
		
	
		
			
				
					|  |  |  |                       .value === '' | 
			
		
	
		
			
				
					|  |  |  |                   " | 
			
		
	
		
			
				
					|  |  |  |                   (click)="onTestMarketData()" | 
			
		
	
		
			
				
					|  |  |  |                 > | 
			
		
	
		
			
				
					|  |  |  |                   <ng-container i18n>Test</ng-container> | 
			
		
	
		
			
				
					|  |  |  |                 </button> | 
			
		
	
		
			
				
					|  |  |  |               </div> | 
			
		
	
		
			
				
					|  |  |  |             </div> | 
			
		
	
		
			
				
					|  |  |  |           </mat-expansion-panel> | 
			
		
	
		
			
				
					|  |  |  |         </mat-accordion> | 
			
		
	
		
			
				
					|  |  |  |         </div> | 
			
		
	
		
			
				
					|  |  |  |       </div> | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |     @if (assetProfile?.dataSource === 'MANUAL') { | 
			
		
	
		
			
				
					|  |  |  |       <div> | 
			
		
	
		
			
				
					|  |  |  |       <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |         <mat-form-field appearance="outline" class="w-100"> | 
			
		
	
		
			
				
					|  |  |  |           <mat-label i18n>Sectors</mat-label> | 
			
		
	
		
			
				
					|  |  |  |           <mat-label i18n>Symbol Mapping</mat-label> | 
			
		
	
		
			
				
					|  |  |  |           <textarea | 
			
		
	
		
			
				
					|  |  |  |             cdkTextareaAutosize | 
			
		
	
		
			
				
					|  |  |  |             formControlName="sectors" | 
			
		
	
		
			
				
					|  |  |  |             formControlName="symbolMapping" | 
			
		
	
		
			
				
					|  |  |  |             matInput | 
			
		
	
		
			
				
					|  |  |  |             type="text" | 
			
		
	
		
			
				
					|  |  |  |           ></textarea> | 
			
		
	
		
			
				
					|  |  |  |         </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |       </div> | 
			
		
	
		
			
				
					|  |  |  |       @if (assetProfile?.dataSource === 'MANUAL') { | 
			
		
	
		
			
				
					|  |  |  |         <div class="mb-3"> | 
			
		
	
		
			
				
					|  |  |  |           <mat-accordion class="my-3"> | 
			
		
	
		
			
				
					|  |  |  |             <mat-expansion-panel | 
			
		
	
		
			
				
					|  |  |  |               class="shadow-none" | 
			
		
	
		
			
				
					|  |  |  |               [expanded]=" | 
			
		
	
		
			
				
					|  |  |  |                 assetProfileForm.controls.scraperConfiguration.controls.selector | 
			
		
	
		
			
				
					|  |  |  |                   .value !== '' && | 
			
		
	
		
			
				
					|  |  |  |                 assetProfileForm.controls.scraperConfiguration.controls.url | 
			
		
	
		
			
				
					|  |  |  |                   .value !== '' | 
			
		
	
		
			
				
					|  |  |  |               " | 
			
		
	
		
			
				
					|  |  |  |               (closed)="scraperConfiguationIsExpanded.set(false)" | 
			
		
	
		
			
				
					|  |  |  |               (opened)="scraperConfiguationIsExpanded.set(true)" | 
			
		
	
		
			
				
					|  |  |  |             > | 
			
		
	
		
			
				
					|  |  |  |               <mat-expansion-panel-header class="p-0"> | 
			
		
	
		
			
				
					|  |  |  |                 <mat-panel-title i18n>Scraper Configuration</mat-panel-title> | 
			
		
	
		
			
				
					|  |  |  |               </mat-expansion-panel-header> | 
			
		
	
		
			
				
					|  |  |  |               <div formGroupName="scraperConfiguration"> | 
			
		
	
		
			
				
					|  |  |  |                 <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |                   <mat-form-field | 
			
		
	
		
			
				
					|  |  |  |                     appearance="outline" | 
			
		
	
		
			
				
					|  |  |  |                     class="w-100 without-hint" | 
			
		
	
		
			
				
					|  |  |  |                   > | 
			
		
	
		
			
				
					|  |  |  |                     <mat-label i18n>Default Market Price</mat-label> | 
			
		
	
		
			
				
					|  |  |  |                     <input | 
			
		
	
		
			
				
					|  |  |  |                       formControlName="defaultMarketPrice" | 
			
		
	
		
			
				
					|  |  |  |                       matInput | 
			
		
	
		
			
				
					|  |  |  |                       type="number" | 
			
		
	
		
			
				
					|  |  |  |                     /> | 
			
		
	
		
			
				
					|  |  |  |                   </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |                 </div> | 
			
		
	
		
			
				
					|  |  |  |                 <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |                   <mat-form-field | 
			
		
	
		
			
				
					|  |  |  |                     appearance="outline" | 
			
		
	
		
			
				
					|  |  |  |                     class="w-100 without-hint" | 
			
		
	
		
			
				
					|  |  |  |                   > | 
			
		
	
		
			
				
					|  |  |  |                     <mat-label i18n>HTTP Request Headers</mat-label> | 
			
		
	
		
			
				
					|  |  |  |                     <textarea | 
			
		
	
		
			
				
					|  |  |  |                       cdkTextareaAutosize | 
			
		
	
		
			
				
					|  |  |  |                       formControlName="headers" | 
			
		
	
		
			
				
					|  |  |  |                       matInput | 
			
		
	
		
			
				
					|  |  |  |                       type="text" | 
			
		
	
		
			
				
					|  |  |  |                       [matAutocomplete]="auto" | 
			
		
	
		
			
				
					|  |  |  |                     ></textarea> | 
			
		
	
		
			
				
					|  |  |  |                   </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |                 </div> | 
			
		
	
		
			
				
					|  |  |  |                 <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |                   <mat-form-field | 
			
		
	
		
			
				
					|  |  |  |                     appearance="outline" | 
			
		
	
		
			
				
					|  |  |  |                     class="w-100 without-hint" | 
			
		
	
		
			
				
					|  |  |  |                   > | 
			
		
	
		
			
				
					|  |  |  |                     <mat-label i18n>Locale</mat-label> | 
			
		
	
		
			
				
					|  |  |  |                     <input formControlName="locale" matInput type="text" /> | 
			
		
	
		
			
				
					|  |  |  |                   </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |                 </div> | 
			
		
	
		
			
				
					|  |  |  |                 <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |                   <mat-form-field | 
			
		
	
		
			
				
					|  |  |  |                     appearance="outline" | 
			
		
	
		
			
				
					|  |  |  |                     class="w-100 without-hint" | 
			
		
	
		
			
				
					|  |  |  |                   > | 
			
		
	
		
			
				
					|  |  |  |                     <mat-label i18n>Mode</mat-label> | 
			
		
	
		
			
				
					|  |  |  |                     <mat-select formControlName="mode"> | 
			
		
	
		
			
				
					|  |  |  |                       @for (modeValue of modeValues; track modeValue) { | 
			
		
	
		
			
				
					|  |  |  |                         <mat-option [value]="modeValue.value">{{ | 
			
		
	
		
			
				
					|  |  |  |                           modeValue.viewValue | 
			
		
	
		
			
				
					|  |  |  |                         }}</mat-option> | 
			
		
	
		
			
				
					|  |  |  |                       } | 
			
		
	
		
			
				
					|  |  |  |                     </mat-select> | 
			
		
	
		
			
				
					|  |  |  |                   </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |                 </div> | 
			
		
	
		
			
				
					|  |  |  |                 <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |                   <mat-form-field | 
			
		
	
		
			
				
					|  |  |  |                     appearance="outline" | 
			
		
	
		
			
				
					|  |  |  |                     class="w-100 without-hint" | 
			
		
	
		
			
				
					|  |  |  |                   > | 
			
		
	
		
			
				
					|  |  |  |                     <mat-label> | 
			
		
	
		
			
				
					|  |  |  |                       <ng-container i18n>Selector</ng-container>* | 
			
		
	
		
			
				
					|  |  |  |                     </mat-label> | 
			
		
	
		
			
				
					|  |  |  |                     <textarea | 
			
		
	
		
			
				
					|  |  |  |                       cdkTextareaAutosize | 
			
		
	
		
			
				
					|  |  |  |                       formControlName="selector" | 
			
		
	
		
			
				
					|  |  |  |                       matInput | 
			
		
	
		
			
				
					|  |  |  |                       type="text" | 
			
		
	
		
			
				
					|  |  |  |                     ></textarea> | 
			
		
	
		
			
				
					|  |  |  |                   </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |                 </div> | 
			
		
	
		
			
				
					|  |  |  |                 <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |                   <mat-form-field | 
			
		
	
		
			
				
					|  |  |  |                     appearance="outline" | 
			
		
	
		
			
				
					|  |  |  |                     class="w-100 without-hint" | 
			
		
	
		
			
				
					|  |  |  |                   > | 
			
		
	
		
			
				
					|  |  |  |                     <mat-label> | 
			
		
	
		
			
				
					|  |  |  |                       <ng-container i18n>Url</ng-container>* | 
			
		
	
		
			
				
					|  |  |  |                     </mat-label> | 
			
		
	
		
			
				
					|  |  |  |                     <input formControlName="url" matInput type="text" /> | 
			
		
	
		
			
				
					|  |  |  |                   </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |                 </div> | 
			
		
	
		
			
				
					|  |  |  |                 <div class="my-3 text-right"> | 
			
		
	
		
			
				
					|  |  |  |                   <button | 
			
		
	
		
			
				
					|  |  |  |                     color="accent" | 
			
		
	
		
			
				
					|  |  |  |                     mat-flat-button | 
			
		
	
		
			
				
					|  |  |  |                     type="button" | 
			
		
	
		
			
				
					|  |  |  |                     [disabled]=" | 
			
		
	
		
			
				
					|  |  |  |                       assetProfileForm.controls.scraperConfiguration.controls | 
			
		
	
		
			
				
					|  |  |  |                         .selector.value === '' || | 
			
		
	
		
			
				
					|  |  |  |                       assetProfileForm.controls.scraperConfiguration.controls | 
			
		
	
		
			
				
					|  |  |  |                         .url.value === '' | 
			
		
	
		
			
				
					|  |  |  |                     " | 
			
		
	
		
			
				
					|  |  |  |                     (click)="onTestMarketData()" | 
			
		
	
		
			
				
					|  |  |  |                   > | 
			
		
	
		
			
				
					|  |  |  |                     <ng-container i18n>Test</ng-container> | 
			
		
	
		
			
				
					|  |  |  |                   </button> | 
			
		
	
		
			
				
					|  |  |  |                 </div> | 
			
		
	
		
			
				
					|  |  |  |               </div> | 
			
		
	
		
			
				
					|  |  |  |             </mat-expansion-panel> | 
			
		
	
		
			
				
					|  |  |  |           </mat-accordion> | 
			
		
	
		
			
				
					|  |  |  |         </div> | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |       @if (assetProfile?.dataSource === 'MANUAL') { | 
			
		
	
		
			
				
					|  |  |  |         <div> | 
			
		
	
		
			
				
					|  |  |  |           <mat-form-field appearance="outline" class="w-100"> | 
			
		
	
		
			
				
					|  |  |  |             <mat-label i18n>Sectors</mat-label> | 
			
		
	
		
			
				
					|  |  |  |             <textarea | 
			
		
	
		
			
				
					|  |  |  |               cdkTextareaAutosize | 
			
		
	
		
			
				
					|  |  |  |               formControlName="sectors" | 
			
		
	
		
			
				
					|  |  |  |               matInput | 
			
		
	
		
			
				
					|  |  |  |               type="text" | 
			
		
	
		
			
				
					|  |  |  |             ></textarea> | 
			
		
	
		
			
				
					|  |  |  |           </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |         </div> | 
			
		
	
		
			
				
					|  |  |  |         <div> | 
			
		
	
		
			
				
					|  |  |  |           <mat-form-field appearance="outline" class="w-100"> | 
			
		
	
		
			
				
					|  |  |  |             <mat-label i18n>Countries</mat-label> | 
			
		
	
		
			
				
					|  |  |  |             <textarea | 
			
		
	
		
			
				
					|  |  |  |               cdkTextareaAutosize | 
			
		
	
		
			
				
					|  |  |  |               formControlName="countries" | 
			
		
	
		
			
				
					|  |  |  |               matInput | 
			
		
	
		
			
				
					|  |  |  |               type="text" | 
			
		
	
		
			
				
					|  |  |  |             ></textarea> | 
			
		
	
		
			
				
					|  |  |  |           </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |         </div> | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |       <div> | 
			
		
	
		
			
				
					|  |  |  |         <mat-form-field appearance="outline" class="w-100 without-hint"> | 
			
		
	
		
			
				
					|  |  |  |           <mat-label i18n>Url</mat-label> | 
			
		
	
		
			
				
					|  |  |  |           <input formControlName="url" matInput type="text" /> | 
			
		
	
		
			
				
					|  |  |  |           @if (assetProfileForm.get('url').value) { | 
			
		
	
		
			
				
					|  |  |  |             <gf-asset-profile-icon | 
			
		
	
		
			
				
					|  |  |  |               class="mr-3" | 
			
		
	
		
			
				
					|  |  |  |               matSuffix | 
			
		
	
		
			
				
					|  |  |  |               [url]="assetProfileForm.get('url').value" | 
			
		
	
		
			
				
					|  |  |  |             /> | 
			
		
	
		
			
				
					|  |  |  |           } | 
			
		
	
		
			
				
					|  |  |  |         </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |       </div> | 
			
		
	
		
			
				
					|  |  |  |       <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |         <mat-form-field appearance="outline" class="w-100"> | 
			
		
	
		
			
				
					|  |  |  |           <mat-label i18n>Countries</mat-label> | 
			
		
	
		
			
				
					|  |  |  |           <mat-label i18n>Note</mat-label> | 
			
		
	
		
			
				
					|  |  |  |           <textarea | 
			
		
	
		
			
				
					|  |  |  |             cdkAutosizeMinRows="2" | 
			
		
	
		
			
				
					|  |  |  |             cdkTextareaAutosize | 
			
		
	
		
			
				
					|  |  |  |             formControlName="countries" | 
			
		
	
		
			
				
					|  |  |  |             formControlName="comment" | 
			
		
	
		
			
				
					|  |  |  |             matInput | 
			
		
	
		
			
				
					|  |  |  |             type="text" | 
			
		
	
		
			
				
					|  |  |  |             (keyup.enter)="$event.stopPropagation()" | 
			
		
	
		
			
				
					|  |  |  |           ></textarea> | 
			
		
	
		
			
				
					|  |  |  |         </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |       </div> | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |     <div> | 
			
		
	
		
			
				
					|  |  |  |       <mat-form-field appearance="outline" class="w-100 without-hint"> | 
			
		
	
		
			
				
					|  |  |  |         <mat-label i18n>Url</mat-label> | 
			
		
	
		
			
				
					|  |  |  |         <input formControlName="url" matInput type="text" /> | 
			
		
	
		
			
				
					|  |  |  |         @if (assetProfileForm.get('url').value) { | 
			
		
	
		
			
				
					|  |  |  |           <gf-asset-profile-icon | 
			
		
	
		
			
				
					|  |  |  |             class="mr-3" | 
			
		
	
		
			
				
					|  |  |  |             matSuffix | 
			
		
	
		
			
				
					|  |  |  |             [url]="assetProfileForm.get('url').value" | 
			
		
	
		
			
				
					|  |  |  |           /> | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |       </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |     </div> | 
			
		
	
		
			
				
					|  |  |  |     <div class="mt-3"> | 
			
		
	
		
			
				
					|  |  |  |       <mat-form-field appearance="outline" class="w-100"> | 
			
		
	
		
			
				
					|  |  |  |         <mat-label i18n>Note</mat-label> | 
			
		
	
		
			
				
					|  |  |  |         <textarea | 
			
		
	
		
			
				
					|  |  |  |           cdkAutosizeMinRows="2" | 
			
		
	
		
			
				
					|  |  |  |           cdkTextareaAutosize | 
			
		
	
		
			
				
					|  |  |  |           formControlName="comment" | 
			
		
	
		
			
				
					|  |  |  |           matInput | 
			
		
	
		
			
				
					|  |  |  |           (keyup.enter)="$event.stopPropagation()" | 
			
		
	
		
			
				
					|  |  |  |         ></textarea> | 
			
		
	
		
			
				
					|  |  |  |       </mat-form-field> | 
			
		
	
		
			
				
					|  |  |  |     </div> | 
			
		
	
		
			
				
					|  |  |  |     </form> | 
			
		
	
		
			
				
					|  |  |  |   </div> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |   <div class="d-flex justify-content-end" mat-dialog-actions> | 
			
		
	
	
		
			
				
					|  |  | @ -439,4 +493,4 @@ | 
			
		
	
		
			
				
					|  |  |  |       <ng-container i18n>Save</ng-container> | 
			
		
	
		
			
				
					|  |  |  |     </button> | 
			
		
	
		
			
				
					|  |  |  |   </div> | 
			
		
	
		
			
				
					|  |  |  | </form> | 
			
		
	
		
			
				
					|  |  |  | </div> | 
			
		
	
	
		
			
				
					|  |  | 
 |