47 lines
		
	
	
		
			No EOL
		
	
	
		
			1.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			No EOL
		
	
	
		
			1.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <div class="timeline-page" aria-busy={{hideTimeline}}>
 | |
|   {{#if hidePage}}
 | |
|     <LoadingPage />
 | |
|   {{/if}}
 | |
|   <div class="timeline-slot-reveal-container {{hidePage ? 'hidden' : ''}}">
 | |
|     <slot></slot>
 | |
|   </div>
 | |
|   <div class="timeline-anchor-container">
 | |
|     {{#if !hidePage && hideTimeline}}
 | |
|       <LoadingPage />
 | |
|     {{/if}}
 | |
|     <div class="timeline-reveal-container {{hideTimeline ? 'hidden' : ''}}">
 | |
|       <LazyTimeline :timeline />
 | |
|     </div>
 | |
|   </div>
 | |
| </div>
 | |
| <style>
 | |
|   .timeline-page, .timeline-anchor-container {
 | |
|     position: relative;
 | |
|   }
 | |
|   .timeline-reveal-container, .timeline-slot-reveal-container {
 | |
|     transition: opacity 0.2s linear; /* main page reveal */
 | |
|   }
 | |
| </style>
 | |
| <script>
 | |
|   import LazyTimeline from '.././_components/timeline/LazyTimeline.html'
 | |
|   import { store } from '.././_store/store.js'
 | |
|   import LoadingPage from '../_components/LoadingPage.html'
 | |
| 
 | |
|   export default {
 | |
|     oncreate () {
 | |
|       this.store.set({
 | |
|         timelineInitialized: false,
 | |
|         timelinePreinitialized: false
 | |
|       })
 | |
|     },
 | |
|     computed: {
 | |
|       hidePage: ($timelineInitialized, $timelinePreinitialized) => !$timelineInitialized && !$timelinePreinitialized,
 | |
|       hideTimeline: ($timelineInitialized) => !$timelineInitialized
 | |
|     },
 | |
|     store: () => store,
 | |
|     components: {
 | |
|       LazyTimeline,
 | |
|       LoadingPage
 | |
|     }
 | |
|   }
 | |
| </script> |