Fix api-docs anchor link vertical alignment
This commit is contained in:
		
							parent
							
								
									e9fe50a4bb
								
							
						
					
					
						commit
						b8a48314c1
					
				| @ -270,7 +270,7 @@ if (browserWindowEnv && browserWindowEnv.BASE_MODULE === 'liquid') { | |||||||
|   imports: [RouterModule.forRoot(routes, { |   imports: [RouterModule.forRoot(routes, { | ||||||
|     initialNavigation: 'enabledBlocking', |     initialNavigation: 'enabledBlocking', | ||||||
|     scrollPositionRestoration: 'enabled', |     scrollPositionRestoration: 'enabled', | ||||||
|     anchorScrolling: 'enabled', |     anchorScrolling: 'disabled', | ||||||
|     preloadingStrategy: AppPreloadingStrategy |     preloadingStrategy: AppPreloadingStrategy | ||||||
|   })], |   })], | ||||||
| }) | }) | ||||||
|  | |||||||
| @ -4,5 +4,5 @@ | |||||||
| </div> | </div> | ||||||
| <div *ngFor="let item of tabData"> | <div *ngFor="let item of tabData"> | ||||||
|   <p *ngIf="( item.type === 'category' ) && ( item.showConditions.indexOf(network.val) > -1 ) && ( !item.hasOwnProperty('options') || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('officialOnly') && item.options.officialOnly && officialMempoolInstance ))">{{ item.title }}</p> |   <p *ngIf="( item.type === 'category' ) && ( item.showConditions.indexOf(network.val) > -1 ) && ( !item.hasOwnProperty('options') || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('officialOnly') && item.options.officialOnly && officialMempoolInstance ))">{{ item.title }}</p> | ||||||
|   <a *ngIf="( item.type !== 'category' ) && ( item.showConditions.indexOf(network.val) > -1 ) && ( !item.hasOwnProperty('options') || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('officialOnly') && item.options.officialOnly && officialMempoolInstance ) || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('auditOnly') && item.options.auditOnly && auditEnabled ) )" [routerLink]="['./']" fragment="{{ item.fragment }}" (click)="navLinkClick($event)">{{ item.title }}</a> |   <a *ngIf="( item.type !== 'category' ) && ( item.showConditions.indexOf(network.val) > -1 ) && ( !item.hasOwnProperty('options') || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('officialOnly') && item.options.officialOnly && officialMempoolInstance ) || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('auditOnly') && item.options.auditOnly && auditEnabled ) )" (click)="navLinkClick($event, item.fragment)">{{ item.title }}</a> | ||||||
| </div> | </div> | ||||||
|  | |||||||
| @ -10,6 +10,7 @@ a { | |||||||
|   text-decoration: none; |   text-decoration: none; | ||||||
|   display: block; |   display: block; | ||||||
|   margin: 5px 0; |   margin: 5px 0; | ||||||
|  |   cursor: pointer; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #enterprise-cta-desktop { | #enterprise-cta-desktop { | ||||||
|  | |||||||
| @ -33,8 +33,9 @@ export class ApiDocsNavComponent implements OnInit { | |||||||
|     } |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   navLinkClick(event) { |   navLinkClick(event, fragment) { | ||||||
|     this.navLinkClickEvent.emit(event); |     event.preventDefault(); | ||||||
|  |     this.navLinkClickEvent.emit({event: event, fragment: fragment}); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  | |||||||
| @ -19,7 +19,7 @@ | |||||||
|           <div *ngIf="!item.hasOwnProperty('options') || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('officialOnly') && item.options.officialOnly && officialMempoolInstance ) || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('auditOnly') && item.options.auditOnly && auditEnabled )"> |           <div *ngIf="!item.hasOwnProperty('options') || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('officialOnly') && item.options.officialOnly && officialMempoolInstance ) || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('auditOnly') && item.options.auditOnly && auditEnabled )"> | ||||||
|             <h3 *ngIf="item.type === 'category'">{{ item.title }}</h3> |             <h3 *ngIf="item.type === 'category'">{{ item.title }}</h3> | ||||||
|             <div *ngIf="item.type !== 'category'" class="endpoint-container" id="{{ item.fragment }}"> |             <div *ngIf="item.type !== 'category'" class="endpoint-container" id="{{ item.fragment }}"> | ||||||
|               <a id="{{ item.fragment + '-tab-header' }}" class="section-header" (click)="anchorLinkClick( $event )" [routerLink]="['./']" fragment="{{ item.fragment }}"><table><tr><td>{{ item.title }}</td><td><span>{{ item.category }}</span></td></tr></table></a> |               <a id="{{ item.fragment + '-tab-header' }}" class="section-header" (click)="anchorLinkClick({event: $event, fragment: item.fragment})"><table><tr><td>{{ item.title }}</td><td><span>{{ item.category }}</span></td></tr></table></a> | ||||||
|               <div class="endpoint-content"> |               <div class="endpoint-content"> | ||||||
|                 <ng-container *ngTemplateOutlet="dict[item.fragment]" class="endpoint"></ng-container> |                 <ng-container *ngTemplateOutlet="dict[item.fragment]" class="endpoint"></ng-container> | ||||||
|               </div> |               </div> | ||||||
| @ -54,7 +54,7 @@ | |||||||
|           <div *ngIf="!item.hasOwnProperty('options') || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('officialOnly') && item.options.officialOnly && officialMempoolInstance )"> |           <div *ngIf="!item.hasOwnProperty('options') || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('officialOnly') && item.options.officialOnly && officialMempoolInstance )"> | ||||||
|             <h3 *ngIf="( item.type === 'category' ) && ( item.showConditions.indexOf(network.val) > -1 )">{{ item.title }}</h3> |             <h3 *ngIf="( item.type === 'category' ) && ( item.showConditions.indexOf(network.val) > -1 )">{{ item.title }}</h3> | ||||||
|             <div *ngIf="( item.type !== 'category' ) && ( item.showConditions.indexOf(network.val) > -1 )" class="endpoint-container" id="{{ item.fragment }}"> |             <div *ngIf="( item.type !== 'category' ) && ( item.showConditions.indexOf(network.val) > -1 )" class="endpoint-container" id="{{ item.fragment }}"> | ||||||
|               <a id="{{ item.fragment + '-tab-header' }}" class="section-header" (click)="anchorLinkClick( $event )" [routerLink]="['./']" fragment="{{ item.fragment }}">{{ item.title }} <span>{{ item.category }}</span></a> |               <a id="{{ item.fragment + '-tab-header' }}" class="section-header" (click)="anchorLinkClick({event: $event, fragment: item.fragment})">{{ item.title }} <span>{{ item.category }}</span></a> | ||||||
|               <div class="endpoint-content"> |               <div class="endpoint-content"> | ||||||
|                 <div class="endpoint"> |                 <div class="endpoint"> | ||||||
|                   <div class="subtitle" i18n="Api docs endpoint">Endpoint</div> |                   <div class="subtitle" i18n="Api docs endpoint">Endpoint</div> | ||||||
|  | |||||||
| @ -204,6 +204,7 @@ h3 { | |||||||
|   margin: 20px 0 20px 0; |   margin: 20px 0 20px 0; | ||||||
|   font-size: 24px; |   font-size: 24px; | ||||||
|   position: relative; |   position: relative; | ||||||
|  |   cursor: pointer; | ||||||
| } | } | ||||||
| .endpoint-container .section-header:hover { | .endpoint-container .section-header:hover { | ||||||
|   text-decoration: none; |   text-decoration: none; | ||||||
|  | |||||||
| @ -56,7 +56,10 @@ export class ApiDocsComponent implements OnInit, AfterViewInit { | |||||||
|       if( this.route.snapshot.fragment ) { |       if( this.route.snapshot.fragment ) { | ||||||
|         this.openEndpointContainer( this.route.snapshot.fragment ); |         this.openEndpointContainer( this.route.snapshot.fragment ); | ||||||
|         if (document.getElementById( this.route.snapshot.fragment )) { |         if (document.getElementById( this.route.snapshot.fragment )) { | ||||||
|           document.getElementById( this.route.snapshot.fragment ).scrollIntoView(); |           let vOffset = ( window.innerWidth <= 992 ) ? 100 : 60; | ||||||
|  |           window.scrollTo({ | ||||||
|  |             top: document.getElementById( this.route.snapshot.fragment ).offsetTop - vOffset | ||||||
|  |           }); | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|       window.addEventListener('scroll', that.onDocScroll, { passive: true }); |       window.addEventListener('scroll', that.onDocScroll, { passive: true }); | ||||||
| @ -124,20 +127,13 @@ export class ApiDocsComponent implements OnInit, AfterViewInit { | |||||||
|     this.desktopDocsNavPosition = ( window.pageYOffset > 115 ) ? "fixed" : "relative"; |     this.desktopDocsNavPosition = ( window.pageYOffset > 115 ) ? "fixed" : "relative"; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   anchorLinkClick( event: any ) { |   anchorLinkClick( e ) { | ||||||
|     let targetId = ""; |     let targetId = e.fragment; | ||||||
|     if( event.target.nodeName === "A" ) { |     let vOffset = ( window.innerWidth <= 992 ) ? 100 : 60; | ||||||
|       targetId = event.target.hash.substring(1); |     window.scrollTo({ | ||||||
|     } else { |       top: document.getElementById( targetId ).offsetTop - vOffset | ||||||
|       let element = event.target; |     }); | ||||||
|       while( element.nodeName !== "A" ) { |     window.history.pushState({}, null, document.location.href.split("#")[0] + "#" + targetId); | ||||||
|         element = element.parentElement; |  | ||||||
|       } |  | ||||||
|       targetId = element.hash.substring(1); |  | ||||||
|     } |  | ||||||
|     if( this.route.snapshot.fragment === targetId && document.getElementById( targetId )) { |  | ||||||
|       document.getElementById( targetId ).scrollIntoView(); |  | ||||||
|     } |  | ||||||
|     this.openEndpointContainer( targetId ); |     this.openEndpointContainer( targetId ); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user