mirror of
https://github.com/fleetbase/fleetbase.git
synced 2026-01-06 22:48:19 +00:00
78 lines
2.1 KiB
JavaScript
78 lines
2.1 KiB
JavaScript
import Component from '@glimmer/component';
|
|
import { tracked } from '@glimmer/tracking';
|
|
import formatCurrency from '@fleetbase/ember-ui/utils/format-currency';
|
|
import formatMeters from '@fleetbase/ember-ui/utils/format-meters';
|
|
import formatBytes from '@fleetbase/ember-ui/utils/format-bytes';
|
|
import formatDuration from '@fleetbase/ember-ui/utils/format-duration';
|
|
import formatDate from '@fleetbase/ember-ui/utils/format-date';
|
|
|
|
export default class DashboardCountComponent extends Component {
|
|
/**
|
|
* The title of the metric count.
|
|
*
|
|
* @memberof WidgetKeyMetricsCountComponent
|
|
*/
|
|
@tracked title;
|
|
|
|
/**
|
|
* The value to render
|
|
*
|
|
* @memberof WidgetKeyMetricsCountComponent
|
|
*/
|
|
@tracked value;
|
|
|
|
/**
|
|
* Creates an instance of WidgetKeyMetricsCountComponent.
|
|
* @param {EngineInstance} owner
|
|
* @param {Object} { options }
|
|
* @memberof WidgetKeyMetricsCountComponent
|
|
*/
|
|
constructor(owner, { options, title, value = null }) {
|
|
super(...arguments);
|
|
this.title = title;
|
|
this.value = value;
|
|
this.createRenderValueFromOptions(options);
|
|
}
|
|
|
|
/**
|
|
* Creates the value to render using the options provided.
|
|
*
|
|
* @param {Object} [options={}]
|
|
* @memberof WidgetKeyMetricsCountComponent
|
|
*/
|
|
createRenderValueFromOptions(options = {}) {
|
|
if (value !== null) {
|
|
return;
|
|
}
|
|
|
|
let { format, currency, dateFormat, value } = options;
|
|
|
|
switch (format) {
|
|
case 'money':
|
|
value = formatCurrency([value, currency]);
|
|
break;
|
|
|
|
case 'meters':
|
|
value = formatMeters([value]);
|
|
break;
|
|
|
|
case 'bytes':
|
|
value = formatBytes([value]);
|
|
break;
|
|
|
|
case 'duration':
|
|
value = formatDuration([value]);
|
|
break;
|
|
|
|
case 'date':
|
|
value = formatDate([value, dateFormat]);
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
this.value = value;
|
|
}
|
|
}
|