|  |  | @ -1,18 +1,14 @@ | 
			
		
	
		
			
				
					|  |  |  | <template> | 
			
		
	
		
			
				
					|  |  |  |     <div> | 
			
		
	
		
			
				
					|  |  |  |         <div class="period-options"> | 
			
		
	
		
			
				
					|  |  |  |             {{ $t("show") }}: | 
			
		
	
		
			
				
					|  |  |  |             <select | 
			
		
	
		
			
				
					|  |  |  |                 id="chart-period-select" | 
			
		
	
		
			
				
					|  |  |  |                 v-model="chartPeriodHrs" | 
			
		
	
		
			
				
					|  |  |  |                 class="form-select form-select-sm ms-1" | 
			
		
	
		
			
				
					|  |  |  |             > | 
			
		
	
		
			
				
					|  |  |  |                 <option value="0">{{ $t("recent") }}</option> | 
			
		
	
		
			
				
					|  |  |  |                 <option value="3">3h</option> | 
			
		
	
		
			
				
					|  |  |  |                 <option value="6">6h</option> | 
			
		
	
		
			
				
					|  |  |  |                 <option value="24">24h</option> | 
			
		
	
		
			
				
					|  |  |  |                 <option value="168">1w</option> | 
			
		
	
		
			
				
					|  |  |  |             </select> | 
			
		
	
		
			
				
					|  |  |  |             <button type="button" class="btn btn-light dropdown-toggle btn-period-toggle" data-bs-toggle="dropdown" aria-expanded="false"> | 
			
		
	
		
			
				
					|  |  |  |                 {{ chartPeriodOptions[chartPeriodHrs] }}  | 
			
		
	
		
			
				
					|  |  |  |             </button> | 
			
		
	
		
			
				
					|  |  |  |             <ul class="dropdown-menu dropdown-menu-end"> | 
			
		
	
		
			
				
					|  |  |  |                 <li v-for="(item, key) in chartPeriodOptions" :key="key"> | 
			
		
	
		
			
				
					|  |  |  |                     <a class="dropdown-item" :class="{ active: chartPeriodHrs == key }" href="#" @click="chartPeriodHrs = key">{{ item }}</a> | 
			
		
	
		
			
				
					|  |  |  |                 </li> | 
			
		
	
		
			
				
					|  |  |  |             </ul> | 
			
		
	
		
			
				
					|  |  |  |         </div> | 
			
		
	
		
			
				
					|  |  |  |         <div class="chart-wrapper"> | 
			
		
	
		
			
				
					|  |  |  |             <LineChart :chart-data="chartData" :options="chartOptions" /> | 
			
		
	
	
		
			
				
					|  |  | @ -49,6 +45,14 @@ export default { | 
			
		
	
		
			
				
					|  |  |  |             // Configurable filtering on top of the returned data | 
			
		
	
		
			
				
					|  |  |  |             chartPeriodHrs: 0, | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             chartPeriodOptions: { | 
			
		
	
		
			
				
					|  |  |  |                 0: this.$t("recent"), | 
			
		
	
		
			
				
					|  |  |  |                 3: "3h", | 
			
		
	
		
			
				
					|  |  |  |                 6: "6h", | 
			
		
	
		
			
				
					|  |  |  |                 24: "24h", | 
			
		
	
		
			
				
					|  |  |  |                 168: "1w", | 
			
		
	
		
			
				
					|  |  |  |             }, | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             // A heartbeatList for 3h, 6h, 24h, 1w | 
			
		
	
		
			
				
					|  |  |  |             // Uses the $root.heartbeatList when value is null | 
			
		
	
		
			
				
					|  |  |  |             heartbeatList: null | 
			
		
	
	
		
			
				
					|  |  | @ -251,15 +255,59 @@ export default { | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | .period-options { | 
			
		
	
		
			
				
					|  |  |  |     padding: 0.3em 2.2em; | 
			
		
	
		
			
				
					|  |  |  |     margin-bottom: -1.5em; | 
			
		
	
		
			
				
					|  |  |  |     padding: 0.1em 1.0em; | 
			
		
	
		
			
				
					|  |  |  |     margin-bottom: -2em; | 
			
		
	
		
			
				
					|  |  |  |     float: right; | 
			
		
	
		
			
				
					|  |  |  |     position: relative; | 
			
		
	
		
			
				
					|  |  |  |     z-index: 10; | 
			
		
	
		
			
				
					|  |  |  |     font-size: 0.8em; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     .dropdown-menu { | 
			
		
	
		
			
				
					|  |  |  |         padding: 0; | 
			
		
	
		
			
				
					|  |  |  |         min-width: 50px; | 
			
		
	
		
			
				
					|  |  |  |         font-size: 0.9em; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         .dark & { | 
			
		
	
		
			
				
					|  |  |  |             background: $dark-bg; | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         .dropdown-item { | 
			
		
	
		
			
				
					|  |  |  |             border-radius: 0.3rem; | 
			
		
	
		
			
				
					|  |  |  |             padding: 2px 16px 4px 16px; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             .dark & { | 
			
		
	
		
			
				
					|  |  |  |                 background: $dark-bg; | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             .dark &:hover { | 
			
		
	
		
			
				
					|  |  |  |                 background: $dark-font-color; | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         .dark & .dropdown-item.active { | 
			
		
	
		
			
				
					|  |  |  |             background: $primary; | 
			
		
	
		
			
				
					|  |  |  |             color: $dark-font-color2; | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     .btn-period-toggle { | 
			
		
	
		
			
				
					|  |  |  |         padding: 2px 15px; | 
			
		
	
		
			
				
					|  |  |  |         background: transparent; | 
			
		
	
		
			
				
					|  |  |  |         border: 0; | 
			
		
	
		
			
				
					|  |  |  |         color: $link-color; | 
			
		
	
		
			
				
					|  |  |  |         opacity: 0.7; | 
			
		
	
		
			
				
					|  |  |  |         font-size: 0.9em; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         &::after { | 
			
		
	
		
			
				
					|  |  |  |             vertical-align: 0.155em; | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         .dark & { | 
			
		
	
		
			
				
					|  |  |  |             color: $dark-font-color; | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | .chart-wrapper { | 
			
		
	
		
			
				
					|  |  |  |     margin-bottom: 1.5em; | 
			
		
	
		
			
				
					|  |  |  |     margin-bottom: 0.5em; | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | </style> | 
			
		
	
	
		
			
				
					|  |  | 
 |