diff --git a/README.md b/README.md index 4a2ffbe30..f40619059 100644 --- a/README.md +++ b/README.md @@ -67,9 +67,9 @@ TrulyUI is an Angular Framework especially developed for Desktop Applications ba We assume that you have already installed the following packages at least and are already running an AngularIO project. -* [NodeJS >= 10.0.0](https://nodejs.org) -* [Angular Cli >= 8.0.0](https://cli.angular.io/) -* [Angular >= 8.0.0](https://angular.io/) +* [NodeJS >= 11.2.0](https://nodejs.org) +* [Angular Cli >= 10.0.0](https://cli.angular.io/) +* [Angular >= 10.0.0](https://angular.io/) ## Installation @@ -230,10 +230,10 @@ Once your library is imported, you can use its components, directives and pipes | Feature | Status | Docs | Issue | | :--- | :--- | :--- | :--- | | datetimepicker | non-planned | | | -| clockpicker | In-progress, planned S1 2019 | | | +| clockpicker | In-progress, planned S1 2021 | | | | monthyearpicker | non-planned | | | -| paginator | In-progress, planned S1 2019 | | | -| schedule | In-progress, planned S1 2019 | | | +| paginator | In-progress, planned S1 2021 | | | +| schedule | In-progress, planned S1 2021 | | | | widget | non-planned | | | ## Feedback @@ -248,7 +248,7 @@ angular ui components angular 2 components, angular 4 components, angular electr The MIT License \(MIT\) -Copyright \(c\) 2019 [Temainfo Software](mailto:suporte@temainfo.com.br) +Copyright \(c\) 2020 [Temainfo Software](mailto:suporte@temainfo.com.br) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files \(the "Software"\), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/package-lock.json b/package-lock.json index 052c9af6f..e83089cf6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2382,13 +2382,6 @@ "universalify": "^0.1.0" } }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true - }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -6546,13 +6539,6 @@ "to-regex-range": "^5.0.1" } }, - "fsevents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", - "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", - "dev": true, - "optional": true - }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -8767,13 +8753,6 @@ "to-regex-range": "^5.0.1" } }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true - }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -10471,6 +10450,11 @@ "defer-to-connect": "^1.0.1" } }, + "@tweenjs/tween.js": { + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-17.4.0.tgz", + "integrity": "sha512-J3fzl1F6wvh8KXVVcIuHN12xi1ZDcPA/0Vix+ZcJYwZWVHUwfIqfvzYXXEw7ybeev6477KCTt9fKydU+ajUqcg==" + }, "@types/anymatch": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", @@ -10864,6 +10848,11 @@ "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==", "dev": true }, + "@types/tween.js": { + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@types/tween.js/-/tween.js-17.2.0.tgz", + "integrity": "sha512-mOsqurEtFEzwgkVc/jDVE2XrjZBYTbrmDUyCr9GXmnfc6q5otokxFtKvSY/B21zgz9LVRIvRTawKczjKi57wrA==" + }, "@types/uglify-js": { "version": "3.9.3", "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.9.3.tgz", @@ -12798,16 +12787,6 @@ "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", "dev": true }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, "blocking-proxy": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", @@ -13789,6 +13768,15 @@ "path-is-absolute": "^1.0.0", "readdirp": "^2.0.0", "upath": "^1.0.5" + }, + "dependencies": { + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true + } } }, "chownr": { @@ -15306,16 +15294,6 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, "cosmiconfig": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", @@ -18006,13 +17984,6 @@ } } }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, "filelist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz", @@ -18857,552 +18828,11 @@ "dev": true }, "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "dev": true, - "optional": true, - "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.21", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": "^2.1.0" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.2.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.10.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.0", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.1.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.1.10", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.0.5" - } - }, - "safe-buffer": { - "version": "5.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.5.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.0.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.2.4", - "minizlib": "^1.1.0", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.1", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - } - } + "optional": true }, "function-bind": { "version": "1.1.1", @@ -23257,557 +22687,9 @@ }, "dependencies": { "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "dev": true, "optional": true } @@ -24922,6 +23804,16 @@ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, "faye-websocket": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", @@ -24952,6 +23844,12 @@ "is-wsl": "^1.1.0" } }, + "proxy-middleware": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", + "integrity": "sha1-o/3xvvtzD5UZZYcqwvYHTGFHelY=", + "dev": true + }, "send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", @@ -26208,13 +25106,6 @@ "integrity": "sha1-SJYrGeFp/R38JAs/HnMXYnu8R9s=", "dev": true }, - "nan": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", - "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==", - "dev": true, - "optional": true - }, "nanomatch": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", @@ -26486,13 +25377,6 @@ "universalify": "^1.0.0" } }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true - }, "glob-parent": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", @@ -26824,6 +25708,15 @@ } } }, + "ngx-virtual-scroller": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/ngx-virtual-scroller/-/ngx-virtual-scroller-4.0.3.tgz", + "integrity": "sha512-JBqUJ/f7GRCZDnI/JeiFoTmYR8rC/Hyv8L5I7ImePM6f/hwiFNRsrK8Abdd0E3TwklwgmZAK875te9XQJrgsyQ==", + "requires": { + "@tweenjs/tween.js": "17.4.0", + "@types/tween.js": "17.2.0" + } + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -27291,7 +26184,8 @@ "dependencies": { "JSONStream": { "version": "1.3.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-Y7vfi3I5oMOYIr+WxV8NZxDSwcbNgzdKYsTNInmycOq9bUYwGg9ryu57Wg5NLmCjqdFPNUmpMBo3kSJN9tCbXg==", "dev": true, "requires": { "jsonparse": "^1.2.0", @@ -27300,12 +26194,14 @@ }, "abbrev": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, "agent-base": { "version": "4.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", "dev": true, "requires": { "es6-promisify": "^5.0.0" @@ -27313,7 +26209,8 @@ }, "agentkeepalive": { "version": "3.4.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-MPIwsZU9PP9kOrZpyu2042kYA8Fdt/AedQYkYXucHgF9QoD9dXVp0ypuGnHXSR0hTstBxdt85Xkh4JolYfK5wg==", "dev": true, "requires": { "humanize-ms": "^1.2.1" @@ -27321,7 +26218,8 @@ }, "ajv": { "version": "5.5.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { "co": "^4.6.0", @@ -27332,7 +26230,8 @@ }, "ansi-align": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { "string-width": "^2.0.0" @@ -27340,12 +26239,14 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "ansi-styles": { "version": "3.2.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" @@ -27353,27 +26254,32 @@ }, "ansicolors": { "version": "0.3.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", "dev": true }, "ansistyles": { "version": "0.1.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=", "dev": true }, "aproba": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, "archy": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, "are-we-there-yet": { "version": "1.1.4", - "bundled": true, + "resolved": false, + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "dev": true, "requires": { "delegates": "^1.0.0", @@ -27382,12 +26288,14 @@ }, "asap": { "version": "2.0.6", - "bundled": true, + "resolved": false, + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", "dev": true }, "asn1": { "version": "0.2.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { "safer-buffer": "~2.1.0" @@ -27395,32 +26303,38 @@ }, "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, "asynckit": { "version": "0.4.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, "aws-sign2": { "version": "0.7.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", "dev": true }, "aws4": { "version": "1.8.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", "dev": true }, "balanced-match": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "bcrypt-pbkdf": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "optional": true, "requires": { @@ -27429,7 +26343,8 @@ }, "bin-links": { "version": "1.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-8eEHVgYP03nILphilltWjeIjMbKyJo3wvp9K816pHbhP301ismzw15mxAAEVQ/USUwcP++1uNrbERbp8lOA6Fg==", "dev": true, "requires": { "bluebird": "^3.5.0", @@ -27441,7 +26356,8 @@ }, "block-stream": { "version": "0.0.9", - "bundled": true, + "resolved": false, + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "dev": true, "requires": { "inherits": "~2.0.0" @@ -27449,12 +26365,14 @@ }, "bluebird": { "version": "3.5.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", "dev": true }, "boxen": { "version": "1.3.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { "ansi-align": "^2.0.0", @@ -27468,7 +26386,8 @@ }, "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": false, + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { "balanced-match": "^1.0.0", @@ -27477,32 +26396,38 @@ }, "buffer-from": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==", "dev": true }, "builtin-modules": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, "builtins": { "version": "1.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", "dev": true }, "byline": { "version": "5.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=", "dev": true }, "byte-size": { "version": "4.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-JGC3EV2bCzJH/ENSh3afyJrH4vwxbHTuO5ljLoI5+2iJOcEpMgP8T782jH9b5qGxf2mSUIp1lfGnfKNrRHpvVg==", "dev": true }, "cacache": { "version": "11.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-IFWl6lfK6wSeYCHUXh+N1lY72UDrpyrYQJNIVQf48paDuWbv5RbAtJYf/4gUQFObTCHZwdZ5sI8Iw7nqwP6nlQ==", "dev": true, "requires": { "bluebird": "^3.5.1", @@ -27523,27 +26448,32 @@ }, "call-limit": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-b9YbA/PaQqLNDsK2DwK9DnGZH+o=", "dev": true }, "camelcase": { "version": "4.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true }, "capture-stack-trace": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", "dev": true }, "caseless": { "version": "0.12.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, "chalk": { "version": "2.4.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -27553,17 +26483,20 @@ }, "chownr": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", "dev": true }, "ci-info": { "version": "1.4.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Oqmw2pVfCl8sCL+1QgMywPfdxPJPkC51y4usw0iiE2S9qnEOAqXy8bwl1CpMpnoU39g4iKJTz6QZj+28FvOnjQ==", "dev": true }, "cidr-regex": { "version": "2.0.9", - "bundled": true, + "resolved": false, + "integrity": "sha512-F7/fBRUU45FnvSPjXdpIrc++WRSBdCiSTlyq4ZNhLKOlHFNWgtzZ0Fd+zrqI/J1j0wmlx/f5ZQDmD2GcbrNcmw==", "dev": true, "requires": { "ip-regex": "^2.1.0" @@ -27571,12 +26504,14 @@ }, "cli-boxes": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", "dev": true }, "cli-columns": { "version": "3.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-ZzLZcpee/CrkRKHwjgj6E5yWoY4=", "dev": true, "requires": { "string-width": "^2.0.0", @@ -27585,7 +26520,8 @@ }, "cli-table3": { "version": "0.5.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-c7YHpUyO1SaKaO7kYtxd5NZ8FjAmSK3LpKkuzdwn+2CwpFxBpdoQLm+OAnnCfoEl7onKhN9PKQi1lsHuAIUqGQ==", "dev": true, "requires": { "colors": "^1.1.2", @@ -27595,7 +26531,8 @@ }, "cliui": { "version": "4.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { "string-width": "^2.1.1", @@ -27605,12 +26542,14 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { "ansi-regex": "^3.0.0" @@ -27620,12 +26559,14 @@ }, "clone": { "version": "1.0.4", - "bundled": true, + "resolved": false, + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true }, "cmd-shim": { "version": "2.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -27634,17 +26575,20 @@ }, "co": { "version": "4.6.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "color-convert": { "version": "1.9.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { "color-name": "^1.1.1" @@ -27652,18 +26596,21 @@ }, "color-name": { "version": "1.1.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "colors": { "version": "1.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", "dev": true, "optional": true }, "columnify": { "version": "1.5.4", - "bundled": true, + "resolved": false, + "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", "dev": true, "requires": { "strip-ansi": "^3.0.0", @@ -27672,7 +26619,8 @@ }, "combined-stream": { "version": "1.0.6", - "bundled": true, + "resolved": false, + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "dev": true, "requires": { "delayed-stream": "~1.0.0" @@ -27680,12 +26628,14 @@ }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "concat-stream": { "version": "1.6.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -27696,7 +26646,8 @@ }, "config-chain": { "version": "1.1.11", - "bundled": true, + "resolved": false, + "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", "dev": true, "requires": { "ini": "^1.3.4", @@ -27705,7 +26656,8 @@ }, "configstore": { "version": "3.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { "dot-prop": "^4.1.0", @@ -27718,12 +26670,14 @@ }, "console-control-strings": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, "copy-concurrently": { "version": "1.0.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "dev": true, "requires": { "aproba": "^1.1.1", @@ -27736,19 +26690,22 @@ "dependencies": { "iferr": { "version": "0.1.5", - "bundled": true, + "resolved": false, + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", "dev": true } } }, "core-util-is": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, "create-error-class": { "version": "3.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "requires": { "capture-stack-trace": "^1.0.0" @@ -27756,7 +26713,8 @@ }, "cross-spawn": { "version": "5.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { "lru-cache": "^4.0.1", @@ -27766,17 +26724,20 @@ }, "crypto-random-string": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", "dev": true }, "cyclist": { "version": "0.2.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", "dev": true }, "dashdash": { "version": "1.14.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { "assert-plus": "^1.0.0" @@ -27784,7 +26745,8 @@ }, "debug": { "version": "3.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { "ms": "2.0.0" @@ -27792,34 +26754,40 @@ "dependencies": { "ms": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "debuglog": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", "dev": true }, "decamelize": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "decode-uri-component": { "version": "0.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, "deep-extend": { "version": "0.5.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", "dev": true }, "defaults": { "version": "1.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "requires": { "clone": "^1.0.2" @@ -27827,27 +26795,32 @@ }, "delayed-stream": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true }, "detect-indent": { "version": "5.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", "dev": true }, "detect-newline": { "version": "2.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", "dev": true }, "dezalgo": { "version": "1.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", "dev": true, "requires": { "asap": "^2.0.0", @@ -27856,7 +26829,8 @@ }, "dot-prop": { "version": "4.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { "is-obj": "^1.0.0" @@ -27864,17 +26838,20 @@ }, "dotenv": { "version": "5.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==", "dev": true }, "duplexer3": { "version": "0.1.4", - "bundled": true, + "resolved": false, + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, "duplexify": { "version": "3.6.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "dev": true, "requires": { "end-of-stream": "^1.0.0", @@ -27885,7 +26862,8 @@ }, "ecc-jsbn": { "version": "0.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, "optional": true, "requires": { @@ -27895,12 +26873,14 @@ }, "editor": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-YMf4e9YrzGqJT6jM1q+3gjok90I=", "dev": true }, "encoding": { "version": "0.1.12", - "bundled": true, + "resolved": false, + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "dev": true, "requires": { "iconv-lite": "~0.4.13" @@ -27908,7 +26888,8 @@ }, "end-of-stream": { "version": "1.4.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "requires": { "once": "^1.4.0" @@ -27916,12 +26897,14 @@ }, "err-code": { "version": "1.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", "dev": true }, "errno": { "version": "0.1.7", - "bundled": true, + "resolved": false, + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "dev": true, "requires": { "prr": "~1.0.1" @@ -27929,12 +26912,14 @@ }, "es6-promise": { "version": "4.2.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==", "dev": true }, "es6-promisify": { "version": "5.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { "es6-promise": "^4.0.3" @@ -27942,12 +26927,14 @@ }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true, + "resolved": false, + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "execa": { "version": "0.7.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { "cross-spawn": "^5.0.1", @@ -27961,37 +26948,44 @@ }, "extend": { "version": "3.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, "extsprintf": { "version": "1.3.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "dev": true }, "fast-deep-equal": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", "dev": true }, "fast-json-stable-stringify": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", "dev": true }, "figgy-pudding": { "version": "3.4.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-j1SAT641cerGuOvoSBoaE9LbSzh1N/E5ufk9oMpOKuyK8MyW3sGg4rh+4qhLmVTEAzipO5XTHYT4gjb6JYLE8g==", "dev": true }, "find-npm-prefix": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-KEftzJ+H90x6pcKtdXZEPsQse8/y/UnvzRKrOSQFprnrGaFuJ62fVkP34Iu2IYuMvyauCyoLTNkJZgrrGA2wkA==", "dev": true }, "find-up": { "version": "2.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { "locate-path": "^2.0.0" @@ -27999,7 +26993,8 @@ }, "flush-write-stream": { "version": "1.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", "dev": true, "requires": { "inherits": "^2.0.1", @@ -28008,12 +27003,14 @@ }, "forever-agent": { "version": "0.6.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "dev": true }, "form-data": { "version": "2.3.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "dev": true, "requires": { "asynckit": "^0.4.0", @@ -28023,7 +27020,8 @@ }, "from2": { "version": "2.3.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { "inherits": "^2.0.1", @@ -28032,7 +27030,8 @@ }, "fs-minipass": { "version": "1.2.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "dev": true, "requires": { "minipass": "^2.2.1" @@ -28040,7 +27039,8 @@ }, "fs-vacuum": { "version": "1.2.10", - "bundled": true, + "resolved": false, + "integrity": "sha1-t2Kb7AekAxolSP35n17PHMizHjY=", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -28050,7 +27050,8 @@ }, "fs-write-stream-atomic": { "version": "1.0.10", - "bundled": true, + "resolved": false, + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -28061,19 +27062,22 @@ "dependencies": { "iferr": { "version": "0.1.5", - "bundled": true, + "resolved": false, + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", "dev": true } } }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "fstream": { "version": "1.0.11", - "bundled": true, + "resolved": false, + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -28084,7 +27088,8 @@ }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": false, + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "requires": { "aproba": "^1.0.3", @@ -28099,7 +27104,8 @@ "dependencies": { "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "^1.0.0", @@ -28111,12 +27117,14 @@ }, "genfun": { "version": "4.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E=", "dev": true }, "gentle-fs": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-cEng5+3fuARewXktTEGbwsktcldA+YsnUEaXZwcK/3pjSE1X9ObnTs+/8rYf8s+RnIcQm2D5x3rwpN7Zom8Bew==", "dev": true, "requires": { "aproba": "^1.1.2", @@ -28131,24 +27139,28 @@ "dependencies": { "iferr": { "version": "0.1.5", - "bundled": true, + "resolved": false, + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", "dev": true } } }, "get-caller-file": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", "dev": true }, "get-stream": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, "getpass": { "version": "0.1.7", - "bundled": true, + "resolved": false, + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { "assert-plus": "^1.0.0" @@ -28156,7 +27168,8 @@ }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -28169,7 +27182,8 @@ }, "global-dirs": { "version": "0.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { "ini": "^1.3.4" @@ -28177,7 +27191,8 @@ }, "got": { "version": "6.7.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { "create-error-class": "^3.0.0", @@ -28195,17 +27210,20 @@ }, "graceful-fs": { "version": "4.1.11", - "bundled": true, + "resolved": false, + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, "har-schema": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", "dev": true }, "har-validator": { "version": "5.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", "dev": true, "requires": { "ajv": "^5.3.0", @@ -28214,27 +27232,32 @@ }, "has-flag": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true }, "hosted-git-info": { "version": "2.7.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", "dev": true }, "http-cache-semantics": { "version": "3.8.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", "dev": true }, "http-proxy-agent": { "version": "2.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", "dev": true, "requires": { "agent-base": "4", @@ -28243,7 +27266,8 @@ }, "http-signature": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { "assert-plus": "^1.0.0", @@ -28253,7 +27277,8 @@ }, "https-proxy-agent": { "version": "2.2.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", "dev": true, "requires": { "agent-base": "^4.1.0", @@ -28262,7 +27287,8 @@ }, "humanize-ms": { "version": "1.2.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "dev": true, "requires": { "ms": "^2.0.0" @@ -28270,7 +27296,8 @@ }, "iconv-lite": { "version": "0.4.23", - "bundled": true, + "resolved": false, + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" @@ -28278,12 +27305,14 @@ }, "iferr": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-9AfeLfji44r5TKInjhz3W9DyZI1zR1JAf2hVBMGhddAKPqBsupb89jGfbCTHIGZd6fGZl9WlHdn4AObygyMKwg==", "dev": true }, "ignore-walk": { "version": "3.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "requires": { "minimatch": "^3.0.4" @@ -28291,17 +27320,20 @@ }, "import-lazy": { "version": "2.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", "dev": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true, + "resolved": false, + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": false, + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "^1.3.0", @@ -28310,17 +27342,20 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "ini": { "version": "1.3.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true }, "init-package-json": { "version": "1.10.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", "dev": true, "requires": { "glob": "^7.1.1", @@ -28335,22 +27370,26 @@ }, "invert-kv": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, "ip": { "version": "1.1.5", - "bundled": true, + "resolved": false, + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", "dev": true }, "ip-regex": { "version": "2.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", "dev": true }, "is-builtin-module": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { "builtin-modules": "^1.0.0" @@ -28358,7 +27397,8 @@ }, "is-ci": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", "dev": true, "requires": { "ci-info": "^1.0.0" @@ -28366,7 +27406,8 @@ }, "is-cidr": { "version": "2.0.6", - "bundled": true, + "resolved": false, + "integrity": "sha512-A578p1dV22TgPXn6NCaDAPj6vJvYsBgAzUrAd28a4oldeXJjWqEUuSZOLIW3im51mazOKsoyVp8NU/OItlWacw==", "dev": true, "requires": { "cidr-regex": "^2.0.8" @@ -28374,7 +27415,8 @@ }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { "number-is-nan": "^1.0.0" @@ -28382,7 +27424,8 @@ }, "is-installed-globally": { "version": "0.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { "global-dirs": "^0.1.0", @@ -28391,17 +27434,20 @@ }, "is-npm": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", "dev": true }, "is-obj": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, "is-path-inside": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { "path-is-inside": "^1.0.1" @@ -28409,73 +27455,87 @@ }, "is-redirect": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", "dev": true }, "is-retry-allowed": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", "dev": true }, "is-stream": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-typedarray": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isstream": { "version": "0.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, "jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true, "optional": true }, "json-parse-better-errors": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, "json-schema": { "version": "0.2.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true }, "json-schema-traverse": { "version": "0.3.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", "dev": true }, "json-stringify-safe": { "version": "5.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, "jsonparse": { "version": "1.3.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true }, "jsprim": { "version": "1.4.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "dev": true, "requires": { "assert-plus": "1.0.0", @@ -28486,7 +27546,8 @@ }, "latest-version": { "version": "3.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { "package-json": "^4.0.0" @@ -28494,12 +27555,14 @@ }, "lazy-property": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-hN3Es3Bnm6i9TNz6TAa0PVcREUc=", "dev": true }, "lcid": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { "invert-kv": "^1.0.0" @@ -28507,7 +27570,8 @@ }, "libcipm": { "version": "2.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-9uZ6/LAflVEijksTRq/RX0e+pGA4mr8tND9Cmk2JMg7j2fFUBrs8PpFX2DOAJR/XoxPzz+5h8bkWmtIYLunKAg==", "dev": true, "requires": { "bin-links": "^1.1.2", @@ -28528,7 +27592,8 @@ }, "libnpmhook": { "version": "4.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-3qqpfqvBD1712WA6iGe0stkG40WwAeoWcujA6BlC0Be1JArQbqwabnEnZ0CRcD05Tf1fPYJYdCbSfcfedEJCOg==", "dev": true, "requires": { "figgy-pudding": "^3.1.0", @@ -28537,7 +27602,8 @@ "dependencies": { "npm-registry-fetch": { "version": "3.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-xBobENeenvjIG8PgQ1dy77AXTI25IbYhmA3DusMIfw/4EL5BaQ5e1V9trkPrqHvyjR3/T0cnH6o0Wt/IzcI5Ag==", "dev": true, "requires": { "bluebird": "^3.5.1", @@ -28551,7 +27617,8 @@ }, "libnpx": { "version": "10.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-X28coei8/XRCt15cYStbLBph+KGhFra4VQhRBPuH/HHMkC5dxM8v24RVgUsvODKCrUZ0eTgiTqJp6zbl0sskQQ==", "dev": true, "requires": { "dotenv": "^5.0.1", @@ -28566,7 +27633,8 @@ }, "locate-path": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { "p-locate": "^2.0.0", @@ -28575,7 +27643,8 @@ }, "lock-verify": { "version": "2.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-QNVwK0EGZBS4R3YQ7F1Ox8p41Po9VGl2QG/2GsuvTbkJZYSsPeWHKMbbH6iZMCHWSMww5nrJroZYnGzI4cePuw==", "dev": true, "requires": { "npm-package-arg": "^5.1.2 || 6", @@ -28584,7 +27653,8 @@ }, "lockfile": { "version": "1.0.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", "dev": true, "requires": { "signal-exit": "^3.0.2" @@ -28592,12 +27662,14 @@ }, "lodash._baseindexof": { "version": "3.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=", "dev": true }, "lodash._baseuniq": { "version": "4.6.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=", "dev": true, "requires": { "lodash._createset": "~4.0.0", @@ -28606,17 +27678,20 @@ }, "lodash._bindcallback": { "version": "3.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", "dev": true }, "lodash._cacheindexof": { "version": "3.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=", "dev": true }, "lodash._createcache": { "version": "3.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=", "dev": true, "requires": { "lodash._getnative": "^3.0.0" @@ -28624,52 +27699,62 @@ }, "lodash._createset": { "version": "4.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=", "dev": true }, "lodash._getnative": { "version": "3.9.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", "dev": true }, "lodash._root": { "version": "3.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", "dev": true }, "lodash.clonedeep": { "version": "4.5.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "dev": true }, "lodash.restparam": { "version": "3.6.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", "dev": true }, "lodash.union": { "version": "4.6.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", "dev": true }, "lodash.uniq": { "version": "4.5.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", "dev": true }, "lodash.without": { "version": "4.4.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=", "dev": true }, "lowercase-keys": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, "lru-cache": { "version": "4.1.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { "pseudomap": "^1.0.2", @@ -28678,7 +27763,8 @@ }, "make-dir": { "version": "1.3.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { "pify": "^3.0.0" @@ -28686,7 +27772,8 @@ }, "make-fetch-happen": { "version": "4.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==", "dev": true, "requires": { "agentkeepalive": "^3.4.1", @@ -28704,12 +27791,14 @@ }, "meant": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-UakVLFjKkbbUwNWJ2frVLnnAtbb7D7DsloxRd3s/gDpI8rdv8W5Hp3NaDb+POBI1fQdeussER6NB8vpcRURvlg==", "dev": true }, "mem": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { "mimic-fn": "^1.0.0" @@ -28717,12 +27806,14 @@ }, "mime-db": { "version": "1.35.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==", "dev": true }, "mime-types": { "version": "2.1.19", - "bundled": true, + "resolved": false, + "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", "dev": true, "requires": { "mime-db": "~1.35.0" @@ -28730,12 +27821,14 @@ }, "mimic-fn": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "^1.1.7" @@ -28743,12 +27836,14 @@ }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": false, + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "minipass": { "version": "2.3.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-/jAn9/tEX4gnpyRATxgHEOV6xbcyxgT7iUnxo9Y3+OB0zX00TgKIv/2FZCf5brBbICcwbLqVv2ImjvWWrQMSYw==", "dev": true, "requires": { "safe-buffer": "^5.1.2", @@ -28757,14 +27852,16 @@ "dependencies": { "yallist": { "version": "3.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", "dev": true } } }, "minizlib": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "dev": true, "requires": { "minipass": "^2.2.1" @@ -28772,7 +27869,8 @@ }, "mississippi": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", "dev": true, "requires": { "concat-stream": "^1.5.0", @@ -28789,7 +27887,8 @@ }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" @@ -28797,7 +27896,8 @@ }, "move-concurrently": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "dev": true, "requires": { "aproba": "^1.1.1", @@ -28810,17 +27910,20 @@ }, "ms": { "version": "2.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true }, "mute-stream": { "version": "0.0.7", - "bundled": true, + "resolved": false, + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, "node-fetch-npm": { "version": "2.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", "dev": true, "requires": { "encoding": "^0.1.11", @@ -28830,7 +27933,8 @@ }, "node-gyp": { "version": "3.8.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", "dev": true, "requires": { "fstream": "^1.0.0", @@ -28849,7 +27953,8 @@ "dependencies": { "nopt": { "version": "3.0.6", - "bundled": true, + "resolved": false, + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { "abbrev": "1" @@ -28857,12 +27962,14 @@ }, "semver": { "version": "5.3.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "dev": true }, "tar": { "version": "2.2.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "dev": true, "requires": { "block-stream": "*", @@ -28874,7 +27981,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "requires": { "abbrev": "1", @@ -28883,7 +27991,8 @@ }, "normalize-package-data": { "version": "2.4.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { "hosted-git-info": "^2.1.4", @@ -28894,7 +28003,8 @@ }, "npm-audit-report": { "version": "1.3.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-SjTF8ZP4rOu3JiFrTMi4M1CmVo2tni2sP4TzhyCMHwnMGf6XkdGLZKt9cdZ12esKf0mbQqFyU9LtY0SoeahL7g==", "dev": true, "requires": { "cli-table3": "^0.5.0", @@ -28903,17 +28013,20 @@ }, "npm-bundled": { "version": "1.0.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g==", "dev": true }, "npm-cache-filename": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-3tMGxbC/yHCp6fr4I7xfKD4FrhE=", "dev": true }, "npm-install-checks": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-1K7N/VGlPjcjt7L5Oy7ijjB7wNc=", "dev": true, "requires": { "semver": "^2.3.0 || 3.x || 4 || 5" @@ -28921,7 +28034,8 @@ }, "npm-lifecycle": { "version": "2.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-QbBfLlGBKsktwBZLj6AviHC6Q9Y3R/AY4a2PYSIRhSKSS0/CxRyD/PfxEX6tPeOCXQgMSNdwGeECacstgptc+g==", "dev": true, "requires": { "byline": "^5.0.0", @@ -28936,12 +28050,14 @@ }, "npm-logical-tree": { "version": "1.2.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-AJI/qxDB2PWI4LG1CYN579AY1vCiNyWfkiquCsJWqntRu/WwimVrC8yXeILBFHDwxfOejxewlmnvW9XXjMlYIg==", "dev": true }, "npm-package-arg": { "version": "6.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", "dev": true, "requires": { "hosted-git-info": "^2.6.0", @@ -28952,7 +28068,8 @@ }, "npm-packlist": { "version": "1.1.11", - "bundled": true, + "resolved": false, + "integrity": "sha512-CxKlZ24urLkJk+9kCm48RTQ7L4hsmgSVzEk0TLGPzzyuFxD7VNgy5Sl24tOLMzQv773a/NeJ1ce1DKeacqffEA==", "dev": true, "requires": { "ignore-walk": "^3.0.1", @@ -28961,7 +28078,8 @@ }, "npm-pick-manifest": { "version": "2.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-q9zLP8cTr8xKPmMZN3naxp1k/NxVFsjxN6uWuO1tiw9gxg7wZWQ/b5UTfzD0ANw2q1lQxdLKTeCCksq+bPSgbQ==", "dev": true, "requires": { "npm-package-arg": "^6.0.0", @@ -28970,7 +28088,8 @@ }, "npm-profile": { "version": "3.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-rEJOFR6PbwOvvhGa2YTNOJQKNuc6RovJ6T50xPU7pS9h/zKPNCJ+VHZY2OFXyZvEi+UQYtHRTp8O/YM3tUD20A==", "dev": true, "requires": { "aproba": "^1.1.2 || 2", @@ -28979,7 +28098,8 @@ }, "npm-registry-client": { "version": "8.6.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==", "dev": true, "requires": { "concat-stream": "^1.5.2", @@ -28998,12 +28118,14 @@ "dependencies": { "retry": { "version": "0.10.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", "dev": true }, "ssri": { "version": "5.3.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", "dev": true, "requires": { "safe-buffer": "^5.1.1" @@ -29013,7 +28135,8 @@ }, "npm-registry-fetch": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-XJPIBfMtgaooRtZmuA42xCeLf3tkxdIX0xqRsGWwNrcVvJ9UYFccD7Ho7QWCzvkM3i/QrkUC37Hu0a+vDBmt5g==", "dev": true, "requires": { "bluebird": "^3.5.1", @@ -29026,7 +28149,8 @@ "dependencies": { "cacache": { "version": "10.0.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", "dev": true, "requires": { "bluebird": "^3.5.1", @@ -29046,7 +28170,8 @@ "dependencies": { "mississippi": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", "dev": true, "requires": { "concat-stream": "^1.5.0", @@ -29065,12 +28190,14 @@ }, "figgy-pudding": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-yIJPhIBi/oFdU/P+GSXjmk/rmGjuZkm7A5LTXZxNrEprXJXRK012FiI1BR1Pga+0d/d6taWWD+B5d2ozqaxHig==", "dev": true }, "make-fetch-happen": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-FmWY7gC0mL6Z4N86vE14+m719JKE4H0A+pyiOH18B025gF/C113pyfb4gHDDYP5cqnRMHOz06JGdmffC/SES+w==", "dev": true, "requires": { "agentkeepalive": "^3.4.1", @@ -29088,7 +28215,8 @@ }, "pump": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -29097,12 +28225,14 @@ }, "smart-buffer": { "version": "1.1.15", - "bundled": true, + "resolved": false, + "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=", "dev": true }, "socks": { "version": "1.1.10", - "bundled": true, + "resolved": false, + "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", "dev": true, "requires": { "ip": "^1.1.4", @@ -29111,7 +28241,8 @@ }, "socks-proxy-agent": { "version": "3.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==", "dev": true, "requires": { "agent-base": "^4.1.0", @@ -29120,7 +28251,8 @@ }, "ssri": { "version": "5.3.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", "dev": true, "requires": { "safe-buffer": "^5.1.1" @@ -29130,7 +28262,8 @@ }, "npm-run-path": { "version": "2.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { "path-key": "^2.0.0" @@ -29138,12 +28271,14 @@ }, "npm-user-validate": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-jOyg9c6gTU6TUZ73LQVXp1Ei6VE=", "dev": true }, "npmlog": { "version": "4.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "requires": { "are-we-there-yet": "~1.1.2", @@ -29154,22 +28289,26 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "oauth-sign": { "version": "0.9.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1" @@ -29177,17 +28316,20 @@ }, "opener": { "version": "1.5.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-MD4s/o61y2slS27zm2s4229V2gAUHX0/e3/XOmY/jsXwhysjjCIHN8lx7gqZCrZk19ym+HjCUWHeMKD7YJtKCQ==", "dev": true }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "os-locale": { "version": "2.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { "execa": "^0.7.0", @@ -29197,12 +28339,14 @@ }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, "osenv": { "version": "0.1.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "requires": { "os-homedir": "^1.0.0", @@ -29211,12 +28355,14 @@ }, "p-finally": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "p-limit": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", "dev": true, "requires": { "p-try": "^1.0.0" @@ -29224,7 +28370,8 @@ }, "p-locate": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { "p-limit": "^1.1.0" @@ -29232,12 +28379,14 @@ }, "p-try": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, "package-json": { "version": "4.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { "got": "^6.7.1", @@ -29248,7 +28397,8 @@ }, "pacote": { "version": "8.1.6", - "bundled": true, + "resolved": false, + "integrity": "sha512-wTOOfpaAQNEQNtPEx92x9Y9kRWVu45v583XT8x2oEV2xRB74+xdqMZIeGW4uFvAyZdmSBtye+wKdyyLaT8pcmw==", "dev": true, "requires": { "bluebird": "^3.5.1", @@ -29280,7 +28430,8 @@ }, "parallel-transform": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "dev": true, "requires": { "cyclist": "~0.2.2", @@ -29290,52 +28441,62 @@ }, "path-exists": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "path-is-inside": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", "dev": true }, "path-key": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "performance-now": { "version": "2.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, "pify": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, "prepend-http": { "version": "1.0.4", - "bundled": true, + "resolved": false, + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", "dev": true }, "process-nextick-args": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true }, "promise-inflight": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, "promise-retry": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", "dev": true, "requires": { "err-code": "^1.0.0", @@ -29344,14 +28505,16 @@ "dependencies": { "retry": { "version": "0.10.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", "dev": true } } }, "promzard": { "version": "0.3.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", "dev": true, "requires": { "read": "1" @@ -29359,12 +28522,14 @@ }, "proto-list": { "version": "1.2.4", - "bundled": true, + "resolved": false, + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", "dev": true }, "protoduck": { "version": "5.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-agsGWD8/RZrS4ga6v82Fxb0RHIS2RZnbsSue6A9/MBRhB/jcqOANAMNrqM9900b8duj+Gx+T/JMy5IowDoO/hQ==", "dev": true, "requires": { "genfun": "^4.0.1" @@ -29372,22 +28537,26 @@ }, "prr": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", "dev": true }, "pseudomap": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "psl": { "version": "1.1.29", - "bundled": true, + "resolved": false, + "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", "dev": true }, "pump": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -29396,7 +28565,8 @@ }, "pumpify": { "version": "1.5.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, "requires": { "duplexify": "^3.6.0", @@ -29406,7 +28576,8 @@ "dependencies": { "pump": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -29417,22 +28588,26 @@ }, "punycode": { "version": "1.4.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, "qrcode-terminal": { "version": "0.12.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==", "dev": true }, "qs": { "version": "6.5.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, "query-string": { "version": "6.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-pNB/Gr8SA8ff8KpUFM36o/WFAlthgaThka5bV19AD9PNTH20Pwq5Zxodif2YyHwrctp6SkL4GqlOot0qR/wGaw==", "dev": true, "requires": { "decode-uri-component": "^0.2.0", @@ -29441,12 +28616,14 @@ }, "qw": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-77/cdA+a0FQwRCassYNBLMi5ltQ=", "dev": true }, "rc": { "version": "1.2.7", - "bundled": true, + "resolved": false, + "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "dev": true, "requires": { "deep-extend": "^0.5.1", @@ -29457,14 +28634,16 @@ "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } } }, "read": { "version": "1.0.7", - "bundled": true, + "resolved": false, + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", "dev": true, "requires": { "mute-stream": "~0.0.4" @@ -29472,7 +28651,8 @@ }, "read-cmd-shim": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs=", "dev": true, "requires": { "graceful-fs": "^4.1.2" @@ -29480,7 +28660,8 @@ }, "read-installed": { "version": "4.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=", "dev": true, "requires": { "debuglog": "^1.0.1", @@ -29494,7 +28675,8 @@ }, "read-package-json": { "version": "2.0.13", - "bundled": true, + "resolved": false, + "integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==", "dev": true, "requires": { "glob": "^7.1.1", @@ -29506,7 +28688,8 @@ }, "read-package-tree": { "version": "5.2.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-2CNoRoh95LxY47LvqrehIAfUVda2JbuFE/HaGYs42bNrGG+ojbw1h3zOcPcQ+1GQ3+rkzNndZn85u1XyZ3UsIA==", "dev": true, "requires": { "debuglog": "^1.0.1", @@ -29518,7 +28701,8 @@ }, "readable-stream": { "version": "2.3.6", - "bundled": true, + "resolved": false, + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -29532,7 +28716,8 @@ }, "readdir-scoped-modules": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=", "dev": true, "requires": { "debuglog": "^1.0.1", @@ -29543,7 +28728,8 @@ }, "registry-auth-token": { "version": "3.3.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { "rc": "^1.1.6", @@ -29552,7 +28738,8 @@ }, "registry-url": { "version": "3.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { "rc": "^1.0.1" @@ -29560,7 +28747,8 @@ }, "request": { "version": "2.88.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { "aws-sign2": "~0.7.0", @@ -29587,27 +28775,32 @@ }, "require-directory": { "version": "2.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "dev": true }, "resolve-from": { "version": "4.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, "retry": { "version": "0.12.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", "dev": true }, "rimraf": { "version": "2.6.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { "glob": "^7.0.5" @@ -29615,7 +28808,8 @@ }, "run-queue": { "version": "1.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "dev": true, "requires": { "aproba": "^1.1.1" @@ -29623,22 +28817,26 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "safer-buffer": { "version": "2.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, "semver": { "version": "5.5.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "dev": true }, "semver-diff": { "version": "2.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { "semver": "^5.0.3" @@ -29646,12 +28844,14 @@ }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "sha": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-YDCCL70smCOUn49y7WQR7lzyWq4=", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -29660,7 +28860,8 @@ }, "shebang-command": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { "shebang-regex": "^1.0.0" @@ -29668,32 +28869,38 @@ }, "shebang-regex": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "slash": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true }, "slide": { "version": "1.1.6", - "bundled": true, + "resolved": false, + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", "dev": true }, "smart-buffer": { "version": "4.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg==", "dev": true }, "socks": { "version": "2.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-uRKV9uXQ9ytMbGm2+DilS1jB7N3AC0mmusmW5TVWjNuBZjxS8+lX38fasKVY9I4opv/bY/iqTbcpFFaTwpfwRg==", "dev": true, "requires": { "ip": "^1.1.5", @@ -29702,7 +28909,8 @@ }, "socks-proxy-agent": { "version": "4.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", "dev": true, "requires": { "agent-base": "~4.2.0", @@ -29711,12 +28919,14 @@ }, "sorted-object": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-fWMfS9OnmKJK8d/8+/6DM3pd9fw=", "dev": true }, "sorted-union-stream": { "version": "2.1.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-x3lMfgd4gAUv9xqNSi27Sppjisc=", "dev": true, "requires": { "from2": "^1.3.0", @@ -29725,7 +28935,8 @@ "dependencies": { "from2": { "version": "1.3.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-iEE7qqX5pZfP3pIh2GmGzTwGHf0=", "dev": true, "requires": { "inherits": "~2.0.1", @@ -29734,12 +28945,14 @@ }, "isarray": { "version": "0.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "readable-stream": { "version": "1.1.14", - "bundled": true, + "resolved": false, + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -29750,14 +28963,16 @@ }, "string_decoder": { "version": "0.10.31", - "bundled": true, + "resolved": false, + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true } } }, "spdx-correct": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -29766,12 +28981,14 @@ }, "spdx-exceptions": { "version": "2.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", "dev": true }, "spdx-expression-parse": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", @@ -29780,12 +28997,14 @@ }, "spdx-license-ids": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", "dev": true }, "sshpk": { "version": "1.14.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "dev": true, "requires": { "asn1": "~0.2.3", @@ -29801,12 +29020,14 @@ }, "ssri": { "version": "6.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-zYOGfVHPhxyzwi8MdtdNyxv3IynWCIM4jYReR48lqu0VngxgH1c+C6CmipRdJ55eVByTJV/gboFEEI7TEQI8DA==", "dev": true }, "stream-each": { "version": "1.2.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -29815,7 +29036,8 @@ }, "stream-iterate": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-K9fHcpbBcCpGSIuK1B95hl7s1OE=", "dev": true, "requires": { "readable-stream": "^2.1.5", @@ -29824,17 +29046,20 @@ }, "stream-shift": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", "dev": true }, "strict-uri-encode": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=", "dev": true }, "string-width": { "version": "2.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", @@ -29843,17 +29068,20 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { "ansi-regex": "^3.0.0" @@ -29863,7 +29091,8 @@ }, "string_decoder": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "~5.1.0" @@ -29871,12 +29100,14 @@ }, "stringify-package": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-JIQqiWmLiEozOC0b0BtxZ/AOUtdUZHCBPgqIZ2kSJJqGwgb9neo44XdTHUC4HZSGqi03hOeB7W/E8rAlKnGe9g==", "dev": true }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -29884,17 +29115,20 @@ }, "strip-eof": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, "supports-color": { "version": "5.4.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -29902,7 +29136,8 @@ }, "tar": { "version": "4.4.6", - "bundled": true, + "resolved": false, + "integrity": "sha512-tMkTnh9EdzxyfW+6GK6fCahagXsnYk6kE6S9Gr9pjVdys769+laCTbodXDhPAjzVtEBazRgP0gYqOjnk9dQzLg==", "dev": true, "requires": { "chownr": "^1.0.1", @@ -29916,14 +29151,16 @@ "dependencies": { "yallist": { "version": "3.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", "dev": true } } }, "term-size": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { "execa": "^0.7.0" @@ -29931,17 +29168,20 @@ }, "text-table": { "version": "0.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, "through": { "version": "2.3.8", - "bundled": true, + "resolved": false, + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, "through2": { "version": "2.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { "readable-stream": "^2.1.5", @@ -29950,17 +29190,20 @@ }, "timed-out": { "version": "4.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", "dev": true }, "tiny-relative-date": { "version": "1.3.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A==", "dev": true }, "tough-cookie": { "version": "2.4.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { "psl": "^1.1.24", @@ -29969,7 +29212,8 @@ }, "tunnel-agent": { "version": "0.6.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { "safe-buffer": "^5.0.1" @@ -29977,28 +29221,33 @@ }, "tweetnacl": { "version": "0.14.5", - "bundled": true, + "resolved": false, + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true, "optional": true }, "typedarray": { "version": "0.0.6", - "bundled": true, + "resolved": false, + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, "uid-number": { "version": "0.0.6", - "bundled": true, + "resolved": false, + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", "dev": true }, "umask": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=", "dev": true }, "unique-filename": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", "dev": true, "requires": { "unique-slug": "^2.0.0" @@ -30006,7 +29255,8 @@ }, "unique-slug": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", "dev": true, "requires": { "imurmurhash": "^0.1.4" @@ -30014,7 +29264,8 @@ }, "unique-string": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { "crypto-random-string": "^1.0.0" @@ -30022,17 +29273,20 @@ }, "unpipe": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, "unzip-response": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", "dev": true }, "update-notifier": { "version": "2.5.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { "boxen": "^1.2.1", @@ -30049,7 +29303,8 @@ }, "url-parse-lax": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { "prepend-http": "^1.0.1" @@ -30057,22 +29312,26 @@ }, "util-deprecate": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, "util-extend": { "version": "1.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=", "dev": true }, "uuid": { "version": "3.3.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", "dev": true }, "validate-npm-package-license": { "version": "3.0.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { "spdx-correct": "^3.0.0", @@ -30081,7 +29340,8 @@ }, "validate-npm-package-name": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "dev": true, "requires": { "builtins": "^1.0.3" @@ -30089,7 +29349,8 @@ }, "verror": { "version": "1.10.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { "assert-plus": "^1.0.0", @@ -30099,7 +29360,8 @@ }, "wcwidth": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "dev": true, "requires": { "defaults": "^1.0.3" @@ -30107,7 +29369,8 @@ }, "which": { "version": "1.3.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -30115,12 +29378,14 @@ }, "which-module": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "wide-align": { "version": "1.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true, "requires": { "string-width": "^1.0.2" @@ -30128,7 +29393,8 @@ "dependencies": { "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "^1.0.0", @@ -30140,7 +29406,8 @@ }, "widest-line": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", "dev": true, "requires": { "string-width": "^2.1.1" @@ -30148,7 +29415,8 @@ }, "worker-farm": { "version": "1.6.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", "dev": true, "requires": { "errno": "~0.1.7" @@ -30156,7 +29424,8 @@ }, "wrap-ansi": { "version": "2.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { "string-width": "^1.0.1", @@ -30165,7 +29434,8 @@ "dependencies": { "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "^1.0.0", @@ -30177,12 +29447,14 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "write-file-atomic": { "version": "2.3.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { "graceful-fs": "^4.1.11", @@ -30192,27 +29464,32 @@ }, "xdg-basedir": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", "dev": true }, "xtend": { "version": "4.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", "dev": true }, "y18n": { "version": "4.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, "yallist": { "version": "2.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, "yargs": { "version": "11.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", "dev": true, "requires": { "cliui": "^4.0.0", @@ -30231,14 +29508,16 @@ "dependencies": { "y18n": { "version": "3.2.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", "dev": true } } }, "yargs-parser": { "version": "9.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "dev": true, "requires": { "camelcase": "^4.1.0" @@ -33609,12 +32888,6 @@ "ipaddr.js": "1.9.0" } }, - "proxy-middleware": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", - "integrity": "sha1-o/3xvvtzD5UZZYcqwvYHTGFHelY=", - "dev": true - }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -34205,13 +33478,6 @@ "worker-rpc": "^0.1.0" } }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true - }, "glob-parent": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", @@ -36132,15 +35398,6 @@ "dev": true, "requires": { "fsevents": "~2.1.2" - }, - "dependencies": { - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true - } } }, "rollup-plugin-sourcemaps": { @@ -41386,10 +40643,7 @@ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0" - } + "optional": true }, "normalize-path": { "version": "3.0.0", @@ -41766,13 +41020,6 @@ "to-regex-range": "^5.0.1" } }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true - }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -42099,10 +41346,7 @@ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0" - } + "optional": true }, "get-caller-file": { "version": "2.0.5", diff --git a/package.json b/package.json index 8c5e40935..5e135f8e7 100644 --- a/package.json +++ b/package.json @@ -63,6 +63,7 @@ "intl": "^1.2.5", "jquery": "^3.3.1", "ngx-highlight-js": "^2.1.1", + "ngx-virtual-scroller": "^4.0.3", "object-path": "^0.11.4", "reflect-metadata": "^0.1.12", "rxjs": "^6.6.2", diff --git a/projects/truly-ui/ng-package.json b/projects/truly-ui/ng-package.json index bb8f78662..0bd46b7d5 100644 --- a/projects/truly-ui/ng-package.json +++ b/projects/truly-ui/ng-package.json @@ -4,5 +4,11 @@ "deleteDestPath": false, "lib": { "entryFile": "src/public_api.ts" - } + }, + "whitelistedNonPeerDependencies": [ + "ngx-virtual-scroller", + "object-path", + "ts-md5", + "string-format" + ] } diff --git a/projects/truly-ui/package.json b/projects/truly-ui/package.json index 0af03d1aa..e7148da7c 100644 --- a/projects/truly-ui/package.json +++ b/projects/truly-ui/package.json @@ -30,5 +30,13 @@ , "dependencies": { "tslib": "^2.0.0" + }, + + "peerDependencies": { + "ngx-virtual-scroller": "^4.0.3", + "object-path": "^0.11.4", + "ts-md5": "^1.2.4", + "string-format": "^2.0.0" } + } diff --git a/projects/truly-ui/src/components/autocomplete/autocomplete-theme.scss b/projects/truly-ui/src/components/autocomplete/autocomplete-theme.scss index 08f7e7648..7e357bae5 100644 --- a/projects/truly-ui/src/components/autocomplete/autocomplete-theme.scss +++ b/projects/truly-ui/src/components/autocomplete/autocomplete-theme.scss @@ -8,11 +8,37 @@ $success: map-deep-get($theme, 'success'); $warning: map-deep-get($theme, 'warning'); + border: 1px solid map-deep-get($basic, "default", "border"); + background: rgba( map-deep-get($basic, "lighter", "background"), 0.5); + + &::-webkit-scrollbar { + background: map-deep-get($basic, "lighter", "background"); + } + + &::-webkit-scrollbar-corner { + background: map-deep-get($basic, "lighter", "background"); + } + + &::-webkit-scrollbar-track { + background: map-deep-get($basic, "default", "border"); + } + + &::-webkit-scrollbar-thumb { + background: map-deep-get($primary, "default", "background"); + } + + .ui-list-item { + &.selected { + background: map-deep-get($primary, "default", "background"); + color: white !important; + } + } + } @mixin tl-autocomplete-theme( $theme ) { - .ui-autocomplete-wrapper { + .ui-scroll-view { &.basic { @include _tl-autocomplete-theme-schema($theme, 'basic') diff --git a/projects/truly-ui/src/components/autocomplete/autocomplete.html b/projects/truly-ui/src/components/autocomplete/autocomplete.html index 064463a8b..14996611b 100644 --- a/projects/truly-ui/src/components/autocomplete/autocomplete.html +++ b/projects/truly-ui/src/components/autocomplete/autocomplete.html @@ -28,6 +28,8 @@ (keydown.ArrowUp)="handleKeyArrowUp($event)" (keydown.ArrowDown)="handleKeyArrowDown($event)" (keydown.escape)="handleKeyEscape($event)" + selectedItem + [selected]="value" class="ui-input" [(ngModel)]="description" (keydown.enter)="handleKeyEnter($event)" @@ -52,7 +54,8 @@ [cdkConnectedOverlayOrigin]="trigger" [cdkConnectedOverlayBackdropClass]="'cdk-overlay-transparent-backdrop'" [cdkConnectedOverlayOpen]="isOpen"> - implements OnChanges, @Input() height = '23px'; + @Input() containerHeight = '200px'; + @Input() searchBy = ''; @Input() label = ''; @@ -157,6 +159,8 @@ export class TlAutoComplete extends ValueAccessorBase implements OnChanges, public nothingFound = false; + public tempContainerHeight; + public messageLoading = this.i18n.getLocale().AutoComplete.messageLoading; public nothingFoundMessage = this.i18n.getLocale().AutoComplete.nothingFoundMessage; @@ -201,6 +205,7 @@ export class TlAutoComplete extends ValueAccessorBase implements OnChanges, ngAfterViewInit() { this.keyManager = new ActiveDescendantKeyManager( this.listItems ); + this.tempContainerHeight = this.containerHeight; this.validateKeyValue(); } @@ -261,7 +266,7 @@ export class TlAutoComplete extends ValueAccessorBase implements OnChanges, close() { if ( !this.control.disabled ) { - this.value = ''; + this.value = null; this.setDescriptionValue( '' ); this.selected = null; } @@ -455,10 +460,27 @@ export class TlAutoComplete extends ValueAccessorBase implements OnChanges, this.handleModelCached(); } this.dataSource.setData( value ); + this.loading = false; + // this.setContainerHeight( value ); this.setNotFound( value.length === 0 ); this.setFirstItemActive(); } + setContainerHeight( data ) { + if ( this.filtering ) { + const currentHeight = parseInt(this.containerHeight, 10); + const maxContent = Math.round(currentHeight / this.rowHeight); + if ( data.length === 0 ) { + this.tempContainerHeight = this.rowHeight + 'px'; + } else if ( data.length <= maxContent ) { + this.tempContainerHeight = (data.length * this.rowHeight) + 'px'; + } else { + this.tempContainerHeight = this.containerHeight; + } + this.change.detectChanges(); + } + } + private setFirstItemActive() { if ( this.keyManager ) { setTimeout( () => { @@ -470,6 +492,7 @@ export class TlAutoComplete extends ValueAccessorBase implements OnChanges, private listenLoadData() { this.subscription.add( this.dataSource.loadMoreData.subscribe( ( data: any ) => { this.lazyLoad.emit( { skip: data.skip, limit: data.limit, ...this.getFilters( this.description ) } ); + this.loading = true; } ) ); } @@ -520,9 +543,6 @@ export class TlAutoComplete extends ValueAccessorBase implements OnChanges, if ( $event ) { this.dataSource.setArray( $event.length ); this.setUpData( $event ); - setTimeout( () => { - this.keyManager.setActiveItem( 0 ); - }, 100 ); return; } this.dataSource.setData( [] ); @@ -557,6 +577,9 @@ export class TlAutoComplete extends ValueAccessorBase implements OnChanges, ngOnDestroy() { this.subscription.unsubscribe(); + if ( this.dataSource ) { + this.dataSource.unsubscribe(); + } } } diff --git a/projects/truly-ui/src/components/autocomplete/index.ts b/projects/truly-ui/src/components/autocomplete/index.ts index 0c6ef35fd..f062d003f 100644 --- a/projects/truly-ui/src/components/autocomplete/index.ts +++ b/projects/truly-ui/src/components/autocomplete/index.ts @@ -37,6 +37,7 @@ import { A11yModule } from '@angular/cdk/a11y'; import { LoaderModule } from '../loader/index'; import { MiscModule } from '../misc/index'; import {TlAutocompleteTemplate} from './components/autocomplete-template'; +import {SelectedValidatorDirective} from './selected-validator'; @NgModule( { imports: [ @@ -58,10 +59,12 @@ import {TlAutocompleteTemplate} from './components/autocomplete-template'; declarations: [ TlAutoComplete, TlAutocompleteTemplate, + SelectedValidatorDirective ], exports: [ TlAutoComplete, - TlAutocompleteTemplate + TlAutocompleteTemplate, + SelectedValidatorDirective ], } ) export class AutoCompleteModule { diff --git a/projects/truly-ui/src/components/autocomplete/selected-validator.ts b/projects/truly-ui/src/components/autocomplete/selected-validator.ts new file mode 100644 index 000000000..b05aba5af --- /dev/null +++ b/projects/truly-ui/src/components/autocomplete/selected-validator.ts @@ -0,0 +1,21 @@ +import {AbstractControl, NG_VALIDATORS, Validator} from '@angular/forms'; +import {Directive, Input} from '@angular/core'; + +@Directive({ + selector: '[selectedItem]', + providers: [{provide: NG_VALIDATORS, useExisting: SelectedValidatorDirective, multi: true}] +}) +export class SelectedValidatorDirective implements Validator { + + @Input() selected; + + validate(control: AbstractControl): {[key: string]: any} | null { + if ( !control.value ) { + return null; + } + if ( control.value && !this.selected ) { + return { item: 'Invalid Item' }; + } + return null; + } +} diff --git a/projects/truly-ui/src/components/chatlist/chatlist.ts b/projects/truly-ui/src/components/chatlist/chatlist.ts index 7f0be65fe..9715e8026 100644 --- a/projects/truly-ui/src/components/chatlist/chatlist.ts +++ b/projects/truly-ui/src/components/chatlist/chatlist.ts @@ -21,7 +21,7 @@ */ import { Component, ElementRef, EventEmitter, Input, Renderer2, ViewChild, Output, - OnDestroy, OnInit, ChangeDetectorRef + OnDestroy, OnInit, ChangeDetectorRef, OnChanges, SimpleChanges } from '@angular/core'; import {ChatStatus} from './interfaces/chat-status.interface'; import {ChatContact} from './interfaces/chat-contact.interface'; @@ -38,7 +38,7 @@ let uniqueIdentifier = 0; templateUrl: './chatlist.html', styleUrls: ['./chatlist.scss'], }) -export class TlChatList implements OnInit, OnDestroy { +export class TlChatList implements OnInit, OnChanges, OnDestroy { @Input() maxHeight = '450px'; @@ -63,22 +63,9 @@ export class TlChatList implements OnInit, OnDestroy { @Input() user: ChatContact; @Input('contacts') - set contacts(data: ChatContact[]) { - if (data && data.length > 0 && this.user) { - if (!this.user.id) { - throw Error('User id not found'); - } - this._dataSource = data - .filter((item) => item.id !== this.user.id) - .map((contact) => { - return { - ...contact, - status: this.getStatus(contact) - }; - }); - } + set contacts( data: ChatContact[] ) { + this._dataSource = data; } - get contacts(): ChatContact[] { return this._dataSource; } @@ -135,6 +122,25 @@ export class TlChatList implements OnInit, OnDestroy { this.messages = this.chatService.getAllMessages( this.id ); } + ngOnChanges(changes: SimpleChanges) { + if ( + changes['contacts'].currentValue && + changes['contacts'].currentValue.length > 0 && + changes['user'].currentValue) { + if (!changes['user'].currentValue.id) { + throw Error('User id not found'); + } + this._dataSource = changes['contacts'].currentValue + .filter((item) => item.id !== changes['user'].currentValue.id) + .map((contact) => { + return { + ...contact, + status: this.getStatus(contact) + }; + }); + } + } + listenChangeStatus() { this.subscription.add(this.chatService.changeStatus.subscribe((value: { chatId: string, status: Status }) => { if (value.chatId === this.id) { diff --git a/projects/truly-ui/src/components/checkbox/checkbox.html b/projects/truly-ui/src/components/checkbox/checkbox.html index fdcb1aebb..e6298bda3 100644 --- a/projects/truly-ui/src/components/checkbox/checkbox.html +++ b/projects/truly-ui/src/components/checkbox/checkbox.html @@ -17,6 +17,6 @@ - {{label}} + {{label}} diff --git a/projects/truly-ui/src/components/checkbox/checkbox.scss b/projects/truly-ui/src/components/checkbox/checkbox.scss index d3ac676c0..6b14a3da3 100644 --- a/projects/truly-ui/src/components/checkbox/checkbox.scss +++ b/projects/truly-ui/src/components/checkbox/checkbox.scss @@ -85,9 +85,9 @@ } } -.-label { +.checkbox-label { font-family: "Segoe UI", Lato, 'sans-serif', "Arial"; - font-size: 1em !important; + font-size: 12px; font-weight: normal !important; position: relative; left: 5px; @@ -95,6 +95,6 @@ user-select: none; } -.-label:hover { +.checkbox-label:hover { cursor: pointer; } diff --git a/projects/truly-ui/src/components/checkbox/checkbox.ts b/projects/truly-ui/src/components/checkbox/checkbox.ts index 3ce4464dc..b76fa9004 100644 --- a/projects/truly-ui/src/components/checkbox/checkbox.ts +++ b/projects/truly-ui/src/components/checkbox/checkbox.ts @@ -20,27 +20,31 @@ SOFTWARE. */ import { - Component, Input, ViewChild, Output, EventEmitter, ContentChild, OnInit, AfterViewInit, AfterContentInit, - SimpleChanges, OnChanges + Component, Input, ViewChild, Output, EventEmitter, OnInit, + SimpleChanges, OnChanges, Optional, Self } from '@angular/core'; -import { MakeProvider } from '../core/base/value-accessor-provider'; -import { FormControlName, NG_ASYNC_VALIDATORS, NG_VALIDATORS, NgModel } from '@angular/forms'; +import { NgControl } from '@angular/forms'; import { ValueAccessorBase } from '../input/core/value-accessor'; @Component( { selector: 'tl-checkbox', templateUrl: './checkbox.html', - styleUrls: [ './checkbox.scss' ], - providers: [ - [ MakeProvider( TlCheckBox ) ] - ] + styleUrls: [ './checkbox.scss' ] } ) export class TlCheckBox extends ValueAccessorBase implements OnInit, OnChanges { - @Input() label = ''; + @Input('checked') + set checked( value: boolean ) { + this._checked = value; + this.value = value; + } - @Input() checked = false; + get checked() { + return this._checked; + } + + @Input() label = ''; @Input() tabindex = '0'; @@ -50,27 +54,37 @@ export class TlCheckBox extends ValueAccessorBase implements OnInit, On @Input() indeterminate = false; - @ViewChild( 'checkbox', {static: true} ) checkbox; - - @ContentChild( NgModel, {static: true} ) model: NgModel; + @Input() labelWidth = 'auto'; - @ContentChild( FormControlName, {static: true} ) controlName: FormControlName; + @ViewChild( 'checkbox', {static: true} ) checkbox; @Output() checkBox: EventEmitter = new EventEmitter(); @Output() focusBox: EventEmitter = new EventEmitter(); - constructor() { + private _checked = false; + + constructor(@Optional() @Self() public ngControl: NgControl) { super(); + this.setControl(); } ngOnInit() { - this.value = this.checked; if ( !this.label ) { throw new EvalError( 'The [label] property is required!' ); } } + get control() { + return this.ngControl?.control; + } + + setControl() { + if ( this.ngControl ) { + this.ngControl.valueAccessor = this; + } + } + check( boolean ) { if ( this.checkbox.nativeElement.indeterminate ) { this.checkbox.nativeElement.indeterminate = false; diff --git a/projects/truly-ui/src/components/colorpicker/colorpicker.ts b/projects/truly-ui/src/components/colorpicker/colorpicker.ts index e4e5050b1..a3232dc12 100644 --- a/projects/truly-ui/src/components/colorpicker/colorpicker.ts +++ b/projects/truly-ui/src/components/colorpicker/colorpicker.ts @@ -180,7 +180,7 @@ export class TlColorPicker extends ValueAccessorBase implements OnInit, } keyDown($event) { - switch ($event.keyCode) { + switch ($event.code) { case KeyEvent.TAB: this.isOpen = !this.isOpen; break; diff --git a/projects/truly-ui/src/components/core/classes/datasource-list.ts b/projects/truly-ui/src/components/core/classes/datasource-list.ts index 2b5bd3e2e..a2f407d28 100644 --- a/projects/truly-ui/src/components/core/classes/datasource-list.ts +++ b/projects/truly-ui/src/components/core/classes/datasource-list.ts @@ -53,7 +53,7 @@ export class DataSourceList extends DataSource { this.resetData(); } - connect( collectionViewer: CollectionViewer ): Observable<(string | undefined)[]> { + connect( collectionViewer?: CollectionViewer ): Observable<(string | undefined)[]> { this.subscription.add( collectionViewer.viewChange.subscribe( range => { const startPage = this.getPageForIndex( range.start ); const endPage = this.getPageForIndex( range.end - 1 ); @@ -65,6 +65,10 @@ export class DataSourceList extends DataSource { } disconnect(): void { + // this.subscription.unsubscribe(); + } + + unsubscribe() { this.subscription.unsubscribe(); } @@ -98,8 +102,7 @@ export class DataSourceList extends DataSource { public setData(data: Array) { this.cachedData = data; - this.arrayTotal.splice(this.currentPage * this.pageSize, this.pageSize, - ...data); + this.arrayTotal.splice(this.currentPage * this.pageSize, this.pageSize, ...data); this.dataStream.next( this.arrayTotal ); if ( data.length === this.pageSize) { if ( !this.fetchedPages.has(0) ) { diff --git a/projects/truly-ui/src/components/core/enums/key-events.ts b/projects/truly-ui/src/components/core/enums/key-events.ts index e49db9456..6cd7f03bd 100644 --- a/projects/truly-ui/src/components/core/enums/key-events.ts +++ b/projects/truly-ui/src/components/core/enums/key-events.ts @@ -20,19 +20,16 @@ SOFTWARE. */ export enum KeyEvent { - ARROWUP = 38, - ARROWDOWN = 40, - ARROWLEFT = 37, - ARROWRIGHT = 39, - PAGEUP = 33, - PAGEDOWN = 34, - END = 35, - HOME = 36, - ENTER = 13, - ESCAPE = 27, - TAB = 9, - SPACE = 32, - DELETE = 46, - BACKSPACE = 8, - SHIFT = 16 + ARROWUP = 'ArrowUp', + ARROWDOWN = 'ArrowDown', + ARROWLEFT = 'ArrowLeft', + ARROWRIGHT = 'ArrowRight', + END = 'End', + HOME = 'Home', + ENTER = 'Enter', + ESCAPE = 'Escape', + TAB = 'Tab', + SPACE = 'Space', + DELETE = 'Delete', + BACKSPACE = 'Backspace', } diff --git a/projects/truly-ui/src/components/datatable/datatable-theme.scss b/projects/truly-ui/src/components/datatable/datatable-theme.scss index fededda3c..542a0a77a 100644 --- a/projects/truly-ui/src/components/datatable/datatable-theme.scss +++ b/projects/truly-ui/src/components/datatable/datatable-theme.scss @@ -78,11 +78,12 @@ color: map-deep-get($primary, "default", "foreground") !important; } - > .ui-row:focus{ - background: map-deep-get($primary, "default", "background") !important; - color: map-deep-get($primary, "default", "foreground") !important; + > .ui-row { + &.selected { + background: map-deep-get($primary, "default", "background") !important; + color: map-deep-get($primary, "default", "foreground") !important; + } } - > .ui-row:hover:not(.ui-selected-row){ background: map-deep-get($basic, "lighter", "background"); } diff --git a/projects/truly-ui/src/components/datatable/datatable.ts b/projects/truly-ui/src/components/datatable/datatable.ts index fa50cb9ad..6c4357bf3 100644 --- a/projects/truly-ui/src/components/datatable/datatable.ts +++ b/projects/truly-ui/src/components/datatable/datatable.ts @@ -179,7 +179,7 @@ export class TlDatatable implements AfterContentInit, OnChanges { } setFocus() { - this.datatableContent.setFirstItem(); + this.datatableContent.setSelectedItem(); } getScrollingHorizontal(): Observable { diff --git a/projects/truly-ui/src/components/datatable/parts/column-filter/datatable-column-filter.html b/projects/truly-ui/src/components/datatable/parts/column-filter/datatable-column-filter.html index e76794d49..e9450f1c6 100644 --- a/projects/truly-ui/src/components/datatable/parts/column-filter/datatable-column-filter.html +++ b/projects/truly-ui/src/components/datatable/parts/column-filter/datatable-column-filter.html @@ -24,6 +24,7 @@ +
+ (dblclick)="rowDbClick.emit({ row:row, index: index })"> diff --git a/projects/truly-ui/src/components/datatable/parts/content/datatable-content.scss b/projects/truly-ui/src/components/datatable/parts/content/datatable-content.scss index 06d9663e8..9a16e5ea2 100644 --- a/projects/truly-ui/src/components/datatable/parts/content/datatable-content.scss +++ b/projects/truly-ui/src/components/datatable/parts/content/datatable-content.scss @@ -1,5 +1,6 @@ .ui-datatable-content{ overflow: hidden; + outline: none; } .ui-box-notfound-records{ diff --git a/projects/truly-ui/src/components/datatable/parts/content/datatable-content.ts b/projects/truly-ui/src/components/datatable/parts/content/datatable-content.ts index 047cb0fae..b97f4c2de 100644 --- a/projects/truly-ui/src/components/datatable/parts/content/datatable-content.ts +++ b/projects/truly-ui/src/components/datatable/parts/content/datatable-content.ts @@ -23,15 +23,15 @@ import { AfterViewInit, - ChangeDetectionStrategy, - Component, EventEmitter, Input, OnChanges, + ChangeDetectionStrategy, ChangeDetectorRef, + Component, ElementRef, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, QueryList, SimpleChanges, ViewChild, ViewChildren } from '@angular/core'; import { TlDatatableRow } from '../row/datatable-row'; import { TlDatatableCell } from '../cell/datatable-cell'; -import { Observable } from 'rxjs'; +import {Observable, Subscription} from 'rxjs'; import { DataSource } from '@angular/cdk/collections'; -import { FocusKeyManager } from '@angular/cdk/a11y'; +import {ActiveDescendantKeyManager, FocusKeyManager} from '@angular/cdk/a11y'; import { CdkVirtualScrollViewport, ScrollDispatcher } from '@angular/cdk/scrolling'; import { TlDatatableColumn } from '../column/datatable-column'; @@ -39,6 +39,8 @@ import { I18nService } from '../../../i18n/i18n.service'; import { DatatableDataSource } from '../../services/datatable-datasource.service'; import { ContextMenuService } from '../../../contextmenu/services/contextmenu.service'; import { ContextMenuInterface } from '../../../contextmenu/interfaces/context-menu.interface'; +import {scrollIntoView} from '../../../core/helper/scrollIntoView'; +import {TlDatatableFilterService} from '../../services/datatable-filter.service'; @Component( { selector: 'tl-datatable-content', @@ -47,7 +49,7 @@ import { ContextMenuInterface } from '../../../contextmenu/interfaces/context-me providers: [ContextMenuService], changeDetection: ChangeDetectionStrategy.OnPush, } ) -export class TlDatatableContent implements AfterViewInit { +export class TlDatatableContent implements AfterViewInit, OnDestroy { @Input('dataSource') dataSource: Array | Observable> | DataSource; @@ -71,17 +73,26 @@ export class TlDatatableContent implements AfterViewInit { @ViewChildren(TlDatatableRow) items: QueryList; - private keyManager: FocusKeyManager; + @ViewChild('datableContent') datableContent: ElementRef; - constructor(private i18n: I18nService, private contextMenuService: ContextMenuService) {} + private keyManager: ActiveDescendantKeyManager; + + private subscription = new Subscription(); + + constructor(private i18n: I18nService, + private datatableFilterService: TlDatatableFilterService, + private changes: ChangeDetectorRef, + private contextMenuService: ContextMenuService) {} ngAfterViewInit() { - this.keyManager = new FocusKeyManager(this.items).withTypeAhead(); + this.keyManager = new ActiveDescendantKeyManager(this.items).withTypeAhead(); + this.setFirstItemSelected(); } onRowClick( rowItem: TlDatatableRow, row, index ) { this.rowClick.emit({ row: row, index: index }); this.keyManager.setActiveItem(rowItem); + this.setContentFocus(); } contextmenu($event, rowItem: TlDatatableRow, row, index ) { @@ -91,6 +102,10 @@ export class TlDatatableContent implements AfterViewInit { } } + setContentFocus() { + this.datableContent.nativeElement.focus(); + } + isEmpty() { return ( (this.dataSource as Array).length === 0 || @@ -102,13 +117,13 @@ export class TlDatatableContent implements AfterViewInit { return this.i18n.getLocale().Datatable.notFoundText; } - mouseDown($event) { + mouseDown( $event ) { if ( this.dataSource instanceof DatatableDataSource) { ( this.dataSource as DatatableDataSource ).setNavigating( true ); } } - mouseUp($event) { + mouseUp( $event ) { if ( this.dataSource instanceof DatatableDataSource) { ( this.dataSource as DatatableDataSource ).setNavigating( false ); } @@ -116,14 +131,33 @@ export class TlDatatableContent implements AfterViewInit { onKeydown(event) { this.keyManager.onKeydown(event); + if (this.keyManager.activeItem) { + scrollIntoView( this.keyManager.activeItem.element.nativeElement ); + } } onKeyup() { this.rowSelect.emit( this.keyManager.activeItem ); } - setFirstItem() { - this.keyManager.setFirstItemActive(); + setFirstItemSelected() { + setTimeout(() => { + this.setContentFocus(); + this.keyManager.setActiveItem(0); + this.changes.detectChanges(); + }, 100); + } + + setSelectedItem() { + setTimeout(() => { + this.setContentFocus(); + this.keyManager.setActiveItem( this.keyManager.activeItemIndex ); + this.changes.detectChanges(); + }, 100); + } + + ngOnDestroy() { + this.subscription.unsubscribe(); } } diff --git a/projects/truly-ui/src/components/datatable/parts/header/datatable-header.html b/projects/truly-ui/src/components/datatable/parts/header/datatable-header.html index b477cbfc8..03b3363b2 100644 --- a/projects/truly-ui/src/components/datatable/parts/header/datatable-header.html +++ b/projects/truly-ui/src/components/datatable/parts/header/datatable-header.html @@ -23,8 +23,8 @@
- - + diff --git a/projects/truly-ui/src/components/datatable/parts/header/datatable-header.ts b/projects/truly-ui/src/components/datatable/parts/header/datatable-header.ts index 2aee04c37..b762f3170 100644 --- a/projects/truly-ui/src/components/datatable/parts/header/datatable-header.ts +++ b/projects/truly-ui/src/components/datatable/parts/header/datatable-header.ts @@ -20,7 +20,7 @@ SOFTWARE. */ -import { AfterViewInit, Component, forwardRef, Inject, ViewChild, ElementRef, OnDestroy } from '@angular/core'; +import {AfterViewInit, Component, forwardRef, Inject, ViewChild, ElementRef, OnDestroy, Output, EventEmitter} from '@angular/core'; import { TlDatatable } from '../../datatable'; import { DatatableHelpersService } from '../../services/datatable-helpers.service'; import { TlDatatabaleColumnFilter } from '../column-filter/datatable-column-filter'; @@ -41,6 +41,8 @@ export class TlDatatableHeader implements AfterViewInit, OnDestroy { @ViewChild('datatableHeader', {static: true} ) datatableHeader: ElementRef; + @Output() keydownFilter: EventEmitter = new EventEmitter(); + private subscription = new Subscription(); private filderOrder = 1; diff --git a/projects/truly-ui/src/components/datatable/parts/row/datatable-row.ts b/projects/truly-ui/src/components/datatable/parts/row/datatable-row.ts index 76308af80..553252d6a 100644 --- a/projects/truly-ui/src/components/datatable/parts/row/datatable-row.ts +++ b/projects/truly-ui/src/components/datatable/parts/row/datatable-row.ts @@ -30,7 +30,7 @@ import { ViewContainerRef, HostBinding, HostListener, ElementRef } from '@angular/core'; import { FilterOptionsService } from '../../services/datatable-filter-options.service'; -import { FocusableOption } from '@angular/cdk/a11y'; +import {FocusableOption, Highlightable} from '@angular/cdk/a11y'; @Component( { selector: 'tl-datatable-row', @@ -50,7 +50,9 @@ import { FocusableOption } from '@angular/cdk/a11y'; `], exportAs: 'rowItem' } ) -export class TlDatatableRow implements OnInit, FocusableOption { +export class TlDatatableRow implements OnInit, Highlightable { + + public selected = false; @Input() content; @@ -58,14 +60,20 @@ export class TlDatatableRow implements OnInit, FocusableOption { @Input('index') index; - @HostBinding('attr.tabindex') tabIndex = -1; + @HostBinding( 'class.selected') get isSelected() { + return this.selected; + } constructor(public element: ElementRef) {} ngOnInit() {} - focus() { - this.element.nativeElement.focus(); + setActiveStyles(): void { + this.selected = true; + } + + setInactiveStyles(): void { + this.selected = false; } } diff --git a/projects/truly-ui/src/components/datatable/services/datatable-filter.service.ts b/projects/truly-ui/src/components/datatable/services/datatable-filter.service.ts index 0bb27fa4d..1dd1d0987 100644 --- a/projects/truly-ui/src/components/datatable/services/datatable-filter.service.ts +++ b/projects/truly-ui/src/components/datatable/services/datatable-filter.service.ts @@ -41,6 +41,8 @@ export class TlDatatableFilterService { private filterArray = []; + public keydownFilter: Subject = new Subject(); + constructor( private filterConstraints: TlDatatableFilterConstraints ) {} onInicializeFilterService( datatable ) { @@ -70,7 +72,6 @@ export class TlDatatableFilterService { return this.existsFilter() ? this.filter.filters : {}; } - filterWithData(data, scrolling = false) { if (! this.existsFilter()) { return data; } if ( scrolling ) { return this.filtredData; } diff --git a/projects/truly-ui/src/components/dialog/dialog-confirmation/dialog-confirmation.ts b/projects/truly-ui/src/components/dialog/dialog-confirmation/dialog-confirmation.ts index a2e57b08e..e6c9e8ca5 100644 --- a/projects/truly-ui/src/components/dialog/dialog-confirmation/dialog-confirmation.ts +++ b/projects/truly-ui/src/components/dialog/dialog-confirmation/dialog-confirmation.ts @@ -68,7 +68,7 @@ export class TlDialogConfirmation implements OnInit { } onkeyup( $event: KeyboardEvent ) { - switch ( $event.keyCode ) { + switch ( $event.code ) { case KeyEvent.ARROWLEFT: this.setPreviousButton(); break; diff --git a/projects/truly-ui/src/components/dialog/dialog-default-behavior.ts b/projects/truly-ui/src/components/dialog/dialog-default-behavior.ts index df6aae17b..71fec392f 100644 --- a/projects/truly-ui/src/components/dialog/dialog-default-behavior.ts +++ b/projects/truly-ui/src/components/dialog/dialog-default-behavior.ts @@ -27,7 +27,7 @@ export class DialogDefaultBehavior { constructor() {} onKeyDown( $event: KeyboardEvent ) { - switch ( $event.keyCode ) { + switch ( $event.code ) { case KeyEvent.TAB: $event.preventDefault(); $event.stopPropagation(); diff --git a/projects/truly-ui/src/components/dropdownicon/dropdownicon.html b/projects/truly-ui/src/components/dropdownicon/dropdownicon.html index 2df21b925..46f8a430a 100644 --- a/projects/truly-ui/src/components/dropdownicon/dropdownicon.html +++ b/projects/truly-ui/src/components/dropdownicon/dropdownicon.html @@ -12,7 +12,7 @@ implements OnInit, After public isOpen: boolean; constructor( @Optional() @Inject( NG_VALIDATORS ) validators: Array, @Optional() @Inject( NG_ASYNC_VALIDATORS ) - asyncValidators: Array ) { + asyncValidators: Array, private change: ChangeDetectorRef ) { super( validators, asyncValidators ); } @@ -90,6 +90,11 @@ export class TlDropdownIcon extends ElementBase implements OnInit, After } } + onBackdropClick() { + this.isOpen = false; + this.change.detectChanges(); + } + onSelectOption( $event ) { this.optionSelected = $event; this.value = this.optionSelected.option.item[this.keyValue]; diff --git a/projects/truly-ui/src/components/dropdownlist/dropdownlist.html b/projects/truly-ui/src/components/dropdownlist/dropdownlist.html index e21329766..4f3ea579d 100644 --- a/projects/truly-ui/src/components/dropdownlist/dropdownlist.html +++ b/projects/truly-ui/src/components/dropdownlist/dropdownlist.html @@ -31,7 +31,7 @@ implements OnInit, On [KeyEvent.ARROWUP]: () => this.stopEvent( $event ), [KeyEvent.ESCAPE]: () => this.handleEscape( $event ) }; - if ( keyEvent[ $event.keyCode ] ) { - keyEvent[ $event.keyCode ](); + if ( keyEvent[ $event.code ] ) { + keyEvent[ $event.code ](); } } @@ -177,6 +177,7 @@ export class TlDropDownList extends ValueAccessorBase implements OnInit, On return this.input.nativeElement; } + onFindByLetter( value: string ) { this.handleSelectInLetter( value ); } @@ -209,6 +210,11 @@ export class TlDropDownList extends ValueAccessorBase implements OnInit, On } } + onBackdropClick() { + this.isOpen = false; + this.changes.detectChanges(); + } + private initializeComponent() { this.setUpComponent(); this.validateData(); diff --git a/projects/truly-ui/src/components/editor/editor.ts b/projects/truly-ui/src/components/editor/editor.ts index c8bbcb0da..f18f81f7e 100644 --- a/projects/truly-ui/src/components/editor/editor.ts +++ b/projects/truly-ui/src/components/editor/editor.ts @@ -21,27 +21,22 @@ */ import { AfterContentInit, - AfterViewInit, - ChangeDetectorRef, Component, - ContentChild, ElementRef, EventEmitter, - forwardRef, Input, - OnChanges, + OnChanges, Optional, Output, - Renderer2, + Renderer2, Self, SimpleChanges, TemplateRef, ViewChild, - ViewContainerRef, } from '@angular/core'; import {trigger, transition, style, animate} from '@angular/animations'; import {ToolbarConfigModel} from './model/toolbar-config.model'; import {ToolbarConfig} from './interfaces/toolbar-config'; import {I18nService} from '../i18n/i18n.service'; -import {ControlValueAccessor, FormControlName, NG_VALUE_ACCESSOR, NgModel} from '@angular/forms'; +import {ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl} from '@angular/forms'; import {DomSanitizer, SafeHtml} from '@angular/platform-browser'; import {Subscription} from 'rxjs'; import {EditorService} from './services/editor.service'; @@ -51,11 +46,6 @@ import {FieldContent} from './interfaces/field-content'; selector: 'tl-editor', templateUrl: './editor.html', styleUrls: ['./editor.scss'], - providers: [{ - provide: NG_VALUE_ACCESSOR, - useExisting: forwardRef(() => TlEditor), - multi: true - }], animations: [ trigger( 'enterAnimation', [ @@ -91,10 +81,6 @@ export class TlEditor implements ControlValueAccessor, AfterContentInit, OnChang @Input() label = ''; - @ContentChild(NgModel, {static: true}) ngModel: NgModel; - - @ContentChild(FormControlName, {static: true}) formControlName: FormControlName; - @ViewChild('contentEditor', {static: true}) contentEditor: ElementRef; @ViewChild('linkBox', {static: true}) linkBox; @@ -105,21 +91,6 @@ export class TlEditor implements ControlValueAccessor, AfterContentInit, OnChang @Output() saveContent = new EventEmitter(); - @Input('formControl') - set control(item) { - this._control = item; - } - - get control() { - if (this._control) { - return this._control; - } - if (this.formControlName || this.ngModel) { - return this.formControlName.control ? this.formControlName.control : this.ngModel; - } - return this._control; - } - public fontCollection = []; public fontSizeCollection = []; @@ -169,8 +140,6 @@ export class TlEditor implements ControlValueAccessor, AfterContentInit, OnChang private interval; - private _control; - private listenerRegistered = false; private subscription = new Subscription(); @@ -184,7 +153,9 @@ export class TlEditor implements ControlValueAccessor, AfterContentInit, OnChang constructor(private i18n: I18nService, private renderer: Renderer2, private editorService: EditorService, - private sanitizer: DomSanitizer) { + private sanitizer: DomSanitizer, + @Optional() @Self() public ngControl: NgControl) { + this.setControl(); this.fontCollection = [ {description: 'Arial', value: 'Arial'}, {description: 'Verdana', value: 'Verdana'}, @@ -205,6 +176,16 @@ export class TlEditor implements ControlValueAccessor, AfterContentInit, OnChang ]; } + get control() { + return this.ngControl?.control; + } + + setControl() { + if ( this.ngControl ) { + this.ngControl.valueAccessor = this; + } + } + ngAfterContentInit() { this.setContentFocus(); this.toolbarConfig = Object.assign(new ToolbarConfigModel(this.i18n), this.toolbarConfig); @@ -215,10 +196,7 @@ export class TlEditor implements ControlValueAccessor, AfterContentInit, OnChang if ( this.control ) { this.subscription.add(this.control.valueChanges.subscribe(( values ) => { if (!this.listenerRegistered) { - setTimeout(() => { - this.handleFieldsPropagation(); - this.listenerRegistered = true; - }, 500); + this.handleFieldsPropagation(); } })); } @@ -340,6 +318,7 @@ export class TlEditor implements ControlValueAccessor, AfterContentInit, OnChang onMouseUp() { this.toggleLink = false; + this.touch(); this.setAnchorNode(); if (this.cursorHighlight) { document.execCommand('hiliteColor', false, '#f0ef99'); @@ -515,7 +494,6 @@ export class TlEditor implements ControlValueAccessor, AfterContentInit, OnChang return !!this.cursorSelection.baseNode.parentNode.closest(element); } - private preventPropagation(fieldText) { this.listenerRegistered = true; fieldText.addEventListener('input', (e) => { @@ -576,6 +554,19 @@ export class TlEditor implements ControlValueAccessor, AfterContentInit, OnChang } } + private recoverCursorPosition() { + setTimeout(() => { + const sel = document.getSelection(); + const range = new Range(); + if (this.selection.baseNode) { + range.selectNodeContents(this.contentEditor.nativeElement); + range.collapse(false); + sel.removeAllRanges(); + sel.addRange(range); + } + }); + } + private resetCursor() { this.wrapper.nativeElement.style.cursor = 'auto'; } @@ -590,6 +581,7 @@ export class TlEditor implements ControlValueAccessor, AfterContentInit, OnChang writeValue(value: any): void { this.content = this.sanitizer.bypassSecurityTrustHtml(value); + this.recoverCursorPosition(); } registerOnChange(fn: any): void { @@ -600,9 +592,13 @@ export class TlEditor implements ControlValueAccessor, AfterContentInit, OnChang this.onTouched = fn; } + touch() { + this.onTouched(this.contentEditor.nativeElement.innerHTML); + } + change() { + this.setCursorSelection(); this.onChange(this.contentEditor.nativeElement.innerHTML); - this.onTouched(this.contentEditor.nativeElement.innerHTML); } ngOnChanges(data: SimpleChanges) { diff --git a/projects/truly-ui/src/components/editor/services/editor.service.ts b/projects/truly-ui/src/components/editor/services/editor.service.ts index ee2ac22e0..8279b4b7f 100644 --- a/projects/truly-ui/src/components/editor/services/editor.service.ts +++ b/projects/truly-ui/src/components/editor/services/editor.service.ts @@ -62,6 +62,7 @@ export class EditorService { compile(html: string, tagsContent: TagContent[], fieldsContent: FieldContent[]) { const htmlParsed = new DOMParser().parseFromString(html, 'text/html').body; return new Promise((resolve) => { + const tags = htmlParsed.querySelectorAll('.ui-hashtag'); for (let i = 0; i < tags.length; i++) { const tagSelected = tagsContent.find(item => item.tag === this.getAttributeValue(tags[i].attributes, 'id')); @@ -72,6 +73,7 @@ export class EditorService { tags[i].remove(); } } + const fields = htmlParsed.querySelectorAll('.ui-field'); for (let i = 0; i < fields.length; i++) { const fieldSelected = fieldsContent.find(item => item.field === this.getAttributeValue(fields[i].attributes, 'id')); @@ -81,6 +83,7 @@ export class EditorService { fields[i].insertAdjacentElement('afterend', element); fields[i].remove(); } + resolve(this.domSanitizer.bypassSecurityTrustHtml(htmlParsed.innerHTML)); }); } diff --git a/projects/truly-ui/src/components/form/form.ts b/projects/truly-ui/src/components/form/form.ts index 25cbde6b6..d851379af 100644 --- a/projects/truly-ui/src/components/form/form.ts +++ b/projects/truly-ui/src/components/form/form.ts @@ -359,12 +359,12 @@ export class TlForm implements OnInit, AfterViewInit, AfterContentInit, OnDestro } handleKeysForm( $event: KeyboardEvent ) { - if ( $event.keyCode === KeyEvent.TAB && $event.shiftKey ) { + if ( $event.code === KeyEvent.TAB && $event.shiftKey ) { $event.preventDefault(); this.backwardTabbing(); return; } - switch ( $event.keyCode ) { + switch ( $event.code ) { case KeyEvent.ARROWUP : $event.preventDefault(); this.backwardTabbing(); diff --git a/projects/truly-ui/src/components/i18n/languages/upload/pt_BR.ts b/projects/truly-ui/src/components/i18n/languages/upload/pt_BR.ts index 524a8fc26..8912ee92f 100644 --- a/projects/truly-ui/src/components/i18n/languages/upload/pt_BR.ts +++ b/projects/truly-ui/src/components/i18n/languages/upload/pt_BR.ts @@ -21,7 +21,7 @@ */ export const Upload = { - boxDescription: 'Clique or arraste um arquivo para está area.\nSuporta um único arquivo ou varios para upload.', + boxDescription: 'Clique ou arraste um arquivo para está area.\nSuporta um único arquivo ou varios para upload.', placeholder: 'Descrição da Imagem', upload: 'Envio' }; diff --git a/projects/truly-ui/src/components/input/core/input-mask.ts b/projects/truly-ui/src/components/input/core/input-mask.ts index f3cf83433..78d92af3a 100644 --- a/projects/truly-ui/src/components/input/core/input-mask.ts +++ b/projects/truly-ui/src/components/input/core/input-mask.ts @@ -103,7 +103,7 @@ export class InputMask { onKeyDownInputListener() { this.renderer.listen( this.input.nativeElement, 'keydown', $event => { - switch ( $event.keyCode ) { + switch ( $event.code ) { case KeyEvent.BACKSPACE: this.handleBackspace( $event ); break; @@ -393,6 +393,11 @@ export class InputMask { } private replaceUnderscoreForChar( valueArray, charInputted, cursorEnd ) { + + if (valueArray.length === 0) { + valueArray = [...this.maskGuideExpression]; + } + if ( this.maskSpecialCharacters.indexOf( this.maskExpression[ cursorEnd ] ) >= 0 ) { cursorEnd++; } diff --git a/projects/truly-ui/src/components/input/directives/charcase.directive.ts b/projects/truly-ui/src/components/input/directives/charcase.directive.ts index d22400867..0469af510 100644 --- a/projects/truly-ui/src/components/input/directives/charcase.directive.ts +++ b/projects/truly-ui/src/components/input/directives/charcase.directive.ts @@ -37,13 +37,15 @@ export class CharcaseDirective { } getValue( value) { - if ( this.charcase === 'UPPERCASE' ) { + if ( this.charcase === 'UPPERCASE' || this.charcase === 'uppercase' ) { return value.toUpperCase(); } - if ( this.charcase === 'LOWERCASE' ) { + if ( this.charcase === 'LOWERCASE' || this.charcase === 'lowercase' ) { return value.toLowerCase(); } + + return value; } } diff --git a/projects/truly-ui/src/components/listbox/listbox.ts b/projects/truly-ui/src/components/listbox/listbox.ts index 94d840941..398303c02 100644 --- a/projects/truly-ui/src/components/listbox/listbox.ts +++ b/projects/truly-ui/src/components/listbox/listbox.ts @@ -145,8 +145,8 @@ export class TlListBox extends ListBase implements AfterViewInit, OnDestroy, OnC [KeyEvent.ARROWUP]: () => this.handleKeyArrowUp($event), [KeyEvent.ENTER]: () => this.onKeyEnter() }; - if (event[$event.keyCode]) { - event[$event.keyCode](); + if (event[$event.code]) { + event[$event.code](); } })); } diff --git a/projects/truly-ui/src/components/misc/scroll-manager.directive.ts b/projects/truly-ui/src/components/misc/scroll-manager.directive.ts index 8fea44227..1eceab983 100644 --- a/projects/truly-ui/src/components/misc/scroll-manager.directive.ts +++ b/projects/truly-ui/src/components/misc/scroll-manager.directive.ts @@ -64,11 +64,11 @@ export class ScrollManager implements OnInit, AfterViewInit { } isArrowUp( $event ) { - return $event.keyCode === KeyEvent.ARROWUP; + return $event.code === KeyEvent.ARROWUP; } isArrowDown( $event ) { - return $event.keyCode === KeyEvent.ARROWDOWN; + return $event.code === KeyEvent.ARROWDOWN; } onArrowUp() { diff --git a/projects/truly-ui/src/components/modal/classes/modal-smart-form.ts b/projects/truly-ui/src/components/modal/classes/modal-smart-form.ts index 1acea13a0..9c60e1f13 100644 --- a/projects/truly-ui/src/components/modal/classes/modal-smart-form.ts +++ b/projects/truly-ui/src/components/modal/classes/modal-smart-form.ts @@ -16,6 +16,7 @@ export class SmartFormConfiguration implements ModalFormConfig { recordNotFoundMessage?; parentElement?; titleByAction?; + recordConfig?; isInsertAction?: Function; isUpdateAction?: Function; @@ -25,6 +26,7 @@ export class SmartFormConfiguration implements ModalFormConfig { this.identifier = 'MODAL_1'; this.unique = false; this.dataForm = null; + this.recordConfig = { showOnDelete: false, keyFromDataForm: ''}; this.deleteTitleConfirmation = LOCALE_I18N.Form.deleteTitleConfirmation; this.deleteConfirmationMessage = LOCALE_I18N.Form.deleteConfirmationMessage; this.recordNotFoundMessage = LOCALE_I18N.Form.recordNotFoundMessage; diff --git a/projects/truly-ui/src/components/modal/interfaces/modal-smart-form-config.ts b/projects/truly-ui/src/components/modal/interfaces/modal-smart-form-config.ts index fc3fbdfb1..891016f4e 100644 --- a/projects/truly-ui/src/components/modal/interfaces/modal-smart-form-config.ts +++ b/projects/truly-ui/src/components/modal/interfaces/modal-smart-form-config.ts @@ -35,6 +35,10 @@ export interface ModalFormConfig { recordNotFoundMessage?: string; parentElement?: ElementRef; titleByAction?: boolean; + recordConfig?: { + keyFromDataForm?: string; + showOnDelete?: boolean; + }; actions?: { insertCall?: Function; updateCall?: Function; diff --git a/projects/truly-ui/src/components/modal/services/modal.service.ts b/projects/truly-ui/src/components/modal/services/modal.service.ts index e4dd932e9..86bd9eb1f 100644 --- a/projects/truly-ui/src/components/modal/services/modal.service.ts +++ b/projects/truly-ui/src/components/modal/services/modal.service.ts @@ -42,6 +42,7 @@ import {ModalFormConfig} from '../interfaces/modal-smart-form-config'; import {ModalInstance} from '../interfaces/modal-instance'; import {TlDialogInfo} from '../../dialog/dialog-info/dialog-info'; import {I18nService} from '../../i18n/i18n.service'; +import * as objectPath from 'object-path'; let lastZIndex = 500; @@ -512,7 +513,7 @@ export class ModalService implements OnDestroy { this.handleRelativeDataSource(component); } }); - this.componentInjected.instance.message = this.referenceSmartForm.smartForm['deleteConfirmationMessage']; + this.componentInjected.instance.message = `${this.referenceSmartForm.smartForm['deleteConfirmationMessage']} ${this.getInfoRecord()}`; return true; } return false; @@ -522,6 +523,22 @@ export class ModalService implements OnDestroy { return component.executeAction === ActionsModal.DELETE; } + private getDataForm() { + return this.referenceSmartForm.smartForm.dataForm; + } + + private getRecordConfig() { + return this.referenceSmartForm.smartForm['recordConfig']; + } + + getInfoRecord() { + const recordConfig = this.getRecordConfig(); + if ( recordConfig.showOnDelete && recordConfig.keyFromDataForm ) { + return `
${ objectPath.get( this.getDataForm(), recordConfig.keyFromDataForm ) }`; + } + return ''; + } + private handleSmartFormCallback(component: ModalInstance, result) { if (this.isResultNotAllowed(component.smartForm, result) || !this.isConfigSmartForm(component.smartForm)) { diff --git a/projects/truly-ui/src/components/multiselect/multiselect.html b/projects/truly-ui/src/components/multiselect/multiselect.html index ca7f7a027..97e689f9b 100644 --- a/projects/truly-ui/src/components/multiselect/multiselect.html +++ b/projects/truly-ui/src/components/multiselect/multiselect.html @@ -17,7 +17,7 @@
implements OnInit, Aft this.listenControlChanges(); } + onBackdropClick() { + this.isOpen = false; + this.change.detectChanges(); + } + private listenControlChanges() { this.subscription.add(this.control.valueChanges.subscribe(() => { this.validateHasModel(); @@ -184,7 +189,7 @@ export class TlMultiSelect extends ValueAccessorBase implements OnInit, Aft } private handleOpenOnFocus() { - if ( this.openFocus ) { + if ( this.openFocus && this.filteredItems.length > 0 ) { this.isOpen = true; } } @@ -323,8 +328,8 @@ export class TlMultiSelect extends ValueAccessorBase implements OnInit, Aft [KeyEvent.ARROWLEFT]: () => this.handleArrowLeft( $event ), [KeyEvent.ARROWRIGHT]: () => this.handleArrowRight( $event ) }; - if ( keyEvent[ $event.keyCode ] ) { - keyEvent[ $event.keyCode ](); + if ( keyEvent[ $event.code ] ) { + keyEvent[ $event.code ](); } } @@ -335,7 +340,7 @@ export class TlMultiSelect extends ValueAccessorBase implements OnInit, Aft } handleClickWrapper() { - if (!this.disabled) { + if (!this.disabled && this.filteredItems.length > 0) { this.isOpen = !this.isOpen; } this.setInputFocus(); diff --git a/projects/truly-ui/src/components/radiobutton/radiogroup.ts b/projects/truly-ui/src/components/radiobutton/radiogroup.ts index 539493510..cef86720d 100644 --- a/projects/truly-ui/src/components/radiobutton/radiogroup.ts +++ b/projects/truly-ui/src/components/radiobutton/radiogroup.ts @@ -21,15 +21,16 @@ */ import { Component, ContentChild, ContentChildren, QueryList, Input, ViewChild, AfterViewInit, Output, - EventEmitter, OnChanges, + EventEmitter, OnChanges, Optional, Self, AfterContentInit, OnDestroy, } from '@angular/core'; import { TlRadioButton } from './radiobutton'; import { MakeProvider } from '../core/base/value-accessor-provider'; import { KeyEvent } from '../core/enums/key-events'; -import { FormControlName, NG_ASYNC_VALIDATORS, NG_VALIDATORS, NgModel } from '@angular/forms'; +import {FormControlName, NG_ASYNC_VALIDATORS, NG_VALIDATORS, NgControl, NgModel} from '@angular/forms'; import { ValueAccessorBase } from '../input/core/value-accessor'; import {FixedPositionDirective} from '../misc/fixed-position.directive'; +import {Subscription} from 'rxjs'; const Orientation = { VERTICAL: 'vertical', @@ -39,18 +40,9 @@ const Orientation = { @Component( { selector: 'tl-radio-group', templateUrl: './radiogroup.html', - styleUrls: [ './radiobutton.scss' ], - providers: [ - [ MakeProvider( TlRadioGroup ) ] - ] + styleUrls: [ './radiobutton.scss' ] } ) -export class TlRadioGroup extends ValueAccessorBase implements AfterViewInit { - - public itemSelected; - - public name; - - public tabindex; +export class TlRadioGroup extends ValueAccessorBase implements AfterContentInit, OnDestroy { @Input() labelGroup = ''; @@ -60,34 +52,47 @@ export class TlRadioGroup extends ValueAccessorBase implements AfterView @ViewChild( 'radiobutton', {static: true} ) radiobutton; - @ContentChild( NgModel, {static: true} ) model: NgModel; - - @ContentChild( FormControlName, {static: true} ) controlName: FormControlName; - @ContentChildren( TlRadioButton ) listRadioButton: QueryList; @Output() private onCheckRadio: EventEmitter = new EventEmitter(); @Output() private onFocusRadio: EventEmitter = new EventEmitter(); - constructor() { + public itemSelected; + + public name; + + public tabindex; + + private subscription = new Subscription(); + + constructor(@Optional() @Self() public ngControl: NgControl) { super(); + this.setControl(); } - ngAfterViewInit() { - setTimeout( () => { - this.handleInitialValue(); - this.validateProperty(); - this.validateCheckedRadios(); - }, 1 ); + get control() { + return this.ngControl?.control; + } + + setControl() { + if ( this.ngControl ) { + this.ngControl.valueAccessor = this; + } + } + + ngAfterContentInit() { + this.handleInitialValue(); + this.validateProperty(); + this.validateCheckedRadios(); this.listenModelChange(); } listenModelChange() { - if ( this.model ) { - this.model.valueChanges.subscribe((value) => { + if ( this.control ) { + this.subscription.add(this.control.valueChanges.subscribe((value) => { this.handleModelValue(); - }); + })); } } @@ -121,7 +126,7 @@ export class TlRadioGroup extends ValueAccessorBase implements AfterView } handleKeyDown( $event: KeyboardEvent ) { - switch ( $event.keyCode ) { + switch ( $event.code ) { case KeyEvent.ARROWDOWN: $event.preventDefault(); break; @@ -168,6 +173,10 @@ export class TlRadioGroup extends ValueAccessorBase implements AfterView this.onFocusRadio.emit( item ); } + ngOnDestroy() { + this.subscription.unsubscribe(); + } + } diff --git a/projects/truly-ui/src/components/schedule/schedule.html b/projects/truly-ui/src/components/schedule/schedule.html index 1ddb0d185..101c9bae6 100644 --- a/projects/truly-ui/src/components/schedule/schedule.html +++ b/projects/truly-ui/src/components/schedule/schedule.html @@ -15,7 +15,6 @@ -
.ui-event-hour{ font-size: 1.0em; color: #454e58; + justify-content: center; + margin-right: 0; } } diff --git a/projects/truly-ui/src/components/schedule/views/day/view-day.component.ts b/projects/truly-ui/src/components/schedule/views/day/view-day.component.ts index ce48798d5..1d58e1d1a 100644 --- a/projects/truly-ui/src/components/schedule/views/day/view-day.component.ts +++ b/projects/truly-ui/src/components/schedule/views/day/view-day.component.ts @@ -138,48 +138,109 @@ export class ViewDayComponent implements OnInit, AfterViewInit, OnChanges, OnDes const scales = workScale.filter( work => work.expansed === undefined); for (let i = 0; i <= events.length - 1; i++) { - for (let index = 0; index <= workScale.length - 1; index++) { - const eventStartDate = new Date(new Date(events[i].date.start).setSeconds(0)).getTime(); - const eventEndDate = new Date(new Date(events[i].date.end).setSeconds(0)).getTime(); - const workStartDate = this.workScaleService.transformHourToMileseconds(scales[index].start); - const workEndDate = this.workScaleService.transformHourToMileseconds(scales[index].end); - - if (eventEndDate >= workEndDate && eventStartDate > workEndDate) { - if (workScale.length - 1 === index) { + workScale.forEach( (value, workScaleIndex, array) => { + const eventStartDate = new Date(events[i].date.start).setSeconds(0, 0); + const eventEndDate = new Date(events[i].date.end).setSeconds(0, 0); + const workStartDate = this.workScaleService.transformHourToMileseconds(scales[workScaleIndex].start, new Date(eventStartDate)); + const workEndDate = this.workScaleService.transformHourToMileseconds(scales[workScaleIndex].end, new Date(eventEndDate)); + + // Handle Overflow in BEFORE workScale + if ( + ( eventEndDate >= workEndDate && eventStartDate >= workEndDate ) || + ( eventEndDate >= workEndDate && eventStartDate <= workEndDate ) + ) { + if (workScale.length - 1 === workScaleIndex) { scales.push({ start: this.workScaleService.transformMilesecondsToHour(workEndDate), end: this.workScaleService.transformMilesecondsToHour(eventEndDate), - interval: (scales[index].interval), + interval: (scales[workScaleIndex].interval), expansed: true, }); } } - if (eventEndDate <= workStartDate && eventStartDate <= workStartDate) { - if (index === 0) { + // Handle Overflow in AFTER workScale + if ( + ( eventEndDate <= workStartDate && eventStartDate <= workStartDate ) || + ( eventEndDate <= workStartDate && eventStartDate >= workStartDate ) + ) { + if (workScaleIndex === 0) { scales.push({ start: this.workScaleService.transformMilesecondsToHour(eventStartDate), end: this.workScaleService.transformMilesecondsToHour(workStartDate), - interval: (scales[index].interval), + interval: (scales[workScaleIndex].interval), expansed: true, }); } } - } + }); } - - this.workScaleService.reload( this.filterScaleStartRepeated( this.sortScaleByStart( scales) )); + this.workScaleService.reload( this.reduceScales( scales ) ); } } - private filterScaleStartRepeated( scales: WorkScaleType[] ) { - return scales - .filter( (scale, index) => { - return scales[index + 1] ? scale.start !== scales[index + 1].start : true; + private reduceScales( scales: WorkScaleType[] ) { + const orderedScales = this.sortScaleByStart(scales); + const notExpansedScales = orderedScales.filter( (scale) => !scale.expansed ); + const beforeHourScale = this.reduceBeforeScale( orderedScales ); + const afterHourScale = this.reduceAfterScale( orderedScales ); + return this.sortScaleByStart( + this.removeNextSameStartAndEndSacalesTime( + this.removeSameStartAndEndSacalesTime( + notExpansedScales.concat(afterHourScale).concat(beforeHourScale) + ) + ) + ); + } + + private removeSameStartAndEndSacalesTime(scales: WorkScaleType[]) { + return this.sortScaleByStart(scales).filter( (value => value.start !== value.end )); + } + + private removeNextSameStartAndEndSacalesTime(scales: WorkScaleType[]) { + return this.sortScaleByStart(scales).filter( (value, index, array ) => { + if ( array[index - 1] ) { + return value.start !== array[index - 1].start && value.end !== array[index - 1].end; + } + return true; }); } + private reduceBeforeScale( scales: WorkScaleType[] ) { + return scales.reduce( (previous, current) => { + const cStart = this.workScaleService.transformHourToMileseconds(current.start); + const pStart = this.workScaleService.transformHourToMileseconds(previous.start); + if (cStart < pStart) { + return {...current, start: current.start }; + } + + const cEnd = this.workScaleService.transformHourToMileseconds(current.end); + const pEnd = this.workScaleService.transformHourToMileseconds(previous.end); + if (cEnd < pEnd) { + return {...current, end: current.end }; + } + return previous; + }, { end: '23:59', start: '23:59', interval: 0, expansed: null }); + } + + private reduceAfterScale( scales: WorkScaleType[] ) { + return scales.reduce( (previous, current) => { + const cStart = this.workScaleService.transformHourToMileseconds(current.start); + const pStart = this.workScaleService.transformHourToMileseconds(previous.start); + if (cStart > pStart) { + return {...current, start: current.start }; + } + + const cEnd = this.workScaleService.transformHourToMileseconds(current.end); + const pEnd = this.workScaleService.transformHourToMileseconds(previous.end); + if (cEnd > pEnd) { + return {...current, end: current.end }; + } + return previous; + }, { end: '01:00', start: '01:00', interval: 0, expansed: null }); + } + private sortScaleByStart( scales: WorkScaleType[] ) { return scales.sort( (scaleA, scaleB) => { return this.workScaleService.transformHourToMileseconds(scaleA.start) - diff --git a/projects/truly-ui/src/components/skeleton/index.ts b/projects/truly-ui/src/components/skeleton/index.ts new file mode 100644 index 000000000..dfbe3381c --- /dev/null +++ b/projects/truly-ui/src/components/skeleton/index.ts @@ -0,0 +1,19 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { TlSkeleton } from './skeleton'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule + ], + declarations: [ + TlSkeleton + ], + exports: [ + TlSkeleton + ] +}) +export class SkeletonModule {} diff --git a/projects/truly-ui/src/components/skeleton/skeleton.html b/projects/truly-ui/src/components/skeleton/skeleton.html new file mode 100644 index 000000000..8cc6123ca --- /dev/null +++ b/projects/truly-ui/src/components/skeleton/skeleton.html @@ -0,0 +1,3 @@ + + + diff --git a/projects/truly-ui/src/components/skeleton/skeleton.scss b/projects/truly-ui/src/components/skeleton/skeleton.scss new file mode 100644 index 000000000..66aa3a2db --- /dev/null +++ b/projects/truly-ui/src/components/skeleton/skeleton.scss @@ -0,0 +1,64 @@ +.tl-skeleton{ + display: block; + background-color: hsl(0deg 0% 0% / 11%); + &.circle{ + border-radius: 50%; + } + &.text{ + width: 100%; + height: auto !important; + transform: scale(1, 0.60); + margin-top: 0; + border-radius: 4px; + margin-bottom: 0; + transform-origin: 0 60%; + &:before { + content: "\00a0"; + } + } + &.animation-none{ + animation: none; + } + &.animation-pulse{ + animation: animation-pulse 1.5s ease-in-out 0.5s infinite; + } + &.animation-wave{ + overflow: hidden; + position: relative; + &:after{ + top: 0; + left: 0; + right: 0; + bottom: 0; + content: ""; + position: absolute; + animation: animation-wave 1.6s linear 0.5s infinite; + transform: translateX(-100%); + background: linear-gradient(90deg, hsl(0deg 0% 0% / 0%), hsl(0deg 0% 0% / 4%), hsl(0deg 0% 0% / 0%)); + } + } +} + +@-webkit-keyframes animation-pulse { + 0% { + opacity: 1; + } + 50% { + opacity: 0.4; + } + 100% { + opacity: 1; + } +} + +@-webkit-keyframes animation-wave { + 0% { + transform: translateX(-100%); + } + 60% { + transform: translateX(100%); + } + 100% { + transform: translateX(100%); + } +} diff --git a/projects/truly-ui/src/components/skeleton/skeleton.ts b/projects/truly-ui/src/components/skeleton/skeleton.ts new file mode 100644 index 000000000..f9f62e941 --- /dev/null +++ b/projects/truly-ui/src/components/skeleton/skeleton.ts @@ -0,0 +1,44 @@ +/* + MIT License + + Copyright (c) 2018 Temainfo Software + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +import { Component, OnInit, Input } from '@angular/core'; + +@Component({ + selector: 'tl-skeleton', + templateUrl: './skeleton.html', + styleUrls: ['./skeleton.scss'], +}) +export class TlSkeleton implements OnInit { + + @Input() variant: 'text' | 'circle' | 'rect' = 'rect'; + + @Input() animation: 'none' | 'pulse' | 'wave' = 'pulse'; + + @Input() width = '150px'; + + @Input() height = '100px'; + + constructor() {} + + ngOnInit() {} + +} diff --git a/projects/truly-ui/src/components/splitbutton/splitbutton.html b/projects/truly-ui/src/components/splitbutton/splitbutton.html index 4d27d5bbb..fb8e63d92 100644 --- a/projects/truly-ui/src/components/splitbutton/splitbutton.html +++ b/projects/truly-ui/src/components/splitbutton/splitbutton.html @@ -16,7 +16,7 @@ chevron-down
= 0 && (!$event.shiftKey) ) { + if ( [ KeyEvent.TAB, KeyEvent.ENTER, KeyEvent.ARROWDOWN ].indexOf( $event.code ) >= 0 && (!$event.shiftKey) ) { this.nextTabAndElement( index ); } - if ( ($event.keyCode === KeyEvent.TAB) && ($event.ctrlKey) ) { + if ( ($event.code === KeyEvent.TAB) && ($event.ctrlKey) ) { this.nextTabAndElement( index ); } } handleKeyDownFirstElementTab( $event, index ) { - if ( [ KeyEvent.ARROWUP ].indexOf( $event.keyCode ) >= 0 ) { + if ( [ KeyEvent.ARROWUP ].indexOf( $event.code ) >= 0 ) { this.previousTabAndElement( index ); } - if ( ($event.keyCode === KeyEvent.TAB) && ($event.shiftKey) ) { + if ( ($event.code === KeyEvent.TAB) && ($event.shiftKey) ) { this.previousTabAndElement( index ); } } diff --git a/projects/truly-ui/src/components/tag/index.ts b/projects/truly-ui/src/components/tag/index.ts index 002874ae9..1e81b410d 100644 --- a/projects/truly-ui/src/components/tag/index.ts +++ b/projects/truly-ui/src/components/tag/index.ts @@ -2,14 +2,16 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { FormsModule } from '@angular/forms'; import { IconsModule } from '../icons/index'; +import { InputModule } from '../input/index'; import { TlTag } from './tag'; @NgModule({ - imports: [ - CommonModule, - FormsModule, - IconsModule, - ], + imports: [ + CommonModule, + FormsModule, + IconsModule, + InputModule, + ], declarations: [ TlTag, ], diff --git a/projects/truly-ui/src/components/tag/tag.html b/projects/truly-ui/src/components/tag/tag.html index 2b08f235d..80b5f4e06 100644 --- a/projects/truly-ui/src/components/tag/tag.html +++ b/projects/truly-ui/src/components/tag/tag.html @@ -1,11 +1,25 @@ -
+
- {{ title }} - times-circle + {{ icon }} + {{ title }} + times-circle +
+
+
diff --git a/projects/truly-ui/src/components/tag/tag.scss b/projects/truly-ui/src/components/tag/tag.scss index 6cf2063a7..4737bb7fe 100644 --- a/projects/truly-ui/src/components/tag/tag.scss +++ b/projects/truly-ui/src/components/tag/tag.scss @@ -1,5 +1,8 @@ .tl-tag { display: inline-block; + &.clickable{ + cursor: pointer; + } } .tag { @@ -29,3 +32,7 @@ color: white; } } + +.tl-tag-input-wrapper{ + display: inline-table; +} diff --git a/projects/truly-ui/src/components/tag/tag.ts b/projects/truly-ui/src/components/tag/tag.ts index 6cd32829a..8bc9f0fbc 100644 --- a/projects/truly-ui/src/components/tag/tag.ts +++ b/projects/truly-ui/src/components/tag/tag.ts @@ -20,7 +20,9 @@ SOFTWARE. */ -import { Input, Component, OnInit, Output, EventEmitter } from '@angular/core'; +import {Input, Component, OnInit, Output, EventEmitter, ViewChild, ChangeDetectorRef} from '@angular/core'; +import {KeyEvent} from '../core/enums/key-events'; +import {TlInput} from '../input/input'; @Component({ selector: 'tl-tag', @@ -35,7 +37,13 @@ export class TlTag implements OnInit { @Input() height = 'auto'; - @Input() closeButton = false; + @Input() icon = null; + + @Input() mode: 'default' | 'closeable' | 'clickable' | 'editable' = 'default'; + + @Input() charcase: 'unset' | 'lowercase' | 'capitalize' | 'uppercase' | 'revert' = 'unset'; + + @Input() closeOnValueEmited = true; @Input() set color( value: string ) { @@ -61,10 +69,18 @@ export class TlTag implements OnInit { @Output() close: EventEmitter = new EventEmitter(); + @Output() tagValue: EventEmitter = new EventEmitter(); + + @ViewChild( 'input' ) tlinput: TlInput; + private _color = 'basic'; + public editing = false; + public customColor = ''; + public editableValue = ''; + constructor() {} ngOnInit() {} @@ -73,4 +89,55 @@ export class TlTag implements OnInit { this.close.emit(); } + onClickTag() { + if (this.mode === 'editable') { + this.editing = true; + setTimeout(() => { + this.tlinput.setFocus(); + }); + } + } + + onConfirmTextInputed() { + this.emitEditablevalue(); + } + + onClearValue() { + this.resetInput(); + this.hideInput( true ); + } + + onInputValue( value: KeyboardEvent ) { + if (value.key === KeyEvent.ENTER) { + return this.emitEditablevalue(); + } + if (value.key === KeyEvent.ESCAPE) { + this.resetInput(); + this.hideInput(true); + } + } + + private emitEditablevalue() { + if (this.mode === 'editable') { + if ( this.editableValue.trim() ) { + this.tagValue.emit( this.editableValue ); + this.resetInput(); + this.hideInput(); + } else { + this.resetInput(); + this.hideInput( true ); + } + } + } + + private resetInput() { + this.editableValue = ''; + } + + private hideInput( close = false) { + if (this.closeOnValueEmited || close) { + this.editing = false; + } + } + } diff --git a/projects/truly-ui/src/components/textarea/textarea.html b/projects/truly-ui/src/components/textarea/textarea.html index 10e848749..ff5d71cc7 100644 --- a/projects/truly-ui/src/components/textarea/textarea.html +++ b/projects/truly-ui/src/components/textarea/textarea.html @@ -3,6 +3,7 @@ diff --git a/projects/truly-ui/src/components/timeline/index.ts b/projects/truly-ui/src/components/timeline/index.ts index 5a7c63106..85ff45d43 100644 --- a/projects/truly-ui/src/components/timeline/index.ts +++ b/projects/truly-ui/src/components/timeline/index.ts @@ -7,13 +7,15 @@ import { TlTimelineItem } from './parts/timeline-item/timeline-item'; import { BlockUIModule } from '../blockui/index'; import {ScrollingModule} from '@angular/cdk/scrolling'; +import {VirtualScrollerModule} from 'ngx-virtual-scroller'; @NgModule({ imports: [ CommonModule, FormsModule, BlockUIModule, - ScrollingModule + ScrollingModule, + VirtualScrollerModule ], declarations: [ TlTimeline, diff --git a/projects/truly-ui/src/components/timeline/parts/timeline-item/timeline-item.scss b/projects/truly-ui/src/components/timeline/parts/timeline-item/timeline-item.scss index d4f51c796..0366f69b5 100644 --- a/projects/truly-ui/src/components/timeline/parts/timeline-item/timeline-item.scss +++ b/projects/truly-ui/src/components/timeline/parts/timeline-item/timeline-item.scss @@ -9,7 +9,7 @@ $offset-tail: 4px; position: relative; padding: 0 0 20px; list-style: none; - margin: 0; + margin: 0 10px 0 20px; min-height: 100px; } diff --git a/projects/truly-ui/src/components/timeline/timeline.html b/projects/truly-ui/src/components/timeline/timeline.html index 048b4fd5e..165d3dc2e 100644 --- a/projects/truly-ui/src/components/timeline/timeline.html +++ b/projects/truly-ui/src/components/timeline/timeline.html @@ -1,19 +1,17 @@
- -
- - -
-
+ + + +
{{ item[keyTitle] }} diff --git a/projects/truly-ui/src/components/timeline/timeline.ts b/projects/truly-ui/src/components/timeline/timeline.ts index d99865064..d246358db 100644 --- a/projects/truly-ui/src/components/timeline/timeline.ts +++ b/projects/truly-ui/src/components/timeline/timeline.ts @@ -30,28 +30,18 @@ import { ViewChild, Output, EventEmitter, - ChangeDetectorRef, + ChangeDetectorRef, OnChanges, SimpleChanges, } from '@angular/core'; import {TlTimelineItem} from './parts/timeline-item/timeline-item'; -import {DataSourceList} from '../core/classes/datasource-list'; -import {Subscription} from 'rxjs'; @Component({ selector: 'tl-timeline', templateUrl: './timeline.html', styleUrls: ['./timeline.scss'], }) -export class TlTimeline implements OnInit { +export class TlTimeline implements OnInit, OnChanges { - @Input('data') - set data(value) { - this._data = value; - this.setUpData(value); - } - - get data() { - return this._data; - } + @Input('data') data = []; @Input() align = 'left'; @@ -59,8 +49,6 @@ export class TlTimeline implements OnInit { @Input() keyTitle = 'title'; - @Input() totalLength = 0; - @Input() keyText = 'text'; @Input() keyDate = 'date'; @@ -69,11 +57,11 @@ export class TlTimeline implements OnInit { @Input() mode = 'basic'; - @Input() lazyMode = false; + @Input() color = 'primary'; - @Input() loading = false; + @Input() enableUnequalChildrenSizes = true; - @Input() color = 'primary'; + @Input() bufferAmount = 5; @Output() lazyLoad: EventEmitter = new EventEmitter(); @@ -81,54 +69,48 @@ export class TlTimeline implements OnInit { @ContentChild(TemplateRef, {static: true}) customTemplate: TemplateRef; - public dataSource: DataSourceList; + public buffer = []; public skip = 0; - public take = 20; - public loadingMoreData = false; public nothingFound = false; - private _data = []; - - private subscription = new Subscription(); - constructor(public change: ChangeDetectorRef) {} ngOnInit() {} - setUpData( value? ) { - if ( !this.dataSource ) { - this.dataSource = new DataSourceList( { - dataSource: value, - pageSize: this.rowsPage, - totalLength: this.totalLength, - lazyMode: this.lazyMode - } ); - this.listenLoadData(); - } - this.loading = false; - this.dataSource.setData( value ); - this.setNotFound( value.length === 0 ); + onInit(lineItem: TlTimelineItem, item, index) { + lineItem.setTemplateView(item, index); } - private listenLoadData() { - if ( !this.dataSource ) { - return; + ngOnChanges(changes: SimpleChanges) { + this.loadingMoreData = false; + if ( this.data.length > 0 ) { + this.buffer = this.buffer.concat(this.data); + this.nothingFound = false; + return this.loadingMoreData = false; + } + + if ( this.data.length === 0 && this.buffer.length > 0 ) { + this.nothingFound = false; + return this.loadingMoreData = false; } - this.subscription.add( this.dataSource.loadMoreData.subscribe( ( data: any ) => { - this.lazyLoad.emit( { skip: data.skip, limit: data.limit } ); - } ) ); - } - private setNotFound( value: boolean ) { - this.nothingFound = value; + if ( this.data.length === 0 && this.buffer.length === 0 ) { + return this.nothingFound = true; + } } - onInit(lineItem: TlTimelineItem, item, index) { - lineItem.setTemplateView(item, index); + fetchMore(event) { + if (!this.loadingMoreData && this.mode === 'infinite') { + if (event.endIndex !== this.buffer.length - 1 ) { return; } + this.loadingMoreData = true; + this.skip = this.buffer.length; + this.lazyLoad.emit( { skip: this.skip, limit: this.rowsPage } ); + } } + } diff --git a/projects/truly-ui/src/components/timepicker/timepicker.ts b/projects/truly-ui/src/components/timepicker/timepicker.ts index ba4cf5dc6..0aeb03b10 100644 --- a/projects/truly-ui/src/components/timepicker/timepicker.ts +++ b/projects/truly-ui/src/components/timepicker/timepicker.ts @@ -24,24 +24,21 @@ import { Input, AfterContentInit, Component, - forwardRef, ElementRef, - ContentChild, ViewChild, OnDestroy, Output, EventEmitter, AfterViewInit, SimpleChanges, - OnChanges, + OnChanges, Optional, Self, } from '@angular/core'; import { TlLeftPadPipe } from '../internals/pipes/leftpad.pipe'; import { OverlayAnimation } from '../core/directives/overlay-animation'; import { Subscription } from 'rxjs'; import { I18nService } from '../i18n/i18n.service'; import { ValueAccessorBase } from '../input/core/value-accessor'; -import { FormControlName, NG_VALUE_ACCESSOR, NgModel } from '@angular/forms'; -import {FixedPositionDirective} from '../misc/fixed-position.directive'; +import { NgControl } from '@angular/forms'; export interface IncrementalSteps { hour: number; @@ -57,14 +54,9 @@ export enum TIME { selector: 'tl-timepicker', templateUrl: './timepicker.html', styleUrls: [ './timepicker.scss' ], - providers: [ { - provide: NG_VALUE_ACCESSOR, - useExisting: forwardRef( () => TlTimepicker ), - multi: true, - } ], animations: [ OverlayAnimation ] } ) -export class TlTimepicker extends ValueAccessorBase implements AfterContentInit, AfterViewInit, OnChanges, OnDestroy { +export class TlTimepicker extends ValueAccessorBase implements AfterContentInit, OnChanges, OnDestroy { @Input() format: '12' | '24' = '24'; @@ -106,10 +98,6 @@ export class TlTimepicker extends ValueAccessorBase implements Af @ViewChild( 'listAmPm', {static: false} ) listAmPm: ElementRef; - @ContentChild( NgModel, {static: true} ) ngModel: NgModel; - - @ContentChild( FormControlName, {static: true} ) control: NgModel; - @Output() now: EventEmitter = new EventEmitter(); @Output() changeTime: EventEmitter = new EventEmitter(); @@ -154,8 +142,19 @@ export class TlTimepicker extends ValueAccessorBase implements Af private listeners: Subscription = new Subscription(); - constructor( private i18n: I18nService ) { + constructor( @Optional() @Self() public ngControl: NgControl, + private i18n: I18nService ) { super(); + this.setControl(); + } + get control() { + return this.ngControl?.control; + } + + setControl() { + if ( this.ngControl ) { + this.ngControl.valueAccessor = this; + } } ngAfterContentInit() { @@ -164,15 +163,12 @@ export class TlTimepicker extends ValueAccessorBase implements Af this.value = new Date(); } this.setModelValue( new Date(this.value) ); - } - - ngAfterViewInit() { this.listenControlChanges(); } listenControlChanges() { - if (this.getControl()) { - this.getControl().control.valueChanges.subscribe(( date: Date) => { + if (this.control) { + this.control.valueChanges.subscribe(( date: Date) => { if (!this.loaded) { this.minute = this.leftPad.transform(new Date(date).getMinutes(), 2); this.hour = this.leftPad.transform(new Date(date).getHours(), 2); @@ -249,10 +245,6 @@ export class TlTimepicker extends ValueAccessorBase implements Af this.emitClickNow(); } - private getControl() { - return this.control ? this.control : this.ngModel; - } - private setValue() { const dateSt = new Date(this.value); const year = dateSt.getFullYear(); @@ -295,23 +287,20 @@ export class TlTimepicker extends ValueAccessorBase implements Af return; } const split = this.cleanValue( stringTime ).split( ':' ); - const hour = this.leftPad.transform(split[0], 2); - const min = this.leftPad.transform(split[1], 2); - - if ( min.length >= 2 ) { + const hour = split[0]; + const min = split[1]; + if ( min.length >= 2 && hour.length >= 2 ) { this.hour = this.isFormat12() ? this.leftPad.transform( this.convertToAmPm( hour ), 2 ) : hour; if ( this.listHour ) { this.setScrollColumn( this.listHour.nativeElement, TIME.HOUR ); - this.setValue(); } - } - if ( hour.length >= 2 ) { this.minute = min; if ( this.listMinutes ) { this.setScrollColumn( this.listMinutes.nativeElement, TIME.MINUTE ); - this.setValue(); } + this.setValue(); } + } private setScrollColumn( elementScroll: HTMLElement, type: TIME ) { diff --git a/projects/truly-ui/src/components/upload/upload.html b/projects/truly-ui/src/components/upload/upload.html index 4338c037b..8d5cc7d38 100644 --- a/projects/truly-ui/src/components/upload/upload.html +++ b/projects/truly-ui/src/components/upload/upload.html @@ -1,5 +1,7 @@
-
+
inbox

{{ boxDescription }}

@@ -25,6 +27,7 @@
+
diff --git a/projects/truly-ui/src/components/upload/upload.scss b/projects/truly-ui/src/components/upload/upload.scss index 4538fae2c..36757eb1d 100644 --- a/projects/truly-ui/src/components/upload/upload.scss +++ b/projects/truly-ui/src/components/upload/upload.scss @@ -2,6 +2,7 @@ position: relative; width: 100%; height: 100%; + min-height: 100px; text-align: center; background: #fafafa; border: 1px dashed #d9d9d9; diff --git a/projects/truly-ui/src/components/upload/upload.ts b/projects/truly-ui/src/components/upload/upload.ts index 1f97c624a..f4ef0a761 100644 --- a/projects/truly-ui/src/components/upload/upload.ts +++ b/projects/truly-ui/src/components/upload/upload.ts @@ -41,6 +41,8 @@ export class TlUpload implements OnInit { @Input() height = '100%'; + @Input() resizeDragndrop = false; + @Input('imageList') set imageList( value: ImageUploadInterface[] ) { this._imageList = value.sort((a, b) => a.index - b.index ); @@ -125,6 +127,7 @@ export class TlUpload implements OnInit { readFiles(fileList) { for (let i = 0; i < fileList.length; i++) { this.readFile(fileList[i], i).then((value: ImageUploadInterface) => { + value = Object.assign({title: '', description: ''}, value); value.index = this.imageList.length; this.imageList = [ ...this.imageList, value ]; if ( fileList.length <= this.imageList.length ) { @@ -165,6 +168,10 @@ export class TlUpload implements OnInit { } } + hasRisize() { + return (this.resizeDragndrop && this.type === 'dragndrop' && this.imageList.length > 0); + } + onChange($event) { if ($event.target.files.length > 0) { if (this.type === 'dragndrop') { diff --git a/projects/truly-ui/src/public_api.ts b/projects/truly-ui/src/public_api.ts index fffcbe334..f42769dac 100644 --- a/projects/truly-ui/src/public_api.ts +++ b/projects/truly-ui/src/public_api.ts @@ -239,6 +239,10 @@ export { TlSidebarContainer } from './components/sidebar/sidebar-container'; export { TlSidebar } from './components/sidebar/parts/sidebar/sidebar'; export { TlSidebarContent } from './components/sidebar/parts/sidebar-content/sidebar-content'; +// Loader +export { SkeletonModule } from './components/skeleton/index'; +export { TlSkeleton } from './components/skeleton/skeleton'; + // Schedule export { ScheduleModule } from './components/schedule/index'; export { TlSchedule } from './components/schedule/schedule'; diff --git a/projects/truly-ui/tsconfig.lib.json b/projects/truly-ui/tsconfig.lib.json index b8b4137c9..90d4460df 100644 --- a/projects/truly-ui/tsconfig.lib.json +++ b/projects/truly-ui/tsconfig.lib.json @@ -11,6 +11,7 @@ "emitDecoratorMetadata": true, "experimentalDecorators": true, "importHelpers": true, + "downlevelIteration": true, "types": [], "lib": [ "dom", diff --git a/src/app/app.component.html b/src/app/app.component.html index ad22f5fe9..2f8ff4681 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -290,6 +290,11 @@ Badge +
  • + + Tag + +
  • Button @@ -466,6 +471,11 @@ Progress Bar
  • +
  • + + Skeleton + +
  • Stopwatch @@ -818,7 +828,7 @@ Temainfo Software -   Copyright © 2019 +   Copyright © 2020 All rights reserved. diff --git a/src/app/app.routing.module.ts b/src/app/app.routing.module.ts index 2c432e9f6..724e7164e 100644 --- a/src/app/app.routing.module.ts +++ b/src/app/app.routing.module.ts @@ -195,6 +195,10 @@ import {GettingStartedComponent} from './getting-started/getting-started.compone path: 'loader', loadChildren: () => import('./components/loader/loaderdemo.module').then(m => m.LoaderDemoModule) }, + { + path: 'skeleton', + loadChildren: () => import('./components/skeleton/skeletondemo.module').then(m => m.SkeletondemoModule) + }, { path: 'listbox', loadChildren: () => import('./components/listbox/listboxdemo.module').then(m => m.ListBoxDemoModule) diff --git a/src/app/components/accordion/accordiondemo-dataproperties.json.ts b/src/app/components/accordion/accordiondemo-dataproperties.json.ts index e1435b086..c174eed2d 100644 --- a/src/app/components/accordion/accordiondemo-dataproperties.json.ts +++ b/src/app/components/accordion/accordiondemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/accordion/accordiondemo-routing.module.ts b/src/app/components/accordion/accordiondemo-routing.module.ts index 6c2e65681..b68f0dec2 100644 --- a/src/app/components/accordion/accordiondemo-routing.module.ts +++ b/src/app/components/accordion/accordiondemo-routing.module.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/accordion/accordiondemo.module.ts b/src/app/components/accordion/accordiondemo.module.ts index 6b66dbdc9..ba62c9094 100644 --- a/src/app/components/accordion/accordiondemo.module.ts +++ b/src/app/components/accordion/accordiondemo.module.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/autocomplete/autocompletedemo-dataproperties.json.ts b/src/app/components/autocomplete/autocompletedemo-dataproperties.json.ts index 65a28a10a..2b90fbe4a 100644 --- a/src/app/components/autocomplete/autocompletedemo-dataproperties.json.ts +++ b/src/app/components/autocomplete/autocompletedemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/autocomplete/autocompletedemo-routing.module.ts b/src/app/components/autocomplete/autocompletedemo-routing.module.ts index 536df6bf2..8c626cd9d 100644 --- a/src/app/components/autocomplete/autocompletedemo-routing.module.ts +++ b/src/app/components/autocomplete/autocompletedemo-routing.module.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/autocomplete/autocompletedemo.component.ts b/src/app/components/autocomplete/autocompletedemo.component.ts index bfc31e99f..ea3d0b171 100644 --- a/src/app/components/autocomplete/autocompletedemo.component.ts +++ b/src/app/components/autocomplete/autocompletedemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/autocomplete/autocompletedemo.module.ts b/src/app/components/autocomplete/autocompletedemo.module.ts index f1a8b8003..93a6a02d3 100644 --- a/src/app/components/autocomplete/autocompletedemo.module.ts +++ b/src/app/components/autocomplete/autocompletedemo.module.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/autocomplete/http.service.ts b/src/app/components/autocomplete/http.service.ts index b516f3a71..a106e4362 100644 --- a/src/app/components/autocomplete/http.service.ts +++ b/src/app/components/autocomplete/http.service.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Sistemas + Copyright (c) 2020 Temainfo Sistemas Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/autocomplete/newclient/dataclient.service.ts b/src/app/components/autocomplete/newclient/dataclient.service.ts index b7d5c24e6..389daa6be 100644 --- a/src/app/components/autocomplete/newclient/dataclient.service.ts +++ b/src/app/components/autocomplete/newclient/dataclient.service.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/avatar/avatardemo-dataproperties.json.ts b/src/app/components/avatar/avatardemo-dataproperties.json.ts index fcde4cb60..c9827a12e 100644 --- a/src/app/components/avatar/avatardemo-dataproperties.json.ts +++ b/src/app/components/avatar/avatardemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/avatar/avatardemo-routing.module.ts b/src/app/components/avatar/avatardemo-routing.module.ts index 79e840f46..2851f1af6 100644 --- a/src/app/components/avatar/avatardemo-routing.module.ts +++ b/src/app/components/avatar/avatardemo-routing.module.ts @@ -1,7 +1,7 @@ /* MIT License -Copyright (c) 2019 Temainfo Software +Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/avatar/avatardemo.component.ts b/src/app/components/avatar/avatardemo.component.ts index fb5e412e6..ef671dadf 100644 --- a/src/app/components/avatar/avatardemo.component.ts +++ b/src/app/components/avatar/avatardemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/avatar/avatardemo.dataevents.json.ts b/src/app/components/avatar/avatardemo.dataevents.json.ts index b7af997ad..df847d180 100644 --- a/src/app/components/avatar/avatardemo.dataevents.json.ts +++ b/src/app/components/avatar/avatardemo.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/badge/badgedemo-dataproperties.json.ts b/src/app/components/badge/badgedemo-dataproperties.json.ts index 03595f32f..d5d0c4aee 100644 --- a/src/app/components/badge/badgedemo-dataproperties.json.ts +++ b/src/app/components/badge/badgedemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/badge/badgedemo.component.ts b/src/app/components/badge/badgedemo.component.ts index 227d45b84..5b1a66a70 100644 --- a/src/app/components/badge/badgedemo.component.ts +++ b/src/app/components/badge/badgedemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/badge/badgedemo.dataevents.json.ts b/src/app/components/badge/badgedemo.dataevents.json.ts index e0f5d77cb..e9f068af5 100644 --- a/src/app/components/badge/badgedemo.dataevents.json.ts +++ b/src/app/components/badge/badgedemo.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/blockui/blockuidemo-dataproperties.json.ts b/src/app/components/blockui/blockuidemo-dataproperties.json.ts index 485b27b15..9f59aa720 100644 --- a/src/app/components/blockui/blockuidemo-dataproperties.json.ts +++ b/src/app/components/blockui/blockuidemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/button/buttondemo-dataproperties.json.ts b/src/app/components/button/buttondemo-dataproperties.json.ts index 58abe38c3..f0480d409 100644 --- a/src/app/components/button/buttondemo-dataproperties.json.ts +++ b/src/app/components/button/buttondemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/button/buttondemo.component.ts b/src/app/components/button/buttondemo.component.ts index b377d06f1..67f260e26 100644 --- a/src/app/components/button/buttondemo.component.ts +++ b/src/app/components/button/buttondemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/button/buttondemo.dataevents.json.ts b/src/app/components/button/buttondemo.dataevents.json.ts index e0f5d77cb..e9f068af5 100644 --- a/src/app/components/button/buttondemo.dataevents.json.ts +++ b/src/app/components/button/buttondemo.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/buttongroup/buttongroupdemo-dataproperties.json.ts b/src/app/components/buttongroup/buttongroupdemo-dataproperties.json.ts index 1e1d2ce0a..987ee47d1 100644 --- a/src/app/components/buttongroup/buttongroupdemo-dataproperties.json.ts +++ b/src/app/components/buttongroup/buttongroupdemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/buttongroup/buttongroupdemo.dataevents.json.ts b/src/app/components/buttongroup/buttongroupdemo.dataevents.json.ts index ce674ef34..7ef7046f6 100644 --- a/src/app/components/buttongroup/buttongroupdemo.dataevents.json.ts +++ b/src/app/components/buttongroup/buttongroupdemo.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/calendar/calendardemo-dataproperties.json.ts b/src/app/components/calendar/calendardemo-dataproperties.json.ts index de2f3bcb3..7ba86020f 100644 --- a/src/app/components/calendar/calendardemo-dataproperties.json.ts +++ b/src/app/components/calendar/calendardemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/calendar/calendardemo.component.ts b/src/app/components/calendar/calendardemo.component.ts index bdda9e16c..bb1bb7a63 100644 --- a/src/app/components/calendar/calendardemo.component.ts +++ b/src/app/components/calendar/calendardemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/calendar/calendardemo.dataevents.json.ts b/src/app/components/calendar/calendardemo.dataevents.json.ts index 0bb4e2cd7..71b8f2315 100644 --- a/src/app/components/calendar/calendardemo.dataevents.json.ts +++ b/src/app/components/calendar/calendardemo.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/chatlist/chat2/chat2.component.html b/src/app/components/chatlist/chat2/chat2.component.html index ee7aecc27..b880eeba3 100644 --- a/src/app/components/chatlist/chat2/chat2.component.html +++ b/src/app/components/chatlist/chat2/chat2.component.html @@ -1,8 +1,12 @@ +
    + Aim {{user.name}} +
    + diff --git a/src/app/components/chatlist/chat2/chat2.component.ts b/src/app/components/chatlist/chat2/chat2.component.ts index f6095eb62..4508c96ce 100644 --- a/src/app/components/chatlist/chat2/chat2.component.ts +++ b/src/app/components/chatlist/chat2/chat2.component.ts @@ -1,5 +1,6 @@ import { Component, ViewChild, OnInit, Input, EventEmitter, Output } from '@angular/core'; import { TlChatList } from '../../../../../projects/truly-ui/src/components/chatlist/chatlist'; +import {ChatContact} from '../../../../../projects/truly-ui/src/components/chatlist/interfaces/chat-contact.interface'; @Component({ selector: 'app-chat2', @@ -10,7 +11,7 @@ export class Chat2Component implements OnInit { @Input() contacts = []; - @Input() user = {}; + @Input() user: ChatContact; @Output() send: EventEmitter = new EventEmitter(); diff --git a/src/app/components/chatlist/chat3/chat3.component.html b/src/app/components/chatlist/chat3/chat3.component.html index 25a63d54d..4e8769b5c 100644 --- a/src/app/components/chatlist/chat3/chat3.component.html +++ b/src/app/components/chatlist/chat3/chat3.component.html @@ -1,8 +1,12 @@ +
    + Aim {{user.name}} +
    + diff --git a/src/app/components/chatlist/chatlistdemo-dataproperties.json.ts b/src/app/components/chatlist/chatlistdemo-dataproperties.json.ts index c2f13b29a..8e11ed379 100644 --- a/src/app/components/chatlist/chatlistdemo-dataproperties.json.ts +++ b/src/app/components/chatlist/chatlistdemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/chatlist/chatlistdemo.component.ts b/src/app/components/chatlist/chatlistdemo.component.ts index 69074f011..19e86af3e 100644 --- a/src/app/components/chatlist/chatlistdemo.component.ts +++ b/src/app/components/chatlist/chatlistdemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal @@ -45,7 +45,7 @@ export class ChatListDemoComponent implements OnInit { { id: '1', name: 'Brad Pitt', description: 'Actor', status: Status.ONLINE, image: 'https://upload.wikimedia.org/wikipedia/commons/thumb/5/51/Brad_Pitt_Fury_2014.jpg/220px-Brad_Pitt_Fury_2014.jpg', - lastActivity: new Date('2020-05-28T12:00:23.810Z') + lastActivity: new Date(new Date().setDate( new Date().getHours() - 20)) }, { id: '2', name: 'Emma Watson', description: 'Actress', status: Status.ONLINE, diff --git a/src/app/components/checkbox/checkboxdemo-dataproperties.json.ts b/src/app/components/checkbox/checkboxdemo-dataproperties.json.ts index c85cd7259..89ab2a30c 100644 --- a/src/app/components/checkbox/checkboxdemo-dataproperties.json.ts +++ b/src/app/components/checkbox/checkboxdemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/clockpicker/clockpickerdemo-dataevents.json.ts b/src/app/components/clockpicker/clockpickerdemo-dataevents.json.ts index 10cf0d024..bdeb417f9 100644 --- a/src/app/components/clockpicker/clockpickerdemo-dataevents.json.ts +++ b/src/app/components/clockpicker/clockpickerdemo-dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/clockpicker/clockpickerdemo-dataproperties.json.ts b/src/app/components/clockpicker/clockpickerdemo-dataproperties.json.ts index fce1b1a39..cc61cc415 100644 --- a/src/app/components/clockpicker/clockpickerdemo-dataproperties.json.ts +++ b/src/app/components/clockpicker/clockpickerdemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/colorpicker/colorpickerdemo-dataproperties.json.ts b/src/app/components/colorpicker/colorpickerdemo-dataproperties.json.ts index fd5dd3a0b..b76638876 100644 --- a/src/app/components/colorpicker/colorpickerdemo-dataproperties.json.ts +++ b/src/app/components/colorpicker/colorpickerdemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/colorpicker/colorpickerdemo-routing.module.ts b/src/app/components/colorpicker/colorpickerdemo-routing.module.ts index f6d3624b9..7315be528 100644 --- a/src/app/components/colorpicker/colorpickerdemo-routing.module.ts +++ b/src/app/components/colorpicker/colorpickerdemo-routing.module.ts @@ -1,7 +1,7 @@ /* MIT License -Copyright (c) 2019 Temainfo Software +Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/colorpicker/colorpickerdemo.component.ts b/src/app/components/colorpicker/colorpickerdemo.component.ts index f361f79da..036f92b83 100644 --- a/src/app/components/colorpicker/colorpickerdemo.component.ts +++ b/src/app/components/colorpicker/colorpickerdemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/colorpicker/colorpickerdemo.dataevents.json.ts b/src/app/components/colorpicker/colorpickerdemo.dataevents.json.ts index 396025ea1..7322dc65a 100644 --- a/src/app/components/colorpicker/colorpickerdemo.dataevents.json.ts +++ b/src/app/components/colorpicker/colorpickerdemo.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/datatable/columnfeatures/datatable-columnfeatures.demo.component.html b/src/app/components/datatable/columnfeatures/datatable-columnfeatures.demo.component.html index aba674196..70abee009 100644 --- a/src/app/components/datatable/columnfeatures/datatable-columnfeatures.demo.component.html +++ b/src/app/components/datatable/columnfeatures/datatable-columnfeatures.demo.component.html @@ -6,79 +6,79 @@
    - - - - - - - - - - - - - - - + + +
    +

    Auto-Generated Columns

    +

    + If the Datatable columns are not explicitly configured, the Grid auto-generates them and establishes their number + depending on the data fields the Grid is bound to. +

    + +
    + +
    +
    - - - - - - - - - - - - - - - + + +
    +

    Column Resizing

    +

    + The Datatable enables you to resize its columns by dragging the edges (resize handles) of the header cells. + To enable column resizing, set the [allowResize] property of the Datatable to true. +

    + +
    + +
    +
    - - - - - - - - - - - - - - - - - - - + + +
    +

    Column Filtering

    +

    + By default, when [allowFilterColumn] is enabled, the Datatable renders a filter row in its header. Based on the type of + data the columns contain, the filter row displays textboxes in each column header where the user can filter + string, numeric, or date inputs. +
    + You can also hide the filter options for a particular column using parameter [showFilterOptions] + or even remove a filter for a specific column using parameter [showFilter] in column property. +

    + +
    + +
    +
    - - - - - - - - - - - - - - - - - - - - - + + +
    +

    Column Sorting

    +

    + Simply enabling [allowSortColumn] property of Datatable to make a columns sortables.
    + You can also deactivate the ordering of a given column by passing the [sorteable] parameter in the column component. +

    + + + + + + + +
    + +
    +
    diff --git a/src/app/components/date/datedemo-dataproperties.json.ts b/src/app/components/date/datedemo-dataproperties.json.ts index 366762403..4655aadc0 100644 --- a/src/app/components/date/datedemo-dataproperties.json.ts +++ b/src/app/components/date/datedemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/date/datedemo-routing.module.ts b/src/app/components/date/datedemo-routing.module.ts index f4d2e3136..9aec25de6 100644 --- a/src/app/components/date/datedemo-routing.module.ts +++ b/src/app/components/date/datedemo-routing.module.ts @@ -1,7 +1,7 @@ /* MIT License -Copyright (c) 2019 Temainfo Software +Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/date/datedemo.component.ts b/src/app/components/date/datedemo.component.ts index e1278d7fe..f0a9cee18 100644 --- a/src/app/components/date/datedemo.component.ts +++ b/src/app/components/date/datedemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/date/datedemo.dataevents.json.ts b/src/app/components/date/datedemo.dataevents.json.ts index 6317d5acd..eae6616f0 100644 --- a/src/app/components/date/datedemo.dataevents.json.ts +++ b/src/app/components/date/datedemo.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/datepicker/datepickerdemo-dataproperties.json.ts b/src/app/components/datepicker/datepickerdemo-dataproperties.json.ts index 890b8472c..c0970cf9c 100644 --- a/src/app/components/datepicker/datepickerdemo-dataproperties.json.ts +++ b/src/app/components/datepicker/datepickerdemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/datepicker/datepickerdemo.component.ts b/src/app/components/datepicker/datepickerdemo.component.ts index 9623cbc2c..144858b99 100644 --- a/src/app/components/datepicker/datepickerdemo.component.ts +++ b/src/app/components/datepicker/datepickerdemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/datepicker/datepickerdemo.dataevents.json.ts b/src/app/components/datepicker/datepickerdemo.dataevents.json.ts index 07c25b779..36817950a 100644 --- a/src/app/components/datepicker/datepickerdemo.dataevents.json.ts +++ b/src/app/components/datepicker/datepickerdemo.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/dialog/dialog-dataproperties.json.ts b/src/app/components/dialog/dialog-dataproperties.json.ts index da839a319..5fedb253b 100644 --- a/src/app/components/dialog/dialog-dataproperties.json.ts +++ b/src/app/components/dialog/dialog-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/dialog/dialogdemo.dataevents.json.ts b/src/app/components/dialog/dialogdemo.dataevents.json.ts index 14f20ab25..23501077d 100644 --- a/src/app/components/dialog/dialogdemo.dataevents.json.ts +++ b/src/app/components/dialog/dialogdemo.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/editor/editordemo-dataevents.json.ts b/src/app/components/editor/editordemo-dataevents.json.ts index fcc04fb4f..fb11cea6f 100644 --- a/src/app/components/editor/editordemo-dataevents.json.ts +++ b/src/app/components/editor/editordemo-dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/editor/editordemo-dataproperties.json.ts b/src/app/components/editor/editordemo-dataproperties.json.ts index fab3ffcd4..0404f21a9 100644 --- a/src/app/components/editor/editordemo-dataproperties.json.ts +++ b/src/app/components/editor/editordemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/editor/editordemo-routing.module.ts b/src/app/components/editor/editordemo-routing.module.ts index 5e16aaf9a..b39c5691c 100644 --- a/src/app/components/editor/editordemo-routing.module.ts +++ b/src/app/components/editor/editordemo-routing.module.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/editor/editordemo.component.html b/src/app/components/editor/editordemo.component.html index a195c053d..1672d3931 100644 --- a/src/app/components/editor/editordemo.component.html +++ b/src/app/components/editor/editordemo.component.html @@ -9,7 +9,9 @@
    - +
    + +
    diff --git a/src/app/components/editor/editordemo.component.ts b/src/app/components/editor/editordemo.component.ts index 46794ef88..05258d5b9 100644 --- a/src/app/components/editor/editordemo.component.ts +++ b/src/app/components/editor/editordemo.component.ts @@ -1,6 +1,7 @@ import { Component, OnInit } from '@angular/core'; import * as json from './editordemo-dataproperties.json'; import * as jsonEvents from './editordemo-dataevents.json'; +import {FormControl, FormGroup} from '@angular/forms'; @Component({ selector: 'app-editordemo', @@ -21,9 +22,17 @@ export class EditorDemoComponent implements OnInit { }; - constructor() { + public form: FormGroup = new FormGroup({ + editor: new FormControl('TESTE') + }); + + constructor( ) { this.dataTableProperties = json.dataProperties; this.dataEvents = jsonEvents.dataProperties; + setTimeout(() => { + this.form.get('editor').patchValue( 'TESTE123', + { onlySelf: true, emitEvent: false }); + }, 4000); } ngOnInit() {} diff --git a/src/app/components/editor/editordemo.module.ts b/src/app/components/editor/editordemo.module.ts index 29524cb2c..48012f18d 100644 --- a/src/app/components/editor/editordemo.module.ts +++ b/src/app/components/editor/editordemo.module.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -20,7 +20,7 @@ SOFTWARE. */ import { CommonModule } from '@angular/common'; -import { FormsModule } from '@angular/forms'; +import {FormsModule, ReactiveFormsModule} from '@angular/forms'; import { NgModule } from '@angular/core'; import { HighlightJsModule } from 'ngx-highlight-js'; @@ -39,18 +39,19 @@ import { ShowcaseHeaderModule } from '../../shared/components/showcase-header/sh declarations: [ EditorDemoComponent ], - imports: [ - CommonModule, - FormsModule, - HighlightJsModule, - EditorModule, - EditorDemoRoutingModule, - ShowcaseTablePropertiesModule, - ShowcaseCardModule, - ShowcaseTableEventsModule, - ShowcaseReturnedValueModule, - ShowcaseHeaderModule - ], + imports: [ + CommonModule, + FormsModule, + HighlightJsModule, + EditorModule, + EditorDemoRoutingModule, + ShowcaseTablePropertiesModule, + ShowcaseCardModule, + ShowcaseTableEventsModule, + ShowcaseReturnedValueModule, + ShowcaseHeaderModule, + ReactiveFormsModule + ], exports: [ EditorDemoComponent, ], diff --git a/src/app/components/form/form-dataevent.json.ts b/src/app/components/form/form-dataevent.json.ts index 43115077d..fc92c9453 100644 --- a/src/app/components/form/form-dataevent.json.ts +++ b/src/app/components/form/form-dataevent.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/form/form-dataproperties.json.ts b/src/app/components/form/form-dataproperties.json.ts index 8e71ef0e1..d4f7c8c3a 100644 --- a/src/app/components/form/form-dataproperties.json.ts +++ b/src/app/components/form/form-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/form/modal/form-modal/form-modal.component.html b/src/app/components/form/modal/form-modal/form-modal.component.html index 788880bdf..ac5480caa 100644 --- a/src/app/components/form/modal/form-modal/form-modal.component.html +++ b/src/app/components/form/modal/form-modal/form-modal.component.html @@ -16,6 +16,19 @@
    +
    + + +
    diff --git a/src/app/components/form/modal/form-modal/form-modal.component.ts b/src/app/components/form/modal/form-modal/form-modal.component.ts index 2a3755216..2ef35aac5 100644 --- a/src/app/components/form/modal/form-modal/form-modal.component.ts +++ b/src/app/components/form/modal/form-modal/form-modal.component.ts @@ -21,12 +21,19 @@ import { Validators, FormGroup, FormControl } from '@angular/forms'; } ) export class FormModalComponent { + public roles = [ + { id: 1, description: 'Administrator'}, + { id: 2, description: 'Secretary'}, + { id: 3, description: 'Doctor'}, + ]; + public form = new FormGroup({ name: new FormControl('', Validators.required), nickname: new FormControl('', Validators.required), email: new FormControl('', [Validators.email, Validators.required]), description: new FormControl('', [Validators.required, Validators.minLength(8)]), user: new FormControl('', Validators.required), + role: new FormControl('', Validators.required), password: new FormControl('', [ Validators.required, Validators.minLength(8) diff --git a/src/app/components/form/modal/modal-options-table.ts b/src/app/components/form/modal/modal-options-table.ts index 3d395f44b..363faa7da 100644 --- a/src/app/components/form/modal/modal-options-table.ts +++ b/src/app/components/form/modal/modal-options-table.ts @@ -3,7 +3,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Sistemas + Copyright (c) 2020 Temainfo Sistemas Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/form/smart/modal-config-table.ts b/src/app/components/form/smart/modal-config-table.ts index eaecb140e..7153d8838 100644 --- a/src/app/components/form/smart/modal-config-table.ts +++ b/src/app/components/form/smart/modal-config-table.ts @@ -3,7 +3,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Sistemas + Copyright (c) 2020 Temainfo Sistemas Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/icons/dxicons/iconsdemo-routing.module.ts b/src/app/components/icons/dxicons/iconsdemo-routing.module.ts index 0e6a9bcbf..495424ca9 100644 --- a/src/app/components/icons/dxicons/iconsdemo-routing.module.ts +++ b/src/app/components/icons/dxicons/iconsdemo-routing.module.ts @@ -1,7 +1,7 @@ /* MIT License -Copyright (c) 2019 Temainfo Software +Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/icons/dxicons/iconsdemo.component.ts b/src/app/components/icons/dxicons/iconsdemo.component.ts index 8cc69467a..12a8b6c12 100644 --- a/src/app/components/icons/dxicons/iconsdemo.component.ts +++ b/src/app/components/icons/dxicons/iconsdemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/icons/font-awesome/iconsdemo-routing.module.ts b/src/app/components/icons/font-awesome/iconsdemo-routing.module.ts index 0e6a9bcbf..495424ca9 100644 --- a/src/app/components/icons/font-awesome/iconsdemo-routing.module.ts +++ b/src/app/components/icons/font-awesome/iconsdemo-routing.module.ts @@ -1,7 +1,7 @@ /* MIT License -Copyright (c) 2019 Temainfo Software +Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/icons/font-awesome/iconsdemo.component.ts b/src/app/components/icons/font-awesome/iconsdemo.component.ts index 83a79f99d..55de1e9da 100644 --- a/src/app/components/icons/font-awesome/iconsdemo.component.ts +++ b/src/app/components/icons/font-awesome/iconsdemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -312,8 +312,22 @@ export class IconsDemoComponent { } setTimeout(() => { this.inputCopy.nativeElement.select(); - document.execCommand('copy'); - this.showCopyMessage(icon); + if (typeof(navigator.clipboard) === 'undefined') { + const textArea = document.createElement('textarea'); + textArea.value = this.outputIcon; + textArea.style.position = 'fixed'; + document.body.appendChild(textArea); + textArea.focus(); + textArea.select(); + + document.execCommand('copy'); + document.body.removeChild(textArea); + this.showCopyMessage(icon); + return; + } + navigator.clipboard.writeText(this.outputIcon).then(() => { + this.showCopyMessage(icon); + }); }); } diff --git a/src/app/components/icons/ionicons/iconsdemo-routing.module.ts b/src/app/components/icons/ionicons/iconsdemo-routing.module.ts index 0e6a9bcbf..495424ca9 100644 --- a/src/app/components/icons/ionicons/iconsdemo-routing.module.ts +++ b/src/app/components/icons/ionicons/iconsdemo-routing.module.ts @@ -1,7 +1,7 @@ /* MIT License -Copyright (c) 2019 Temainfo Software +Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/icons/ionicons/iconsdemo.component.ts b/src/app/components/icons/ionicons/iconsdemo.component.ts index 21eb65cc8..7b5320f7a 100644 --- a/src/app/components/icons/ionicons/iconsdemo.component.ts +++ b/src/app/components/icons/ionicons/iconsdemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permissis hereby granted, free of charge, to any person obtaining a copy of this software and associated documentatfiles (the "Software"), to deal diff --git a/src/app/components/icons/overview/iconsdemo-dataproperties.json.ts b/src/app/components/icons/overview/iconsdemo-dataproperties.json.ts index 177e8304c..c4de6bf65 100644 --- a/src/app/components/icons/overview/iconsdemo-dataproperties.json.ts +++ b/src/app/components/icons/overview/iconsdemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/icons/overview/iconsdemo-routing.module.ts b/src/app/components/icons/overview/iconsdemo-routing.module.ts index 0e6a9bcbf..495424ca9 100644 --- a/src/app/components/icons/overview/iconsdemo-routing.module.ts +++ b/src/app/components/icons/overview/iconsdemo-routing.module.ts @@ -1,7 +1,7 @@ /* MIT License -Copyright (c) 2019 Temainfo Software +Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/icons/overview/iconsdemo.component.ts b/src/app/components/icons/overview/iconsdemo.component.ts index fa2316895..0bce9a293 100644 --- a/src/app/components/icons/overview/iconsdemo.component.ts +++ b/src/app/components/icons/overview/iconsdemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/input/inputdemo-dataproperties.json.ts b/src/app/components/input/inputdemo-dataproperties.json.ts index a82b57ff4..44b72ac72 100644 --- a/src/app/components/input/inputdemo-dataproperties.json.ts +++ b/src/app/components/input/inputdemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/input/inputdemo.dataevents.json.ts b/src/app/components/input/inputdemo.dataevents.json.ts index ccc867263..45fa138f9 100644 --- a/src/app/components/input/inputdemo.dataevents.json.ts +++ b/src/app/components/input/inputdemo.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/inputcurrency/inputcurrencydemo-dataproperties.json.ts b/src/app/components/inputcurrency/inputcurrencydemo-dataproperties.json.ts index b2c0b2843..81a8c317f 100644 --- a/src/app/components/inputcurrency/inputcurrencydemo-dataproperties.json.ts +++ b/src/app/components/inputcurrency/inputcurrencydemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/inputcurrency/inputcurrencydemo-routing.module.ts b/src/app/components/inputcurrency/inputcurrencydemo-routing.module.ts index df71a3446..85ed84d09 100644 --- a/src/app/components/inputcurrency/inputcurrencydemo-routing.module.ts +++ b/src/app/components/inputcurrency/inputcurrencydemo-routing.module.ts @@ -1,7 +1,7 @@ /* MIT License -Copyright (c) 2019 Temainfo Software +Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/inputcurrency/inputcurrencydemo.component.ts b/src/app/components/inputcurrency/inputcurrencydemo.component.ts index 59c1728de..fb80a9668 100644 --- a/src/app/components/inputcurrency/inputcurrencydemo.component.ts +++ b/src/app/components/inputcurrency/inputcurrencydemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/inputcurrency/inputcurrencydemo.dataevents.json.ts b/src/app/components/inputcurrency/inputcurrencydemo.dataevents.json.ts index 6317d5acd..eae6616f0 100644 --- a/src/app/components/inputcurrency/inputcurrencydemo.dataevents.json.ts +++ b/src/app/components/inputcurrency/inputcurrencydemo.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/inputmask/inputmaskdemo-dataproperties.json.ts b/src/app/components/inputmask/inputmaskdemo-dataproperties.json.ts index fca8c1bd0..f23328a3e 100644 --- a/src/app/components/inputmask/inputmaskdemo-dataproperties.json.ts +++ b/src/app/components/inputmask/inputmaskdemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/inputvalidators/inputvalidatorsdemo-dataproperties.json.ts b/src/app/components/inputvalidators/inputvalidatorsdemo-dataproperties.json.ts index 0060adcbb..86660da9c 100644 --- a/src/app/components/inputvalidators/inputvalidatorsdemo-dataproperties.json.ts +++ b/src/app/components/inputvalidators/inputvalidatorsdemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/inputvalidators/inputvalidatorsdemo.dataevents.json.ts b/src/app/components/inputvalidators/inputvalidatorsdemo.dataevents.json.ts index ccc867263..45fa138f9 100644 --- a/src/app/components/inputvalidators/inputvalidatorsdemo.dataevents.json.ts +++ b/src/app/components/inputvalidators/inputvalidatorsdemo.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/listbox/listboxdemo-dataproperties.json.ts b/src/app/components/listbox/listboxdemo-dataproperties.json.ts index a3159e232..9cb9da570 100644 --- a/src/app/components/listbox/listboxdemo-dataproperties.json.ts +++ b/src/app/components/listbox/listboxdemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/menu/menudemo-dataproperties.json.ts b/src/app/components/menu/menudemo-dataproperties.json.ts index d86d5e52b..fefe7d02f 100644 --- a/src/app/components/menu/menudemo-dataproperties.json.ts +++ b/src/app/components/menu/menudemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/menu/menudemo.component.ts b/src/app/components/menu/menudemo.component.ts index 3146bf78c..85d244aa5 100644 --- a/src/app/components/menu/menudemo.component.ts +++ b/src/app/components/menu/menudemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/menu/menudemo.dataevents.json.ts b/src/app/components/menu/menudemo.dataevents.json.ts index 40573c451..37329f37c 100644 --- a/src/app/components/menu/menudemo.dataevents.json.ts +++ b/src/app/components/menu/menudemo.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/modal/modal-dataevents.json.ts b/src/app/components/modal/modal-dataevents.json.ts index 6ef701c8d..c1fe28f0b 100644 --- a/src/app/components/modal/modal-dataevents.json.ts +++ b/src/app/components/modal/modal-dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/modal/modal-dataproperties.json.ts b/src/app/components/modal/modal-dataproperties.json.ts index de9d3a936..a85ebbdcb 100644 --- a/src/app/components/modal/modal-dataproperties.json.ts +++ b/src/app/components/modal/modal-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/modal/modal-dataresults.json.ts b/src/app/components/modal/modal-dataresults.json.ts index cbfb1e6d9..61d45e90c 100644 --- a/src/app/components/modal/modal-dataresults.json.ts +++ b/src/app/components/modal/modal-dataresults.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/multiselect/multiselectdemo-dataproperties.json.ts b/src/app/components/multiselect/multiselectdemo-dataproperties.json.ts index c54855508..1f0217425 100644 --- a/src/app/components/multiselect/multiselectdemo-dataproperties.json.ts +++ b/src/app/components/multiselect/multiselectdemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/multiview/multiviewdemo-dataproperties.json.ts b/src/app/components/multiview/multiviewdemo-dataproperties.json.ts index 466f70cea..c9afddd8f 100644 --- a/src/app/components/multiview/multiviewdemo-dataproperties.json.ts +++ b/src/app/components/multiview/multiviewdemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/multiview/multiviewdemo-routing.module.ts b/src/app/components/multiview/multiviewdemo-routing.module.ts index 43a3f0879..30e1e6143 100644 --- a/src/app/components/multiview/multiviewdemo-routing.module.ts +++ b/src/app/components/multiview/multiviewdemo-routing.module.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/multiview/multiviewdemo.component.ts b/src/app/components/multiview/multiviewdemo.component.ts index 2137ec5cb..80e7cfccb 100644 --- a/src/app/components/multiview/multiviewdemo.component.ts +++ b/src/app/components/multiview/multiviewdemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/multiview/multiviewdemo.module.ts b/src/app/components/multiview/multiviewdemo.module.ts index 8732830f0..84562ee39 100644 --- a/src/app/components/multiview/multiviewdemo.module.ts +++ b/src/app/components/multiview/multiviewdemo.module.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/overlaypanel/overlay-paneldemo-dataproperties.json.ts b/src/app/components/overlaypanel/overlay-paneldemo-dataproperties.json.ts index 4eb721fa9..8083c2b6d 100644 --- a/src/app/components/overlaypanel/overlay-paneldemo-dataproperties.json.ts +++ b/src/app/components/overlaypanel/overlay-paneldemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/panel/paneldemo-dataproperties.json.ts b/src/app/components/panel/paneldemo-dataproperties.json.ts index ac9f8655a..2cdd56595 100644 --- a/src/app/components/panel/paneldemo-dataproperties.json.ts +++ b/src/app/components/panel/paneldemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/permissions/permissionsdemo-dataproperties.json.ts b/src/app/components/permissions/permissionsdemo-dataproperties.json.ts index 924b828e9..f92f67c98 100644 --- a/src/app/components/permissions/permissionsdemo-dataproperties.json.ts +++ b/src/app/components/permissions/permissionsdemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/permissions/permissionsdemo-routing.module.ts b/src/app/components/permissions/permissionsdemo-routing.module.ts index 51ca9c861..6c02e391a 100644 --- a/src/app/components/permissions/permissionsdemo-routing.module.ts +++ b/src/app/components/permissions/permissionsdemo-routing.module.ts @@ -1,7 +1,7 @@ /* MIT License -Copyright (c) 2019 Temainfo Software +Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/permissions/permissionsdemo.component.ts b/src/app/components/permissions/permissionsdemo.component.ts index 16e8396b0..acb3c1c5d 100644 --- a/src/app/components/permissions/permissionsdemo.component.ts +++ b/src/app/components/permissions/permissionsdemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/permissions/permissionsdemo.dataevents.json.ts b/src/app/components/permissions/permissionsdemo.dataevents.json.ts index 00487b61a..db0161f73 100644 --- a/src/app/components/permissions/permissionsdemo.dataevents.json.ts +++ b/src/app/components/permissions/permissionsdemo.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/popupmenu/popupmenudemo-dataproperties.json.ts b/src/app/components/popupmenu/popupmenudemo-dataproperties.json.ts index 56ceb19ec..74ccc9b02 100644 --- a/src/app/components/popupmenu/popupmenudemo-dataproperties.json.ts +++ b/src/app/components/popupmenu/popupmenudemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/popupmenu/popupmenudemo.component.ts b/src/app/components/popupmenu/popupmenudemo.component.ts index f68587195..d69a0a649 100644 --- a/src/app/components/popupmenu/popupmenudemo.component.ts +++ b/src/app/components/popupmenu/popupmenudemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/popupmenu/popupmenudemo.dataevents.json.ts b/src/app/components/popupmenu/popupmenudemo.dataevents.json.ts index 40573c451..37329f37c 100644 --- a/src/app/components/popupmenu/popupmenudemo.dataevents.json.ts +++ b/src/app/components/popupmenu/popupmenudemo.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/progressbar/progressbardemo-dataproperties.json.ts b/src/app/components/progressbar/progressbardemo-dataproperties.json.ts index b411bc0f6..8afa00410 100644 --- a/src/app/components/progressbar/progressbardemo-dataproperties.json.ts +++ b/src/app/components/progressbar/progressbardemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/progressbar/progressbardemo-routing.module.ts b/src/app/components/progressbar/progressbardemo-routing.module.ts index ca2498231..cf526f10e 100644 --- a/src/app/components/progressbar/progressbardemo-routing.module.ts +++ b/src/app/components/progressbar/progressbardemo-routing.module.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/progressbar/progressbardemo.component.ts b/src/app/components/progressbar/progressbardemo.component.ts index 019c215bb..1cef723d5 100644 --- a/src/app/components/progressbar/progressbardemo.component.ts +++ b/src/app/components/progressbar/progressbardemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/progressbar/progressbardemo.module.ts b/src/app/components/progressbar/progressbardemo.module.ts index a754958ca..fcef60af9 100644 --- a/src/app/components/progressbar/progressbardemo.module.ts +++ b/src/app/components/progressbar/progressbardemo.module.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/radiobutton/radiobuttondemo-dataproperties.json.ts b/src/app/components/radiobutton/radiobuttondemo-dataproperties.json.ts index 81cbeef57..e4bfbb108 100644 --- a/src/app/components/radiobutton/radiobuttondemo-dataproperties.json.ts +++ b/src/app/components/radiobutton/radiobuttondemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/schedule/overview/scheduledemo-overview-dataproperties.json.ts b/src/app/components/schedule/overview/scheduledemo-overview-dataproperties.json.ts index 491fdb12c..4bfece7f2 100644 --- a/src/app/components/schedule/overview/scheduledemo-overview-dataproperties.json.ts +++ b/src/app/components/schedule/overview/scheduledemo-overview-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/schedule/overview/scheduledemo-overview.component.ts b/src/app/components/schedule/overview/scheduledemo-overview.component.ts index e635e0c75..fa0cdf06e 100644 --- a/src/app/components/schedule/overview/scheduledemo-overview.component.ts +++ b/src/app/components/schedule/overview/scheduledemo-overview.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -290,7 +290,7 @@ export class ScheduleDemoOverviewComponent { status: '', type: 'EVENTO', blocked: true, - date: { start: new Date(new Date().setHours(19, 0)).getTime() , end: new Date(new Date().setHours(21, 0 )).getTime() } + date: { start: new Date(new Date().setHours(17, 0)).getTime() , end: new Date(new Date().setHours(18, 0 )).getTime() } }, { value: '23', @@ -300,7 +300,7 @@ export class ScheduleDemoOverviewComponent { status: '', type: 'EVENTO', blocked: true, - date: { start: new Date(new Date().setHours(6, 0)).getTime() , end: new Date(new Date().setHours(7, 0 )).getTime() } + date: { start: new Date(new Date().setHours(16, 30)).getTime() , end: new Date(new Date().setHours(18, 30 )).getTime() } } ]; @@ -345,7 +345,7 @@ export class ScheduleDemoOverviewComponent { getWorkScale() { return new Promise((resolve) => { resolve( [ - new WorkScaleType( '08:00', '12:00', 30 ), + new WorkScaleType( '09:00', '12:00', 30 ), new WorkScaleType( '13:00', '18:00', 60 ) ] ); }); @@ -368,8 +368,8 @@ export class ScheduleDemoOverviewComponent { allday: false, tags: [{color : '#FF385C', title : 'Missed'}, {color : '#1d8bff', title : 'Not Met'}, {color : '#90ED5D', title : 'Attended Now'}], date: { - start: new Date(new Date().setHours(18, 30, 0)).getTime() , - end: new Date( new Date().setHours(19, 0, 0) ).getTime() + start: new Date(new Date().setHours(8, 20, 0)).getTime() , + end: new Date( new Date().setHours(9, 0, 0) ).getTime() } }]; diff --git a/src/app/components/schedule/overview/scheduledemo-overview.dataevents.json.ts b/src/app/components/schedule/overview/scheduledemo-overview.dataevents.json.ts index 316efe697..edd956a72 100644 --- a/src/app/components/schedule/overview/scheduledemo-overview.dataevents.json.ts +++ b/src/app/components/schedule/overview/scheduledemo-overview.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/shortcut/shortcutdemo-dataproperties.json.ts b/src/app/components/shortcut/shortcutdemo-dataproperties.json.ts index e52961685..864982529 100644 --- a/src/app/components/shortcut/shortcutdemo-dataproperties.json.ts +++ b/src/app/components/shortcut/shortcutdemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/shortcut/shortcutdemo.component.ts b/src/app/components/shortcut/shortcutdemo.component.ts index 3076dc763..e193e5a7a 100644 --- a/src/app/components/shortcut/shortcutdemo.component.ts +++ b/src/app/components/shortcut/shortcutdemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/shortcut/shortcutdemo.dataevents.json.ts b/src/app/components/shortcut/shortcutdemo.dataevents.json.ts index e0f5d77cb..e9f068af5 100644 --- a/src/app/components/shortcut/shortcutdemo.dataevents.json.ts +++ b/src/app/components/shortcut/shortcutdemo.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/sidebar/sidebardemo-dataproperties-sidebar-content.json.ts b/src/app/components/sidebar/sidebardemo-dataproperties-sidebar-content.json.ts index 845c0a93f..88837caa1 100644 --- a/src/app/components/sidebar/sidebardemo-dataproperties-sidebar-content.json.ts +++ b/src/app/components/sidebar/sidebardemo-dataproperties-sidebar-content.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/sidebar/sidebardemo-dataproperties.json.ts b/src/app/components/sidebar/sidebardemo-dataproperties.json.ts index 9bfd2ee40..5778027c6 100644 --- a/src/app/components/sidebar/sidebardemo-dataproperties.json.ts +++ b/src/app/components/sidebar/sidebardemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/sidebar/sidebardemo-routing.module.ts b/src/app/components/sidebar/sidebardemo-routing.module.ts index ae46aa966..f50c009a9 100644 --- a/src/app/components/sidebar/sidebardemo-routing.module.ts +++ b/src/app/components/sidebar/sidebardemo-routing.module.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/sidebar/sidebardemo.component.ts b/src/app/components/sidebar/sidebardemo.component.ts index 5d0f03f03..0b35618be 100644 --- a/src/app/components/sidebar/sidebardemo.component.ts +++ b/src/app/components/sidebar/sidebardemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/sidebar/sidebardemo.module.ts b/src/app/components/sidebar/sidebardemo.module.ts index b89afa799..dbaa1523b 100644 --- a/src/app/components/sidebar/sidebardemo.module.ts +++ b/src/app/components/sidebar/sidebardemo.module.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/skeleton/skeletondemo-dataproperties.json.ts b/src/app/components/skeleton/skeletondemo-dataproperties.json.ts new file mode 100644 index 000000000..04fd77d38 --- /dev/null +++ b/src/app/components/skeleton/skeletondemo-dataproperties.json.ts @@ -0,0 +1,51 @@ +/* + MIT License + + Copyright (c) 2018 Temainfo Software + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ +export const dataProperties = [ + { + name: 'variant', + type: 'string', + default: 'rect', + description: 'Skeleton Shape', + options: 'rect | circle | text' + }, + { + name: 'animation', + type: 'string', + default: 'pulse', + description: 'Animation of Skeleton', + options: 'none | wave | pulse' + }, + { + name: 'width', + type: 'string', + default: '150px', + description: 'Width Skeleton', + options: 'px | % | em' + }, + { + name: 'height', + type: 'string', + default: '100px', + description: 'Height Skeleton', + options: 'px | % | em' + }, +]; diff --git a/src/app/components/skeleton/skeletondemo-routing.module.ts b/src/app/components/skeleton/skeletondemo-routing.module.ts new file mode 100644 index 000000000..912735e8f --- /dev/null +++ b/src/app/components/skeleton/skeletondemo-routing.module.ts @@ -0,0 +1,37 @@ +/* +MIT License + +Copyright (c) 2018 Temainfo Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { SkeletondemoComponent } from './skeletondemo.component'; + +@NgModule({ + imports: [ + RouterModule.forChild( [ + { path: '', component: SkeletondemoComponent } + ]) + ], + exports: [ + RouterModule + ] +}) +export class SkeletondemoRoutingModule {} diff --git a/src/app/components/skeleton/skeletondemo.component.html b/src/app/components/skeleton/skeletondemo.component.html new file mode 100644 index 000000000..dfd9d57b6 --- /dev/null +++ b/src/app/components/skeleton/skeletondemo.component.html @@ -0,0 +1,112 @@ +
    + + The Truly-UI Skeleton provide a placeholder while you wait for content to load, or to visualise content that doesn't exist yet. + +
    +
    +
    + + +
    +
    Text
    +
    + +
    +
    +
    +
    +
    Circle
    +
    + +
    +
    +
    +
    +
    Rect
    +
    + +
    +
    +
    +
    +
    +
    +
    + + +
    +
    None
    +
    + +
    +
    +
    +
    +
    Pulse
    +
    + +
    +
    +
    +
    +
    Wave
    +
    + +
    +
    +
    +
    +
    + + +
    +
    Text With Rect
    +
    + + + +
    +
    +
    +
    +
    Avatar With Text
    +
    + +
    + + +
    +
    +
    +
    +
    +
    Card
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    +
    +
    + + + + + +
    +
    diff --git a/src/app/components/skeleton/skeletondemo.component.scss b/src/app/components/skeleton/skeletondemo.component.scss new file mode 100644 index 000000000..46faca37e --- /dev/null +++ b/src/app/components/skeleton/skeletondemo.component.scss @@ -0,0 +1,3 @@ +.loader-box { + +} diff --git a/src/app/components/skeleton/skeletondemo.component.ts b/src/app/components/skeleton/skeletondemo.component.ts new file mode 100644 index 000000000..b35a2f2d8 --- /dev/null +++ b/src/app/components/skeleton/skeletondemo.component.ts @@ -0,0 +1,43 @@ +/* + MIT License + + Copyright (c) 2018 Temainfo Software + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ +import { Component } from '@angular/core'; + +import * as json from './skeletondemo-dataproperties.json'; +import * as jsonEvts from './skeletondemo.dataevents.json'; + +@Component( { +selector : 'app-loader', +templateUrl : './skeletondemo.component.html', +styleUrls : [ './skeletondemo.component.scss' ], +} ) +export class SkeletondemoComponent { + + public dataTableProperties; + + public dataEvents; + + constructor() { + this.dataTableProperties = json.dataProperties; + this.dataEvents = jsonEvts.dataEvents; + } +} + diff --git a/src/app/components/skeleton/skeletondemo.dataevents.json.ts b/src/app/components/skeleton/skeletondemo.dataevents.json.ts new file mode 100644 index 000000000..684b82b99 --- /dev/null +++ b/src/app/components/skeleton/skeletondemo.dataevents.json.ts @@ -0,0 +1,24 @@ +/* + MIT License + + Copyright (c) 2018 Temainfo Software + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ +export const dataEvents = [ + +]; diff --git a/src/app/components/skeleton/skeletondemo.module.ts b/src/app/components/skeleton/skeletondemo.module.ts new file mode 100644 index 000000000..9f3cfa852 --- /dev/null +++ b/src/app/components/skeleton/skeletondemo.module.ts @@ -0,0 +1,34 @@ +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { NgModule } from '@angular/core'; + +import { HighlightJsModule } from 'ngx-highlight-js'; + +import { SkeletondemoRoutingModule } from './skeletondemo-routing.module'; +import { SkeletondemoComponent } from './skeletondemo.component'; +import { ShowcaseCardModule } from '../../shared/components/showcase-card/showcase-card.module'; +import { ShowcaseTablePropertiesModule } from '../../shared/components/showcase-table-properties/showcase-table-properties.module'; +import { ShowcaseTableEventsModule } from '../../shared/components/showcase-table-events/showcase-table-events.module'; +import { ShowcaseHeaderModule } from '../../shared/components/showcase-header/showcase-header.module'; +import { SkeletonModule } from '../../../../projects/truly-ui/src/components/skeleton'; + +@NgModule({ + declarations: [ + SkeletondemoComponent + ], + imports: [ + SkeletondemoRoutingModule, + SkeletonModule, + CommonModule, + FormsModule, + HighlightJsModule, + ShowcaseCardModule, + ShowcaseTablePropertiesModule, + ShowcaseTableEventsModule, + ShowcaseHeaderModule + ], + exports: [ + SkeletondemoComponent + ] +}) +export class SkeletondemoModule {} diff --git a/src/app/components/splitbutton/splitbuttondemo-dataproperties.json.ts b/src/app/components/splitbutton/splitbuttondemo-dataproperties.json.ts index ce1d34015..91990bf0d 100644 --- a/src/app/components/splitbutton/splitbuttondemo-dataproperties.json.ts +++ b/src/app/components/splitbutton/splitbuttondemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/splitbutton/splitbuttondemo.component.html b/src/app/components/splitbutton/splitbuttondemo.component.html index a9828b24d..60654700a 100644 --- a/src/app/components/splitbutton/splitbuttondemo.component.html +++ b/src/app/components/splitbutton/splitbuttondemo.component.html @@ -9,7 +9,7 @@
    Basic
    - + diff --git a/src/app/components/splitbutton/splitbuttondemo.component.ts b/src/app/components/splitbutton/splitbuttondemo.component.ts index 75db62d97..3014bfbb0 100644 --- a/src/app/components/splitbutton/splitbuttondemo.component.ts +++ b/src/app/components/splitbutton/splitbuttondemo.component.ts @@ -1,6 +1,8 @@ import { Component } from '@angular/core'; import * as json from './splitbuttondemo-dataproperties.json'; +import {of} from 'rxjs'; +import {delay} from 'rxjs/operators'; @Component( { selector: 'app-split-button', @@ -24,4 +26,12 @@ export class SplitButtonDemoComponent { onButtonClick( event ) { console.log( event ); } + + + getAsyncIf() { + return of(true).pipe( + delay(6000) + ); + + } } diff --git a/src/app/components/stopwatch/stopwatchdemo-dataproperties.json.ts b/src/app/components/stopwatch/stopwatchdemo-dataproperties.json.ts index 377e5f04d..679692350 100644 --- a/src/app/components/stopwatch/stopwatchdemo-dataproperties.json.ts +++ b/src/app/components/stopwatch/stopwatchdemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/stopwatch/stopwatchdemo-routing.module.ts b/src/app/components/stopwatch/stopwatchdemo-routing.module.ts index 304f61a1a..2ce26b258 100644 --- a/src/app/components/stopwatch/stopwatchdemo-routing.module.ts +++ b/src/app/components/stopwatch/stopwatchdemo-routing.module.ts @@ -1,7 +1,7 @@ /* MIT License -Copyright (c) 2019 Temainfo Software +Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/stopwatch/stopwatchdemo.component.ts b/src/app/components/stopwatch/stopwatchdemo.component.ts index e8ad09bc0..9dea28f92 100644 --- a/src/app/components/stopwatch/stopwatchdemo.component.ts +++ b/src/app/components/stopwatch/stopwatchdemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/stopwatch/stopwatchdemo.dataevents.json.ts b/src/app/components/stopwatch/stopwatchdemo.dataevents.json.ts index 98e5c2b37..0fa73b9f6 100644 --- a/src/app/components/stopwatch/stopwatchdemo.dataevents.json.ts +++ b/src/app/components/stopwatch/stopwatchdemo.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/switch/switchdemo-dataproperties.json.ts b/src/app/components/switch/switchdemo-dataproperties.json.ts index 47dd92bba..723cb3ca9 100644 --- a/src/app/components/switch/switchdemo-dataproperties.json.ts +++ b/src/app/components/switch/switchdemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/tabcontrol/tabcontroldemo-dataproperties.json.ts b/src/app/components/tabcontrol/tabcontroldemo-dataproperties.json.ts index 8d81fb361..38fca36da 100644 --- a/src/app/components/tabcontrol/tabcontroldemo-dataproperties.json.ts +++ b/src/app/components/tabcontrol/tabcontroldemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/tag/tagdemo-dataproperties.json.ts b/src/app/components/tag/tagdemo-dataproperties.json.ts index ac4fa96fa..3671dd937 100644 --- a/src/app/components/tag/tagdemo-dataproperties.json.ts +++ b/src/app/components/tag/tagdemo-dataproperties.json.ts @@ -49,10 +49,17 @@ export const dataProperties = [ options: 'px | % | em' }, { - name: 'closeButton', - type: 'boolean', - default: 'false', - description: 'Defines if the close button will be visible or not', - options: 'true | false' + name: 'mode', + type: 'string', + default: 'default', + description: 'Defines the mode of tag', + options: 'closeable | default | clickable | editable' + }, + { + name: 'charcase', + type: 'string', + default: 'unset', + description: 'Defines the Charcase of tag', + options: 'unset | lowercase | capitalize | uppercase | revert' }, ]; diff --git a/src/app/components/tag/tagdemo.component.html b/src/app/components/tag/tagdemo.component.html index bdc285294..44567d687 100644 --- a/src/app/components/tag/tagdemo.component.html +++ b/src/app/components/tag/tagdemo.component.html @@ -26,25 +26,112 @@
    Basic Usage
    -
    -
    With Close Property
    - - - - - - -
    -
    - -
    +
    + + +
    +
    With Close Mode
    + + + + + + +
    +
    + +
    +
    +
    Default Mode
    + + + + + + +
    +
    + +
    +
    + +
    +
    Editable Mode
    + + + + + + +
    +
    + +
    +
    +
    With Clickable Mode
    + + + + + + +
    +
    + +
    @@ -66,15 +153,15 @@
    Custom Color
    Custom Measures
    - - > + + >
    diff --git a/src/app/components/tag/tagdemo.component.ts b/src/app/components/tag/tagdemo.component.ts index 2747bb7f5..8696a5229 100644 --- a/src/app/components/tag/tagdemo.component.ts +++ b/src/app/components/tag/tagdemo.component.ts @@ -43,5 +43,9 @@ export class TagDemoComponent { onClose($event) { console.log('close', $event); } + + onTagValue($event) { + console.log('value', $event); + } } diff --git a/src/app/components/textarea/textareademo-dataproperties.json.ts b/src/app/components/textarea/textareademo-dataproperties.json.ts index 2f4b01c7d..e16c2c346 100644 --- a/src/app/components/textarea/textareademo-dataproperties.json.ts +++ b/src/app/components/textarea/textareademo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/textarea/textareademo-routing.module.ts b/src/app/components/textarea/textareademo-routing.module.ts index 4fc6e2060..1176df851 100644 --- a/src/app/components/textarea/textareademo-routing.module.ts +++ b/src/app/components/textarea/textareademo-routing.module.ts @@ -1,7 +1,7 @@ /* MIT License -Copyright (c) 2019 Temainfo Software +Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/textarea/textareademo.component.ts b/src/app/components/textarea/textareademo.component.ts index 76d690b89..6e680cac2 100644 --- a/src/app/components/textarea/textareademo.component.ts +++ b/src/app/components/textarea/textareademo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/textarea/textareademo.dataevents.json.ts b/src/app/components/textarea/textareademo.dataevents.json.ts index 2de79d3ae..24b305d48 100644 --- a/src/app/components/textarea/textareademo.dataevents.json.ts +++ b/src/app/components/textarea/textareademo.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/time-available-picker/time-available-pickerdemo-dataproperties.json.ts b/src/app/components/time-available-picker/time-available-pickerdemo-dataproperties.json.ts index fc7e08646..30988eb9f 100644 --- a/src/app/components/time-available-picker/time-available-pickerdemo-dataproperties.json.ts +++ b/src/app/components/time-available-picker/time-available-pickerdemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/time-available-picker/time-available-pickerdemo-routing.module.ts b/src/app/components/time-available-picker/time-available-pickerdemo-routing.module.ts index 1714c2a46..b00bde25a 100644 --- a/src/app/components/time-available-picker/time-available-pickerdemo-routing.module.ts +++ b/src/app/components/time-available-picker/time-available-pickerdemo-routing.module.ts @@ -1,7 +1,7 @@ /* MIT License -Copyright (c) 2019 Temainfo Software +Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/time-available-picker/time-available-pickerdemo.component.ts b/src/app/components/time-available-picker/time-available-pickerdemo.component.ts index 8e4aaf124..8b7415cc7 100644 --- a/src/app/components/time-available-picker/time-available-pickerdemo.component.ts +++ b/src/app/components/time-available-picker/time-available-pickerdemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/time-available-picker/time-available-pickerdemo.dataevents.json.ts b/src/app/components/time-available-picker/time-available-pickerdemo.dataevents.json.ts index ddaff73ba..350d2f6eb 100644 --- a/src/app/components/time-available-picker/time-available-pickerdemo.dataevents.json.ts +++ b/src/app/components/time-available-picker/time-available-pickerdemo.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/timeline/infinitescroll/timelinedemo-dataproperties.json.ts b/src/app/components/timeline/infinitescroll/timelinedemo-dataproperties.json.ts index 8e438f09b..c4914a067 100644 --- a/src/app/components/timeline/infinitescroll/timelinedemo-dataproperties.json.ts +++ b/src/app/components/timeline/infinitescroll/timelinedemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -27,13 +27,6 @@ export const dataProperties = [ description: 'An array of objects to display.', options: '[.. , ..]' }, - { - name: 'data', - type: 'object', - default: 'null', - description: 'An object with the data and total number of records.', - options: '{ data:[ .. , ..], total: 1000 }' - }, { name: 'align', type: 'string', diff --git a/src/app/components/timeline/infinitescroll/timelinedemo-routing.module.ts b/src/app/components/timeline/infinitescroll/timelinedemo-routing.module.ts index 99ef7a8f4..9058366c0 100644 --- a/src/app/components/timeline/infinitescroll/timelinedemo-routing.module.ts +++ b/src/app/components/timeline/infinitescroll/timelinedemo-routing.module.ts @@ -1,7 +1,7 @@ /* MIT License -Copyright (c) 2019 Temainfo Software +Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/timeline/infinitescroll/timelinedemo.component.ts b/src/app/components/timeline/infinitescroll/timelinedemo.component.ts index 6e1b0e0c7..c82839218 100644 --- a/src/app/components/timeline/infinitescroll/timelinedemo.component.ts +++ b/src/app/components/timeline/infinitescroll/timelinedemo.component.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -813,10 +813,7 @@ export class TimelineDemoComponent { this.dataTableProperties = json.dataProperties; this.dataEvents = jsonEvts.dataEvents; - this.dataLazy = { - 'data' : this.getDataFromService(0, this.take), - 'total' : this.dataAdvanced.length - }; + this.dataLazy = this.getDataFromService(0, this.take); } getDataFromService(skip, take) { @@ -826,10 +823,7 @@ export class TimelineDemoComponent { onLazyLoad(event) { clearTimeout( this.timeout ); this.timeout = setTimeout( () => { - this.dataLazy = { - 'data': this.getDataFromService( event.skip, event.take ), - 'total': this.dataAdvanced.length - }; + this.dataLazy = this.getDataFromService( event.skip, event.take ); }, 1000 ); } diff --git a/src/app/components/timeline/infinitescroll/timelinedemo.dataevents.json.ts b/src/app/components/timeline/infinitescroll/timelinedemo.dataevents.json.ts index 35eb46799..94a90f47c 100644 --- a/src/app/components/timeline/infinitescroll/timelinedemo.dataevents.json.ts +++ b/src/app/components/timeline/infinitescroll/timelinedemo.dataevents.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/timeline/overview/timelinedemo-dataproperties.json.ts b/src/app/components/timeline/overview/timelinedemo-dataproperties.json.ts index 8e438f09b..c15e89043 100644 --- a/src/app/components/timeline/overview/timelinedemo-dataproperties.json.ts +++ b/src/app/components/timeline/overview/timelinedemo-dataproperties.json.ts @@ -1,7 +1,7 @@ /* MIT License - Copyright (c) 2019 Temainfo Software + Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/timeline/overview/timelinedemo-routing.module.ts b/src/app/components/timeline/overview/timelinedemo-routing.module.ts index 99ef7a8f4..9058366c0 100644 --- a/src/app/components/timeline/overview/timelinedemo-routing.module.ts +++ b/src/app/components/timeline/overview/timelinedemo-routing.module.ts @@ -1,7 +1,7 @@ /* MIT License -Copyright (c) 2019 Temainfo Software +Copyright (c) 2020 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/app/components/timeline/overview/timelinedemo.component.html b/src/app/components/timeline/overview/timelinedemo.component.html index a213f3548..7b3fa8251 100644 --- a/src/app/components/timeline/overview/timelinedemo.component.html +++ b/src/app/components/timeline/overview/timelinedemo.component.html @@ -11,7 +11,7 @@
    Basic
    - +
    Align - Center
    - +
    --> +
    + + +
    +
    Dragndrop Type
    + + +
    +
    + +
    +
    + +
    +
    Inline View
    + + +
    +
    + +
    +
    + +
    +
    List View
    + + +
    +
    + +
    +
    + +
    +
    Resize dragndrop on upload
    + diff --git a/src/app/home/home.component.html b/src/app/home/home.component.html index b8fe3d78c..3ea4fd118 100644 --- a/src/app/home/home.component.html +++ b/src/app/home/home.component.html @@ -29,20 +29,22 @@