Skip to content

Commit 602c654

Browse files
authored
Merge pull request #1 from SyncfusionExamples/861624-Tooltip
861624: Bootstrap tooltip sample in vue datagrid
2 parents 625bd7a + a7acfb9 commit 602c654

File tree

13 files changed

+10227
-2
lines changed

13 files changed

+10227
-2
lines changed

.gitignore

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
.DS_Store
2+
node_modules
3+
/dist
4+
5+
6+
# local env files
7+
.env.local
8+
.env.*.local
9+
10+
# Log files
11+
npm-debug.log*
12+
yarn-debug.log*
13+
yarn-error.log*
14+
pnpm-debug.log*
15+
16+
# Editor directories and files
17+
.idea
18+
.vscode
19+
*.suo
20+
*.ntvs*
21+
*.njsproj
22+
*.sln
23+
*.sw?

README.md

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,28 @@
1-
# how-to-show-bootstrap-tooltip-while-hovering-on-vue-datagrid-cells
2-
A tooltip is a small, contextual pop-up that provides additional information or clarification about a specific element when the user hovers over it. This project helps in rendering Bootstrap tooltips in the vue datagrid cells.
1+
# Render bootstrap tooltip in grid cells
2+
3+
The Grid component allows rendering Bootstrap tooltips in the cells. To enable this feature, you need to add the Bootstrap css to initialize the tooltip.
4+
5+
## To install bootstrap, use the following command
6+
7+
```
8+
npm install vue bootstrap bootstrap-vue
9+
```
10+
11+
## To install syncfusion grid package, use the following command
12+
13+
```
14+
npm install @syncfusion/ej2-vue-grids --save
15+
```
16+
17+
### Run the application
18+
```
19+
npm run serve
20+
```
21+
22+
### Compiles and minifies for production
23+
```
24+
npm run build
25+
```
26+
27+
### Customize configuration
28+
See [Configuration Reference](https://cli.vuejs.org/config/).

babel.config.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
module.exports = {
2+
presets: [
3+
'@vue/cli-plugin-babel/preset'
4+
]
5+
}

jsconfig.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"compilerOptions": {
3+
"target": "es5",
4+
"module": "esnext",
5+
"baseUrl": "./",
6+
"moduleResolution": "node",
7+
"paths": {
8+
"@/*": [
9+
"src/*"
10+
]
11+
},
12+
"lib": [
13+
"esnext",
14+
"dom",
15+
"dom.iterable",
16+
"scripthost"
17+
]
18+
}
19+
}

package.json

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
{
2+
"name": "quickstart",
3+
"version": "0.1.0",
4+
"private": true,
5+
"scripts": {
6+
"serve": "vue-cli-service serve",
7+
"build": "vue-cli-service build",
8+
"lint": "vue-cli-service lint"
9+
},
10+
"dependencies": {
11+
"@syncfusion/ej2-vue-grids": "^23.2.7",
12+
"bootstrap": "^5.3.2",
13+
"bootstrap-vue": "^2.23.1",
14+
"core-js": "^3.8.3",
15+
"vue": "^2.7.15"
16+
},
17+
"devDependencies": {
18+
"@babel/core": "^7.12.16",
19+
"@babel/eslint-parser": "^7.12.16",
20+
"@vue/cli-plugin-babel": "~5.0.0",
21+
"@vue/cli-plugin-eslint": "~5.0.0",
22+
"@vue/cli-service": "~5.0.0",
23+
"eslint": "^7.32.0",
24+
"eslint-plugin-vue": "^8.0.3",
25+
"vue-template-compiler": "^2.6.14"
26+
},
27+
"eslintConfig": {
28+
"root": true,
29+
"env": {
30+
"node": true
31+
},
32+
"extends": [
33+
"plugin:vue/essential",
34+
"eslint:recommended"
35+
],
36+
"parserOptions": {
37+
"parser": "@babel/eslint-parser"
38+
},
39+
"rules": {}
40+
},
41+
"browserslist": [
42+
"> 1%",
43+
"last 2 versions",
44+
"not dead"
45+
]
46+
}

public/favicon.ico

