Refactor #3965 - For Chart

pull/4011/head
Tuğçe Küçükoğlu 2023-05-31 09:44:48 +03:00
parent 8f2b9e5627
commit 1f215ce431
3 changed files with 56 additions and 27 deletions

View File

@ -0,0 +1,48 @@
<script>
import BaseComponent from 'primevue/basecomponent';
import { useStyle } from 'primevue/usestyle';
const styles = `
.p-chart {
position: relative;
}
`;
const classes = {
root: 'p-chart'
};
const { load: loadStyle } = useStyle(styles, { id: 'primevue_chart_style', manual: true });
export default {
name: 'BaseChart',
extends: BaseComponent,
props: {
type: String,
data: null,
options: null,
plugins: null,
width: {
type: Number,
default: 300
},
height: {
type: Number,
default: 150
},
canvasProps: {
type: null,
default: null
}
},
css: {
classes,
loadStyle
},
provide() {
return {
$parentInstance: this
};
}
};
</script>

View File

@ -99,6 +99,11 @@ export interface ChartProps {
* @type {ChartPassThroughOptions} * @type {ChartPassThroughOptions}
*/ */
pt?: ChartPassThroughOptions; pt?: ChartPassThroughOptions;
/**
* When enabled, it removes component related styles in the core.
* @defaultValue false
*/
unstyled?: boolean;
} }
export interface ChartSlots {} export interface ChartSlots {}

View File

@ -1,34 +1,16 @@
<template> <template>
<div class="p-chart" v-bind="ptm('root')"> <div :class="cx('root')" v-bind="ptm('root')" data-pc-name="chart">
<canvas ref="canvas" :width="width" :height="height" @click="onCanvasClick($event)" v-bind="{ ...canvasProps, ...ptm('canvas') }"></canvas> <canvas ref="canvas" :width="width" :height="height" @click="onCanvasClick($event)" v-bind="{ ...canvasProps, ...ptm('canvas') }"></canvas>
</div> </div>
</template> </template>
<script> <script>
import BaseComponent from 'primevue/basecomponent'; import BaseChart from './BaseChart.vue';
export default { export default {
name: 'Chart', name: 'Chart',
extends: BaseComponent, extends: BaseChart,
emits: ['select', 'loaded'], emits: ['select', 'loaded'],
props: {
type: String,
data: null,
options: null,
plugins: null,
width: {
type: Number,
default: 300
},
height: {
type: Number,
default: 150
},
canvasProps: {
type: null,
default: null
}
},
chart: null, chart: null,
watch: { watch: {
/* /*
@ -112,9 +94,3 @@ export default {
} }
}; };
</script> </script>
<style>
.p-chart {
position: relative;
}
</style>