Commit c8a795168b23a7f34a067141f35253ff6e7742f3

Authored by Neeraj Sharma
1 parent f4df757feb

iplement pdf download of student data

package-lock.json
... ... @@ -279,7 +279,6 @@
279 279 "version": "5.5.2",
280 280 "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
281 281 "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
282   - "dev": true,
283 282 "requires": {
284 283 "co": "^4.6.0",
285 284 "fast-deep-equal": "^1.0.0",
... ... @@ -683,8 +682,7 @@
683 682 "array-equal": {
684 683 "version": "1.0.0",
685 684 "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
686   - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=",
687   - "dev": true
  685 + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM="
688 686 },
689 687 "array-find-index": {
690 688 "version": "1.0.2",
... ... @@ -736,8 +734,7 @@
736 734 "asn1": {
737 735 "version": "0.2.3",
738 736 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
739   - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
740   - "dev": true
  737 + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
741 738 },
742 739 "asn1.js": {
743 740 "version": "4.10.1",
... ... @@ -762,8 +759,7 @@
762 759 "assert-plus": {
763 760 "version": "1.0.0",
764 761 "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
765   - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
766   - "dev": true
  762 + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
767 763 },
768 764 "assertion-error": {
769 765 "version": "1.0.0",
... ... @@ -813,8 +809,7 @@
813 809 "asynckit": {
814 810 "version": "0.4.0",
815 811 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
816   - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
817   - "dev": true
  812 + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
818 813 },
819 814 "atob": {
820 815 "version": "2.0.3",
... ... @@ -839,14 +834,12 @@
839 834 "aws-sign2": {
840 835 "version": "0.7.0",
841 836 "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
842   - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
843   - "dev": true
  837 + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
844 838 },
845 839 "aws4": {
846 840 "version": "1.6.0",
847 841 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
848   - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
849   - "dev": true
  842 + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4="
850 843 },
851 844 "axios": {
852 845 "version": "0.18.0",
... ... @@ -1645,6 +1638,23 @@
1645 1638 "esutils": "^2.0.2"
1646 1639 }
1647 1640 },
  1641 + "babel-polyfill": {
  1642 + "version": "6.26.0",
  1643 + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
  1644 + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=",
  1645 + "requires": {
  1646 + "babel-runtime": "^6.26.0",
  1647 + "core-js": "^2.5.0",
  1648 + "regenerator-runtime": "^0.10.5"
  1649 + },
  1650 + "dependencies": {
  1651 + "regenerator-runtime": {
  1652 + "version": "0.10.5",
  1653 + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
  1654 + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg="
  1655 + }
  1656 + }
  1657 + },
1648 1658 "babel-preset-env": {
1649 1659 "version": "1.7.0",
1650 1660 "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz",
... ... @@ -1918,6 +1928,11 @@
1918 1928 }
1919 1929 }
1920 1930 },
  1931 + "base64-arraybuffer": {
  1932 + "version": "0.2.0",
  1933 + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz",
  1934 + "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ=="
  1935 + },
1921 1936 "base64-js": {
1922 1937 "version": "1.3.0",
1923 1938 "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
... ... @@ -1943,7 +1958,6 @@
1943 1958 "version": "1.0.1",
1944 1959 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
1945 1960 "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
1946   - "dev": true,
1947 1961 "optional": true,
1948 1962 "requires": {
1949 1963 "tweetnacl": "^0.14.3"
... ... @@ -2044,7 +2058,6 @@
2044 2058 "version": "4.3.1",
2045 2059 "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
2046 2060 "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
2047   - "dev": true,
2048 2061 "requires": {
2049 2062 "hoek": "4.x.x"
2050 2063 }
... ... @@ -2412,6 +2425,103 @@
2412 2425 "integrity": "sha512-/0Q00Oie9C72P8zQHtFvzmkrMC3oOFUnMWjCy5F2+BE8lzICm91hQPhh0+XIsAFPKOe2Dh3pKgbRmU3EKxfldA==",
2413 2426 "dev": true
2414 2427 },
  2428 + "canvg": {
  2429 + "version": "1.5.3",
  2430 + "resolved": "https://registry.npmjs.org/canvg/-/canvg-1.5.3.tgz",
  2431 + "integrity": "sha512-7Gn2IuQzvUQWPIuZuFHrzsTM0gkPz2RRT9OcbdmA03jeKk8kltrD8gqUzNX15ghY/4PV5bbe5lmD6yDLDY6Ybg==",
  2432 + "requires": {
  2433 + "jsdom": "^8.1.0",
  2434 + "rgbcolor": "^1.0.1",
  2435 + "stackblur-canvas": "^1.4.1",
  2436 + "xmldom": "^0.1.22"
  2437 + },
  2438 + "dependencies": {
  2439 + "abab": {
  2440 + "version": "1.0.4",
  2441 + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
  2442 + "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4="
  2443 + },
  2444 + "acorn": {
  2445 + "version": "2.7.0",
  2446 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
  2447 + "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc="
  2448 + },
  2449 + "acorn-globals": {
  2450 + "version": "1.0.9",
  2451 + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz",
  2452 + "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=",
  2453 + "requires": {
  2454 + "acorn": "^2.1.0"
  2455 + }
  2456 + },
  2457 + "cssstyle": {
  2458 + "version": "0.2.37",
  2459 + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
  2460 + "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=",
  2461 + "requires": {
  2462 + "cssom": "0.3.x"
  2463 + }
  2464 + },
  2465 + "jsdom": {
  2466 + "version": "8.5.0",
  2467 + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-8.5.0.tgz",
  2468 + "integrity": "sha1-1Nj12/J2hjW2KmKCO5R89wcevJg=",
  2469 + "requires": {
  2470 + "abab": "^1.0.0",
  2471 + "acorn": "^2.4.0",
  2472 + "acorn-globals": "^1.0.4",
  2473 + "array-equal": "^1.0.0",
  2474 + "cssom": ">= 0.3.0 < 0.4.0",
  2475 + "cssstyle": ">= 0.2.34 < 0.3.0",
  2476 + "escodegen": "^1.6.1",
  2477 + "iconv-lite": "^0.4.13",
  2478 + "nwmatcher": ">= 1.3.7 < 2.0.0",
  2479 + "parse5": "^1.5.1",
  2480 + "request": "^2.55.0",
  2481 + "sax": "^1.1.4",
  2482 + "symbol-tree": ">= 3.1.0 < 4.0.0",
  2483 + "tough-cookie": "^2.2.0",
  2484 + "webidl-conversions": "^3.0.1",
  2485 + "whatwg-url": "^2.0.1",
  2486 + "xml-name-validator": ">= 2.0.1 < 3.0.0"
  2487 + }
  2488 + },
  2489 + "parse5": {
  2490 + "version": "1.5.1",
  2491 + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
  2492 + "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ="
  2493 + },
  2494 + "stackblur-canvas": {
  2495 + "version": "1.4.1",
  2496 + "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-1.4.1.tgz",
  2497 + "integrity": "sha1-hJqm+UsnL/JvZHH6QTDtH35HlVs="
  2498 + },
  2499 + "tr46": {
  2500 + "version": "0.0.3",
  2501 + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
  2502 + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
  2503 + },
  2504 + "webidl-conversions": {
  2505 + "version": "3.0.1",
  2506 + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
  2507 + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
  2508 + },
  2509 + "whatwg-url": {
  2510 + "version": "2.0.1",
  2511 + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-2.0.1.tgz",
  2512 + "integrity": "sha1-U5ayBD8CDub3BNnEXqhRnnJN5lk=",
  2513 + "requires": {
  2514 + "tr46": "~0.0.3",
  2515 + "webidl-conversions": "^3.0.0"
  2516 + }
  2517 + },
  2518 + "xml-name-validator": {
  2519 + "version": "2.0.1",
  2520 + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz",
  2521 + "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU="
  2522 + }
  2523 + }
  2524 + },
2415 2525 "capture-exit": {
2416 2526 "version": "1.2.0",
2417 2527 "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz",
... ... @@ -2430,8 +2540,7 @@
2430 2540 "caseless": {
2431 2541 "version": "0.12.0",
2432 2542 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
2433   - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
2434   - "dev": true
  2543 + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
2435 2544 },
2436 2545 "center-align": {
2437 2546 "version": "0.1.3",
... ... @@ -2839,8 +2948,7 @@
2839 2948 "co": {
2840 2949 "version": "4.6.0",
2841 2950 "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
2842   - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
2843   - "dev": true
  2951 + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
2844 2952 },
2845 2953 "coa": {
2846 2954 "version": "1.0.4",
... ... @@ -2929,7 +3037,6 @@
2929 3037 "version": "1.0.6",
2930 3038 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
2931 3039 "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
2932   - "dev": true,
2933 3040 "requires": {
2934 3041 "delayed-stream": "~1.0.0"
2935 3042 }
... ... @@ -3191,8 +3298,7 @@
3191 3298 "core-util-is": {
3192 3299 "version": "1.0.2",
3193 3300 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
3194   - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
3195   - "dev": true
  3301 + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
3196 3302 },
3197 3303 "cors": {
3198 3304 "version": "2.8.4",
... ... @@ -3288,7 +3394,6 @@
3288 3394 "version": "3.1.2",
3289 3395 "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz",
3290 3396 "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=",
3291   - "dev": true,
3292 3397 "requires": {
3293 3398 "boom": "5.x.x"
3294 3399 },
... ... @@ -3297,7 +3402,6 @@
3297 3402 "version": "5.2.0",
3298 3403 "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz",
3299 3404 "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==",
3300   - "dev": true,
3301 3405 "requires": {
3302 3406 "hoek": "4.x.x"
3303 3407 }
... ... @@ -3335,6 +3439,14 @@
3335 3439 "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
3336 3440 "dev": true
3337 3441 },
  3442 + "css-line-break": {
  3443 + "version": "1.1.1",
  3444 + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-1.1.1.tgz",
  3445 + "integrity": "sha512-1feNVaM4Fyzdj4mKPIQNL2n70MmuYzAXZ1aytlROFX1JsOo070OsugwGjj7nl6jnDJWHDM8zRZswkmeYVWZJQA==",
  3446 + "requires": {
  3447 + "base64-arraybuffer": "^0.2.0"
  3448 + }
  3449 + },
3338 3450 "css-loader": {
3339 3451 "version": "0.28.11",
3340 3452 "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz",
... ... @@ -3593,8 +3705,7 @@
3593 3705 "cssom": {
3594 3706 "version": "0.3.4",
3595 3707 "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz",
3596   - "integrity": "sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog==",
3597   - "dev": true
  3708 + "integrity": "sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog=="
3598 3709 },
3599 3710 "cssstyle": {
3600 3711 "version": "1.1.1",
... ... @@ -3639,7 +3750,6 @@
3639 3750 "version": "1.14.1",
3640 3751 "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
3641 3752 "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
3642   - "dev": true,
3643 3753 "requires": {
3644 3754 "assert-plus": "^1.0.0"
3645 3755 }
... ... @@ -3734,8 +3844,7 @@
3734 3844 "deep-is": {
3735 3845 "version": "0.1.3",
3736 3846 "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
3737   - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
3738   - "dev": true
  3847 + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
3739 3848 },
3740 3849 "deepmerge": {
3741 3850 "version": "2.2.1",
... ... @@ -3829,8 +3938,7 @@
3829 3938 "delayed-stream": {
3830 3939 "version": "1.0.0",
3831 3940 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
3832   - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
3833   - "dev": true
  3941 + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
3834 3942 },
3835 3943 "depd": {
3836 3944 "version": "1.1.1",
... ... @@ -4071,8 +4179,7 @@
4071 4179 "duplexer": {
4072 4180 "version": "0.1.1",
4073 4181 "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
4074   - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
4075   - "dev": true
  4182 + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E="
4076 4183 },
4077 4184 "duplexer3": {
4078 4185 "version": "0.1.4",
... ... @@ -4096,7 +4203,6 @@
4096 4203 "version": "0.1.1",
4097 4204 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
4098 4205 "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
4099   - "dev": true,
4100 4206 "optional": true,
4101 4207 "requires": {
4102 4208 "jsbn": "~0.1.0"
... ... @@ -4361,7 +4467,6 @@
4361 4467 "version": "1.9.1",
4362 4468 "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz",
4363 4469 "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==",
4364   - "dev": true,
4365 4470 "requires": {
4366 4471 "esprima": "^3.1.3",
4367 4472 "estraverse": "^4.2.0",
... ... @@ -4373,14 +4478,12 @@
4373 4478 "esprima": {
4374 4479 "version": "3.1.3",
4375 4480 "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
4376   - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
4377   - "dev": true
  4481 + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM="
4378 4482 },
4379 4483 "source-map": {
4380 4484 "version": "0.6.1",
4381 4485 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
4382 4486 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
4383   - "dev": true,
4384 4487 "optional": true
4385 4488 }
4386 4489 }
... ... @@ -4807,14 +4910,12 @@
4807 4910 "estraverse": {
4808 4911 "version": "4.2.0",
4809 4912 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
4810   - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
4811   - "dev": true
  4913 + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM="
4812 4914 },
4813 4915 "esutils": {
4814 4916 "version": "2.0.2",
4815 4917 "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
4816   - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
4817   - "dev": true
  4918 + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
4818 4919 },
4819 4920 "etag": {
4820 4921 "version": "1.8.1",
... ... @@ -4832,6 +4933,20 @@
4832 4933 "es5-ext": "~0.10.14"
4833 4934 }
4834 4935 },
  4936 + "event-stream": {
  4937 + "version": "4.0.1",
  4938 + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz",
  4939 + "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==",
  4940 + "requires": {
  4941 + "duplexer": "^0.1.1",
  4942 + "from": "^0.1.7",
  4943 + "map-stream": "0.0.7",
  4944 + "pause-stream": "^0.0.11",
  4945 + "split": "^1.0.1",
  4946 + "stream-combiner": "^0.2.2",
  4947 + "through": "^2.3.8"
  4948 + }
  4949 + },
4835 4950 "eventemitter3": {
4836 4951 "version": "1.2.0",
4837 4952 "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz",
... ... @@ -5099,8 +5214,7 @@
5099 5214 "extsprintf": {
5100 5215 "version": "1.3.0",
5101 5216 "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
5102   - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
5103   - "dev": true
  5217 + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
5104 5218 },
5105 5219 "faker": {
5106 5220 "version": "4.1.0",
... ... @@ -5111,8 +5225,7 @@
5111 5225 "fast-deep-equal": {
5112 5226 "version": "1.1.0",
5113 5227 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
5114   - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
5115   - "dev": true
  5228 + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ="
5116 5229 },
5117 5230 "fast-diff": {
5118 5231 "version": "1.1.2",
... ... @@ -5122,14 +5235,12 @@
5122 5235 "fast-json-stable-stringify": {
5123 5236 "version": "2.0.0",
5124 5237 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
5125   - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
5126   - "dev": true
  5238 + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
5127 5239 },
5128 5240 "fast-levenshtein": {
5129 5241 "version": "2.0.6",
5130 5242 "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
5131   - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
5132   - "dev": true
  5243 + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
5133 5244 },
5134 5245 "fastparse": {
5135 5246 "version": "1.1.1",
... ... @@ -5444,14 +5555,12 @@
5444 5555 "forever-agent": {
5445 5556 "version": "0.6.1",
5446 5557 "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
5447   - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
5448   - "dev": true
  5558 + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
5449 5559 },
5450 5560 "form-data": {
5451 5561 "version": "2.3.2",
5452 5562 "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
5453 5563 "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
5454   - "dev": true,
5455 5564 "requires": {
5456 5565 "asynckit": "^0.4.0",
5457 5566 "combined-stream": "1.0.6",
... ... @@ -5517,6 +5626,11 @@
5517 5626 }
5518 5627 }
5519 5628 },
  5629 + "from": {
  5630 + "version": "0.1.7",
  5631 + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
  5632 + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4="
  5633 + },
5520 5634 "from2": {
5521 5635 "version": "2.3.0",
5522 5636 "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
... ... @@ -6241,7 +6355,6 @@
6241 6355 "version": "0.1.7",
6242 6356 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
6243 6357 "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
6244   - "dev": true,
6245 6358 "requires": {
6246 6359 "assert-plus": "^1.0.0"
6247 6360 }
... ... @@ -6429,14 +6542,12 @@
6429 6542 "har-schema": {
6430 6543 "version": "2.0.0",
6431 6544 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
6432   - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
6433   - "dev": true
  6545 + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
6434 6546 },
6435 6547 "har-validator": {
6436 6548 "version": "5.0.3",
6437 6549 "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
6438 6550 "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
6439   - "dev": true,
6440 6551 "requires": {
6441 6552 "ajv": "^5.1.0",
6442 6553 "har-schema": "^2.0.0"
... ... @@ -6556,7 +6667,6 @@
6556 6667 "version": "6.0.2",
6557 6668 "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
6558 6669 "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
6559   - "dev": true,
6560 6670 "requires": {
6561 6671 "boom": "4.x.x",
6562 6672 "cryptiles": "3.x.x",
... ... @@ -6584,8 +6694,7 @@
6584 6694 "hoek": {
6585 6695 "version": "4.2.1",
6586 6696 "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz",
6587   - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==",
6588   - "dev": true
  6697 + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA=="
6589 6698 },
6590 6699 "home-or-tmp": {
6591 6700 "version": "2.0.0",
... ... @@ -6686,6 +6795,14 @@
6686 6795 }
6687 6796 }
6688 6797 },
  6798 + "html2canvas": {
  6799 + "version": "1.0.0-rc.5",
  6800 + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-rc.5.tgz",
  6801 + "integrity": "sha512-DtNqPxJNXPoTajs+lVQzGS1SULRI4GQaROeU5R41xH8acffHukxRh/NBVcTBsfCkJSkLq91rih5TpbEwUP9yWA==",
  6802 + "requires": {
  6803 + "css-line-break": "1.1.1"
  6804 + }
  6805 + },
6689 6806 "htmlparser2": {
6690 6807 "version": "3.3.0",
6691 6808 "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz",
... ... @@ -6822,7 +6939,6 @@
6822 6939 "version": "1.2.0",
6823 6940 "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
6824 6941 "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
6825   - "dev": true,
6826 6942 "requires": {
6827 6943 "assert-plus": "^1.0.0",
6828 6944 "jsprim": "^1.2.2",
... ... @@ -6869,8 +6985,7 @@
6869 6985 "iconv-lite": {
6870 6986 "version": "0.4.19",
6871 6987 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
6872   - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
6873   - "dev": true
  6988 + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
6874 6989 },
6875 6990 "icss-replace-symbols": {
6876 6991 "version": "1.1.0",
... ... @@ -7384,8 +7499,7 @@
7384 7499 "is-typedarray": {
7385 7500 "version": "1.0.0",
7386 7501 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
7387   - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
7388   - "dev": true
  7502 + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
7389 7503 },
7390 7504 "is-utf8": {
7391 7505 "version": "0.2.1",
... ... @@ -7435,8 +7549,7 @@
7435 7549 "isstream": {
7436 7550 "version": "0.1.2",
7437 7551 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
7438   - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
7439   - "dev": true
  7552 + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
7440 7553 },
7441 7554 "istanbul-lib-coverage": {
7442 7555 "version": "1.1.2",
... ... @@ -8143,7 +8256,6 @@
8143 8256 "version": "0.1.1",
8144 8257 "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
8145 8258 "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
8146   - "dev": true,
8147 8259 "optional": true
8148 8260 },
8149 8261 "jsdom": {
... ... @@ -8322,8 +8434,7 @@
8322 8434 "json-schema": {
8323 8435 "version": "0.2.3",
8324 8436 "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
8325   - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
8326   - "dev": true
  8437 + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
8327 8438 },
8328 8439 "json-schema-faker": {
8329 8440 "version": "0.5.0-rc9",
... ... @@ -8372,8 +8483,7 @@
8372 8483 "json-schema-traverse": {
8373 8484 "version": "0.3.1",
8374 8485 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
8375   - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
8376   - "dev": true
  8486 + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
8377 8487 },
8378 8488 "json-server": {
8379 8489 "version": "0.12.2",
... ... @@ -8423,8 +8533,7 @@
8423 8533 "json-stringify-safe": {
8424 8534 "version": "5.0.1",
8425 8535 "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
8426   - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
8427   - "dev": true
  8536 + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
8428 8537 },
8429 8538 "json3": {
8430 8539 "version": "3.3.2",
... ... @@ -8451,11 +8560,55 @@
8451 8560 "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
8452 8561 "dev": true
8453 8562 },
  8563 + "jspdf": {
  8564 + "version": "1.5.3",
  8565 + "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-1.5.3.tgz",
  8566 + "integrity": "sha512-J9X76xnncMw+wIqb15HeWfPMqPwYxSpPY8yWPJ7rAZN/ZDzFkjCSZObryCyUe8zbrVRNiuCnIeQteCzMn7GnWw==",
  8567 + "requires": {
  8568 + "canvg": "1.5.3",
  8569 + "file-saver": "github:eligrey/FileSaver.js#1.3.8",
  8570 + "html2canvas": "1.0.0-alpha.12",
  8571 + "omggif": "1.0.7",
  8572 + "promise-polyfill": "8.1.0",
  8573 + "stackblur-canvas": "2.2.0"
  8574 + },
  8575 + "dependencies": {
  8576 + "base64-arraybuffer": {
  8577 + "version": "0.1.5",
  8578 + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
  8579 + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg="
  8580 + },
  8581 + "css-line-break": {
  8582 + "version": "1.0.1",
  8583 + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-1.0.1.tgz",
  8584 + "integrity": "sha1-GfIGOjPpX7KDG4ZEbAuAwYivRQo=",
  8585 + "requires": {
  8586 + "base64-arraybuffer": "^0.1.5"
  8587 + }
  8588 + },
  8589 + "file-saver": {
  8590 + "version": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e",
  8591 + "from": "github:eligrey/FileSaver.js#1.3.8"
  8592 + },
  8593 + "html2canvas": {
  8594 + "version": "1.0.0-alpha.12",
  8595 + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-alpha.12.tgz",
  8596 + "integrity": "sha1-OxmS48mz9WBjw1/WIElPN+uohRM=",
  8597 + "requires": {
  8598 + "css-line-break": "1.0.1"
  8599 + }
  8600 + }
  8601 + }
  8602 + },
  8603 + "jspdf-autotable": {
  8604 + "version": "3.2.10",
  8605 + "resolved": "https://registry.npmjs.org/jspdf-autotable/-/jspdf-autotable-3.2.10.tgz",
  8606 + "integrity": "sha512-8VPe24BQnQ8CckAn81uqcqjEgdywj8AGynHsA8LcvXNzLy4Bqqm1ydLSPToBw3Ap20OmTKloigoAcUbdArQZAg=="
  8607 + },
8454 8608 "jsprim": {
8455 8609 "version": "1.4.1",
8456 8610 "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
8457 8611 "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
8458   - "dev": true,
8459 8612 "requires": {
8460 8613 "assert-plus": "1.0.0",
8461 8614 "extsprintf": "1.3.0",
... ... @@ -8559,7 +8712,6 @@
8559 8712 "version": "0.3.0",
8560 8713 "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
8561 8714 "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
8562   - "dev": true,
8563 8715 "requires": {
8564 8716 "prelude-ls": "~1.1.2",
8565 8717 "type-check": "~0.3.2"
... ... @@ -8745,6 +8897,11 @@
8745 8897 "integrity": "sha1-dRqnbBuWSwR+dtFPxyoJP8teLdA=",
8746 8898 "dev": true
8747 8899 },
  8900 + "lodash.assign": {
  8901 + "version": "4.2.0",
  8902 + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
  8903 + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc="
  8904 + },
8748 8905 "lodash.camelcase": {
8749 8906 "version": "4.3.0",
8750 8907 "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
... ... @@ -9007,6 +9164,11 @@
9007 9164 "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
9008 9165 "dev": true
9009 9166 },
  9167 + "map-stream": {
  9168 + "version": "0.0.7",
  9169 + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz",
  9170 + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg="
  9171 + },
9010 9172 "map-visit": {
9011 9173 "version": "1.0.0",
9012 9174 "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
... ... @@ -9179,14 +9341,12 @@
9179 9341 "mime-db": {
9180 9342 "version": "1.33.0",
9181 9343 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
9182   - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==",
9183   - "dev": true
  9344 + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ=="
9184 9345 },
9185 9346 "mime-types": {
9186 9347 "version": "2.1.18",
9187 9348 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
9188 9349 "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
9189   - "dev": true,
9190 9350 "requires": {
9191 9351 "mime-db": "~1.33.0"
9192 9352 }
... ... @@ -9197,6 +9357,11 @@
9197 9357 "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
9198 9358 "dev": true
9199 9359 },
  9360 + "mingo": {
  9361 + "version": "1.3.3",
  9362 + "resolved": "https://registry.npmjs.org/mingo/-/mingo-1.3.3.tgz",
  9363 + "integrity": "sha1-aSLE0Ufvx3GgFCWixMj3eER4xUY="
  9364 + },
9200 9365 "minimalistic-assert": {
9201 9366 "version": "1.0.0",
9202 9367 "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
... ... @@ -9776,6 +9941,11 @@
9776 9941 "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
9777 9942 "dev": true
9778 9943 },
  9944 + "nwmatcher": {
  9945 + "version": "1.4.4",
  9946 + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz",
  9947 + "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ=="
  9948 + },
9779 9949 "nwsapi": {
9780 9950 "version": "2.0.9",
9781 9951 "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.0.9.tgz",
... ... @@ -9785,8 +9955,7 @@
9785 9955 "oauth-sign": {
9786 9956 "version": "0.8.2",
9787 9957 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
9788   - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
9789   - "dev": true
  9958 + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
9790 9959 },
9791 9960 "object-assign": {
9792 9961 "version": "4.1.1",
... ... @@ -9924,6 +10093,11 @@
9924 10093 "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4=",
9925 10094 "dev": true
9926 10095 },
  10096 + "omggif": {
  10097 + "version": "1.0.7",
  10098 + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.7.tgz",
  10099 + "integrity": "sha1-WdLuywJj3oRjWz/riHwMmXPx5J0="
  10100 + },
9927 10101 "on-finished": {
9928 10102 "version": "2.3.0",
9929 10103 "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
... ... @@ -10018,7 +10192,6 @@
10018 10192 "version": "0.8.2",
10019 10193 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
10020 10194 "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
10021   - "dev": true,
10022 10195 "requires": {
10023 10196 "deep-is": "~0.1.3",
10024 10197 "fast-levenshtein": "~2.0.4",
... ... @@ -10333,6 +10506,14 @@
10333 10506 "pinkie-promise": "^2.0.0"
10334 10507 }
10335 10508 },
  10509 + "pause-stream": {
  10510 + "version": "0.0.11",
  10511 + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
  10512 + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
  10513 + "requires": {
  10514 + "through": "~2.3"
  10515 + }
  10516 + },
10336 10517 "pbkdf2": {
10337 10518 "version": "3.0.16",
10338 10519 "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz",
... ... @@ -10355,8 +10536,7 @@
10355 10536 "performance-now": {
10356 10537 "version": "2.1.0",
10357 10538 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
10358   - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
10359   - "dev": true
  10539 + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
10360 10540 },
10361 10541 "pify": {
10362 10542 "version": "2.3.0",
... ... @@ -12309,8 +12489,7 @@
12309 12489 "prelude-ls": {
12310 12490 "version": "1.1.2",
12311 12491 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
12312   - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
12313   - "dev": true
  12492 + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
12314 12493 },
12315 12494 "prepend-http": {
12316 12495 "version": "1.0.4",
... ... @@ -12407,6 +12586,11 @@
12407 12586 "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
12408 12587 "dev": true
12409 12588 },
  12589 + "promise-polyfill": {
  12590 + "version": "8.1.0",
  12591 + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.0.tgz",
  12592 + "integrity": "sha512-OzSf6gcCUQ01byV4BgwyUCswlaQQ6gzXc23aLQWhicvfX9kfsUiUhgt3CCQej8jDnl8/PhGF31JdHX2/MzF3WA=="
  12593 + },
12410 12594 "proto-list": {
12411 12595 "version": "1.2.4",
12412 12596 "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
... ... @@ -12511,8 +12695,7 @@
12511 12695 "punycode": {
12512 12696 "version": "1.4.1",
12513 12697 "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
12514   - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
12515   - "dev": true
  12698 + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
12516 12699 },
12517 12700 "q": {
12518 12701 "version": "1.5.1",
... ... @@ -12523,8 +12706,7 @@
12523 12706 "qs": {
12524 12707 "version": "6.5.1",
12525 12708 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
12526   - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
12527   - "dev": true
  12709 + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
12528 12710 },
12529 12711 "query-string": {
12530 12712 "version": "4.3.4",
... ... @@ -13006,7 +13188,6 @@
13006 13188 "version": "2.85.0",
13007 13189 "resolved": "https://registry.npmjs.org/request/-/request-2.85.0.tgz",
13008 13190 "integrity": "sha512-8H7Ehijd4js+s6wuVPLjwORxD4zeuyjYugprdOXlPSqaApmL/QOy+EB/beICHVCHkGMKNh5rvihb5ov+IDw4mg==",
13009   - "dev": true,
13010 13191 "requires": {
13011 13192 "aws-sign2": "~0.7.0",
13012 13193 "aws4": "^1.6.0",
... ... @@ -13140,6 +13321,11 @@
13140 13321 "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
13141 13322 "dev": true
13142 13323 },
  13324 + "rgbcolor": {
  13325 + "version": "1.0.1",
  13326 + "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz",
  13327 + "integrity": "sha1-1lBezbMEplldom+ktDMHMGd1lF0="
  13328 + },
13143 13329 "right-align": {
13144 13330 "version": "0.1.3",
13145 13331 "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
... ... @@ -13209,8 +13395,7 @@
13209 13395 "safe-buffer": {
13210 13396 "version": "5.1.1",
13211 13397 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
13212   - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
13213   - "dev": true
  13398 + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
13214 13399 },
13215 13400 "safe-regex": {
13216 13401 "version": "1.1.0",
... ... @@ -13527,11 +13712,36 @@
13527 13712 }
13528 13713 }
13529 13714 },
  13715 + "save": {
  13716 + "version": "2.4.0",
  13717 + "resolved": "https://registry.npmjs.org/save/-/save-2.4.0.tgz",
  13718 + "integrity": "sha512-wd5L2uVnsKYkIUaK6i8Ie66IOHaI328gMF0MPuTJtYOjXgUolC33LSIk7Qr8WVA55QHaGwfiVS8a7EFIeGOR3w==",
  13719 + "requires": {
  13720 + "async": "^2.6.2",
  13721 + "event-stream": "^4.0.1",
  13722 + "lodash.assign": "^4.2.0",
  13723 + "mingo": "1"
  13724 + },
  13725 + "dependencies": {
  13726 + "async": {
  13727 + "version": "2.6.3",
  13728 + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
  13729 + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
  13730 + "requires": {
  13731 + "lodash": "^4.17.14"
  13732 + }
  13733 + },
  13734 + "lodash": {
  13735 + "version": "4.17.15",
  13736 + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
  13737 + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
  13738 + }
  13739 + }
  13740 + },
13530 13741 "sax": {
13531 13742 "version": "1.2.4",
13532 13743 "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
13533   - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
13534   - "dev": true
  13744 + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
13535 13745 },
13536 13746 "schema-utils": {
13537 13747 "version": "0.3.0",
... ... @@ -13925,7 +14135,6 @@
13925 14135 "version": "2.1.0",
13926 14136 "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz",
13927 14137 "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==",
13928   - "dev": true,
13929 14138 "requires": {
13930 14139 "hoek": "4.x.x"
13931 14140 }
... ... @@ -14134,6 +14343,14 @@
14134 14343 }
14135 14344 }
14136 14345 },
  14346 + "split": {
  14347 + "version": "1.0.1",
  14348 + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
  14349 + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
  14350 + "requires": {
  14351 + "through": "2"
  14352 + }
  14353 + },
14137 14354 "split-string": {
14138 14355 "version": "3.1.0",
14139 14356 "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
... ... @@ -14174,7 +14391,6 @@
14174 14391 "version": "1.14.1",
14175 14392 "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz",
14176 14393 "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=",
14177   - "dev": true,
14178 14394 "requires": {
14179 14395 "asn1": "~0.2.3",
14180 14396 "assert-plus": "^1.0.0",
... ... @@ -14201,6 +14417,11 @@
14201 14417 "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=",
14202 14418 "dev": true
14203 14419 },
  14420 + "stackblur-canvas": {
  14421 + "version": "2.2.0",
  14422 + "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.2.0.tgz",
  14423 + "integrity": "sha512-5Gf8dtlf8k6NbLzuly2NkGrkS/Ahh+I5VUjO7TnFizdJtgpfpLLEdQlLe9umbcnZlitU84kfYjXE67xlSXfhfQ=="
  14424 + },
14204 14425 "stackframe": {
14205 14426 "version": "1.0.4",
14206 14427 "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.0.4.tgz",
... ... @@ -14316,6 +14537,15 @@
14316 14537 "readable-stream": "^2.0.2"
14317 14538 }
14318 14539 },
  14540 + "stream-combiner": {
  14541 + "version": "0.2.2",
  14542 + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz",
  14543 + "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=",
  14544 + "requires": {
  14545 + "duplexer": "~0.1.1",
  14546 + "through": "~2.3.4"
  14547 + }
  14548 + },
14319 14549 "stream-each": {
14320 14550 "version": "1.2.2",
14321 14551 "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz",
... ... @@ -14442,8 +14672,7 @@
14442 14672 "stringstream": {
14443 14673 "version": "0.0.6",
14444 14674 "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz",
14445   - "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==",
14446   - "dev": true
  14675 + "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA=="
14447 14676 },
14448 14677 "strip-ansi": {
14449 14678 "version": "3.0.1",
... ... @@ -14581,8 +14810,7 @@
14581 14810 "symbol-tree": {
14582 14811 "version": "3.2.2",
14583 14812 "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz",
14584   - "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=",
14585   - "dev": true
  14813 + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY="
14586 14814 },
14587 14815 "table": {
14588 14816 "version": "4.0.2",
... ... @@ -14649,8 +14877,7 @@
14649 14877 "through": {
14650 14878 "version": "2.3.8",
14651 14879 "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
14652   - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
14653   - "dev": true
  14880 + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
14654 14881 },
14655 14882 "through2": {
14656 14883 "version": "2.0.3",
... ... @@ -14795,7 +15022,6 @@
14795 15022 "version": "2.3.4",
14796 15023 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
14797 15024 "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
14798   - "dev": true,
14799 15025 "requires": {
14800 15026 "punycode": "^1.4.1"
14801 15027 }
... ... @@ -14879,7 +15105,6 @@
14879 15105 "version": "0.6.0",
14880 15106 "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
14881 15107 "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
14882   - "dev": true,
14883 15108 "requires": {
14884 15109 "safe-buffer": "^5.0.1"
14885 15110 }
... ... @@ -14888,14 +15113,12 @@
14888 15113 "version": "0.14.5",
14889 15114 "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
14890 15115 "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
14891   - "dev": true,
14892 15116 "optional": true
14893 15117 },
14894 15118 "type-check": {
14895 15119 "version": "0.3.2",
14896 15120 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
14897 15121 "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
14898   - "dev": true,
14899 15122 "requires": {
14900 15123 "prelude-ls": "~1.1.2"
14901 15124 }
... ... @@ -15404,8 +15627,7 @@
15404 15627 "uuid": {
15405 15628 "version": "3.2.1",
15406 15629 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
15407   - "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==",
15408   - "dev": true
  15630 + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA=="
15409 15631 },
15410 15632 "validate-npm-package-license": {
15411 15633 "version": "3.0.3",
... ... @@ -15444,7 +15666,6 @@
15444 15666 "version": "1.10.0",
15445 15667 "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
15446 15668 "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
15447   - "dev": true,
15448 15669 "requires": {
15449 15670 "assert-plus": "^1.0.0",
15450 15671 "core-util-is": "1.0.2",
... ... @@ -15502,6 +15723,14 @@
15502 15723 "integrity": "sha512-2j/t+wIbyVMP5NvctQoSUvLkYKoWAAk2QlQiilrM2a6/ulzFgdcLUJfTvs4XQ/3eZhHiBmmEojbjmM4AzZj8JA==",
15503 15724 "dev": true
15504 15725 },
  15726 + "vue-html2canvas": {
  15727 + "version": "0.0.4",
  15728 + "resolved": "https://registry.npmjs.org/vue-html2canvas/-/vue-html2canvas-0.0.4.tgz",
  15729 + "integrity": "sha512-Sx2b0l7og3BokpH3RxLcK5DF1X3VYj+SyEJg/klobDoI0yJgDDn6NH6/Atz6v4GJJJdQkFlXnl0mFZ9N4F/cgw==",
  15730 + "requires": {
  15731 + "html2canvas": "^1.0.0-alpha.12"
  15732 + }
  15733 + },
15505 15734 "vue-jest": {
15506 15735 "version": "1.4.0",
15507 15736 "resolved": "https://registry.npmjs.org/vue-jest/-/vue-jest-1.4.0.tgz",
... ... @@ -16620,8 +16849,7 @@
16620 16849 "wordwrap": {
16621 16850 "version": "1.0.0",
16622 16851 "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
16623   - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
16624   - "dev": true
  16852 + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
16625 16853 },
16626 16854 "worker-farm": {
16627 16855 "version": "1.6.0",
... ... @@ -16717,6 +16945,11 @@
16717 16945 "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
16718 16946 "dev": true
16719 16947 },
  16948 + "xmldom": {
  16949 + "version": "0.1.27",
  16950 + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz",
  16951 + "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk="
  16952 + },
16720 16953 "xregexp": {
16721 16954 "version": "2.0.0",
16722 16955 "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz",
... ...
1 1 {
2   - "name": "schoolmanagement",
3   - "version": "1.0.0",
4   - "description": "A schoolmanagement Dashboard",
5   - "author": "Neeraj Sharma<neeraj.sharma@viithiisys.com>",
6   - "private": true,
7   - "scripts": {
8   - "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
9   - "start": "npm run dev",
10   - "unit": "jest --config test/unit/jest.conf.js --coverage",
11   - "e2e": "node test/e2e/runner.js",
12   - "test": "npm run unit && npm run e2e",
13   - "lint": "eslint --ext .js,.vue src test/unit test/e2e/specs",
14   - "build": "node build/build.js"
15   - },
16   - "dependencies": {
17   - "axios": "^0.18.0",
18   - "font-awesome": "^4.7.0",
19   - "jquery": "^3.4.1",
20   - "lodash.truncate": "^4.4.2",
21   - "moment": "^2.24.0",
22   - "nprogress": "^0.2.0",
23   - "quill": "^1.3.6",
24   - "vee-validate": "^2.0.9",
25   - "vue": "^2.5.16",
26   - "vue-full-calendar": "^2.7.0",
27   - "vue-json-csv": "^1.2.9",
28   - "vue-material-year-calendar": "^1.2.4",
29   - "vue-password": "^1.2.0",
30   - "vue-perfect-scrollbar": "^0.1.0",
31   - "vue-quill-editor": "^3.0.6",
32   - "vue-resize": "^0.4.4",
33   - "vue-router": "^3.0.1",
34   - "vuetify": "^1.1.0-alpha.5",
35   - "vuex": "^3.0.1",
36   - "vuex-persistedstate": "^2.5.4"
37   - },
38   - "devDependencies": {
39   - "autoprefixer": "^7.1.2",
40   - "babel-core": "^6.26.3",
41   - "babel-eslint": "^8.2.3",
42   - "babel-helper-vue-jsx-merge-props": "^2.0.3",
43   - "babel-jest": "^21.0.2",
44   - "babel-loader": "^7.1.4",
45   - "babel-plugin-dynamic-import-node": "^1.2.0",
46   - "babel-plugin-syntax-dynamic-import": "^6.18.0",
47   - "babel-plugin-syntax-jsx": "^6.18.0",
48   - "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2",
49   - "babel-plugin-transform-runtime": "^6.22.0",
50   - "babel-plugin-transform-vue-jsx": "^3.7.0",
51   - "babel-preset-env": "^1.7.0",
52   - "babel-preset-stage-2": "^6.22.0",
53   - "babel-register": "^6.22.0",
54   - "chalk": "^2.4.1",
55   - "chromedriver": "^2.38.3",
56   - "copy-webpack-plugin": "^4.5.1",
57   - "cross-spawn": "^5.0.1",
58   - "css-loader": "^0.28.11",
59   - "eslint": "^4.19.1",
60   - "eslint-config-alloy": "^1.4.2",
61   - "eslint-config-standard": "^10.2.1",
62   - "eslint-friendly-formatter": "^3.0.0",
63   - "eslint-loader": "^1.7.1",
64   - "eslint-plugin-import": "^2.11.0",
65   - "eslint-plugin-node": "^5.2.0",
66   - "eslint-plugin-promise": "^3.7.0",
67   - "eslint-plugin-standard": "^3.1.0",
68   - "eslint-plugin-vue": "^4.5.0",
69   - "extract-text-webpack-plugin": "^3.0.0",
70   - "faker": "^4.1.0",
71   - "file-loader": "^1.1.11",
72   - "friendly-errors-webpack-plugin": "^1.7.0",
73   - "fs-finder": "^1.8.1",
74   - "html-webpack-plugin": "^2.30.1",
75   - "jest": "^22.4.3",
76   - "jest-serializer-vue": "^0.3.0",
77   - "json-schema-faker": "^0.5.0-rc9",
78   - "json-server": "^0.12.2",
79   - "less-loader": "^4.1.0",
80   - "mime-types": "^2.1.18",
81   - "mockjs": "^1.0.1-beta3",
82   - "mockjs-webpack-plugin": "^1.0.0",
83   - "nightwatch": "^0.9.21",
84   - "node-dir": "^0.1.17",
85   - "node-notifier": "^5.1.2",
86   - "optimize-css-assets-webpack-plugin": "^3.2.0",
87   - "ora": "^1.2.0",
88   - "portfinder": "^1.0.13",
89   - "postcss-import": "^11.0.0",
90   - "postcss-loader": "^2.1.5",
91   - "postcss-url": "^7.3.2",
92   - "raw-loader": "^0.5.1",
93   - "rimraf": "^2.6.0",
94   - "selenium-server": "^3.12.0",
95   - "semver": "^5.3.0",
96   - "shelljs": "^0.7.6",
97   - "stylus": "^0.54.5",
98   - "stylus-loader": "^3.0.2",
99   - "uglifyjs-webpack-plugin": "^1.2.5",
100   - "url-loader": "^0.5.8",
101   - "vue-jest": "^1.0.2",
102   - "vue-loader": "^13.3.0",
103   - "vue-style-loader": "^3.0.1",
104   - "vue-template-compiler": "^2.5.16",
105   - "webpack": "^3.12.0",
106   - "webpack-bundle-analyzer": "^2.12.0",
107   - "webpack-dev-server": "^2.9.1",
108   - "webpack-merge": "^4.1.0"
109   - },
110   - "engines": {
111   - "node": ">= 6.0.0",
112   - "npm": ">= 3.0.0"
113   - },
114   - "browserslist": [
115   - "> 1%",
116   - "last 2 versions",
117   - "not ie <= 8"
118   - ]
  2 + "name": "schoolmanagement",
  3 + "version": "1.0.0",
  4 + "description": "A schoolmanagement Dashboard",
  5 + "author": "Neeraj Sharma<neeraj.sharma@viithiisys.com>",
  6 + "private": true,
  7 + "scripts": {
  8 + "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
  9 + "start": "npm run dev",
  10 + "unit": "jest --config test/unit/jest.conf.js --coverage",
  11 + "e2e": "node test/e2e/runner.js",
  12 + "test": "npm run unit && npm run e2e",
  13 + "lint": "eslint --ext .js,.vue src test/unit test/e2e/specs",
  14 + "build": "node build/build.js"
  15 + },
  16 + "dependencies": {
  17 + "axios": "^0.18.0",
  18 + "babel-polyfill": "^6.26.0",
  19 + "font-awesome": "^4.7.0",
  20 + "jquery": "^3.4.1",
  21 + "jspdf": "^1.5.3",
  22 + "jspdf-autotable": "^3.2.10",
  23 + "lodash.truncate": "^4.4.2",
  24 + "moment": "^2.24.0",
  25 + "nprogress": "^0.2.0",
  26 + "quill": "^1.3.6",
  27 + "save": "^2.4.0",
  28 + "vee-validate": "^2.0.9",
  29 + "vue": "^2.5.16",
  30 + "vue-full-calendar": "^2.7.0",
  31 + "vue-html2canvas": "0.0.4",
  32 + "vue-json-csv": "^1.2.9",
  33 + "vue-material-year-calendar": "^1.2.4",
  34 + "vue-password": "^1.2.0",
  35 + "vue-perfect-scrollbar": "^0.1.0",
  36 + "vue-quill-editor": "^3.0.6",
  37 + "vue-resize": "^0.4.4",
  38 + "vue-router": "^3.0.1",
  39 + "vuetify": "^1.1.0-alpha.5",
  40 + "vuex": "^3.0.1",
  41 + "vuex-persistedstate": "^2.5.4"
  42 + },
  43 + "devDependencies": {
  44 + "autoprefixer": "^7.1.2",
  45 + "babel-core": "^6.26.3",
  46 + "babel-eslint": "^8.2.3",
  47 + "babel-helper-vue-jsx-merge-props": "^2.0.3",
  48 + "babel-jest": "^21.0.2",
  49 + "babel-loader": "^7.1.4",
  50 + "babel-plugin-dynamic-import-node": "^1.2.0",
  51 + "babel-plugin-syntax-dynamic-import": "^6.18.0",
  52 + "babel-plugin-syntax-jsx": "^6.18.0",
  53 + "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2",
  54 + "babel-plugin-transform-runtime": "^6.22.0",
  55 + "babel-plugin-transform-vue-jsx": "^3.7.0",
  56 + "babel-preset-env": "^1.7.0",
  57 + "babel-preset-stage-2": "^6.22.0",
  58 + "babel-register": "^6.22.0",
  59 + "chalk": "^2.4.1",
  60 + "chromedriver": "^2.38.3",
  61 + "copy-webpack-plugin": "^4.5.1",
  62 + "cross-spawn": "^5.0.1",
  63 + "css-loader": "^0.28.11",
  64 + "eslint": "^4.19.1",
  65 + "eslint-config-alloy": "^1.4.2",
  66 + "eslint-config-standard": "^10.2.1",
  67 + "eslint-friendly-formatter": "^3.0.0",
  68 + "eslint-loader": "^1.7.1",
  69 + "eslint-plugin-import": "^2.11.0",
  70 + "eslint-plugin-node": "^5.2.0",
  71 + "eslint-plugin-promise": "^3.7.0",
  72 + "eslint-plugin-standard": "^3.1.0",
  73 + "eslint-plugin-vue": "^4.5.0",
  74 + "extract-text-webpack-plugin": "^3.0.0",
  75 + "faker": "^4.1.0",
  76 + "file-loader": "^1.1.11",
  77 + "friendly-errors-webpack-plugin": "^1.7.0",
  78 + "fs-finder": "^1.8.1",
  79 + "html-webpack-plugin": "^2.30.1",
  80 + "jest": "^22.4.3",
  81 + "jest-serializer-vue": "^0.3.0",
  82 + "json-schema-faker": "^0.5.0-rc9",
  83 + "json-server": "^0.12.2",
  84 + "less-loader": "^4.1.0",
  85 + "mime-types": "^2.1.18",
  86 + "mockjs": "^1.0.1-beta3",
  87 + "mockjs-webpack-plugin": "^1.0.0",
  88 + "nightwatch": "^0.9.21",
  89 + "node-dir": "^0.1.17",
  90 + "node-notifier": "^5.1.2",
  91 + "optimize-css-assets-webpack-plugin": "^3.2.0",
  92 + "ora": "^1.2.0",
  93 + "portfinder": "^1.0.13",
  94 + "postcss-import": "^11.0.0",
  95 + "postcss-loader": "^2.1.5",
  96 + "postcss-url": "^7.3.2",
  97 + "raw-loader": "^0.5.1",
  98 + "rimraf": "^2.6.0",
  99 + "selenium-server": "^3.12.0",
  100 + "semver": "^5.3.0",
  101 + "shelljs": "^0.7.6",
  102 + "stylus": "^0.54.5",
  103 + "stylus-loader": "^3.0.2",
  104 + "uglifyjs-webpack-plugin": "^1.2.5",
  105 + "url-loader": "^0.5.8",
  106 + "vue-jest": "^1.0.2",
  107 + "vue-loader": "^13.3.0",
  108 + "vue-style-loader": "^3.0.1",
  109 + "vue-template-compiler": "^2.5.16",
  110 + "webpack": "^3.12.0",
  111 + "webpack-bundle-analyzer": "^2.12.0",
  112 + "webpack-dev-server": "^2.9.1",
  113 + "webpack-merge": "^4.1.0"
  114 + },
  115 + "engines": {
  116 + "node": ">= 6.0.0",
  117 + "npm": ">= 3.0.0"
  118 + },
  119 + "browserslist": [
  120 + "> 1%",
  121 + "last 2 versions",
  122 + "not ie <= 8"
  123 + ]
119 124 }
... ...
... ... @@ -12,6 +12,10 @@ import Truncate from &#39;lodash.truncate&#39;;
12 12 import store from '@/store/store'
13 13 import FullCalendar from 'vue-full-calendar';
14 14 import JsonCSV from 'vue-json-csv'
  15 +import VueHtml2Canvas from 'vue-html2canvas';
  16 +import 'babel-polyfill';
  17 +
  18 +Vue.use(VueHtml2Canvas);
15 19  
16 20 Vue.component('downloadCsv', JsonCSV)
17 21  
... ...
src/pages/Attendence/studentAttendence.vue
... ... @@ -89,7 +89,7 @@
89 89  
90 90 <script>
91 91 import http from "@/Services/http.js";
92   -import Util from "@/util";
  92 +// import Util from "@/util";
93 93 import moment from "moment";
94 94  
95 95 export default {
... ...
src/pages/Attendence/viewStudentsAttendence.vue
1 1 <template>
2 2 <v-container fluid grid-list-md>
3   - <v-layout row>
4   - <v-dialog v-model="dialogExport" max-width="500px">
5   - <v-btn slot="activator" color="grey" class="right" dark>
6   - Export
  3 + <div v-show="hideData">
  4 + <v-layout row>
  5 + <v-btn color="grey" @click="exportPdf" class="right" dark>
  6 + Export Pdf
7 7 <v-icon dark right size="20">save_alt</v-icon>
8 8 </v-btn>
9   - <v-card>
10   - <h3 class="text-xs-center py-2 grey lighten-1 white--text">Export</h3>
11   - <v-card-text>
12   - <v-container grid-list-md>
13   - <v-layout wrap>
14   - <v-flex xs12>
15   - <!-- <v-text-field label="Email" required></v-text-field> -->
16   - <v-menu
17   - ref="menuStartDate"
18   - :close-on-content-click="false"
19   - v-model="menuStartDate"
20   - :nudge-right="40"
21   - :return-value.sync="startDate"
22   - lazy
23   - transition="scale-transition"
24   - offset-y
25   - full-width
26   - min-width="290px"
27   - >
28   - <v-text-field
29   - slot="activator"
30   - v-model="startDate"
31   - label="Select Start Date"
32   - prepend-icon="event"
33   - readonly
34   - ></v-text-field>
35   - <v-date-picker v-model="startDate" @input="$refs.menuStartDate.save(startDate)"></v-date-picker>
36   - </v-menu>
37   - </v-flex>
38   - <v-flex xs12>
39   - <v-menu
40   - ref="menuEndDate"
41   - :close-on-content-click="false"
42   - v-model="menuEndDate"
43   - :nudge-right="40"
44   - :return-value.sync="endDate"
45   - lazy
46   - transition="scale-transition"
47   - offset-y
48   - full-width
49   - min-width="290px"
50   - >
51   - <v-text-field
52   - slot="activator"
53   - v-model="endDate"
54   - label="Select End Date"
55   - prepend-icon="event"
56   - readonly
57   - ></v-text-field>
58   - <v-date-picker v-model="endDate" @input="$refs.menuEndDate.save(endDate)"></v-date-picker>
59   - </v-menu>
60   - </v-flex>
61   - </v-layout>
62   - </v-container>
63   - </v-card-text>
64   - <v-card-actions>
65   - <v-spacer></v-spacer>
66   - <v-btn color="blue darken-1" flat @click.native="dialogExport = false">Close</v-btn>
67   - <download-csv :data="json_data">
68   - <v-btn color="blue darken-1" flat @click.native="exportData">Export</v-btn>
69   - </download-csv>
70   - </v-card-actions>
71   - </v-card>
72   - </v-dialog>
73   - </v-layout>
74   - <v-layout wrap>
75   - <v-flex xs12 sm12 md4>
76   - <v-card flat>
77   - <h3 class="text-xs-center py-2 grey lighten-1 white--text">Profile</h3>
78   - <v-card-text>
79   - <v-container>
80   - <v-layout wrap>
81   - <v-flex xs12>
82   - <v-layout>
83   - <v-flex
84   - xs12
85   - class="text-xs-center text-sm-center text-md-center text-lg-center"
  9 + <v-dialog v-model="dialogExport" max-width="500px">
  10 + <v-btn slot="activator" color="grey" class="right" dark>
  11 + Export csv
  12 + <v-icon dark right size="20">save_alt</v-icon>
  13 + </v-btn>
  14 + <v-card>
  15 + <h3 class="text-xs-center py-2 grey lighten-1 white--text">Export</h3>
  16 + <v-card-text>
  17 + <v-container grid-list-md>
  18 + <v-layout wrap>
  19 + <v-flex xs12>
  20 + <v-menu
  21 + ref="menuStartDate"
  22 + :close-on-content-click="false"
  23 + v-model="menuStartDate"
  24 + :nudge-right="40"
  25 + :return-value.sync="startDate"
  26 + lazy
  27 + transition="scale-transition"
  28 + offset-y
  29 + full-width
  30 + min-width="290px"
  31 + >
  32 + <v-text-field
  33 + slot="activator"
  34 + v-model="startDate"
  35 + label="Select Start Date"
  36 + prepend-icon="event"
  37 + readonly
  38 + ></v-text-field>
  39 + <v-date-picker
  40 + v-model="startDate"
  41 + @input="$refs.menuStartDate.save(startDate)"
  42 + ></v-date-picker>
  43 + </v-menu>
  44 + </v-flex>
  45 + <v-flex xs12>
  46 + <v-menu
  47 + ref="menuEndDate"
  48 + :close-on-content-click="false"
  49 + v-model="menuEndDate"
  50 + :nudge-right="40"
  51 + :return-value.sync="endDate"
  52 + lazy
  53 + transition="scale-transition"
  54 + offset-y
  55 + full-width
  56 + min-width="290px"
86 57 >
87   - <v-avatar size="160px">
88   - <img src="/static/icon/user.png" v-if="!studentData.profilePicUrl" />
89   - <img :src="studentData.profilePicUrl" v-else-if="studentData.profilePicUrl" />
90   - </v-avatar>
91   - </v-flex>
92   - </v-layout>
93   - <v-layout>
94   - <v-flex xs12 sm12>
95   - <h3 class="text-xs-center">
96   - <b>{{ studentData.name }}</b>
97   - </h3>
98   - <p class="text-xs-center grey--text">Student</p>
99   - </v-flex>
100   - </v-layout>
101   - <v-layout style="border: 1px solid lightgrey;">
102   - <v-flex xs6 sm6 class="pa-0">
103   - <h4 class="right">
104   - <b>Roll No :</b>
105   - </h4>
106   - </v-flex>
107   - <v-flex sm6 xs6 class="pa-0">
108   - <h4>{{ studentData.rollNo }}</h4>
109   - </v-flex>
110   - </v-layout>
111   - <v-layout style="border: 1px solid lightgrey;">
112   - <v-flex xs6 sm6 class="pa-0">
113   - <h4 class="right">
114   - <b>Class :</b>
115   - </h4>
116   - </v-flex>
117   - <v-flex sm6 xs6 class="right pa-0">
118   - <h4>{{ studentData.classId.classNum }}</h4>
119   - </v-flex>
120   - </v-layout>
121   - <v-layout style="border: 1px solid lightgrey;">
122   - <v-flex xs6 sm6 class="right pa-0">
123   - <h4 class="right">
124   - <b>Section :</b>
125   - </h4>
126   - </v-flex>
127   - <v-flex sm6 xs6 class="right pa-0">
128   - <h4>{{ studentData.sectionId.name}}</h4>
129   - </v-flex>
130   - </v-layout>
131   - </v-flex>
132   - </v-layout>
133   - </v-container>
134   - </v-card-text>
135   - </v-card>
136   - </v-flex>
137   - <v-flex xs12 sm12 md8>
138   - <v-card flat>
139   - <h3 class="py-2 text-xs-center grey lighten-1 white--text">
140   - Attendence
141   - <span class="ml-4">
142   - <v-avatar class="green caption" size="12"></v-avatar>
143   - <span class="subheading">Present</span>
144   - </span>
145   - <span class="ml-4">
146   - <v-avatar color="red caption" size="12" class></v-avatar>
147   - <span class="subheading">Absent</span>
148   - </span>
149   - </h3>
150   - <YearCalendar
151   - v-model="year"
152   - :activeDates="activeDates"
153   - prefixClass="your_customized_wrapper_class"
154   - :activeClass="activeClass"
155   - ></YearCalendar>
156   - </v-card>
157   - </v-flex>
  58 + <v-text-field
  59 + slot="activator"
  60 + v-model="endDate"
  61 + label="Select End Date"
  62 + prepend-icon="event"
  63 + readonly
  64 + ></v-text-field>
  65 + <v-date-picker v-model="endDate" @input="$refs.menuEndDate.save(endDate)"></v-date-picker>
  66 + </v-menu>
  67 + </v-flex>
  68 + </v-layout>
  69 + </v-container>
  70 + </v-card-text>
  71 + <v-card-actions>
  72 + <v-spacer></v-spacer>
  73 + <v-btn color="blue darken-1" flat @click.native="dialogExport = false">Close</v-btn>
  74 + <download-csv :data="json_data">
  75 + <v-btn color="blue darken-1" flat @click.native="exportData">Export</v-btn>
  76 + </download-csv>
  77 + </v-card-actions>
  78 + </v-card>
  79 + </v-dialog>
  80 + </v-layout>
  81 + <v-layout wrap>
  82 + <v-flex xs12 sm12 md4>
  83 + <v-card flat>
  84 + <h3 class="text-xs-center py-2 grey lighten-1 white--text">Profile</h3>
  85 + <v-card-text>
  86 + <v-container>
  87 + <v-layout wrap>
  88 + <v-flex xs12>
  89 + <v-layout>
  90 + <v-flex
  91 + xs12
  92 + class="text-xs-center text-sm-center text-md-center text-lg-center"
  93 + >
  94 + <v-avatar size="160px">
  95 + <img src="/static/icon/user.png" v-if="!studentData.profilePicUrl" />
  96 + <img
  97 + :src="studentData.profilePicUrl"
  98 + v-else-if="studentData.profilePicUrl"
  99 + />
  100 + </v-avatar>
  101 + </v-flex>
  102 + </v-layout>
  103 + <v-layout>
  104 + <v-flex xs12 sm12>
  105 + <h3 class="text-xs-center">
  106 + <b>{{ studentData.name }}</b>
  107 + </h3>
  108 + <p class="text-xs-center grey--text">Student</p>
  109 + </v-flex>
  110 + </v-layout>
  111 + <v-layout style="border: 1px solid lightgrey;">
  112 + <v-flex xs6 sm6 class="pa-0">
  113 + <h4 class="right">
  114 + <b>Roll No :</b>
  115 + </h4>
  116 + </v-flex>
  117 + <v-flex sm6 xs6 class="pa-0">
  118 + <h4>{{ studentData.rollNo }}</h4>
  119 + </v-flex>
  120 + </v-layout>
  121 + <v-layout style="border: 1px solid lightgrey;">
  122 + <v-flex xs6 sm6 class="pa-0">
  123 + <h4 class="right">
  124 + <b>Class :</b>
  125 + </h4>
  126 + </v-flex>
  127 + <v-flex sm6 xs6 class="right pa-0">
  128 + <h4>{{ studentData.classId.classNum }}</h4>
  129 + </v-flex>
  130 + </v-layout>
  131 + <v-layout style="border: 1px solid lightgrey;">
  132 + <v-flex xs6 sm6 class="right pa-0">
  133 + <h4 class="right">
  134 + <b>Section :</b>
  135 + </h4>
  136 + </v-flex>
  137 + <v-flex sm6 xs6 class="right pa-0">
  138 + <h4>{{ studentData.sectionId.name}}</h4>
  139 + </v-flex>
  140 + </v-layout>
  141 + </v-flex>
  142 + </v-layout>
  143 + </v-container>
  144 + </v-card-text>
  145 + </v-card>
  146 + </v-flex>
  147 + <v-flex xs12 sm12 md8>
  148 + <v-card flat>
  149 + <h3 class="py-2 text-xs-center grey lighten-1 white--text">
  150 + Attendence
  151 + <span class="ml-4">
  152 + <v-avatar class="green caption" size="12"></v-avatar>
  153 + <span class="subheading">Present</span>
  154 + </span>
  155 + <span class="ml-4">
  156 + <v-avatar color="red caption" size="12" class></v-avatar>
  157 + <span class="subheading">Absent</span>
  158 + </span>
  159 + </h3>
  160 + <YearCalendar
  161 + v-model="year"
  162 + :activeDates="activeDates"
  163 + prefixClass="your_customized_wrapper_class"
  164 + :activeClass="activeClass"
  165 + ></YearCalendar>
  166 + </v-card>
  167 + </v-flex>
  168 + </v-layout>
  169 + </div>
  170 + <v-layout v-show="showPdfData">
  171 + <v-container>
  172 + <v-flex xs12 sm12 md8 offset-sm2>
  173 + <v-btn
  174 + color="grey"
  175 + @click="generatePDF2Canvas()"
  176 + :loading="loadingPdf"
  177 + class="right"
  178 + dark
  179 + >
  180 + Export
  181 + <v-icon dark right size="20">save_alt</v-icon>
  182 + </v-btn>
  183 + </v-flex>
  184 + </v-container>
158 185 </v-layout>
  186 + <v-layout v-show="showPdfData">
  187 + <v-container>
  188 + <v-layout v-show="showPdfData">
  189 + <v-flex xs12 sm12 md8 offset-sm2>
  190 + <div ref="printMe">
  191 + <v-flex xs12 class="pl-3">
  192 + <v-layout>
  193 + <v-flex xs6 sm2 class="pa-0 mb-1">
  194 + <h4>
  195 + <b>Name</b>
  196 + </h4>
  197 + </v-flex>
  198 + <v-flex sm10 xs6 class="pa-0">
  199 + <h4>: {{ studentData.name }}</h4>
  200 + </v-flex>
  201 + </v-layout>
  202 + <v-layout>
  203 + <v-flex xs6 sm2 class="pa-0 mb-1">
  204 + <h4>
  205 + <b>Type</b>
  206 + </h4>
  207 + </v-flex>
  208 + <v-flex sm10 xs6 class="pa-0 mb-1">
  209 + <h4>: Student</h4>
  210 + </v-flex>
  211 + </v-layout>
  212 + <v-layout>
  213 + <v-flex xs6 sm2 class="pa-0 mb-1">
  214 + <h4>
  215 + <b>Roll No</b>
  216 + </h4>
  217 + </v-flex>
  218 + <v-flex sm10 xs6 class="pa-0 mb-1">
  219 + <h4>: {{ studentData.rollNo }}</h4>
  220 + </v-flex>
  221 + </v-layout>
  222 + <v-layout>
  223 + <v-flex xs6 sm2 class="pa-0 mb-1">
  224 + <h4>
  225 + <b>Class</b>
  226 + </h4>
  227 + </v-flex>
  228 + <v-flex sm10 xs6 class="pa-0 mb-1">
  229 + <h4>: {{ studentData.classId.classNum }}</h4>
  230 + </v-flex>
  231 + </v-layout>
  232 + <v-layout>
  233 + <v-flex xs6 sm2 class="pa-0 mb-1">
  234 + <h4>
  235 + <b>Section</b>
  236 + </h4>
  237 + </v-flex>
  238 + <v-flex sm10 xs6 class="pa-0 mb-3">
  239 + <h4>: {{ studentData.sectionId.name}}</h4>
  240 + </v-flex>
  241 + </v-layout>
  242 + </v-flex>
  243 + <v-card flat>
  244 + <h3 class="py-2 text-xs-center grey lighten-1 white--text">
  245 + Attendence
  246 + <span class="ml-4">
  247 + <v-avatar class="green caption" size="12"></v-avatar>
  248 + <span class="subheading">Present</span>
  249 + </span>
  250 + <span class="ml-4">
  251 + <v-avatar color="red caption" size="12" class></v-avatar>
  252 + <span class="subheading">Absent</span>
  253 + </span>
  254 + </h3>
  255 + <YearCalendar
  256 + v-model="year"
  257 + :activeDates="activeDates"
  258 + prefixClass="your_customized_wrapper_class"
  259 + :activeClass="activeClass"
  260 + ></YearCalendar>
  261 + </v-card>
  262 + </div>
  263 + </v-flex>
  264 + </v-layout>
  265 + </v-container>
  266 + </v-layout>
  267 + <img :src="output" v-show="false"/>
159 268 <div class="loader" v-if="showLoader">
160 269 <v-progress-circular indeterminate color="white"></v-progress-circular>
161 270 </div>
162 271 </v-container>
163 272 </template>
164 273  
165   -<script>
  274 +<script lang="js">
166 275 import moment from "moment";
167 276 import http from "@/Services/http.js";
168 277 import YearCalendar from "vue-material-year-calendar";
  278 +import jsPDF from 'jspdf';
  279 + // eslint-disable-next-line
  280 +import autoTable from 'jspdf-autotable';
169 281  
170 282 export default {
171 283 components: { YearCalendar },
172 284 data() {
173 285 return {
  286 + showPdfData:false,
  287 + hideData:true,
  288 + loadingPdf:false,
  289 + output:null,
174 290 studentsList: [],
175 291 json_data: [],
176 292 dialogExport: false,
... ... @@ -267,12 +383,35 @@ export default {
267 383 )
268 384 .then(response => {
269 385 this.json_data = response.data.data;
  386 + this.dialogExport = true;
270 387 })
271 388 .catch(err => {
272 389 console.log("err====>", err);
273 390 // this.$router.replace({ path: '/' });
274 391 });
275   - }
  392 + },
  393 + exportPdf(){
  394 + this.hideData = false;
  395 + this.showPdfData = true
  396 + },
  397 + async generatePDF2Canvas(){
  398 + this.loadingPdf = true
  399 + const el = this.$refs.printMe;
  400 + // add option type to get the image version
  401 + // if not provided the promise will return
  402 + // the canvas.
  403 + const options = {
  404 + type: 'dataURL'
  405 + }
  406 + this.output = await this.$html2canvas(el, options);
  407 + console.log(this.output);
  408 + if(this.output) {
  409 + this.loadingPdf = false
  410 + }
  411 + let doc = new jsPDF();
  412 + doc.addImage(this.output, 'JPEG', 5, 10, 200, 280);
  413 + doc.save("export.pdf");
  414 + }
276 415 }
277 416 };
278 417 </script>
... ...