├── .gitignore
├── README.md
├── babel.config.js
├── docs
└── screenshot.png
├── package-lock.json
├── package.json
├── public
├── favicon.ico
└── index.html
├── src
├── App.vue
├── assets
│ └── fonts
│ │ ├── icofont.woff
│ │ └── icofont.woff2
├── components
│ ├── Footer.vue
│ ├── TablePagination.vue
│ └── TableView.vue
├── data.js
├── main.js
└── styles
│ └── icofont.scss
└── vue.config.js
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /dist
4 |
5 | # local env files
6 | .env.local
7 | .env.*.local
8 |
9 | # Log files
10 | npm-debug.log*
11 | yarn-debug.log*
12 | yarn-error.log*
13 |
14 | # Editor directories and files
15 | .idea
16 | .vscode
17 | *.suo
18 | *.ntvs*
19 | *.njsproj
20 | *.sln
21 | *.sw?
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # vue-table-component
2 | A simple Vue component to display tables. Support sortable columns, pagination and custom css styles
3 |
4 | Example with 2 Table components, first one with default styles and paginator, and second one with custom css styles and paginator in 'select' mode
5 |
6 | 
7 |
8 | ## Demo
9 | You can check this [live demo](https://ozoono.github.io/vue-table-component/)
10 |
11 | ## Usage
12 | ```html
13 |
37 |
38 | {{ row.first_name }} |
39 | {{ row.email }} |
40 | {{ row.age }} |
41 |
42 |
43 | No data
44 |
45 |
46 | ```
47 |
48 | #### Props
49 | - `headers`: (required) array with table columns definition (See columns definition)
50 | - `rows`: (required) array with data to fill the table
51 | - `sort`: object with sorting configuration
52 | - **field**: initial sort field
53 | - **order**: [asc/desc] sort order
54 | - `pagination`: object with pagination configuration
55 | - **enabled**: [true/false]
56 | - **itemsPerPage**: number of rows in each page
57 | - **align**: [left/center/right] position of the paginator (Default 'right')
58 | - **visualStyle**: [select/button] paginator style (Default 'button')
59 | - `css-style`: css class that will be applied to the component instead of default styles. Custom styles must be defined in this way:
60 | ```css
61 |
71 | ```
72 |
73 | #### Columns definition
74 | Each column must be defined with 4 parameters:
75 | - **label**: text that will be shown in the column header
76 | - **field**: data field related to the column
77 | - **sortable**: [true/false]
78 | - **type**: [String/Number]
79 |
80 |
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/docs/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ozoono/vue-table-component/5cfbe924a3ec911ad6b8887868c4c7c3962d48ab/docs/screenshot.png
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-table-component",
3 | "version": "0.1.0",
4 | "private": true,
5 | "homepage": "https://github.com/ozoono/vue-table-component.git",
6 | "scripts": {
7 | "serve": "vue-cli-service serve",
8 | "build": "vue-cli-service build",
9 | "deploy": "gh-pages -d dist",
10 | "lint": "vue-cli-service lint"
11 | },
12 | "dependencies": {
13 | "core-js": "^2.6.5",
14 | "vue": "^2.6.10"
15 | },
16 | "devDependencies": {
17 | "@vue/cli-plugin-babel": "^3.0.1",
18 | "@vue/cli-plugin-eslint": "^3.0.1",
19 | "@vue/cli-service": "^3.0.1",
20 | "babel-eslint": "^10.0.1",
21 | "eslint": "^5.16.0",
22 | "eslint-plugin-vue": "^5.0.0",
23 | "gh-pages": "^2.1.1",
24 | "node-sass": "^4.12.0",
25 | "sass-loader": "^8.0.0",
26 | "style-resources-loader": "^1.2.1",
27 | "vue-cli-plugin-style-resources-loader": "^0.1.3",
28 | "vue-template-compiler": "^2.6.10"
29 | },
30 | "eslintConfig": {
31 | "root": true,
32 | "env": {
33 | "node": true
34 | },
35 | "extends": [
36 | "plugin:vue/essential",
37 | "eslint:recommended"
38 | ],
39 | "rules": {},
40 | "parserOptions": {
41 | "parser": "babel-eslint"
42 | }
43 | },
44 | "postcss": {
45 | "plugins": {
46 | "autoprefixer": {}
47 | }
48 | },
49 | "browserslist": [
50 | "> 1%",
51 | "last 2 versions"
52 | ]
53 | }
54 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ozoono/vue-table-component/5cfbe924a3ec911ad6b8887868c4c7c3962d48ab/public/favicon.ico
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Vue table component
9 |
10 |
11 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Vue table component
4 |
Default styles example:
5 |
10 |
11 | {{ row.first_name }} |
12 | {{ row.last_name }} |
13 | {{ row.email }} |
14 | {{ row.age }} |
15 | {{ row.country }} |
16 | {{ row.category }} |
17 | {{ row.last_update }} |
18 |
19 |
20 |
21 | No data
22 |
23 |
24 |
25 |
---✻---
26 |
27 |
Custom styles example:
28 |
35 |
36 | {{ row.first_name }} |
37 | {{ row.last_name }} |
38 | {{ row.email }} |
39 | {{ row.age }} |
40 | {{ row.country }} |
41 | {{ row.category }} |
42 | {{ row.last_update }} |
43 |
44 |
45 |
46 | No data
47 |
48 |
49 |
50 |
---✻---
51 |
52 |
53 |
54 |
86 |
179 |
--------------------------------------------------------------------------------
/src/assets/fonts/icofont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ozoono/vue-table-component/5cfbe924a3ec911ad6b8887868c4c7c3962d48ab/src/assets/fonts/icofont.woff
--------------------------------------------------------------------------------
/src/assets/fonts/icofont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ozoono/vue-table-component/5cfbe924a3ec911ad6b8887868c4c7c3962d48ab/src/assets/fonts/icofont.woff2
--------------------------------------------------------------------------------
/src/components/Footer.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/components/TablePagination.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Page
5 |
15 | of {{ totalPages }}
16 |
17 |
18 |
19 | Page {{page}} of {{ totalPages }}
20 |
21 |
22 |
23 |
24 |
25 |
59 |
60 |
61 |
107 |
--------------------------------------------------------------------------------
/src/components/TableView.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | {{ col.label }}
21 | |
22 |
23 |
24 |
25 |
26 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 | |
38 |
39 |
40 |
41 |
42 |
43 |
50 |
51 |
52 |
53 |
54 |
209 |
210 |
211 |
264 |
--------------------------------------------------------------------------------
/src/data.js:
--------------------------------------------------------------------------------
1 | export const columns = [
2 | {"label":"First Name","field":"first_name","sortable":true,"type":"String"},
3 | {"label":"Last Name","field":"last_name","sortable":true,"type":"String"},
4 | {"label":"Email","field":"email","sortable":true,"type":"String"},
5 | {"label":"Age","field":"age","sortable":true,"type":"Number"},
6 | {"label":"Country","field":"country","sortable":true,"type":"String"},
7 | {"label":"Category","field":"category","sortable":true,"type":"String"},
8 | {"label":"Last Update","field":"last_update","sortable":true,"type":"String"},
9 | ]
10 |
11 | export const rows = [{"first_name":"Isidor","last_name":"Gatenby","email":"igatenby0@stanford.edu","age":20,"country":"El Salvador","category":"A2","last_update":"2017-12-14"},
12 | {"first_name":"Max","last_name":"Chimienti","email":"mchimienti1@ebay.vi","age":32,"country":"Vietnam","category":"B2","last_update":"2018-04-28"},
13 | {"first_name":"Brigham","last_name":"Ibell","email":"bibell2@businesswire.com","age":54,"country":"Australia","category":"D1","last_update":"2017-02-23"},
14 | {"first_name":"Jakob","last_name":"Cecil","email":"jcecil3@cmu.kz","age":37,"country":"Kazakhstan","category":"A2","last_update":"2017-01-21"},
15 | {"first_name":"Brannon","last_name":"Tamsett","email":"btamsett4@jiathis.com","age":18,"country":"Portugal","category":"B2","last_update":"2017-06-20"},
16 | {"first_name":"Alexio","last_name":"Stirrip","email":"astirrip5@reference.com","age":31,"country":"Iceland","category":"D1","last_update":"2018-04-08"},
17 | {"first_name":"Sallyann","last_name":"Lugsdin","email":"slugsdin6@netvibes.com","age":53,"country":"France","category":"A1","last_update":"2017-08-26"},
18 | {"first_name":"Guntar","last_name":"McGorman","email":"gmcgorman7@aol.com","age":34,"country":"Chile","category":"C2","last_update":"2018-05-19"},
19 | {"first_name":"Hagan","last_name":"Slobom","email":"hslobom8@netvibes.com","age":56,"country":"United States","category":"A1","last_update":"2018-09-16"},
20 | {"first_name":"Izak","last_name":"Kempston","email":"ikempston9@soup.io","age":56,"country":"Poland","category":"B3","last_update":"2018-09-16"},
21 | {"first_name":"Lucky","last_name":"Deville","email":"ldevillea@nifty.com","age":50,"country":"Serbia","category":"A3","last_update":"2017-01-10"},
22 | {"first_name":"Wang","last_name":"Xiyu","email":"wangxiyu@baidu.com","age":24,"country":"China","category":"A1","last_update":"2018-07-06"},
23 | {"first_name":"Avis","last_name":"Eddolls","email":"aeddollsc@desdev.be","age":26,"country":"Belgium","category":"A3","last_update":"2017-03-21"},
24 | {"first_name":"Farr","last_name":"Blyden","email":"fblydend@who.int","age":52,"country":"Greece","category":"A3","last_update":"2017-01-16"},
25 | {"first_name":"Peng","last_name":"Shuai","email":"pengshuai@amazon.com","age":21,"country":"China","category":"B1","last_update":"2017-06-10"},
26 | {"first_name":"Pearla","last_name":"Crosser","email":"pcrosserf@exblog.ru","age":24,"country":"Russia","category":"D1","last_update":"2017-09-24"},
27 | {"first_name":"Brana","last_name":"Loade","email":"bloadeg@photobucket.com","age":23,"country":"Malaysia","category":"A1","last_update":"2017-01-08"},
28 | {"first_name":"Sonia","last_name":"Rummer","email":"srummerh@joomla.org","age":43,"country":"Laos","category":"D2","last_update":"2018-05-05"},
29 | {"first_name":"Carline","last_name":"Dorn","email":"cdorni@huffingtonpost.com","age":60,"country":"Sweden","category":"A2","last_update":"2017-11-02"},
30 | {"first_name":"Zulema","last_name":"Battershall","email":"zbattershallj@typepad.com","age":37,"country":"Brazil","category":"C2","last_update":"2017-11-08"},
31 | {"first_name":"Jamie","last_name":"Hyndes","email":"jhyndesk@vk.com","age":33,"country":"Indonesia","category":"C1","last_update":"2017-04-22"},
32 | {"first_name":"Kellby","last_name":"Volette","email":"kvolettel@theatlantic.com","age":40,"country":"Poland","category":"B3","last_update":"2017-10-26"},
33 | {"first_name":"Isabelle","last_name":"Rallings","email":"irallingsm@youtu.hr","age":55,"country":"Croatia","category":"B3","last_update":"2018-10-06"},
34 | {"first_name":"Melly","last_name":"Szymoni","email":"mszymonin@boston.com","age":57,"country":"Luxembourg","category":"A2","last_update":"2017-07-08"},
35 | {"first_name":"Leoine","last_name":"Insull","email":"linsullo@g.co","age":54,"country":"Sweden","category":"B2","last_update":"2017-03-30"},
36 | {"first_name":"Demetris","last_name":"Kubasiewicz","email":"dkubasiewiczp@nih.gov","age":27,"country":"Hungary","category":"D2","last_update":"2017-03-19"},
37 | {"first_name":"Kass","last_name":"Beavon","email":"kbeavonq@biglobe.nt","age":57,"country":"Central African Republic","category":"B2","last_update":"2017-07-19"},
38 | {"first_name":"Norma","last_name":"Bratilia","email":"nbratla@ferret.ho","age":30,"country":"Honduras","category":"B3","last_update":"2017-08-22"},
39 | {"first_name":"Huntley","last_name":"Eagles","email":"heagless@redcross.org","age":29,"country":"United States","category":"B2","last_update":"2018-02-23"},
40 | {"first_name":"Pollyanna","last_name":"Juncker","email":"pjunk@spiegel.de","age":58,"country":"Germany","category":"A3","last_update":"2018-07-18"},
41 | {"first_name":"Sibeal","last_name":"Estrella","email":"sestrellau@naver.com","age":42,"country":"Indonesia","category":"A3","last_update":"2018-08-23"},
42 | {"first_name":"Guss","last_name":"Camamile","email":"gcamamilev@rakuten.co.in","age":34,"country":"Indonesia","category":"D2","last_update":"2018-09-20"},
43 | {"first_name":"Wilhelmina","last_name":"Josefovic","email":"wjosefovicw@theatlantic.com","age":58,"country":"Indonesia","category":"B4","last_update":"2018-01-15"},
44 | {"first_name":"Madella","last_name":"Aslum","email":"maslumx@indiegogo.com","age":44,"country":"Bulgaria","category":"D3","last_update":"2017-06-29"},
45 | {"first_name":"Cassius","last_name":"Lebourikis","email":"clebourny@opera.gr","age":43,"country":"Greece","category":"A3","last_update":"2017-08-27"},
46 | {"first_name":"Yul","last_name":"Filippozzi","email":"yfilippozziz@mediafire.com","age":32,"country":"Bulgaria","category":"A2","last_update":"2017-12-06"},
47 | {"first_name":"Roy","last_name":"Stares","email":"rstares10@xrea.com","age":54,"country":"Canada","category":"A1","last_update":"2018-04-27"},
48 | {"first_name":"Rebekkah","last_name":"Vallantine","email":"rvallantine11@ustream.tv","age":52,"country":"Russia","category":"D3","last_update":"2017-04-14"},
49 | {"first_name":"Nicoline","last_name":"Coldbath","email":"ncoldbath12@facebook.com","age":37,"country":"Ireland","category":"B4","last_update":"2018-04-27"},
50 | {"first_name":"Urbanus","last_name":"Muddle","email":"umuddle13@istockphoto.com","age":26,"country":"Russia","category":"D1","last_update":"2018-04-27"},
51 | {"first_name":"Butch","last_name":"Crampsey","email":"bcrampsey14@deviantart.com","age":40,"country":"Gabon","category":"B1","last_update":"2018-07-21"},
52 | {"first_name":"Roxanna","last_name":"Cesconi","email":"rcesconi15@businesswire.com","age":39,"country":"Indonesia","category":"B4","last_update":"2018-03-06"},
53 | {"first_name":"Sigrid","last_name":"Hambidge","email":"shambidge16@etsy.com","age":56,"country":"Poland","category":"D3","last_update":"2018-09-10"},
54 | {"first_name":"Akira","last_name":"Tanaka","email":"atanaka@bbb.jp","age":55,"country":"Japan","category":"C1","last_update":"2017-12-10"},
55 | {"first_name":"Kiel","last_name":"Dressel","email":"kdressel18@go.com","age":25,"country":"Poland","category":"D3","last_update":"2017-10-30"},
56 | {"first_name":"Henryetta","last_name":"Shapcott","email":"hshapcott19@php.net","age":30,"country":"Nigeria","category":"B3","last_update":"2018-04-06"},
57 | {"first_name":"Korney","last_name":"Cord","email":"kcord1a@thetimes.co.uk","age":33,"country":"United Kingdom","category":"B1","last_update":"2018-08-06"},
58 | {"first_name":"Harlan","last_name":"Seczyk","email":"hseczyk1b@comcast.net","age":59,"country":"Ghana","category":"A3","last_update":"2018-10-10"},
59 | {"first_name":"Emmalee","last_name":"Stump","email":"estump1c@ustream.tv","age":58,"country":"Russia","category":"B3","last_update":"2018-07-25"},
60 | {"first_name":"Jenda","last_name":"Janecki","email":"jjanecki1d@wp.com","age":20,"country":"France","category":"B3","last_update":"2017-11-23"},
61 | {"first_name":"Brandais","last_name":"Piotrowski","email":"bpiotrowski1e@va.gov","age":29,"country":"Latvia","category":"C2","last_update":"2018-05-08"},
62 | {"first_name":"Farrah","last_name":"Wolfinger","email":"fwolfinger1f@samsung.com","age":48,"country":"Madagascar","category":"C1","last_update":"2017-01-31"},
63 | {"first_name":"Fernanda","last_name":"Brissenden","email":"fbrissenden1g@instagram.com","age":56,"country":"Canada","category":"B3","last_update":"2017-01-27"},
64 | {"first_name":"Adria","last_name":"Elam","email":"aelam1h@arizona.ru","age":47,"country":"Russia","category":"A3","last_update":"2018-05-19"},
65 | {"first_name":"Daryn","last_name":"Eaklee","email":"deaklee1i@zimbio.com","age":30,"country":"Botswana","category":"D2","last_update":"2018-05-11"},
66 | {"first_name":"Milka","last_name":"Pestricke","email":"mpestricke1j@shinystat.com","age":29,"country":"Thailand","category":"D3","last_update":"2018-09-07"},
67 | {"first_name":"Vaughn","last_name":"Sousa","email":"vsousa1n@narod.br","age":34,"country":"Brazil","category":"A1","last_update":"2017-02-26"},
68 | {"first_name":"María","last_name":"Shade","email":"mshade1l@naver.com","age":41,"country":"Colombia","category":"D1","last_update":"2017-09-15"},
69 | {"first_name":"Penelopa","last_name":"Ludman","email":"pludman1m@chicagotribune.com","age":23,"country":"Indonesia","category":"B3","last_update":"2017-01-26"},
70 | {"first_name":"Kerr","last_name":"Ramplee","email":"kramplee1n@opensource.org","age":55,"country":"South Africa","category":"A2","last_update":"2018-08-13"},
71 | {"first_name":"Issy","last_name":"Reily","email":"ireily1o@china.com.mw","age":49,"country":"Malawi","category":"A3","last_update":"2017-09-08"},
72 | {"first_name":"Loleta","last_name":"Beardon","email":"lbeardon1p@ca.gov","age":23,"country":"Canada","category":"B4","last_update":"2018-03-02"},
73 | {"first_name":"Eugenio","last_name":"Miranda","email":"eumiranda@youku.com","age":19,"country":"Guatemala","category":"A3","last_update":"2018-05-05"},
74 | {"first_name":"Addison","last_name":"Pikett","email":"apikett1r@over-blog.com","age":59,"country":"New Zealand","category":"A1","last_update":"2017-08-28"},
75 | {"first_name":"Merrielle","last_name":"Mossop","email":"mmossop1s@hubpages.com","age":36,"country":"Ukraine","category":"A3","last_update":"2017-11-17"},
76 | {"first_name":"David","last_name":"Fernandez","email":"david1@ut.gov.es","age":25,"country":"Spain","category":"A1","last_update":"2017-01-23"},
77 | {"first_name":"Marsiella","last_name":"Powlett","email":"mpowlett1u@topsy.com","age":22,"country":"China","category":"B3","last_update":"2018-04-30"},
78 | {"first_name":"Leontyne","last_name":"Biswell","email":"lbiswell1v@comcast.net","age":53,"country":"Philippines","category":"B4","last_update":"2017-12-29"},
79 | {"first_name":"Kamil","last_name":"Duer","email":"kduer1w@simplemachines.org","age":55,"country":"Poland","category":"A1","last_update":"2017-10-30"},
80 | {"first_name":"Petronella","last_name":"Whaites","email":"pwhaites1x@upenn.edu","age":31,"country":"Portugal","category":"C2","last_update":"2018-08-07"},
81 | {"first_name":"Hyacinthe","last_name":"Soldner","email":"hsoldner1y@youtu.be","age":58,"country":"Nigeria","category":"D1","last_update":"2018-02-05"},
82 | {"first_name":"Margaret","last_name":"Stracey","email":"mstracey1z@about.com","age":48,"country":"United States","category":"A3","last_update":"2017-06-05"},
83 | {"first_name":"Annabell","last_name":"Briamo","email":"abriamo20@scientificamerican.com","age":49,"country":"United States","category":"A1","last_update":"2017-11-18"},
84 | {"first_name":"Alberta","last_name":"Mathis","email":"amathis21@booking.com","age":43,"country":"Brazil","category":"D3","last_update":"2018-02-10"},
85 | {"first_name":"Kippie","last_name":"Daviot","email":"kdaviot22@gravatar.com","age":48,"country":"China","category":"D2","last_update":"2018-01-15"},
86 | {"first_name":"Malvina","last_name":"Laybourne","email":"mlaybourne23@baidu.com","age":60,"country":"China","category":"C1","last_update":"2017-02-01"},
87 | {"first_name":"Huberto","last_name":"Mattisson","email":"hmattisson24@yellowbook.com","age":41,"country":"Philippines","category":"D1","last_update":"2018-01-04"},
88 | {"first_name":"Thornie","last_name":"Earland","email":"tearland25@java.com","age":45,"country":"Indonesia","category":"C2","last_update":"2017-08-03"},
89 | {"first_name":"Immanuel","last_name":"Buncombe","email":"ibuncombe26@samsung.com","age":46,"country":"Philippines","category":"C1","last_update":"2017-11-04"},
90 | {"first_name":"Jay","last_name":"Pellamont","email":"jpellamont27@opensource.org","age":46,"country":"Moldova","category":"C2","last_update":"2018-05-16"},
91 | {"first_name":"Dame","last_name":"Gounel","email":"dgounel28@1688.com","age":52,"country":"Russia","category":"A2","last_update":"2017-04-14"},
92 | {"first_name":"Oriana","last_name":"Hintzer","email":"ohintzer29@eepurl.com","age":55,"country":"Brazil","category":"B3","last_update":"2018-02-26"},
93 | {"first_name":"Fabio","last_name":"Zunni","email":"fabzun456@weebly.com","age":50,"country":"Italy","category":"D1","last_update":"2017-05-04"},
94 | {"first_name":"Jamaal","last_name":"Froschauer","email":"jfroschauer2b@reuters.com","age":48,"country":"Greece","category":"B1","last_update":"2017-06-21"},
95 | {"first_name":"Haley","last_name":"Dearnly","email":"hdearnly2c@youku.com","age":31,"country":"Tanzania","category":"A3","last_update":"2017-02-10"},
96 | {"first_name":"Ilene","last_name":"Gelletly","email":"igelletly2d@redcross.org","age":40,"country":"Czech Republic","category":"C1","last_update":"2018-07-22"},
97 | {"first_name":"Kwon","last_name":"yan","email":"kyan12@goo.ne.ch","age":30,"country":"China","category":"A2","last_update":"2018-09-28"},
98 | {"first_name":"Joye","last_name":"Goulborn","email":"jgoulborn2f@rambler.ru","age":20,"country":"Ireland","category":"D1","last_update":"2018-05-04"},
99 | {"first_name":"Adrianne","last_name":"Kesten","email":"akesten2g@latimes.com","age":58,"country":"Indonesia","category":"A2","last_update":"2017-08-08"},
100 | {"first_name":"Maire","last_name":"Halsted","email":"mhalsted2h@xrea.com","age":53,"country":"Portugal","category":"C1","last_update":"2017-01-27"},
101 | {"first_name":"Jeffry","last_name":"Ridgewell","email":"jridgewell2i@economist.com","age":45,"country":"Guam","category":"D2","last_update":"2018-01-20"},
102 | {"first_name":"Hisako","last_name":"Anzu","email":"hisako@admin.jp","age":20,"country":"Japan","category":"C2","last_update":"2017-05-14"},
103 | {"first_name":"Bertine","last_name":"Pellamont","email":"bpellamont2k@studiopress.com","age":20,"country":"Austria","category":"D2","last_update":"2018-06-16"},
104 | {"first_name":"Berky","last_name":"Jencey","email":"bjencey2l@tumblr.com","age":52,"country":"Sweden","category":"C2","last_update":"2017-08-31"},
105 | {"first_name":"Ivy","last_name":"Toner","email":"itoner2m@reuters.com","age":46,"country":"China","category":"D1","last_update":"2018-02-28"},
106 | {"first_name":"Denice","last_name":"Warrillow","email":"dwarrillow2n@macromedia.com","age":38,"country":"Aland Islands","category":"A2","last_update":"2017-08-15"},
107 | {"first_name":"Wilie","last_name":"Bugdale","email":"wbugdale2o@senate.gov","age":22,"country":"Indonesia","category":"C2","last_update":"2017-12-31"},
108 | {"first_name":"Wilfred","last_name":"Delagnes","email":"wdelagnes2p@icio.us","age":18,"country":"Philippines","category":"B2","last_update":"2017-03-20"},
109 | {"first_name":"Malory","last_name":"Freer","email":"mfreer2q@theatlantic.com","age":40,"country":"United Kingdom","category":"A3","last_update":"2017-10-12"},
110 | {"first_name":"Dennie","last_name":"Wattisham","email":"dwattisham2r@sourceforge.net","age":20,"country":"Canada","category":"D2","last_update":"2017-07-08"}]
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './App.vue'
3 |
4 | Vue.config.productionTip = false
5 |
6 | new Vue({
7 | render: h => h(App)
8 | }).$mount('#app')
9 |
--------------------------------------------------------------------------------
/src/styles/icofont.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * @package IcoFont
3 | * @version 1.0.1
4 | * @author IcoFont https://icofont.com
5 | * @copyright Copyright (c) 2015 - 2019 IcoFont
6 | * @license - https://icofont.com/license/
7 | */
8 |
9 | @font-face {
10 | font-family: "IcoFont";
11 | font-weight: normal;
12 | font-style: "Regular";
13 | src: url("~@/assets/fonts/icofont.woff2") format("woff2"),
14 | url(".~@/assets/fonts/icofont.woff") format("woff");
15 | }
16 |
17 | [class^="icofont-"], [class*=" icofont-"] {
18 | font-family: 'IcoFont' !important;
19 | speak: none;
20 | font-style: normal;
21 | font-weight: normal;
22 | font-variant: normal;
23 | text-transform: none;
24 | white-space: nowrap;
25 | word-wrap: normal;
26 | direction: ltr;
27 | line-height: 1;
28 | /* Better Font Rendering =========== */
29 | -webkit-font-feature-settings: "liga";
30 | -webkit-font-smoothing: antialiased;
31 | }
32 |
33 | .icofont-sort:before {
34 | content: "\efef";
35 | }
36 |
37 | .icofont-arrow-down:before {
38 | content: "\ea5b";
39 | }
40 |
41 | .icofont-arrow-up:before {
42 | content: "\ea5e";
43 | }
44 |
45 | .icofont-caret-left:before
46 | {
47 | content: "\ea68";
48 | }
49 |
50 | .icofont-caret-right:before
51 | {
52 | content: "\ea69";
53 | }
54 |
55 | .icofont-xs {
56 | font-size: .5em;
57 | }
58 |
59 | .icofont-sm {
60 | font-size: .75em;
61 | }
62 |
63 | .icofont-md {
64 | font-size: 1.25em;
65 | }
66 |
67 | .icofont-lg {
68 | font-size: 1.5em;
69 | }
70 |
71 | .icofont-1x {
72 | font-size: 1em;
73 | }
74 |
75 | .icofont-2x {
76 | font-size: 2em;
77 | }
78 |
79 | .icofont-3x {
80 | font-size: 3em;
81 | }
82 |
83 | .icofont-4x {
84 | font-size: 4em;
85 | }
86 |
87 | .icofont-5x {
88 | font-size: 5em;
89 | }
90 |
91 | .icofont-6x {
92 | font-size: 6em;
93 | }
94 |
95 | .icofont-7x {
96 | font-size: 7em;
97 | }
98 |
99 | .icofont-8x {
100 | font-size: 8em;
101 | }
102 |
103 | .icofont-9x {
104 | font-size: 9em;
105 | }
106 |
107 | .icofont-10x {
108 | font-size: 10em;
109 | }
110 |
111 | .icofont-fw {
112 | text-align: center;
113 | width: 1.25em;
114 | }
115 |
116 | .icofont-ul {
117 | list-style-type: none;
118 | padding-left: 0;
119 | margin-left: 0;
120 | }
121 |
122 | .icofont-ul > li {
123 | position: relative;
124 | line-height: 2em;
125 | }
126 |
127 | .icofont-ul > li .icofont {
128 | display: inline-block;
129 | vertical-align: middle;
130 | }
131 |
132 | .icofont-border {
133 | border: solid 0.08em #f1f1f1;
134 | border-radius: .1em;
135 | padding: .2em .25em .15em;
136 | }
137 |
138 | .icofont-pull-left {
139 | float: left;
140 | }
141 |
142 | .icofont-pull-right {
143 | float: right;
144 | }
145 |
146 | .icofont.icofont-pull-left {
147 | margin-right: .3em;
148 | }
149 |
150 | .icofont.icofont-pull-right {
151 | margin-left: .3em;
152 | }
153 |
154 | .icofont-spin {
155 | -webkit-animation: icofont-spin 2s infinite linear;
156 | animation: icofont-spin 2s infinite linear;
157 | display: inline-block;
158 | }
159 |
160 | .icofont-pulse {
161 | -webkit-animation: icofont-spin 1s infinite steps(8);
162 | animation: icofont-spin 1s infinite steps(8);
163 | display: inline-block;
164 | }
165 |
166 | @-webkit-keyframes icofont-spin {
167 | 0%
168 | {
169 | -webkit-transform: rotate(0deg);
170 | transform: rotate(0deg);
171 | }
172 |
173 | 100%
174 | {
175 | -webkit-transform: rotate(360deg);
176 | transform: rotate(360deg);
177 | }
178 | }
179 |
180 | @keyframes icofont-spin {
181 | 0%
182 | {
183 | -webkit-transform: rotate(0deg);
184 | transform: rotate(0deg);
185 | }
186 |
187 | 100%
188 | {
189 | -webkit-transform: rotate(360deg);
190 | transform: rotate(360deg);
191 | }
192 | }
193 |
194 | .icofont-rotate-90 {
195 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
196 | -webkit-transform: rotate(90deg);
197 | transform: rotate(90deg);
198 | }
199 |
200 | .icofont-rotate-180 {
201 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
202 | -webkit-transform: rotate(180deg);
203 | transform: rotate(180deg);
204 | }
205 |
206 | .icofont-rotate-270 {
207 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
208 | -webkit-transform: rotate(270deg);
209 | transform: rotate(270deg);
210 | }
211 |
212 | .icofont-flip-horizontal {
213 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
214 | -webkit-transform: scale(-1, 1);
215 | transform: scale(-1, 1);
216 | }
217 |
218 | .icofont-flip-vertical {
219 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
220 | -webkit-transform: scale(1, -1);
221 | transform: scale(1, -1);
222 | }
223 |
224 | .icofont-flip-horizontal.icofont-flip-vertical {
225 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
226 | -webkit-transform: scale(-1, -1);
227 | transform: scale(-1, -1);
228 | }
229 |
230 | :root .icofont-rotate-90,
231 | :root .icofont-rotate-180,
232 | :root .icofont-rotate-270,
233 | :root .icofont-flip-horizontal,
234 | :root .icofont-flip-vertical {
235 | -webkit-filter: none;
236 | filter: none;
237 | display: inline-block;
238 | }
239 |
240 | .icofont-inverse {
241 | color: #fff;
242 | }
243 |
244 | .sr-only {
245 | border: 0;
246 | clip: rect(0, 0, 0, 0);
247 | height: 1px;
248 | margin: -1px;
249 | overflow: hidden;
250 | padding: 0;
251 | position: absolute;
252 | width: 1px;
253 | }
254 |
255 | .sr-only-focusable:active,
256 | .sr-only-focusable:focus {
257 | clip: auto;
258 | height: auto;
259 | margin: 0;
260 | overflow: visible;
261 | position: static;
262 | width: auto;
263 | }
264 |
--------------------------------------------------------------------------------
/vue.config.js:
--------------------------------------------------------------------------------
1 | const path = require("path");
2 |
3 | module.exports = {
4 | pluginOptions: {
5 | "style-resources-loader": {
6 | preProcessor: "scss",
7 | patterns: [path.resolve(__dirname, "./src/styles/icofont.scss")]
8 | }
9 | },
10 | publicPath: process.env.NODE_ENV === 'production'
11 | ? './'
12 | : '/'
13 | };
14 |
--------------------------------------------------------------------------------