Skip to content

Commit 49a9c7f

Browse files
committed
Working LinkableValueMetric and LinkableTrendMetric
1 parent b961b79 commit 49a9c7f

File tree

7 files changed

+11029
-780
lines changed

7 files changed

+11029
-780
lines changed

dist/js/card.js

Lines changed: 11003 additions & 763 deletions
Large diffs are not rendered by default.

nova.mix.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ class NovaExtension {
1515

1616
webpackConfig.externals = {
1717
vue: 'Vue',
18-
'laravel-nova': 'LaravelNova'
18+
'laravel-nova': 'LaravelNova',
19+
'@/mixins': 'LaravelNova'
1920
}
2021

2122
// webpackConfig.resolve.alias = {

resources/js/card.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import camelCase from 'lodash/camelCase'
22
import upperFirst from 'lodash/upperFirst'
33

4-
import BaseValueMetric from './components/Base/BaseValueMetric'
5-
// import LinkableValueMetric from './components/LinkableValueMetric'
4+
import BaseLinkableValueMetric from './components/Base/BaseValueMetric'
5+
import BaseLinkableTrendMetric from './components/Base/BaseTrendMetric'
6+
67
import LinkableValueMetric from './components/LinkableValueMetric'
7-
// import LinkableTrendMetric from './components/LinkableTrendMetric'
8+
import LinkableTrendMetric from './components/LinkableTrendMetric'
89
// import LinkablePartitionMetric from './components/LinkablePartitionMetric'
910

1011
Nova.booting((app, store) => {
@@ -29,8 +30,9 @@ Nova.booting((app, store) => {
2930
// //app.component(componentName, componentConfig.default || componentConfig)
3031
// })
3132

32-
app.component('BaseLinkableValueMetric', BaseValueMetric)
33+
app.component('BaseLinkableValueMetric', BaseLinkableValueMetric)
34+
app.component('BaseLinkableTrendMetric', BaseLinkableTrendMetric)
3335
app.component('linkable-value-metric', LinkableValueMetric)
34-
// app.component('linkable-trend-metric', LinkableTrendMetric)
36+
app.component('linkable-trend-metric', LinkableTrendMetric)
3537
// app.component('linkable-partition-metric', LinkablePartitionMetric)
3638
})

resources/js/components/Base/BaseTrendMetric.vue

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,21 @@
55

66
<HelpTextTooltip :text="helpText" :width="helpWidth" />
77

8-
<!-- <SelectControl
8+
<SelectControl
99
v-if="ranges.length > 0"
1010
class="ml-auto w-[6rem] flex-shrink-0"
1111
size="xxs"
1212
:options="ranges"
1313
v-model:selected="selectedRangeKey"
1414
@change="handleChange"
1515
:aria-label="__('Select Ranges')"
16-
/> -->
16+
/>
1717
</div>
1818

1919
<p class="flex items-center text-4xl mb-4">
20-
{{ formattedValue }}
20+
<Link :href="this.url" :title="title" class="link-default font-normal">
21+
{{ formattedValue }}
22+
</Link>
2123
<span v-if="suffix" class="ml-2 text-sm font-bold">{{
2224
formattedSuffix
2325
}}</span>
@@ -35,7 +37,7 @@
3537
import debounce from 'lodash/debounce'
3638
import Chartist from 'chartist'
3739
import 'chartist/dist/chartist.min.css'
38-
import { singularOrPlural } from 'laravel-nova'
40+
import { singularOrPlural } from '@/mixins'//'laravel-nova'
3941
import ChartistTooltip from 'chartist-plugin-tooltips-updated'
4042
import 'chartist-plugin-tooltips-updated/dist/chartist-plugin-tooltip.css'
4143
@@ -50,6 +52,7 @@
5052
helpText: {},
5153
helpWidth: {},
5254
value: {},
55+
url: '',
5356
chartData: {},
5457
maxWidth: {},
5558
prefix: '',

resources/js/components/LinkableTrendMetric.vue

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<BaseTrendMetric
2+
<component :is="this.card.url ? 'BaseLinkableTrendMetric' : 'BaseTrendMetric'"
33
@selected="handleRangeSelected"
44
:title="card.name"
55
:help-text="card.helpText"
@@ -13,18 +13,19 @@
1313
:suffix-inflection="suffixInflection"
1414
:selected-range-key="selectedRangeKey"
1515
:loading="loading"
16+
:url="this.card.url"
1617
/>
1718
</template>
1819

1920
<script>
2021
import map from 'lodash/map'
21-
import { InteractsWithDates, MetricBehavior } from 'laravel-nova'
22+
import { InteractsWithDates, MetricBehavior } from 'laravel-nova' //'@/mixins'
2223
import { minimum } from '../util'
2324
2425
export default {
25-
name: 'TrendMetric',
26+
name: 'LinkableTrendMetric',
2627
27-
mixins: [InteractsWithDates, MetricBehavior],
28+
// mixins: [InteractsWithDates, MetricBehavior],
2829
2930
props: {
3031
card: {

resources/js/components/LinkableValueMetric.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<BaseLinkableValueMetric
2+
<component :is="this.card.url ? 'BaseLinkableValueMetric' : 'BaseValueMetric'"
33
@selected="handleRangeSelected"
44
:title="card.name"
55
:copyable="copyable"
@@ -22,8 +22,8 @@
2222
</template>
2323

2424
<script>
25-
import { minimum } from '../util'
26-
import { InteractsWithDates, MetricBehavior } from 'laravel-nova'
25+
import { minimum } from '@/util'
26+
import { InteractsWithDates, MetricBehavior } from '@/mixins' //'laravel-nova'
2727
// import BaseLinkableValueMetric from './Base/BaseValueMetric'
2828
// import { BaseValueMetric } from 'laravel-nova'
2929
export default {

webpack.mix.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
let mix = require('laravel-mix')
2+
let path = require('path')
23

34
require('./nova.mix')
45

@@ -7,4 +8,5 @@ mix
78
.js('resources/js/card.js', 'js')
89
.vue({ version: 3 })
910
.css('resources/css/card.css', 'css')
11+
.alias({ '@': path.join(__dirname, 'resources/js/') })
1012
.nova('saintsystems/nova-linkable-metrics')

0 commit comments

Comments
 (0)