4.19 KB
Binary file not shown.

public/index.html

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<!DOCTYPE html>
2+
<html lang="">
3+
<head>
4+
<meta charset="utf-8">
5+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
6+
<meta name="viewport" content="width=device-width,initial-scale=1.0">
7+
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
8+
<title><%= htmlWebpackPlugin.options.title %></title>
9+
</head>
10+
<body>
11+
<noscript>
12+
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
13+
</noscript>
14+
<div id="app"></div>
15+
<!-- built files will be auto injected -->
16+
</body>
17+
</html>

src/App.vue

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<template>
2+
<div id="app">
3+
<ejs-grid :dataSource="data" :allowPaging="true" >
4+
<e-columns>
5+
<e-column field='OrderID' headerText='Order ID' textAlign='Right' width=90></e-column>
6+
<e-column field='CustomerID' headerText='Customer ID' textAlign='Center' width=120 :template="'cTemplate'">
7+
<template v-slot:cTemplate={data}>
8+
<div class="text-center">
9+
<span
10+
v-b-tooltip.hover
11+
:title="data.CustomerID"
12+
>{{data.CustomerID}}</span
13+
>
14+
</div>
15+
</template>
16+
</e-column>
17+
<e-column field='Freight' headerText='Freight' textAlign='Right' format='C2' width=90></e-column>
18+
<e-column field='OrderDate' headerText='Order Date' textAlign='Right' type='date' format="yMd" width=120></e-column>
19+
</e-columns>
20+
</ejs-grid>
21+
</div>
22+
</template>
23+
<script>
24+
import Vue from 'vue';
25+
import { GridPlugin, Page } from '@syncfusion/ej2-vue-grids';
26+
import { BootstrapVue, IconsPlugin } from 'bootstrap-vue';
27+
import 'bootstrap/dist/css/bootstrap.css'
28+
import 'bootstrap-vue/dist/bootstrap-vue.css'
29+
import { data } from './datasource.js';
30+
31+
Vue.use(BootstrapVue)
32+
// Optionally install the BootstrapVue icon components plugin
33+
Vue.use(IconsPlugin)
34+
35+
Vue.use(GridPlugin);
36+
export default {
37+
name: 'app',
38+
data () {
39+
return {
40+
data: data,
41+
}
42+
},
43+
provide: {
44+
grid: [Page]
45+
},
46+
}
47+
</script>
48+
<style>
49+
@import "../node_modules/@syncfusion/ej2-base/styles/material.css";
50+
@import "../node_modules/@syncfusion/ej2-navigations/styles/material.css";
51+
@import "../node_modules/@syncfusion/ej2-vue-grids/styles/material.css";
52+
</style>

src/assets/logo.png

6.69 KB
Loading

src/components/HelloWorld.vue

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
<template>
2+
<div class="hello">
3+
<h1>{{ msg }}</h1>
4+
<p>
5+
For a guide and recipes on how to configure / customize this project,<br>
6+
check out the
7+
<a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
8+
</p>
9+
<h3>Installed CLI Plugins</h3>
10+
<ul>
11+
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
12+
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li>
13+
</ul>
14+
<h3>Essential Links</h3>
15+
<ul>
16+
<li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
17+
<li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
18+
<li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
19+
<li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
20+
<li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
21+
</ul>
22+
<h3>Ecosystem</h3>
23+
<ul>
24+
<li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
25+
<li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
26+
<li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
27+
<li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
28+
<li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
29+
</ul>
30+
</div>
31+
</template>
32+
33+
<script>
34+
export default {
35+
name: 'HelloWorld',
36+
props: {
37+
msg: String
38+
}
39+
}
40+
</script>
41+
42+
<!-- Add "scoped" attribute to limit CSS to this component only -->
43+
<style scoped>
44+
h3 {
45+
margin: 40px 0 0;
46+
}
47+
ul {
48+
list-style-type: none;
49+
padding: 0;
50+
}
51+
li {
52+
display: inline-block;
53+
margin: 0 10px;
54+
}
55+
a {
56+
color: #42b983;
57+
}
58+
</style>

0 commit comments

Comments
 (0)