├── .browserslistrc ├── .eslintrc.js ├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── LICENSES └── MIT.txt ├── Makefile ├── README.md ├── built ├── assets │ ├── app-3481bd55.js │ ├── banner-0488777d.png │ ├── index-4acfcfb6.css │ └── vendor-7ea3e80a.js ├── favicon.ico ├── index.html ├── vue-table.png └── vue.pdn ├── certs ├── example.com+5-key.pem └── example.com+5.pem ├── dist ├── vue-quintable.css ├── vue-quintable.es.js ├── vue-quintable.es.js.map ├── vue-quintable.umd.js └── vue-quintable.umd.js.map ├── index.html ├── pack.js ├── package.json ├── postcss.config.js ├── public ├── favicon.ico ├── vue-table.png └── vue.pdn ├── run-build.sh ├── run-eslint.sh ├── run-pack.sh ├── run-start.sh ├── src ├── App.vue ├── assets │ └── banner.png ├── components │ └── VueQuintable.vue ├── examples │ ├── AddRemoveExample.vue │ ├── AjaxExample.vue │ ├── AjaxLoadedExample.vue │ ├── AjaxSelectExample.vue │ ├── AjaxStoreStateExample.vue │ ├── BasicExample.vue │ ├── BindedExample.vue │ ├── BreakpointsAdvancedExample.vue │ ├── BreakpointsExample.vue │ ├── ComponentsExample.vue │ ├── ComputedRowsExample.vue │ ├── EventsExample.vue │ ├── FiltersExample.vue │ ├── FormatterExample.vue │ ├── HiddenExample.vue │ ├── NestedExample.vue │ ├── PaginationExample.vue │ ├── SelectExample.vue │ ├── SlotsExample.vue │ ├── SortExample.vue │ ├── StoreStateExample.vue │ ├── TooltipsExample.vue │ └── components │ │ ├── ActionsComponent.vue │ │ ├── CheckboxComponent.vue │ │ └── DragComponent.vue ├── index.js ├── main.js └── plugins │ └── bootstrap-vue.js ├── vite.build.config.js ├── vite.pack.config.js └── yarn.lock /.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true, 5 | }, 6 | extends: [ 7 | "plugin:vue/essential", 8 | "prettier", 9 | "plugin:prettier/recommended", 10 | "eslint:recommended", 11 | ], 12 | 13 | plugins: ["prettier"], 14 | 15 | rules: { 16 | "vue/multi-word-component-names": 0, 17 | "vue/no-unused-components": 0, 18 | "no-console": 0, 19 | "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off", 20 | "no-mixed-spaces-and-tabs": 0, // disable rule 21 | "prettier/prettier": [ 22 | "error", 23 | { 24 | endOfLine: "auto", 25 | }, 26 | ], 27 | }, 28 | // parserOptions: { 29 | // parser: "@babel/eslint-parser", 30 | // }, 31 | }; 32 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # php storm 35 | .idea 36 | .idea/* 37 | 38 | # node-waf configuration 39 | .lock-wscript 40 | 41 | # Compiled binary addons (https://nodejs.org/api/addons.html) 42 | build/Release 43 | 44 | # Dependency directories 45 | node_modules/ 46 | jspm_packages/ 47 | 48 | # TypeScript v1 declaration files 49 | typings/ 50 | 51 | # TypeScript cache 52 | *.tsbuildinfo 53 | 54 | # Optional npm cache directory 55 | .npm 56 | 57 | # Optional eslint cache 58 | .eslintcache 59 | 60 | # Microbundle cache 61 | .rpt2_cache/ 62 | .rts2_cache_cjs/ 63 | .rts2_cache_es/ 64 | .rts2_cache_umd/ 65 | 66 | # Optional REPL history 67 | .node_repl_history 68 | 69 | # Output of 'npm pack' 70 | *.tgz 71 | 72 | # Yarn Integrity file 73 | .yarn-integrity 74 | 75 | # dotenv environment variables file 76 | .env 77 | .env.test 78 | 79 | # parcel-bundler cache (https://parceljs.org/) 80 | .cache 81 | 82 | # Next.js build output 83 | .next 84 | 85 | 86 | # Gatsby files 87 | .cache/ 88 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 89 | # https://nextjs.org/blog/next-9-1#public-directory-support 90 | # public 91 | 92 | # vuepress build output 93 | .vuepress/dist 94 | 95 | # Serverless directories 96 | .serverless/ 97 | 98 | # FuseBox cache 99 | .fusebox/ 100 | 101 | # DynamoDB Local files 102 | .dynamodb/ 103 | 104 | # TernJS port file 105 | .tern-port 106 | 107 | #Demo HTML 108 | dist/demo.html -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | All notable changes to this project will be documented in this file. 3 | 4 | The format is based on [Keep a Changelog](http://keepachangelog.com/) 5 | and this project adheres to [Semantic Versioning](http://semver.org/). 6 | 7 | ## [2.2.0] - 2023-01-09 8 | 9 | Updates for version 2.2.0 10 | 11 | ### Added 12 | - expandedRowIcon as config property 13 | - collapsedRowIcon as config property 14 | 15 | ### Changed 16 | - default icon for collapsed rows changed from plus to chevron down 17 | - default icon for expanded rows changed from minus to chevron up 18 | - HTML-Structure and style of generated and sticky rows 19 | 20 | ### Fixed 21 | - sticky rows are now calculated more properly 22 | 23 | 24 | ## [2.3.0] - 2023-01-10 25 | 26 | Updates for version 2.3.0 27 | 28 | ### Added 29 | - PortalVue for slots ([PortalVue](https://portal-vue.linusb.org/)) 30 | 31 | ### Deprecated 32 | - *quintable* option for cells was removed, use slot for nested tables. 33 | - slot *cell-complete*. Still working but not recommended. Use only *cell-content* 34 | - slot *generated-cell-complete*. Still working but not recommended. Use only *generated-cell-content* 35 | - slot *sticky-cell-complete*. Still working but not recommended. Use only *sticky-cell-content* 36 | 37 | ### Changed 38 | - slots *cell-complete* and *cell-content* now also working for generated and sticky cells 39 | 40 | ### Fixed 41 | - class names 42 | 43 | ## [2.3.1] - 2023-01-11 44 | Updates for version 2.3.1 45 | 46 | ### Fixed 47 | - minor fixes 48 | - 49 | ## [2.3.2] - 2023-01-11 50 | Updates for version 2.3.2 51 | 52 | ### Fixed 53 | - minor fixes 54 | - 55 | ## [2.3.3] - 2023-01-11 56 | Updates for version 2.3.3 57 | 58 | ### Fixed 59 | - minor fixes 60 | 61 | ## [2.3.4] - 2023-01-11 62 | Updates for version 2.3.4 63 | 64 | ### Fixed 65 | - minor fixes 66 | 67 | ## [2.3.5] - 2023-01-11 68 | Updates for version 2.3.5 69 | 70 | ### Fixed 71 | - minor fixes 72 | 73 | ## [2.3.6] - 2023-01-17 74 | Updates for version 2.3.6 75 | 76 | ### Removed 77 | - PortalVue because it was causing performance issues for large tables 78 | 79 | 80 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | VueQuintable is free for everyone to use in personal projects (MIT License, see below). 2 | 3 | MIT License 4 | 5 | Copyright (c) 2020 Sensetence 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all 15 | copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | SOFTWARE. -------------------------------------------------------------------------------- /LICENSES/MIT.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Sensetence 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # All commands in the is Makefile can be executed OUTSIDE of any docker container. 2 | # Commands for INSIDE of docker containers are in Makefile in api/web directory. 3 | # Get a shell for the respective container with `make docker-exec-web` or `make docker-exec-php` 4 | # Next goal: Bitbucket pipeline should call make commands instead of having the commands encoded in pipeline so that it's easy to run the locally. 5 | ####> Hacks #### 6 | 7 | .PHONY: hack 8 | hack: hack-chown hack-chmod 9 | 10 | .PHONY: hack-chmod 11 | hack-chmod: 12 | sudo chmod 0777 ./.[^.]* -R 13 | sudo chmod 0777 * -R 14 | 15 | .PHONY: hack-chown 16 | hack-chown: 17 | sudo chown $(USER):$(USER) ./.[^.]* -R 18 | sudo chown $(USER):$(USER) * -R 19 | 20 | ####< Hacks #### 21 | 22 | # https://stackoverflow.com/questions/10032461/git-keeps-asking-me-for-my-ssh-key-passphrase 23 | .PHONY: ssh-login 24 | ssh-login: 25 | @echo "Please run: eval \`ssh-agent\` && ssh-add" -------------------------------------------------------------------------------- /built/assets/banner-0488777d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sensetence/vue-quintable/14eedf2ef1126a47527125388898488ae26e9c3d/built/assets/banner-0488777d.png -------------------------------------------------------------------------------- /built/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sensetence/vue-quintable/14eedf2ef1126a47527125388898488ae26e9c3d/built/favicon.ico -------------------------------------------------------------------------------- /built/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | VueQuintable 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /built/vue-table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sensetence/vue-quintable/14eedf2ef1126a47527125388898488ae26e9c3d/built/vue-table.png -------------------------------------------------------------------------------- /built/vue.pdn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sensetence/vue-quintable/14eedf2ef1126a47527125388898488ae26e9c3d/built/vue.pdn -------------------------------------------------------------------------------- /certs/example.com+5-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDuafPJqHHbcMLC 3 | Uzly3SxhcHNvhj1wU8IWGbsvM/PasKKjTB1il9a6/tYoTtSY4NDuWr4/beAzqwRC 4 | EId8g72hj9P4lVpMrUYp5hL60JkUMFLQ8rj8QhH8vmzHZRNpadMeKN4xeXJ7MJl3 5 | yVIPlOdeGBw1JSoH0yn2tncZhIpu0Ee6t0sq/dMP1ch+t+XwO9f2si3lMndvFzbT 6 | CqgbLTUsZF0ooef1L6Klpx5Vgg2Wg48BVlrtbnd/tf4/nACl37jJ9KgRmxcAY/02 7 | 8j8Ey3So46G6uPdxAlOVqK9yxgsavgcxaJsvOUtXi7Kv6QwHdZcTnpYgJrn1Cjpa 8 | PAfHcQrHAgMBAAECggEAaHuUdE7WvvWW1LTGW3lkRruSS1DIQh7i0u6p4tDg0HlS 9 | fUARLLEgUMj3r6iEcQ8tYRfxgjiz5dDPx+gYiE/v3gr7OViyvyG8uwXyUWrzey6G 10 | TL3ipeKKoXoOj//S1wKim/gLECGKM0SkLSPUS7HVB56HVh8YYV+AZ3elkFBOnqre 11 | Cl0gCeKS236EeOf3H3sAWVt9BtFQyBpm/ojIzfZp3mDDSg9bGVJ1YU6T/Yk4JEZV 12 | DmB6LI9QTxh1DKabOvwJLASoRXrJFAubujLEl/7gb0bZWTcvSX4T2OrmenkAHgnX 13 | Br9OsE3yZLYpkiUl0v+n67JEQw8xhwnNt/mO7QJpwQKBgQD33Rqz/Nd4ossIn0f/ 14 | 8eMnwSSwwgEU973JShucZb7qi/Mz6vkRNYKO7TiTYdKU7XWTVDpN7yVpUhfKFP87 15 | lK+rjBj8Y8YgCJrLtAPZI4QAbJUZPejuZXo4NKarZd/QyNdG8PV+etuYLBu/dgwh 16 | yyjGEV3Qlh4gtO7wlrxlIgq7ZwKBgQD2PXAAn/6TRk0gn5GykYpK5aDTzJQ13DF1 17 | p8/BxBLQv2IuRQHdJsD9+VbQFS4NckKWMQf5FuiYrc2DtUe/G5ZSbS4253cMfsEl 18 | jS1az84GF5KHBnKZ6ppAYNT0ktFmp48WdNJLNXqeEOEn6PfOil4iwkDqJLPj04V3 19 | S4N+5gb5oQKBgQC5r9nWZx/hD0w9jF47HzJG0Qo0pVJ8K9DxYGRo+UxamDe9eFXZ 20 | D5ZcjtjoiMtiqLaBhgMb6YHEcizCRpKjRxOH16/MPM7rpqaY3qZXYKT+UFoui9PZ 21 | 7Qnv23nVQ7+1wRCN4+x2MYIbcUfkWoJiOrm0EMSQhDXT2Nh8QuCmfyc9FwKBgEia 22 | /PdyNaI/TGaeJlu8xkYnRzCsVdc7wemrPXso0VNz2wNBnbcTwjwg1RQt6pJUaoXW 23 | lz8/Hf5G4R5AyZL0E3LidooB3fx1M4ZbBlCMjXcGZFIj+I6hujHZW3FyCQR3y50X 24 | fRpn/mu1Fm6qJsdjzTX6iSGBCPnYWLZAMdmtAcmBAoGBAInEpFsdBBOLiZAu0nCr 25 | bQhV8ELayfw0EG11Ek94QcM18c4Pso+S1gOaN5oiDOsh99bTm/kBhs7BlWVQPdqG 26 | 0c558p6ygQfJavkF75eZ/DIZd85ZxGm630viUbKI6eLvKu6gKZ+xflTFRpZzmW0N 27 | rp9TLZBxBkSFXxjYEdLzWgOw 28 | -----END PRIVATE KEY----- 29 | -------------------------------------------------------------------------------- /certs/example.com+5.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIEszCCAxugAwIBAgIQM1X3nxILI0/Acf898xnk5DANBgkqhkiG9w0BAQsFADCB 3 | lzEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMTYwNAYDVQQLDC1BenVy 4 | ZUFEXFNhbXVlbFplaXRsZXJAVWt1bGVsZSAoU2FtdWVsWmVpdGxlcikxPTA7BgNV 5 | BAMMNG1rY2VydCBBenVyZUFEXFNhbXVlbFplaXRsZXJAVWt1bGVsZSAoU2FtdWVs 6 | WmVpdGxlcikwHhcNMTkwNjAxMDAwMDAwWhcNMzIwMzE2MDkyNTU0WjBhMScwJQYD 7 | VQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUxNjA0BgNVBAsMLUF6 8 | dXJlQURcU2FtdWVsWmVpdGxlckBVa3VsZWxlIChTYW11ZWxaZWl0bGVyKTCCASIw 9 | DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAO5p88mocdtwwsJTOXLdLGFwc2+G 10 | PXBTwhYZuy8z89qwoqNMHWKX1rr+1ihO1Jjg0O5avj9t4DOrBEIQh3yDvaGP0/iV 11 | WkytRinmEvrQmRQwUtDyuPxCEfy+bMdlE2lp0x4o3jF5cnswmXfJUg+U514YHDUl 12 | KgfTKfa2dxmEim7QR7q3Syr90w/VyH635fA71/ayLeUyd28XNtMKqBstNSxkXSih 13 | 5/UvoqWnHlWCDZaDjwFWWu1ud3+1/j+cAKXfuMn0qBGbFwBj/TbyPwTLdKjjobq4 14 | 93ECU5Wor3LGCxq+BzFomy85S1eLsq/pDAd1lxOeliAmufUKOlo8B8dxCscCAwEA 15 | AaOBrzCBrDAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYD 16 | VR0TAQH/BAIwADAfBgNVHSMEGDAWgBTyuTWhz4mYr15ePmFKxEiEZCAs/TBWBgNV 17 | HREETzBNggtleGFtcGxlLmNvbYINKi5leGFtcGxlLmNvbYIMZXhhbXBsZS50ZXN0 18 | gglsb2NhbGhvc3SHBH8AAAGHEAAAAAAAAAAAAAAAAAAAAAEwDQYJKoZIhvcNAQEL 19 | BQADggGBABZrYz1HxMRrCkGLVAebYCB5mnT65Ef535lKC7Ck8kEj4JshFo5NbHwv 20 | nZR+DU4/UyvesNCFG6rEfICSLmIGX8naZHWQpK5av+b1Qyl+JLGS7ueo/JVrJJ7A 21 | fTWdmH0LsfuJvQyvLIeNM3fZfj9Dwk8t+A74vL0sm0r2H/kT0qgveiaa8V0valu2 22 | U4ixtdoyYm2xa+amV0irUg+egPLBbgMXoZM35h6W5f0yFd+uDOK2hN5QQo6NBBWh 23 | S0fH2lTUtZbY5ftss0EHnlQl/aV8GjVfrDmhuMjWqweXf6553YqSwsrSV2hxkO8f 24 | BsVAb6fDbq9cFyuP5SXn+KsIzA8PmHZLFg2v7oVBCZnvbBeTY6QbVDPz+YPEWBpD 25 | 3LXyzIzH09GPq7sxNGBSq393YqwMpj1UcklhNmNoHvRwcJNr7OM0PaDKwV8g9uc/ 26 | wDGV1tU8d7IX/vJC49/b7NxZXxyRkGiRb5gnL54ompAB38AwAvGvgQf8I+Xhn463 27 | 6tMqDHVN+g== 28 | -----END CERTIFICATE----- 29 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | VueQuintable 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /pack.js: -------------------------------------------------------------------------------- 1 | const { execSync } = require("child_process"); 2 | const exec = (commands) => { 3 | execSync(commands, { stdio: "inherit", shell: true }); 4 | }; 5 | const readline = require("readline"); 6 | 7 | const rl = readline.createInterface({ 8 | input: process.stdin, 9 | output: process.stdout, 10 | }); 11 | 12 | const defaultDest = "dist"; 13 | 14 | rl.question(`DESTINATION (${defaultDest}):`, (dir) => { 15 | if (!dir) { 16 | dir = defaultDest; 17 | } 18 | exec( 19 | `cross-env BUILD_DEST_DIRECTORY="${dir}" vite build --config vite.pack.config.js` 20 | ); 21 | rl.close(); 22 | }); 23 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@sensetence/vue-quintable", 3 | "version": "2.3.30", 4 | "private": false, 5 | "scripts": { 6 | "dev": "vite --config vite.build.config.js", 7 | "build": "vite build --config vite.build.config.js", 8 | "prod-local": "vite build --config vite.pack.config.js", 9 | "prod": "node ./pack.js", 10 | "preview": "vite preview" 11 | }, 12 | "main": "./dist/vue-quintable.umd.js", 13 | "module": "./dist/vue-quintable.es.js", 14 | "files": [ 15 | "dist" 16 | ], 17 | "exports": { 18 | ".": { 19 | "import": "./dist/vue-quintable.es.js", 20 | "require": "./dist/vue-quintable.umd.js" 21 | } 22 | }, 23 | "dependencies": { 24 | "@fortawesome/fontawesome-svg-core": "^1.2.35", 25 | "@fortawesome/free-solid-svg-icons": "^5.15.3", 26 | "@fortawesome/vue-fontawesome": "^0.1.10", 27 | "axios": "^0.21.1", 28 | "core-js": "^3.9.1", 29 | "fuzzy.js": "^0.1.0", 30 | "prismjs": "^1.23.0", 31 | "uuid": "^3.4.0", 32 | "v-tooltip": "^2.1.3", 33 | "vue": "^2.7.1", 34 | "vue-drag-drop": "^1.1.4", 35 | "vue-select": "^3.11.2" 36 | }, 37 | "devDependencies": { 38 | "@babel/core": "^7.12.16", 39 | "@babel/eslint-parser": "^7.12.16", 40 | "@popperjs/core": "^2.9.3", 41 | "@vitejs/plugin-basic-ssl": "^1.0.1", 42 | "@vitejs/plugin-vue2": "^2.2.0", 43 | "autoprefixer": "^10.4.13", 44 | "bootstrap": "^5.1.0", 45 | "chance": "^1.1.7", 46 | "cross-env": "^7.0.3", 47 | "eslint": "^7.32.0", 48 | "eslint-config-prettier": "^8.3.0", 49 | "eslint-plugin-prettier": "^3.4.0", 50 | "eslint-plugin-vue": "^9.4.0", 51 | "moment-timezone": "^0.5.35", 52 | "node-gyp": "^6.1.0", 53 | "prettier": "2.3.1", 54 | "pretty-checkbox-vue": "^1.1.9", 55 | "sanitize-filename": "^1.6.3", 56 | "sass": "^1.49.9", 57 | "sass-loader": "^8.0.2", 58 | "vite": "^4.0.4", 59 | "vite-plugin-commonjs": "^0.6.1", 60 | "vite-plugin-eslint": "^1.8.1", 61 | "vite-plugin-rewrite-all": "^1.0.1", 62 | "vue-template-compiler": "^2.7.14" 63 | }, 64 | "homepage": "https://sensetence.com/vue-quintable/", 65 | "keywords": [ 66 | "table", 67 | "tables", 68 | "datatable", 69 | "vue", 70 | "vue.js", 71 | "data-table", 72 | "tables", 73 | "responsive", 74 | "vue-datasource", 75 | "vue-table", 76 | "vue-quintable" 77 | ], 78 | "license": "MIT", 79 | "repository": { 80 | "type": "git", 81 | "url": "https://github.com/sensetence/vue-quintable.git" 82 | }, 83 | "config": { 84 | "packageName": "vue-quintable" 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {} 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sensetence/vue-quintable/14eedf2ef1126a47527125388898488ae26e9c3d/public/favicon.ico -------------------------------------------------------------------------------- /public/vue-table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sensetence/vue-quintable/14eedf2ef1126a47527125388898488ae26e9c3d/public/vue-table.png -------------------------------------------------------------------------------- /public/vue.pdn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sensetence/vue-quintable/14eedf2ef1126a47527125388898488ae26e9c3d/public/vue.pdn -------------------------------------------------------------------------------- /run-build.sh: -------------------------------------------------------------------------------- 1 | yarn prettier --write "src/**/*.{js,vue,css,scss}" && 2 | npx eslint && 3 | npm run build -------------------------------------------------------------------------------- /run-eslint.sh: -------------------------------------------------------------------------------- 1 | yarn prettier --write "src/**/*.{js,vue,css,scss}" && 2 | npx eslint 3 | read -r -p "Press any key to continue..." key -------------------------------------------------------------------------------- /run-pack.sh: -------------------------------------------------------------------------------- 1 | yarn prettier --write "src/**/*.{js,vue,css,scss}" && 2 | npx eslint && 3 | npm run prod -------------------------------------------------------------------------------- /run-start.sh: -------------------------------------------------------------------------------- 1 | yarn prettier --write "src/**/*.{js,vue,css,scss}" && 2 | npx eslint && 3 | npm run dev -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 34 | 35 | 233 | 234 | 264 | -------------------------------------------------------------------------------- /src/assets/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sensetence/vue-quintable/14eedf2ef1126a47527125388898488ae26e9c3d/src/assets/banner.png -------------------------------------------------------------------------------- /src/examples/AddRemoveExample.vue: -------------------------------------------------------------------------------- 1 | 558 | 766 | 767 | 794 | -------------------------------------------------------------------------------- /src/examples/AjaxExample.vue: -------------------------------------------------------------------------------- 1 | 90 | 159 | -------------------------------------------------------------------------------- /src/examples/AjaxLoadedExample.vue: -------------------------------------------------------------------------------- 1 | 81 | 127 | -------------------------------------------------------------------------------- /src/examples/AjaxSelectExample.vue: -------------------------------------------------------------------------------- 1 | 198 | 313 | -------------------------------------------------------------------------------- /src/examples/AjaxStoreStateExample.vue: -------------------------------------------------------------------------------- 1 | 150 | 236 | -------------------------------------------------------------------------------- /src/examples/BasicExample.vue: -------------------------------------------------------------------------------- 1 | 122 | 215 | -------------------------------------------------------------------------------- /src/examples/BindedExample.vue: -------------------------------------------------------------------------------- 1 | 122 | 205 | -------------------------------------------------------------------------------- /src/examples/BreakpointsAdvancedExample.vue: -------------------------------------------------------------------------------- 1 | 92 | 164 | -------------------------------------------------------------------------------- /src/examples/BreakpointsExample.vue: -------------------------------------------------------------------------------- 1 | 94 | 154 | -------------------------------------------------------------------------------- /src/examples/ComponentsExample.vue: -------------------------------------------------------------------------------- 1 | 180 | 263 | -------------------------------------------------------------------------------- /src/examples/ComputedRowsExample.vue: -------------------------------------------------------------------------------- 1 | 89 | 147 | -------------------------------------------------------------------------------- /src/examples/EventsExample.vue: -------------------------------------------------------------------------------- 1 | 188 | 271 | -------------------------------------------------------------------------------- /src/examples/FiltersExample.vue: -------------------------------------------------------------------------------- 1 | 288 | 433 | -------------------------------------------------------------------------------- /src/examples/FormatterExample.vue: -------------------------------------------------------------------------------- 1 | 119 | 199 | -------------------------------------------------------------------------------- /src/examples/HiddenExample.vue: -------------------------------------------------------------------------------- 1 | 221 | 356 | -------------------------------------------------------------------------------- /src/examples/NestedExample.vue: -------------------------------------------------------------------------------- 1 | 176 | 292 | -------------------------------------------------------------------------------- /src/examples/PaginationExample.vue: -------------------------------------------------------------------------------- 1 | 92 | 153 | -------------------------------------------------------------------------------- /src/examples/SelectExample.vue: -------------------------------------------------------------------------------- 1 | 148 | 255 | -------------------------------------------------------------------------------- /src/examples/SlotsExample.vue: -------------------------------------------------------------------------------- 1 | 253 | 326 | -------------------------------------------------------------------------------- /src/examples/SortExample.vue: -------------------------------------------------------------------------------- 1 | 113 | 195 | -------------------------------------------------------------------------------- /src/examples/StoreStateExample.vue: -------------------------------------------------------------------------------- 1 | 192 | 320 | -------------------------------------------------------------------------------- /src/examples/TooltipsExample.vue: -------------------------------------------------------------------------------- 1 | 97 | 165 | -------------------------------------------------------------------------------- /src/examples/components/ActionsComponent.vue: -------------------------------------------------------------------------------- 1 | 38 | 39 | 93 | 98 | -------------------------------------------------------------------------------- /src/examples/components/CheckboxComponent.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 37 | -------------------------------------------------------------------------------- /src/examples/components/DragComponent.vue: -------------------------------------------------------------------------------- 1 | 15 | 43 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | /** COMMON START **/ 2 | 3 | import PrettyCheck from "pretty-checkbox-vue/check"; 4 | import "pretty-checkbox/src/pretty-checkbox.scss"; 5 | 6 | import vueSelect from "vue-select"; 7 | import "vue-select/dist/vue-select.css"; 8 | 9 | import { library } from "@fortawesome/fontawesome-svg-core"; 10 | import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome"; 11 | 12 | import VTooltip from "v-tooltip"; 13 | 14 | import { 15 | faAngleDoubleLeft, 16 | faAngleDoubleRight, 17 | faAngleLeft, 18 | faAngleRight, 19 | faCaretDown, 20 | faCaretUp, 21 | faCheck, 22 | faChevronDown, 23 | faChevronUp, 24 | faCircleNotch, 25 | faEye, 26 | faEyeSlash, 27 | faMinus, 28 | faPlus, 29 | faSort, 30 | faSortAmountDown, 31 | faSortAmountDownAlt, 32 | faSquare, 33 | faTimes, 34 | } from "@fortawesome/free-solid-svg-icons"; 35 | 36 | library.add(faAngleDoubleLeft); 37 | library.add(faAngleDoubleRight); 38 | library.add(faAngleLeft); 39 | library.add(faAngleRight); 40 | library.add(faCaretDown); 41 | library.add(faCaretUp); 42 | library.add(faCheck); 43 | library.add(faChevronDown); 44 | library.add(faChevronUp); 45 | library.add(faCircleNotch); 46 | library.add(faEye); 47 | library.add(faEyeSlash); 48 | library.add(faMinus); 49 | library.add(faPlus); 50 | library.add(faSort); 51 | library.add(faSortAmountDown); 52 | library.add(faSortAmountDownAlt); 53 | library.add(faSquare); 54 | library.add(faTimes); 55 | 56 | /** COMMON END **/ 57 | 58 | import VueQuintable from "./components/VueQuintable.vue"; 59 | 60 | // Declare install function executed by Vue.use() 61 | let install = function (Vue, options) { 62 | if (install.installed) return; 63 | 64 | install.installed = true; 65 | Vue.component("v-select", vueSelect); 66 | Vue.component("p-check", PrettyCheck); 67 | Vue.component("font-awesome-icon", FontAwesomeIcon); 68 | Vue.component("VueQuintable", VueQuintable); 69 | Vue.use(VTooltip, { 70 | defaultTemplate: 71 | '
', 72 | defaultClass: "", 73 | }); 74 | 75 | if (options.axios) { 76 | Vue.prototype.$globalVueQuintableaxios = options.axios; 77 | } 78 | }; 79 | 80 | // Create module definition for Vue.use() 81 | const plugin = { 82 | install, 83 | }; 84 | 85 | // Auto-install when vue is found (eg. in browser via