diff --git a/.travis.yml b/.travis.yml
index a7f62b0e..282a9c5b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -11,6 +11,8 @@ script:
- npm run build-mac
- npm run build-linux
- export VERSION=$(echo $TRAVIS_TAG | tr -d "v")
+ - curl -F package=@releases/ndm_$(echo $VERSION)_amd64.deb https://$GEMFURY_TOKEN@push.fury.io/720kb/
+ - curl -F package=@releases/ndm_$(echo $VERSION).rpm https://$GEMFURY_TOKEN@push.fury.io/720kb/
deploy:
- provider: releases
api_key: $GITHUB_ACCESS_TOKEN
@@ -23,111 +25,3 @@ deploy:
skip_cleanup: true
on:
tags: true
- - provider: packagecloud
- repository: "ndm"
- username: "wouldgo"
- token: $PACKAGECLOUD_TOKEN
- dist: "debian/buster"
- package_glob: releases/**/*.deb
- skip_cleanup: true
- on:
- tags: true
- - provider: packagecloud
- repository: "ndm"
- username: "wouldgo"
- token: $PACKAGECLOUD_TOKEN
- dist: "elementaryos/freya"
- package_glob: releases/**/*.deb
- skip_cleanup: true
- on:
- tags: true
- - provider: packagecloud
- repository: "ndm"
- username: "wouldgo"
- token: $PACKAGECLOUD_TOKEN
- dist: "ubuntu/trusty"
- package_glob: releases/**/*.deb
- skip_cleanup: true
- on:
- tags: true
- - provider: packagecloud
- repository: "ndm"
- username: "wouldgo"
- token: $PACKAGECLOUD_TOKEN
- dist: "ubuntu/utopic"
- package_glob: releases/**/*.deb
- skip_cleanup: true
- on:
- tags: true
- - provider: packagecloud
- repository: "ndm"
- username: "wouldgo"
- token: $PACKAGECLOUD_TOKEN
- dist: "ubuntu/vivid"
- package_glob: releases/**/*.deb
- skip_cleanup: true
- on:
- tags: true
- - provider: packagecloud
- repository: "ndm"
- username: "wouldgo"
- token: $PACKAGECLOUD_TOKEN
- dist: "ubuntu/wily"
- package_glob: releases/**/*.deb
- skip_cleanup: true
- on:
- tags: true
- - provider: packagecloud
- repository: "ndm"
- username: "wouldgo"
- token: $PACKAGECLOUD_TOKEN
- dist: "ubuntu/xenial"
- package_glob: releases/**/*.deb
- skip_cleanup: true
- on:
- tags: true
- - provider: packagecloud
- repository: "ndm"
- username: "wouldgo"
- token: $PACKAGECLOUD_TOKEN
- dist: "ubuntu/yakkety"
- package_glob: releases/**/*.deb
- skip_cleanup: true
- on:
- tags: true
- - provider: packagecloud
- repository: "ndm"
- username: "wouldgo"
- token: $PACKAGECLOUD_TOKEN
- dist: "linuxmint/serena"
- package_glob: releases/**/*.deb
- skip_cleanup: true
- on:
- tags: true
- - provider: packagecloud
- repository: "ndm"
- username: "wouldgo"
- token: $PACKAGECLOUD_TOKEN
- dist: "opensuse/42.1"
- package_glob: releases/**/*.rpm
- skip_cleanup: true
- on:
- tags: true
- - provider: packagecloud
- repository: "ndm"
- username: "wouldgo"
- token: $PACKAGECLOUD_TOKEN
- dist: "fedora/25"
- package_glob: releases/**/*.rpm
- skip_cleanup: true
- on:
- tags: true
- - provider: packagecloud
- repository: "ndm"
- username: "wouldgo"
- token: $PACKAGECLOUD_TOKEN
- dist: "el/7"
- package_glob: releases/**/*.rpm
- skip_cleanup: true
- on:
- tags: true
diff --git a/README.md b/README.md
index 0c3f4a17..a6a13da2 100644
--- a/README.md
+++ b/README.md
@@ -16,9 +16,6 @@ Runs on Linux, MacOS and Windows; **ndm** stands for "npm desktop manager".
-
-
-
diff --git a/lib/footer.pug b/lib/footer.pug
index 457cf77d..7da29568 100644
--- a/lib/footer.pug
+++ b/lib/footer.pug
@@ -7,10 +7,13 @@
| v{{shell.npmCurrentVersionBadge}}
button.button-global(type="button", title="Enable ndm in global folder", ng-show="shell.globalDisabled", ng-click="shell.enableGlobal()")
i.fa.fa-globe.color-primary
- | Enable globals
+ | Enable
button.button-update(type="button", ng-show="!shell.globalDisabled && shell.npmCurrentVersionBadge", title="Update npm", ng-click="shell.activeClickedLink('update'); shell.updateNpm()")
i.fa.fa-history
- | Update npm
+ | Update
+ button.button-update(type="button", title="Run doctor", ng-click="shell.activeClickedLink('doctor'); shell.runDoctor()")
+ i.fa.fa-doctor
+ | Doctor
span(class="npm-status", ng-mouseenter="shell.checkRegistryStatus()")
i.fa.fa-disk(title="npm registry is available", ng-show="!shell.loadingRegistryStatus && shell.registryStatus")
i.fa.fa-disk(title="npm registry checking ...", ng-show="shell.loadingRegistryStatus")
diff --git a/lib/icons/fontello/config.json b/lib/icons/fontello/config.json
index a533ff12..ea61bc84 100755
--- a/lib/icons/fontello/config.json
+++ b/lib/icons/fontello/config.json
@@ -131,6 +131,12 @@
"css": "globe",
"code": 59394,
"src": "fontawesome"
+ },
+ {
+ "uid": "5590d2f643b64d2d0757ae660f9c24cb",
+ "css": "doctor",
+ "code": 61681,
+ "src": "fontawesome"
}
]
}
\ No newline at end of file
diff --git a/lib/icons/fontello/css/fontello-codes.css b/lib/icons/fontello/css/fontello-codes.css
index 037d304a..c6c8a467 100755
--- a/lib/icons/fontello/css/fontello-codes.css
+++ b/lib/icons/fontello/css/fontello-codes.css
@@ -14,6 +14,7 @@
.fa-sort:before { content: '\f0dc'; } /* '' */
.fa-sort-down:before { content: '\f0dd'; } /* '' */
.fa-sort-up:before { content: '\f0de'; } /* '' */
+.fa-doctor:before { content: '\f0f1'; } /* '' */
.fa-circle:before { content: '\f111'; } /* '' */
.fa-rocket:before { content: '\f135'; } /* '' */
.fa-level-up:before { content: '\f148'; } /* '' */
diff --git a/lib/icons/fontello/css/fontello-embedded.css b/lib/icons/fontello/css/fontello-embedded.css
index d52409b1..c89d9ff3 100755
--- a/lib/icons/fontello/css/fontello-embedded.css
+++ b/lib/icons/fontello/css/fontello-embedded.css
@@ -1,15 +1,15 @@
@font-face {
font-family: 'fontello';
- src: url('../font/fontello.eot?53466719');
- src: url('../font/fontello.eot?53466719#iefix') format('embedded-opentype'),
- url('../font/fontello.svg?53466719#fontello') format('svg');
+ src: url('../font/fontello.eot?29008306');
+ src: url('../font/fontello.eot?29008306#iefix') format('embedded-opentype'),
+ url('../font/fontello.svg?29008306#fontello') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'fontello';
- src: url('data:application/octet-stream;base64,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') format('woff'),
- url('data:application/octet-stream;base64,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JyIuAQ4BDwEmNiYGDwEGNgYVDgEVLgE3HgEXFgcGBwYXFAYWAa10xnJyxujIbgZ6vAETAggDAQIEAxEVEwoBDAIIBgMBBwYEBAoFBgQBCAECAQMDBAQEBAYBBgIICQUEBgIEAwEIDAEFHAQDAgIBCAEOAQIHCQMEBAEEAgMBBwoCBAUNAwMUDhMECAYBAgECBQkCARMJBgQCBQYKAwgEBwUCAwYJBAYBBQkEBQMDAgUEAQ4HCw8EEAMDAQgECAEIAwEIBAMCAgMEAgQSBQMMDAEDAwIMGRsDBgUFEwUDCwQNCwEEAgYECAQJBFEyBAUCBgUDARgKAQIHBQQDBAQEAQIBAQECCgcHEgQHCQQDCAQCDgEBAgIOAgQCAg8IAwQDAgMFAQQKCgEECAQFDAcCAwgDCQcWBgYFCAgQBBQKAQIEAgYDDgMEAQoFCBEKAgICAgEFAgQBCgIDDAMCCAECCAMBAwIHCwQBAgIIFAMICgECAQQCAwUCAQMCAQMBBBgDCQMBAQEDDQIOBAIDAQQDBQIGCAQCAgEIBAQHCAUHDAQEAgICBgEFBAMCAwUMBAISAQQCAgUOCQICCggFCQIGBgcFCQwKaXNQAQwBDQEEAxUBAwUCAwICAQUMCAMGBgYGAQEECAQKAQcGAgoCBAEMAQECAgQLDwECCQoBAwt0xOrEdHTE6sR0/t0BCAIGBgEECAMFCwEMAQMCAgwBCgcCAwQCBAECBgwFBgMDAgQBAQMDBAIEAQMDAgIIBAIGBAEDBAEEBAYHAwgHCgcEBQYFDAMBAgQCAQMMCQ4DBAUHCAUDEQIDDggFDAMBAwkJBgQDBgEOBAoEAQIFAgIGCgQHBwcBCQUIBwgDAgcDAgQCBgIEBQoDAw4CBQICBQQHAgEKCA8CAwMHAwIOAwIDBAYEBgQEAQEtTwQBCAQDBAYPCgIGBAUEBQ4JFAsCAQYaAgEXBQQGAwUUAwMQBQIBBAgFCAQBCxgNBQwCAgQEDAgOBA4BCgsUBwgBBQMNAgECARIDCgQECQUGAgMKAwIDBQwCEAgSAwMEBAYCBAoHDgEFAgQBBAICEAUPBQIFAwILAggEBAICBBgOCQ4FCQEEBgECAwIBBAMGBwYFAg8KAQQBAgMBAgMIBRcEAggIAwUOAgoKBQECAwQLCQUCAgICBgIKBgoEBAQDAQQKBAYBBwIBBwYFBAID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QGBZZrABY7AEJmEgsAQlYGQjsAMlYGRQWCEbIyFZIyAgsAQmI0ZhOFktsDcssAAWICAgsAUmIC5HI0cjYSM8OC2wOCywABYgsAgjQiAgIEYjR7ABKyNhOC2wOSywABawAyWwAiVHI0cjYbAAVFguIDwjIRuwAiWwAiVHI0cjYSCwBSWwBCVHI0cjYbAGJbAFJUmwAiVhuQgACABjYyMgWGIbIVljuAQAYiCwAFBYsEBgWWawAWNgIy4jICA8ijgjIVktsDossAAWILAIQyAuRyNHI2EgYLAgYGawAmIgsABQWLBAYFlmsAFjIyAgPIo4LbA7LCMgLkawAiVGUlggPFkusSsBFCstsDwsIyAuRrACJUZQWCA8WS6xKwEUKy2wPSwjIC5GsAIlRlJYIDxZIyAuRrACJUZQWCA8WS6xKwEUKy2wPiywNSsjIC5GsAIlRlJYIDxZLrErARQrLbA/LLA2K4ogIDywBCNCijgjIC5GsAIlRlJYIDxZLrErARQrsARDLrArKy2wQCywABawBCWwBCYgLkcjRyNhsAlDKyMgPCAuIzixKwEUKy2wQSyxCAQlQrAAFrAEJbAEJSAuRyNHI2EgsAQjQrAJQysgsGBQWCCwQFFYswIgAyAbswImAxpZQkIjIEewBEOwAmIgsABQWLBAYFlmsAFjYCCwASsgiophILACQ2BkI7ADQ2FkUFiwAkNhG7ADQ2BZsAMlsAJiILAAUFiwQGBZZrABY2GwAiVGYTgjIDwjOBshICBGI0ewASsjYTghWbErARQrLbBCLLA1Ky6xKwEUKy2wQyywNishIyAgPLAEI0IjOLErARQrsARDLrArKy2wRCywABUgR7AAI0KyAAEBFRQTLrAxKi2wRSywABUgR7AAI0KyAAEBFRQTLrAxKi2wRiyxAAEUE7AyKi2wRyywNCotsEgssAAWRSMgLiBGiiNhOLErARQrLbBJLLAII0KwSCstsEossgAAQSstsEsssgABQSstsEwssgEAQSstsE0ssgEBQSstsE4ssgAAQistsE8ssgABQistsFAssgEAQistsFEssgEBQistsFIssgAAPistsFMssgABPistsFQssgEAPistsFUssgEBPistsFYssgAAQCstsFcssgABQCstsFgssgEAQCstsFkssgEBQCstsFossgAAQystsFsssgABQystsFwssgEAQystsF0ssgEBQystsF4ssgAAPystsF8ssgABPystsGAssgEAPystsGEssgEBPystsGIssDcrLrErARQrLbBjLLA3K7A7Ky2wZCywNyuwPCstsGUssAAWsDcrsD0rLbBmLLA4Ky6xKwEUKy2wZyywOCuwOystsGgssDgrsDwrLbBpLLA4K7A9Ky2waiywOSsusSsBFCstsGsssDkrsDsrLbBsLLA5K7A8Ky2wbSywOSuwPSstsG4ssDorLrErARQrLbBvLLA6K7A7Ky2wcCywOiuwPCstsHEssDorsD0rLbByLLMJBAIDRVghGyMhWUIrsAhlsAMkUHiwARUwLQBLuADIUlixAQGOWbABuQgACABjcLEABUKyAAEAKrEABUKzCgIBCCqxAAVCsw4AAQgqsQAGQroCwAABAAkqsQAHQroAQAABAAkqsQMARLEkAYhRWLBAiFixA2REsSYBiFFYugiAAAEEQIhjVFixAwBEWVlZWbMMAgEMKrgB/4WwBI2xAgBEAAA=') format('truetype');
+ src: url('data:application/octet-stream;base64,d09GRgABAAAAABtIAA8AAAAALRQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABWAAAADsAAABUIIwleU9TLzIAAAGUAAAAQwAAAFY+IFKDY21hcAAAAdgAAADoAAAC3hu1YfBjdnQgAAACwAAAABMAAAAgBtX/BGZwZ20AAALUAAAFkAAAC3CKkZBZZ2FzcAAACGQAAAAIAAAACAAAABBnbHlmAAAIbAAAD0QAABeEIHr8A2hlYWQAABewAAAAMwAAADYMyZ9raGhlYQAAF+QAAAAfAAAAJAc8A2RobXR4AAAYBAAAAEIAAABcRIn/5WxvY2EAABhIAAAAMAAAADBNyFIcbWF4cAAAGHgAAAAgAAAAIAFXDZJuYW1lAAAYmAAAAXcAAALNzJ0dH3Bvc3QAABoQAAAAuwAAAQ912Y6EcHJlcAAAGswAAAB6AAAAhuVBK7x4nGNgZGBg4GIwYLBjYMpJLMlj4HNx8wlhkGJgYYAAkDwymzEnMz2RgQPGA8qxgGkOIGaDiAIAKVkFSAB4nGNgZPrFOIGBlYGBqYppDwMDQw+EZnzAYMjIBBRlYGVmwAoC0lxTGBxeMHz8xRz0P4shijmIYRpQmBEkBwAjMQ0pAHic5ZI7TgNBEAVr8LKAMZ81sOIMCJH5Dj4gB+AoG3EIy3bc4XTqxLx2T4LwDehR7WqeNB9NNXAJzMS76KB8U4ialJZTPmN+yjs+NR95VNLbvH7VfXUffOVrn3zjh+MRDOXbv/mZKtrrTePj14j8Qid0ulnPFdfc6PxbFtxxz4NOH1jyxDMvWk/pz+79v2oRn/LaZmNYSMKgNfSqWCOMWyOsWyO6wRp6fawhD1hDRrCG3GCN6BJryJf6IInb1W0ih9RdIpvUfSKvVE9kGB8S4r9KZB1fJ/KPT4k6Ad8k6gn8kDD+AA+qYPV4nGNgQAMSEMgc9D8LhAESbAPdAHicrVZpd9NGFB15SZyELCULLWphxMRpsEYmbMGACUGyYyBdnK2VoIsUO+m+8Ynf4F/zZNpz6Dd+Wu8bLySQtOdwmpOjd+fN1czbZRJaktgL65GUmy/F1NYmjew8CemGTctRfCg7eyFlisnfBVEQrZbatx2HREQiULWusEQQ+x5ZmmR86FFGy7akV03KLT3pLlvjQb1V334aOsqxO6GkZjN0aD2yJVUYVaJIpj1S0qZlqPorSSu8v8LMV81QwohOImm8GcbQSN4bZ7TKaDW24yiKbLLcKFIkmuFBFHmU1RLn5IoJDMoHzZDyyqcR5cP8iKzYo5xWsEu20/y+L3mndzk/sV9vUbbkQB/Ijuzg7HQlX4RbW2HctJPtKFQRdtd3QmzZ7FT/Zo/ymkYDtysyvdCMYKl8hRArP6HM/iFZLZxP+ZJHo1qykRNB62VO7Es+gdbjiClxzRhZ0N3RCRHU/ZIzDPaYPh788d4plgsTAngcy3pHJZwIEylhczRJ2jByYCVliyqp9a6YOOV1WsRbwn7t2tGXzmjjUHdiPFsPHVs5UcnxaFKnmUyd2knNoykNopR0JnjMrwMoP6JJXm1jNYmVR9M4ZsaERCICLdxLU0EsO7GkKQTNoxm9uRumuXYtWqTJA/Xco/f05la4udNT2g70s0Z/VqdiOtgL0+lp5C/xadrlIkXp+ukZfkziQdYCMpEtNsOUgwdv/Q7Sy9eWHIXXBtju7fMrqH3WRPCkAfsb0B5P1SkJTIWYVYhWQGKta1mWydWsFqnI1HdDmla+rNMEinIcF8e+jHH9XzMzlpgSvt+J07MjLj1z7UsI0xx8m3U9mtepxXIBcWZ5TqdZlu/rNMfyA53mWZ7X6QhLW6ejLD/UaYHlRzodY3lBC5p038GQizDkAg6QMISlA0NYXoIhLBUMYbkIQ1gWYQjLJRjC8mMYwnIZhrC8rGXV1FNJ49qZWAZsQmBijh65zEXlaiq5VEK7aFRqQ54SbpVUFM+qf2WgXjzyhjmwFkiXyJpfMc6Vj0bl+NYVLW8aO1fAsepvH472OfFS1ouFPwX/1dZUJb1izcOTq/Abhp5sJ6o2qXh0TZfPVT26/l9UVFgL9BtIhVgoyrJscGcihI86nYZqoJVDzGzMPLTrdcuan8P9NzFCFlD9+DcUGgvcg05ZSVnt4KzV19uy3DuDcjgTLEkxN/P6VvgiI7PSfpFZyp6PfB5wBYxKZdhqA60VvNknMQ+Z3iTPBHFbUTZI2tjOBIkNHPOAefOdBCZh6qoN5E7hhg34BWFuwXknXKJ6oyyH7kXs8yik/Fun4kT2qGiMwLPZG2Gv70LKb3EMJDT5pX4MVBWhqRg1FdA0Um6oBl/G2bptQsYO9CMqdsOyrOLDxxb3lZJtGYR8pIjVo6Of1l6iTqrcfmYUl++dvgXBIDUxf3vfdHGQyrtayTJHbQNTtxqVU9eaQ+NVh+rmUfW94+wTOWuabronHnpf06rbwcVcLLD2bQ7SUiYX1PVhhQ2iy8WlUOplNEnvuAcYFhjQ71CKjf+r+th8nitVhdFxJN9O1LfR52AM/A/Yf0f1A9D3Y+hyDS7P95oTn2704WyZrqIX66foNzBrrblZugbc0HQD4iFHrY64yg18pwZxeqS5HOkh4GPdFeIBwCaAxeAT3bWM5lMAo/mMOT7A58xh0GQOgy3mMNhmzhrADnMY7DKHwR5zGHzBnHWAL5nDIGQOg4g5DJ4wJwB4yhwGXzGHwdfMYfANc+4DfMscBjFzGCTMYbCv6dYwzC1e0F2gtkFVoANTT1jcw+JQU2XI/o4Xhv29Qcz+wSCm/qjp9pD6Ey8M9WeDmPqLQUz9VdOdIfU3Xhjq7wYx9Q+DmPpMvxjLZQa/jHyXCgeUXWw+5++J9w/bxUC5AAEAAf//AA94nMVYe2wcx3mfb567e8u9493eHkVRR/KOvKNI6qTeU5ZI6iQToiSfUplmJFJ2baK2U0UyJUOVHdev/lEnMBwjrp0gMFzDeVkO2iCGbTVwm9ZBGiiO7QJFC6dCkaZAXRRpYTTpHzXaRojI/maPksWkD6BA0XvM7szOfPN9v+85y8TalbVXxR0iwYpsB5tm7fb0UC5QknGaE8Qlk5ytEDGMqFPMoGvkMlNaqwWmlF5kWulONspuCQfCtKMGJkaNLmynuCnV91DZNs3qILVsE4VJykVhq16hQOT5DLXCgAoV3FTzxO+6WQe6c1il5LzWnY7W8yrQhzsYvDnun51/4qUnj/CFx3/vU0cfOvvmP751Wj/4xx9889F/n1fq8GGl5rvLA321D0p2+fItTyzwI5/58mew9olb7rt47tzF923D8OnKvwT5fTbAKmy2vXcsz5WMsoEQnM9pYkwqZmVmXCi+zASRWGBC0CIjQR1ik+PF4f6+dMpo5pNvVDhhpbkqWKZRL01QQZtsGOVq1WY5Uy/bAaOzmTDaTdUmff3cm2evivMnnjnleCBzynjkaeU85Cjtee6vOZ5IrPON5sqBk47nOSft1O/RcSOUEmb1Je04G2WiN+jf+CduesU9srh3ir3B/oj9AfsC+zx7nGkmMPUpRozj7gfsXbbCltjNbB+bYTU2xDYxD+rm9AI9S5+nJ+nT9CDdR3fTnSTYe+xvAZdmhm6hwzSG9Q7T9AH9Nf0F/Sl9m75FO6mGMbLjbG7zTa942P/G9d0fZ7Al7P0Gngvc/d/zYNgcZIYR479/8/8fEEtLsSbaDZiSEdysMKOF0aeYdoR2TjGHhEOnGNFpF9AItoALE4tKcsFEpwtje5ck2KESdzNuFDdwSq26NFSXhvqQhlJdGuooZFeHNv8vd15a2rsJMjD6K7pEf0iv0zE6yr7Hvsu+wX6fvcpeZr/B7gdGGjj6mOcDMcU2ugEFZKoz1IDLN3OlJmLCHtKlRmjqJd2oSBssbNQIxyks6IJplkvFZqlcq/ByxQ4jdOg8bpKkIwQQXcBNqYyvsf9qycxQ0RItR2gQaqJaVC9X4wk6ZydjgzLIgmq5ZPt5quYig610ZCpUjspF3JdLrXqurE3Vksq1clhsIgMOsFSbPA9bkcEyLCyXdFSzdAbBUEsPIpjltKXXwKyo1SxXeKOGgKfzvAa+q3k5KKIqqGJxqzBIecrmKddsgAoaK32pmas2IS7ECnW22LRhE+OmYAJRAgu2X7Z8IWTUIUfUBCUwHLXyHOg0W1EuTzNUapQbFUBQj9GoYkYB3MxQLbJtK2qWZijbahYtjxbgagOAiGarhHjdLGFD/JIEybLAC1GaklRqlizuTZ0NKFuhFhiPAIfOhTraELsowx2bM0RvNoO4xB0toDIpPaUlOcRJCImPJs0dV0mNmeT4pAYkIi0mBMSNiykEqyPjcal6hAiDjHQ0FnPlcsq4WnIEROFIGL/QLqgpVyrEaiUpMImkTCE0O9Ihx15AWEgu00r4Prbn/qbNQiuVUSIhexLYSEtHuvLmqlRcK0F9HnhQ0vKJLYm4Z0xaGldiQx6gzwMuOU86AqSFIul5BArKN1w4wjUREqPjpGQIOiAuAiHJU06vx/EhxdHjwhccaIA/OGIC+3AnFAjk3MqtgBJ+JPuEi0xDoocHFg6JJxo8ACcpjaOML9HhkD5mxJc8jeVcBS7nngOotDbK9b2P//oR8qkH67M2bFiglQ+fx4cs5x40xAE1JoERmUgSdz26PtWs/g05oIbJQiUwDSR88kyMK3HtKw1cJVnl4mKTpmNhJUgOXRvhGM9IpZVvTQOi+S5AURBB9HIROHZcuFCr0BRIDyQVxPKkMYZc5RgHIAmLJczBEyKwj5U0nDwnyYUNZgEAkBpfMLHtl6XVutRJDzwoCTzCBCfdzykHixMqFCIFjKWjHEmJvh7lQ2rpO4EMyEuEBuETkEMXaeFJ6SrNhRcDzFNO2tov+PBMEKsSeKdU0sZinoDQ6Mq+wA2US7BKQA3Q4SaKJ2Ej6OPnqJzkDoAMuOcpDMiEq6xpQAeQWcIhAIEmiIeFVu9oVnuyH7Uya54k6weAmntCYwjoBprbOdaeLB014PS6getzmULO2lDb7W3P9BCjQXDF5zjZ4oWJFWX1JKQt7QhpbJlJreUCg5wo7SRKu2xxZLQ4EtrSjlDKmCIaGyxNFk0ORU2rtl7ZtBq2ub6g+2oUPBUFc8mQngoiCpMfdl67rnyjXQfw9Ck8wPQweX2ntqFYQwZa+2f+ff4pNsLy7c2FTSlztU5l/AyKVPYxVKGhVH0Toyg0/8c6lH8/2UlNpl58EU0nZa+pD/vJ5IsvJu+N7M3588lfnJis2AmWJzC2lz/CAua9ziwLpLITFO9favTWZ4B4RHu9y4mBKBpIXPbo9iBxOREF9EEy5P5lj3Vp8Cn6MWjk2iH6RHO2PWPpNUKuonWCVpZmbbga8d2W4DodAPa2pZmI91inJ87zZ1mWbWn3J7v0YDlnrhENc6FQOVA1oFqmq+DETSTOp1aHIOrq++ty0+lYcB5FeJBMUtTF4TydsUDAzlbX/ky8z38C/vPsrpte6UGZUmRwFnGnIrsxoxVbWzDrIta4+DEGl75pc7uAWeLMfztpqd1LbEt/LuxNuZoF1KPjCjuC7VNxuFAWpWZtNDfcmiFkRnBv4RHfHErxcR4O/ewHdTnOU0PipPez1wI5FL5YL+SHmrQQjtAHfX2rU339VbrY13d67LFwoJAf6YvVubYGfeymtyFPbzu4Blq2ajUxGuryMFJjFzFoIkyu+l1V5r3L3tespeehZygIi6DetTd5P/9X1seGWYlNwBMbbBfbw2bZQXZf++zBudkb9+2ZHuhPsYTD908hSNwwisxYHYPLN2o7tlcmthoUcnM25CKvCbmiXcRCJJ1TKOzYvbZwhfsvM4QVZ545ji32HHWo2SwU9rabu5q7dra2TRZKhVKmf3NfAs5BKEKyIYJYAXVFow7Hrcf+mh3ONnNw74IWjaIZpDL+rWI2t4cM/uVsrbWdcvibWqOcpBb+9FYpikZHHn56z/SB8VLt2MeOVld/vHC8NlcPP+r7T0xM9+Sfnsrn905MDyVq3ZHE0FMYuXFiOt9Dny3tqLUO7pk6ODry0MGdd46+VDtWw+/E4OCJYr22uhgv3ZO/tjQmFi+9RszqS62trf1ULPGLqLJ7gfIE28sOtecySHAuinraTIqJOeai5nXNMspUSVouCxtMGUwPRzuAZo+zziJDXuhM72oVM6XRTJhJe2qLVXgBVRPKnms3NgYOr5/phnGCGxYVa4vaUDbUuCkB0lZmhvAwymUiPts/MsD7xqKn1697fX1lCQc8X/OvGu/KPP/sIg/M6k0m4PyF+uiVpZEmuafdep6+MVj1TrtfS/fHK8P168qFeHHcUpp6jOeZ1ecujNbroxeCAZrfUqKR/OrLAzBjYPOXfIr/A2x5Cyu2h9ajC3LamY0hIVsvbQidiDQtsF+OBbrO3DcGno3G/y9Jz4YhL4/w/VYQxzvbXY/d4INy/2mMK4Vdz9qw889tdT3taz4ay/WLPko/z/RGNhEur+fNYvSqyAgf9vMRdrR9y9S2EiqLOR/BibVR1EpYD7wPhcgKzq4Ok84KEjxSp8vFMuyKwc7gf0TOAvzPvhhwqHO4sylE4ixWBmIrIvvOgyL7ysPaDSzJFuqtXshazaE+r+JUYwplWNQMTZMuFoBCDtbTxJNcb7wmsjk29liA806YD3lff9/+saFn/vy3+a0PI2GiHi5k8uPj+XT65DMn02l7mym4WiCdPnjbic+doKGx9mKb3k7GS3mYLOxM/HDp0UeXDvoPHKE8plFvOD41Rt57uxf4ken3vPFdkxT2gvbq3x15wD+4e2Fh9w/9ZnHbzIzVwdX6wt+og0xXBx9WAmLp+nx/+3VZncMuHhZfAg2HbWPb25P9m5IoeGfj4zjxFcb5aXtAj1+5sEXcsM7EOJwzLe0eNljFuAAge0hZNyBEKwMI4zt7EGrFAIuRockh/B45+qvb2glyLklfjxix/fnnOE4TI555RLvvNic//q1njM8XIzt16PVPv3P3ZPNdVz/C1Yjxfuf57aRGEolLDiXa204c8bv54sraT/k+4bF+NtneKm1gmYOhyDPCSmH9jPgCJLGWwakTDo/UhpXaNEF6AnjHASM+2PUW45vYZHd60SnPWf2E75ol5V44lcsEF7xC4rUk59nVvONlnXs03b01fcn3L6VhgcDxpLhVzMd+Psmm2Zn2PTf4MGM9Pow4tzmNdCLmEsS2kuxH5bkf0ZBpw1Yce7CXjJZRpTKUtWo5QVr7B1ycB8QiUO8RByvbBvMp1BHNxrbpynRpND85OJmLkltSWxyDlBz4cUputrKxzqncyFNmY7fV7fKrD3EovvYU2Ye+/tiP9p196+/fOS32/eiT/9X9uYv3827n3EU6v2P7HaV9Jfzu2L5jdQG9su2V0bvUfcTHZ8bQ47+F0bnuQ3uJba77fuyX2H52vH1sHEejLTgwtpF4nd01ro2cY/aI50g4vBHSnGI4tGprj0glOLos29cdqC6XLbFYt9Y2OesUS+WtjVwxN+Jan4fAUGm39rTn81p1RlQ48kQuguptCKg3B8kaZ56PIijYsWmqwxQatoHJLs2e/eLR5ZenpOroXrn1/ht3nTgyziude87cNXa4N5O7DJ+d7D0w9dz8sRfO7Vt93nNesy8GH/HMCI6Ut2Nwdv6gDuRhRbqxq9I5ee5kpzI2eji1LQou92XSB26YmT33wqHLdlHR8b6La1zPvRLj04Owdkf7tjLyZD9pxufse2Cp2Apz7XHXWWEJZmQCSRX2pyWzyRWnchQjOFu4BJgsXRsUvUXmOV7njl85unC4Uy5vLY2OHosKfhwYS8VCwHNw4xlSQMy+HC2US+WADBJpPXZd1B8IhzX7zkZom3VnZCteJ/K8Ve3W9BoVTdlGHIEFPL+rWZxtjtDUPYtVumFs/0fGHaUa/Umx5Xjt+F106NFDOzoRDB1+i1PXjSJIp4aqI/30na8cfGx5J5+67fG537xTB/bApm548tCxL957QLYfePbWb/8TfXlqtjB1e2PP7KF7vZnlZp7y6YHRHXTP8uLnjpZGE4PCIS306u/29CBz4SQ/NDv+le/sXH7smcdun+JHlNlsAlWpE3B/Ger5yX8As4duOHicY2BkYGAA4qO6TXnx/DZfGbiZXwBFGK48XPsURv//+z+L+RVzEJDLwcAEEgUAoKgPuQB4nGNgZGBgDvqfBSRf/v/7/yfzKwagCAoQBwC2RAelAHicY37BwMAc+f8vChZkYGBMZWBgsgbKgeRf/v/HZP3/P5MUWO1/MNsaJP//P7MgEIP0LADzgfpBasDq/gEAU9QikgAAAAAAAACAAOoE7gVWBaAFwgXqBiIGigawB2IH8Ag0CFwIggkeCUAJognkCnoLCgvCAAEAAAAXAfgACgAAAAAAAgAYACgAcwAAAKoLcAAAAAB4nHWQ3WrCMBiG38yfbQrb2GCny9FQxuoPDEEQBIeebCcyPB211rZSG0mj4G3sHnYxu4ldy17bOIayljTP9+TLl68BcI1vCOTPE0fOAmeMcj7BKXqWC/TPlovkF8slVPFmuUz/brmCBwSWq7jBByuI4jmjBT4tC1yJS8snuBB3lgv0j5aL5J7lEm7Fq+UyvWe5golILVdxL74GarXVURAaWRvUZbvZ6sjpViqqKHFj6a5NqHQq+3KuEuPHsXI8tdzz2A/Wsav34X6e+DqNVCJbTnOvRn7ia9f4s131dBO0jZnLuVZLObQZcqXVwveMExqz6jYaf8/DAAorbKER8apCGEjUaOuc22iihQ5pygzJzDwrQgIXMY2LNXeE2UrKuM8xZ5TQ+syIyQ48fpdHfkwKuD9mFX20ehhPSLszosxL9uWwu8OsESnJMt3Mzn57T7HhaW1aw127LnXWlcTwoIbkfezWFjQevZPdiqHtosH3n//7AeZuhFEAeJxtjV1uwjAQhD0hPyZpaSkt9BI5lLG3xIrJRvYGxO1JSXnrPKxGO99oVKYW1ep/HZBhhRwFSlTQWKNGgxe8YoM3vGOLD+zwiS/sccC32og/U2qtjzZQy1sjQoN4Hv5erjgFPlIzhulJlZHOfKHGmkjSRn/qpF684+tQ2I5sr384OIot6yWZxjyw7XPnU58njrL+PY9C9XDTWDq2wrF8jsw4iQ50oTCn2hkxR5Oo6nyasVtmRKk7wwRFLwB4nGPw3sFwIihiIyNjX+QGxp0cDBwMyQUbGVidNjEwMmiBGJu5mBg5ICw+BjCLzWkX0wGgNCeQze60i8EBwmZmcNmowtgRGLHBoSNiI3OKy0Y1EG8XRwMDI4tDR3JIBEhJJBBs5mFi5NHawfi/dQNL70YmBhcADHYj9AAA') format('woff'),
+ url('data:application/octet-stream;base64,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JyYDNjcmIi8BNiYvASYvASYPASIPARUmJyIuAQ4BDwEmNiYGDwEGNgYVDgEVLgE3HgEXFgcGBwYXFAYWAa10xnJyxujIbgZ6vAETAggDAQIEAxEVEwoBDAIIBgMBBwYEBAoFBgQBCAECAQMDBAQEBAYBBgIICQUEBgIEAwEIDAEFHAQDAgIBCAEOAQIHCQMEBAEEAgMBBwoCBAUNAwMUDhMECAYBAgECBQkCARMJBgQCBQYKAwgEBwUCAwYJBAYBBQkEBQMDAgUEAQ4HCw8EEAMDAQgECAEIAwEIBAMCAgMEAgQSBQMMDAEDAwIMGRsDBgUFEwUDCwQNCwEEAgYECAQJBFEyBAUCBgUDARgKAQIHBQQDBAQEAQIBAQECCgcHEgQHCQQDCAQCDgEBAgIOAgQCAg8IAwQDAgMFAQQKCgEECAQFDAcCAwgDCQcWBgYFCAgQBBQKAQIEAgYDDgMEAQoFCBEKAgICAgEFAgQBCgIDDAMCCAECCAMBAwIHCwQBAgIIFAMICgECAQQCAwUCAQMCAQMBBBgDCQMBAQEDDQIOBAIDAQQDBQIGCAQCAgEIBAQHCAUHDAQEAgICBgEFBAMCAwUMBAISAQQCAgUOCQICCggFCQIGBgcFCQwKaXNQAQwBDQEEAxUBAwUCAwICAQUMCAMGBgYGAQEECAQKAQcGAgoCBAEMAQECAgQLDwECCQoBAwt0xOrEdHTE6sR0/t0BCAIGBgEECAMFCwEMAQMCAgwBCgcCAwQCBAECBgwFBgMDAgQBAQMDBAIEAQMDAgIIBAIGBAEDBAEEBAYHAwgHCgcEBQYFDAMBAgQCAQMMCQ4DBAUHCAUDEQIDDggFDAMBAwkJBgQDBgEOBAoEAQIFAgIGCgQHBwcBCQUIBwgDAgcDAgQCBgIEBQoDAw4CBQICBQQHAgEKCA8CAwMHAwIOAwIDBAYEBgQEAQEtTwQBCAQDBAYPCgIGBAUEBQ4JFAsCAQYaAgEXBQQGAwUUAwMQBQIBBAgFCAQBCxgNBQwCAgQEDAgOBA4BCgsUBwgBBQMNAgECARIDCgQECQUGAgMKAwIDBQwCEAgSAwMEBAYCBAoHDgEFAgQBBAICEAUPBQIFAwILAggEBAICBBgOCQ4FCQEEBgECAwIBBAMGBwYFAg8KAQQBAgMBAgMIBRcEAggIAwUOAgoKBQECAwQLCQUCAgICBgIKBgoEBAQDAQQKBAYBBwIBBwYFBAIDAQUEAv4NFVUCAgUEBgIPAQECAQIBAQMCCgMGAgIFBgcDDgYCAQUEAggBAggCAgICBRwIEQkOCQwCBBAHAAL//f+xA18DCwAjADAAQUA+DQEAAR8BBAMCRwIBAAEDAQADbQUBAwQBAwRrAAcAAQAHAWAABAYGBFQABAQGWAAGBAZMFRUjJCUjJBQIBRwrATU0JgcjNTQmJyMiBgcVIyIGFxUUFjczFRQWFzMyNjc1MzI2NxQOASIuAj4BMh4BAqcWDo8WDkcPFAGPDhYBFA+PFg5HDxQBjw4WsnLG6MhuBnq89Lp+ATpIDhYBjw8UARYOjxQPSA4WAY8PFAEWDo8UM3XEdHTE6sR0dMQAAAABAAD/7wLUAoYAJAAeQBsiGRAHBAACAUcDAQIAAm8BAQAAZhQcFBQEBRgrJRQPAQYiLwEHBiIvASY0PwEnJjQ/ATYyHwE3NjIfARYUDwEXFgLUD0wQLBCkpBAsEEwQEKSkEBBMECwQpKQQLBBMDw+kpA9wFhBMDw+lpQ8PTBAsEKSkECwQTBAQpKQQEEwPLg+kpA8AAQAAAAABQQJ9AA4ACrcAAABmFAEFFSsBFA8BBiImNRE0PgEfARYBQQr6CxwWFhwL+goBXg4L+gsWDgH0DxQCDPoKAAABAAAAAAI8Ae0ADgAXQBQAAQABAUcAAQABbwAAAGY1FAIFFisBFA8BBiIvASY0NjMhMhYCOwr6CxwL+gsWDgH0DhYByQ4L+gsL+gscFhYAAAEAAAAAA6UCmAAVAB1AGg8BAAEBRwACAQJvAAEAAW8AAABmFBcUAwUXKwEUBwEGIicBJjQ/ATYyHwEBNjIfARYDpRD+IBAsEP7qDw9MECwQpAFuECwQTBACFhYQ/iAPDwEWECwQTBAQpQFvEBBMDwAC//7/zgPqAu4ADgAeAGRLsA1QWEAjAAMEBANjBQEAAgECAAFtAAEBbgAEAgIEVAAEBAJXAAIEAksbQCIAAwQDbwUBAAIBAgABbQABAW4ABAICBFQABAQCVwACBAJLWUARAQAdGhcUERAJBgAOAQ0GBRQrATIWBwMOASMhIicDJjYzJRchNz4BOwEyHwEWMyEyFgO6IBACKgIUIPzaNAQqAhAgA2oK/LIOBCAUpDQiHiA2AVQUJAH0GBj+PBgaMgHEGBhuKIQUHCIeJBgAAAAAAf//AAACOwHJAA4AEUAOAAEAAW8AAABmFTICBRYrJRQGJyEiLgE/ATYyHwEWAjsUD/4MDxQCDPoKHgr6CqsOFgEUHgv6Cgr6CwAAAAoAAP/GAhoC9gAYACEAJgArADAANQA6AD8ARABJAHVAcklHRENCPz0cGhAACwgCRjwCAwg5JQIEAzIoAgUENTMwLy4rKQcABQVHCgcCAwgECAMEbQYJAgQFCAQFawAABQBwAAEAAggBAmAACAMFCFIACAgFVgAFCAVKNjYiIkFANjo2Ojg3LSwiJiImExobGAsFGCsBFhcWFRQHDgEiJy4BNTQ2NzU0PgEyHgEVIRU2FzU0JiIGAzUjBx8BJwcfATcjFRc/AQcXPwEnFTM3LwEXNy8BBzM1Jw8BNycPAQHIJhYWJSR8kT89SComM1dmVjL+7VRaM0c0FFUMDIorPQ0ekTweHkErPSALM1UMDIorPQsgjzweHkMrPR4NAZMmMDM3ST88SSUke0k4YyWmM1czM1czaB8faCM0M/5YPB4eQSs/HgszVQwMiis9Cx6RPB4eQys9Hg0zVQwMiis9CyAAAAAABf////kDWQLEAAgAEQAhACsAQQBKQEcTAQEECQACAAEbAQUAA0cACQAHBgkHYAAGAAQBBgRgAwEBAgEABQEAYAAFCAgFVAAFBQhYAAgFCEw9OjcjEyYlExQTEgoFHSslFAYiJj4BHgEXFAYiJj4BHgEXNTQmJyEiBgcVFBYXITI2ASEDLgEjISIGBwEVFAYjISImNzU0NxM+ARchMhYXExYCRBokHAIYKBaRGiQcAhgoFkEMBv1ZBwoBDAYCpwcK/VICk1gCDgf+SwcOAgKeNCX9WSQ2AQluCTQeAbUfMgpuCasSGhokHAIYFBIaGiQcAhhtswcKAQwGswcKAQwBEgENBwoKB/6asyU0NCWzDhwBUh0mASQe/q4cAAAC////1QI8AucADgAdACNAIAABAAEBRwADAgNvAAIBAm8AAQABbwAAAGYVNCYUBAUYKyUUDwEGIi8BJjQ2NyEyFicUBiMhIi4BPwE2Mh8BFgI7CvoLHAv6CxYOAfQOFgEUD/4MDxQCDPoKHgr6CvMPCvoLC/oKHhQBFsgOFhYcC/oLC/oKAAAAAQAA/9UCPAEXAA4AF0AUAAEAAQFHAAEAAW8AAABmJhQCBRYrJRQPAQYiLwEmNDY3ITIWAjsK+gscC/oLFg4B9A4W8w8K+gsL+goeFAEWAAAB//8AAAI7AucADgARQA4AAQABbwAAAGYVMgIFFisBFAYjISIuAT8BNjIfARYCOxQP/gwPFAIM+goeCvoKAckOFhYcC/oLC/oKAAAAAv///7EDEwMMAAgATgBWQFM8LSYDAwdHDAADBABAEwIIBANHAAcCAwIHA20ABAAIAAQIbQYBAgUBAwkCA2AACQAABAkAYAAIAQEIVAAICAFYAAEIAUxNTBkUIyQUIy4cEgoFHSsBNC4BDgEWPgE3FAYHFRQGIiYnNS4BNxE0NjcyFz4BMzIWFAYHIicVFBY+AT0BBiMiJjQ2FzIWFzYzMhYXERQGBxUUFjI2NzUuATU0NjIWAsoUHhQCGBoYRiggktCQAlt8ARYOAwYJIhMeKioeEhJqkmoSEh4qKh4TIgkGAw8UAXpcaJRoASAoQFhAAckPFAIYGhgCFA8iOAvcWX5+WUkMeFABHg8UAQERFCo8KAEK4TtUAlA94QoqOiwBFBEBFg7+4lB4DEk7VFQ73Aw2Iy0+PgAAAf/9/7EDXwMLAAwAEUAOAAEAAW8AAABmFRMCBRYrARQOASIuAj4BMh4BA1lyxujIbgZ6vPS6fgFedcR0dMTqxHR0xAACAAD/fAOhAwsACAAtAC9ALBoZDw4EAkQAAQACAAECbQACAm4AAwAAA1QAAwMAWAAAAwBMKyomJRMSBAUWKwE0JiIGFBYyNjcUBgcGDwEGDwEGIi8BJj8BJwcGIyIvASY/ATY/ATY3PgEzMhYDJCAsICAsIH1WYi1ACwEI1gQMBiQHAy+cmgIEBwUkCgd9BgnTNixpvpIHDAJYFiAgLCAgt4vKZSw20wkGfQIFJAcKm5wvAQUkCwvWCAELQC1oUAwAAAAAAf/9//kCQgMKABoALEApBAEBAgFHAAQABG8DAQACAG8AAgEBAlQAAgIBWAABAgFMFCEkMyEFBRkrAQYrAREUBiMhIiY/ATY7AREjIiY/ATYyHwEWAjgKFmsKCP53DAkHWQUJs2sXEw6zCiILsg8CAhX+HggKFQhsBgFlKRLWDAzWEgAABAAA/2oDWwNSAA4AHQAsAD0Ab0BsOQwDAwcGKiECAQAbEgIFBANHCwEAKQEEGgECA0YABwYABgcAbQgBAAABBAABYAoBBAAFAgQFYAsBBgYMSAkBAgIDWAADAw0DSS4tHx4QDwEANjUtPS49JiUeLB8sFxYPHRAdCAcADgEODAUUKwEyNjcVFA4BIi4BJzUeARMyNjcVFA4BIi4BJzUeATcyNjcVFA4CLgEnNR4BEzIeAQcVFA4BIi4BJzU0PgEBrYTmQnLI5MpuA0LmhYTmQnLI5MpuA0LmhYTmQnLI5MpuA0LmhXTEdgJyyOTKbgN0xAGlMC9fJkImJkImXy8w/lQwL18nQiYmQidfLzDWMC9fJkImAio+KF8vMAKDJkInRydCJiZCJ0cnQiYAAgAA/7EDWQMLADEARgBaQFcqAQMFHQEIA0AlAgQIOzMCBgcERwAIAwQDCARtAAQHAwQHawABBgIGAQJtAAUAAwgFA2AABwAGAQcGYAACAAACVAACAgBYAAACAEwjJicpNRcjFyQJBR0rARQOAiMiJicmND8BNhYXHgEzMj4DLgIiBgcXFgYrASImJzU0Nh8BPgEzMh4CJRUUBisBIiY9ATQ2OwE1NDY7ATIWA1lEcqBWYK48BAVMBhEEKXZDOmhQKgIuTGxvZChNERMX+g8UASwRSDyaUleedEL+nAoIsggKCgh9CgckCAoBXleedERSSQYOBE0FAQY1Oi5ManRqTC4oJU0QLRYO+hgTEkg5PkR0nkr6CAoKCCMICsUICgoAAv/+/7ADWQMLAA0AYABfQFwnAQAFGgEGAAJHAAUEAAQFAG0ACQMIAwkIbQALAAcECwdgAAQAAAYEAGAABgACAwYCYAABAAMJAQNgAAgKCghUAAgIClgACggKTF9dVlRNTCcnKSYlJVcWIgwFHSsBNCYjIg4CFxQWMj4BBRQOAisBIgciJyYnDgEHIiY3ND4BMzIWFz8BNDYXMzIXFgcDBhUUFhc+BDc0JiMiDgMeAjcyNzYyHwEWBgcOASciLgI+AzMyFgIeOjYjRDYkATxsWDIBOShGTioIBQU1Gg8DHVozWmQBSn5KMEwWAQYGAkIDBAMBQwMOEhAgMiQaAcKjSYRgOAI8XIhHf2MGDgUXBAIFOYxKV6BwSARAeJhbwOwBojxEIjxeNT9ESnAKPmA2HgEeEhwlMAFsYFiUViYlCx8DCAEGAwb+qQ0NFg4BAQQYIEQqo8I4YISShF48AlAFBxsHDgUuNAFEdJ6unnRE7gABAAAAAQAAxS2Cbl8PPPUACwPoAAAAANThreUAAAAA1OGt5f/9/2oD6gNSAAAACAACAAAAAAAAAAEAAANS/2oAAAPp//3/+QPqAAEAAAAAAAAAAAAAAAAAAAAXA+gAAANZ//0DWf/9A1n//QNZ//0DEQAAAWUAAAI7AAAD6AAAA+n//gI7//8CGgAAA1n//wI7//8COwAAAjv//wMR//8DWf/9A6AAAAI7//0DWQAAA1kAAANZ//4AAAAAAIAA6gTuBVYFoAXCBeoGIgaKBrAHYgfwCDQIXAiCCR4JQAmiCeQKegsKC8IAAQAAABcB+AAKAAAAAAACABgAKABzAAAAqgtwAAAAAAAAABIA3gABAAAAAAAAADUAAAABAAAAAAABAAgANQABAAAAAAACAAcAPQABAAAAAAADAAgARAABAAAAAAAEAAgATAABAAAAAAAFAAsAVAABAAAAAAAGAAgAXwABAAAAAAAKACsAZwABAAAAAAALABMAkgADAAEECQAAAGoApQADAAEECQABABABDwADAAEECQACAA4BHwADAAEECQADABABLQADAAEECQAEABABPQADAAEECQAFABYBTQADAAEECQAGABABYwADAAEECQAKAFYBcwADAAEECQALACYByUNvcHlyaWdodCAoQykgMjAxNyBieSBvcmlnaW5hbCBhdXRob3JzIEAgZm9udGVsbG8uY29tZm9udGVsbG9SZWd1bGFyZm9udGVsbG9mb250ZWxsb1ZlcnNpb24gMS4wZm9udGVsbG9HZW5lcmF0ZWQgYnkgc3ZnMnR0ZiBmcm9tIEZvbnRlbGxvIHByb2plY3QuaHR0cDovL2ZvbnRlbGxvLmNvbQBDAG8AcAB5AHIAaQBnAGgAdAAgACgAQwApACAAMgAwADEANwAgAGIAeQAgAG8AcgBpAGcAaQBuAGEAbAAgAGEAdQB0AGgAbwByAHMAIABAACAAZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AZgBvAG4AdABlAGwAbABvAFIAZQBnAHUAbABhAHIAZgBvAG4AdABlAGwAbABvAGYAbwBuAHQAZQBsAGwAbwBWAGUAcgBzAGkAbwBuACAAMQAuADAAZgBvAG4AdABlAGwAbABvAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYAA50aW1lcy1jaXJjbGUtbxFhdHRlbnRpb24tY2lyY2xlZAVnbG9iZQtwbHVzLWNpcmNsZQZyZW1vdmULY2FyZXQtcmlnaHQKY2FyZXQtZG93bgVjaGVjawhmb2xkZXItbwhjYXJldC11cARsb2NrBGRpc2sEc29ydAlzb3J0LWRvd24Hc29ydC11cAZkb2N0b3IGY2lyY2xlBnJvY2tldAhsZXZlbC11cAhkYXRhYmFzZQdoaXN0b3J5AmF0AAAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAABgAGAAYABgDUv9qA1L/arAALCCwAFVYRVkgIEu4AA5RS7AGU1pYsDQbsChZYGYgilVYsAIlYbkIAAgAY2MjYhshIbAAWbAAQyNEsgABAENgQi2wASywIGBmLbACLCBkILDAULAEJlqyKAEKQ0VjRVJbWCEjIRuKWCCwUFBYIbBAWRsgsDhQWCGwOFlZILEBCkNFY0VhZLAoUFghsQEKQ0VjRSCwMFBYIbAwWRsgsMBQWCBmIIqKYSCwClBYYBsgsCBQWCGwCmAbILA2UFghsDZgG2BZWVkbsAErWVkjsABQWGVZWS2wAywgRSCwBCVhZCCwBUNQWLAFI0KwBiNCGyEhWbABYC2wBCwjISMhIGSxBWJCILAGI0KxAQpDRWOxAQpDsAFgRWOwAyohILAGQyCKIIqwASuxMAUlsAQmUVhgUBthUllYI1khILBAU1iwASsbIbBAWSOwAFBYZVktsAUssAdDK7IAAgBDYEItsAYssAcjQiMgsAAjQmGwAmJmsAFjsAFgsAUqLbAHLCAgRSCwC0NjuAQAYiCwAFBYsEBgWWawAWNgRLABYC2wCCyyBwsAQ0VCKiGyAAEAQ2BCLbAJLLAAQyNEsgABAENgQi2wCiwgIEUgsAErI7AAQ7AEJWAgRYojYSBkILAgUFghsAAbsDBQWLAgG7BAWVkjsABQWGVZsAMlI2FERLABYC2wCywgIEUgsAErI7AAQ7AEJWAgRYojYSBksCRQWLAAG7BAWSOwAFBYZVmwAyUjYUREsAFgLbAMLCCwACNCsgsKA0VYIRsjIVkqIS2wDSyxAgJFsGRhRC2wDiywAWAgILAMQ0qwAFBYILAMI0JZsA1DSrAAUlggsA0jQlktsA8sILAQYmawAWMguAQAY4ojYbAOQ2AgimAgsA4jQiMtsBAsS1RYsQRkRFkksA1lI3gtsBEsS1FYS1NYsQRkRFkbIVkksBNlI3gtsBIssQAPQ1VYsQ8PQ7ABYUKwDytZsABDsAIlQrEMAiVCsQ0CJUKwARYjILADJVBYsQEAQ2CwBCVCioogiiNhsA4qISOwAWEgiiNhsA4qIRuxAQBDYLACJUKwAiVhsA4qIVmwDENHsA1DR2CwAmIgsABQWLBAYFlmsAFjILALQ2O4BABiILAAUFiwQGBZZrABY2CxAAATI0SwAUOwAD6yAQEBQ2BCLbATLACxAAJFVFiwDyNCIEWwCyNCsAojsAFgQiBgsAFhtRAQAQAOAEJCimCxEgYrsHIrGyJZLbAULLEAEystsBUssQETKy2wFiyxAhMrLbAXLLEDEystsBgssQQTKy2wGSyxBRMrLbAaLLEGEystsBsssQcTKy2wHCyxCBMrLbAdLLEJEystsB4sALANK7EAAkVUWLAPI0IgRbALI0KwCiOwAWBCIGCwAWG1EBABAA4AQkKKYLESBiuwcisbIlktsB8ssQAeKy2wICyxAR4rLbAhLLECHistsCIssQMeKy2wIyyxBB4rLbAkLLEFHistsCUssQYeKy2wJiyxBx4rLbAnLLEIHistsCgssQkeKy2wKSwgPLABYC2wKiwgYLAQYCBDI7ABYEOwAiVhsAFgsCkqIS2wKyywKiuwKiotsCwsICBHICCwC0NjuAQAYiCwAFBYsEBgWWawAWNgI2E4IyCKVVggRyAgsAtDY7gEAGIgsABQWLBAYFlmsAFjYCNhOBshWS2wLSwAsQACRVRYsAEWsCwqsAEVMBsiWS2wLiwAsA0rsQACRVRYsAEWsCwqsAEVMBsiWS2wLywgNbABYC2wMCwAsAFFY7gEAGIgsABQWLBAYFlmsAFjsAErsAtDY7gEAGIgsABQWLBAYFlmsAFjsAErsAAWtAAAAAAARD4jOLEvARUqLbAxLCA8IEcgsAtDY7gEAGIgsABQWLBAYFlmsAFjYLAAQ2E4LbAyLC4XPC2wMywgPCBHILALQ2O4BABiILAAUFiwQGBZZrABY2CwAENhsAFDYzgtsDQssQIAFiUgLiBHsAAjQrACJUmKikcjRyNhIFhiGyFZsAEjQrIzAQEVFCotsDUssAAWsAQlsAQlRyNHI2GwCUMrZYouIyAgPIo4LbA2LLAAFrAEJbAEJSAuRyNHI2EgsAQjQrAJQysgsGBQWCCwQFFYswIgAyAbswImAxpZQkIjILAIQyCKI0cjRyNhI0ZgsARDsAJiILAAUFiwQGBZZrABY2AgsAErIIqKYSCwAkNgZCOwA0NhZFBYsAJDYRuwA0NgWbADJbACYiCwAFBYsEBgWWawAWNhIyAgsAQmI0ZhOBsjsAhDRrACJbAIQ0cjRyNhYCCwBEOwAmIgsABQWLBAYFlmsAFjYCMgsAErI7AEQ2CwASuwBSVhsAUlsAJiILAAUFiwQGBZZrABY7AEJmEgsAQlYGQjsAMlYGRQWCEbIyFZIyAgsAQmI0ZhOFktsDcssAAWICAgsAUmIC5HI0cjYSM8OC2wOCywABYgsAgjQiAgIEYjR7ABKyNhOC2wOSywABawAyWwAiVHI0cjYbAAVFguIDwjIRuwAiWwAiVHI0cjYSCwBSWwBCVHI0cjYbAGJbAFJUmwAiVhuQgACABjYyMgWGIbIVljuAQAYiCwAFBYsEBgWWawAWNgIy4jICA8ijgjIVktsDossAAWILAIQyAuRyNHI2EgYLAgYGawAmIgsABQWLBAYFlmsAFjIyAgPIo4LbA7LCMgLkawAiVGUlggPFkusSsBFCstsDwsIyAuRrACJUZQWCA8WS6xKwEUKy2wPSwjIC5GsAIlRlJYIDxZIyAuRrACJUZQWCA8WS6xKwEUKy2wPiywNSsjIC5GsAIlRlJYIDxZLrErARQrLbA/LLA2K4ogIDywBCNCijgjIC5GsAIlRlJYIDxZLrErARQrsARDLrArKy2wQCywABawBCWwBCYgLkcjRyNhsAlDKyMgPCAuIzixKwEUKy2wQSyxCAQlQrAAFrAEJbAEJSAuRyNHI2EgsAQjQrAJQysgsGBQWCCwQFFYswIgAyAbswImAxpZQkIjIEewBEOwAmIgsABQWLBAYFlmsAFjYCCwASsgiophILACQ2BkI7ADQ2FkUFiwAkNhG7ADQ2BZsAMlsAJiILAAUFiwQGBZZrABY2GwAiVGYTgjIDwjOBshICBGI0ewASsjYTghWbErARQrLbBCLLA1Ky6xKwEUKy2wQyywNishIyAgPLAEI0IjOLErARQrsARDLrArKy2wRCywABUgR7AAI0KyAAEBFRQTLrAxKi2wRSywABUgR7AAI0KyAAEBFRQTLrAxKi2wRiyxAAEUE7AyKi2wRyywNCotsEgssAAWRSMgLiBGiiNhOLErARQrLbBJLLAII0KwSCstsEossgAAQSstsEsssgABQSstsEwssgEAQSstsE0ssgEBQSstsE4ssgAAQistsE8ssgABQistsFAssgEAQistsFEssgEBQistsFIssgAAPistsFMssgABPistsFQssgEAPistsFUssgEBPistsFYssgAAQCstsFcssgABQCstsFgssgEAQCstsFkssgEBQCstsFossgAAQystsFsssgABQystsFwssgEAQystsF0ssgEBQystsF4ssgAAPystsF8ssgABPystsGAssgEAPystsGEssgEBPystsGIssDcrLrErARQrLbBjLLA3K7A7Ky2wZCywNyuwPCstsGUssAAWsDcrsD0rLbBmLLA4Ky6xKwEUKy2wZyywOCuwOystsGgssDgrsDwrLbBpLLA4K7A9Ky2waiywOSsusSsBFCstsGsssDkrsDsrLbBsLLA5K7A8Ky2wbSywOSuwPSstsG4ssDorLrErARQrLbBvLLA6K7A7Ky2wcCywOiuwPCstsHEssDorsD0rLbByLLMJBAIDRVghGyMhWUIrsAhlsAMkUHiwARUwLQBLuADIUlixAQGOWbABuQgACABjcLEABUKyAAEAKrEABUKzCgIBCCqxAAVCsw4AAQgqsQAGQroCwAABAAkqsQAHQroAQAABAAkqsQMARLEkAYhRWLBAiFixA2REsSYBiFFYugiAAAEEQIhjVFixAwBEWVlZWbMMAgEMKrgB/4WwBI2xAgBEAAA=') format('truetype');
}
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
@@ -17,7 +17,7 @@
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: 'fontello';
- src: url('../font/fontello.svg?53466719#fontello') format('svg');
+ src: url('../font/fontello.svg?29008306#fontello') format('svg');
}
}
*/
@@ -67,6 +67,7 @@
.fa-sort:before { content: '\f0dc'; } /* '' */
.fa-sort-down:before { content: '\f0dd'; } /* '' */
.fa-sort-up:before { content: '\f0de'; } /* '' */
+.fa-doctor:before { content: '\f0f1'; } /* '' */
.fa-circle:before { content: '\f111'; } /* '' */
.fa-rocket:before { content: '\f135'; } /* '' */
.fa-level-up:before { content: '\f148'; } /* '' */
diff --git a/lib/icons/fontello/css/fontello-ie7-codes.css b/lib/icons/fontello/css/fontello-ie7-codes.css
index d26f869f..d8df9c06 100755
--- a/lib/icons/fontello/css/fontello-ie7-codes.css
+++ b/lib/icons/fontello/css/fontello-ie7-codes.css
@@ -14,6 +14,7 @@
.fa-sort { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.fa-sort-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.fa-sort-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
+.fa-doctor { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.fa-circle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.fa-rocket { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.fa-level-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
diff --git a/lib/icons/fontello/css/fontello-ie7.css b/lib/icons/fontello/css/fontello-ie7.css
index 5d82864a..b2543dbb 100755
--- a/lib/icons/fontello/css/fontello-ie7.css
+++ b/lib/icons/fontello/css/fontello-ie7.css
@@ -25,6 +25,7 @@
.fa-sort { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.fa-sort-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.fa-sort-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
+.fa-doctor { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.fa-circle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.fa-rocket { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.fa-level-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
diff --git a/lib/icons/fontello/css/fontello.css b/lib/icons/fontello/css/fontello.css
index 87d032ca..84546cec 100755
--- a/lib/icons/fontello/css/fontello.css
+++ b/lib/icons/fontello/css/fontello.css
@@ -1,11 +1,11 @@
@font-face {
font-family: 'fontello';
- src: url('../font/fontello.eot?13933329');
- src: url('../font/fontello.eot?13933329#iefix') format('embedded-opentype'),
- url('../font/fontello.woff2?13933329') format('woff2'),
- url('../font/fontello.woff?13933329') format('woff'),
- url('../font/fontello.ttf?13933329') format('truetype'),
- url('../font/fontello.svg?13933329#fontello') format('svg');
+ src: url('../font/fontello.eot?69907723');
+ src: url('../font/fontello.eot?69907723#iefix') format('embedded-opentype'),
+ url('../font/fontello.woff2?69907723') format('woff2'),
+ url('../font/fontello.woff?69907723') format('woff'),
+ url('../font/fontello.ttf?69907723') format('truetype'),
+ url('../font/fontello.svg?69907723#fontello') format('svg');
font-weight: normal;
font-style: normal;
}
@@ -15,7 +15,7 @@
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: 'fontello';
- src: url('../font/fontello.svg?13933329#fontello') format('svg');
+ src: url('../font/fontello.svg?69907723#fontello') format('svg');
}
}
*/
@@ -70,6 +70,7 @@
.fa-sort:before { content: '\f0dc'; } /* '' */
.fa-sort-down:before { content: '\f0dd'; } /* '' */
.fa-sort-up:before { content: '\f0de'; } /* '' */
+.fa-doctor:before { content: '\f0f1'; } /* '' */
.fa-circle:before { content: '\f111'; } /* '' */
.fa-rocket:before { content: '\f135'; } /* '' */
.fa-level-up:before { content: '\f148'; } /* '' */
diff --git a/lib/icons/fontello/font/fontello.eot b/lib/icons/fontello/font/fontello.eot
index e92cdcba..16e700e0 100755
Binary files a/lib/icons/fontello/font/fontello.eot and b/lib/icons/fontello/font/fontello.eot differ
diff --git a/lib/icons/fontello/font/fontello.svg b/lib/icons/fontello/font/fontello.svg
index 92521036..3d52f757 100755
--- a/lib/icons/fontello/font/fontello.svg
+++ b/lib/icons/fontello/font/fontello.svg
@@ -36,6 +36,8 @@
+
+
diff --git a/lib/icons/fontello/font/fontello.ttf b/lib/icons/fontello/font/fontello.ttf
index 0dfd6ba1..976a7435 100755
Binary files a/lib/icons/fontello/font/fontello.ttf and b/lib/icons/fontello/font/fontello.ttf differ
diff --git a/lib/icons/fontello/font/fontello.woff b/lib/icons/fontello/font/fontello.woff
index 66332ccd..42916982 100755
Binary files a/lib/icons/fontello/font/fontello.woff and b/lib/icons/fontello/font/fontello.woff differ
diff --git a/lib/icons/fontello/font/fontello.woff2 b/lib/icons/fontello/font/fontello.woff2
index 0ec76729..c89fb20d 100755
Binary files a/lib/icons/fontello/font/fontello.woff2 and b/lib/icons/fontello/font/fontello.woff2 differ
diff --git a/lib/install-new-package.pug b/lib/install-new-package.pug
index 06f172d3..19828734 100644
--- a/lib/install-new-package.pug
+++ b/lib/install-new-package.pug
@@ -1,7 +1,9 @@
div.dialog.prompt(ng-if="activeLink === '1'")
form(ng-submit='installPackage(packageName, newPackageKind)')
- div(class="tags-input", ng-model="packageName", contenteditable="true", ng-attr-disabled="{{installingPackage ? 'disabled' : ''}}" placeholder="package<@version> ..." ng-tag-input, ng-autofocus)
+ div(class="tags-input", ng-tag-input, ng-autofocus, ng-model="topMenu.packageName", ng-keyup="topMenu.search(topMenu.packageName[topMenu.packageName.length - 1].name)", contenteditable="true", ng-attr-disabled="{{topMenu.installingPackage ? 'disabled' : ''}}" placeholder="package<@version> ...")
+
+ input(ng-hide="true", ng-model="topMenu.searchKeywords", ng-bind="topMenu.packageName")
= " "
span(class="prompt-kind")
input(type="checkbox", ng-model='newPackageKind', ng-disabled='shell.globalSelected')
@@ -17,4 +19,14 @@ div.dialog.prompt(ng-if="activeLink === '1'")
img(src="img/loading.svg", width="13")
= " "
= " "
- i(class="fa fa-times-circle-o button-close-prompt", ng-click="destroyActiveClickedLink()")
+ i(class="fa fa-times-circle-o button-close-prompt", ng-click="shell.activeLink = undefined")
+ .prompt-search
+ .prompt-search-content
+ .prompt-search-item(ng-repeat="item in topMenu.searchResults.objects", ng-click="topMenu.searchChoosePackage(item.package.name)")
+ h5
+ | {{item.package.name}}
+ div
+ | {{item.package.description}}
+ .prompt-search-loader(ng-show="topMenu.searchingNpm")
+ img(src="img/loading.svg")
+ | Loading results ...
diff --git a/lib/js/directives/ng-tag-input.js b/lib/js/directives/ng-tag-input.js
index a35bbf2d..a4b9b6b4 100644
--- a/lib/js/directives/ng-tag-input.js
+++ b/lib/js/directives/ng-tag-input.js
@@ -3,7 +3,7 @@ import angular from 'angular';
const moduleName = 'npm-ui.ng-tag-input';
angular.module(moduleName, [])
-.directive('ngTagInput', /*@ngInject*/ function ngTagInput($log) {
+.directive('ngTagInput', /*@ngInject*/ function ngTagInput($rootScope, $log) {
return {
'require': '?ngModel',
'link': (scope, element, attrs, ngModel) => {
@@ -115,7 +115,23 @@ angular.module(moduleName, [])
}
, onKeypressDisabled = event => {
return event.preventDefault();
- };
+ }
+ , updateOnSearchChoosenPackage = $rootScope.$on('top-menu:search-choosen-package', (eventInformation, data) => {
+ let newInputValue = '';
+
+ data.forEach(pkg => {
+ newInputValue += pkg.name;
+ if (pkg.version &&
+ pkg.version.length > 0) {
+ newInputValue += `@${pkg.version}`;
+ }
+ newInputValue += ' '; //leave a blank space at the end of the string to split into tags again
+ });
+
+ element[0].innerText = newInputValue;
+ createTags();
+ updateModel();
+ });
element.on('mousedown', onTrigger);
element.on('click', onTrigger);
@@ -133,6 +149,7 @@ angular.module(moduleName, [])
}
});
scope.$on('$destroy', () => {
+ updateOnSearchChoosenPackage();
element.unbind('keyup', onKeyUp);
element.unbind('keydown', onKeyDown);
element.unbind('paste', onPaste);
diff --git a/lib/js/filters.js b/lib/js/filters.js
new file mode 100644
index 00000000..f6ae67a7
--- /dev/null
+++ b/lib/js/filters.js
@@ -0,0 +1,11 @@
+import angular from 'angular';
+const moduleName = 'npm-ui.filters';
+
+angular.module(moduleName, [])
+.filter('removeHTML', () => {
+ return string => {
+ return string.replace(/<\/?[^>]+(>|$)/g, '');
+ };
+});
+
+export default moduleName;
diff --git a/lib/js/index.js b/lib/js/index.js
index daa3a318..494d9ed1 100644
--- a/lib/js/index.js
+++ b/lib/js/index.js
@@ -1,12 +1,9 @@
/*globals require process navigator */
import angular from 'angular';
-import loadingModule from './loading.js';
-import notificationModule from './notification.js';
import shellModule from './interface/shell.js';
import contentModule from './interface/content.js';
import leftModule from './interface/left.js';
import topModule from './interface/top.js';
-import errorsModule from './errors.js';
import ngRightClickModule from './directives/ng-right-click.js';
import ngDragDropModule from './directives/ng-drag-drop.js';
import ngAceEditor from './directives/ng-ace-editor.js';
@@ -17,6 +14,10 @@ import ngTagInput from './directives/ng-tag-input.js';
import ngTableKeyboard from './directives/ng-table-keyboard.js';
import assetsModule from './assets.js';
+import loadingModule from './loading.js';
+import errorsModule from './errors.js';
+import filtersModule from './filters.js';
+import notificationModule from './notification.js';
const Storage = require('electron-storage')
, {ipcRenderer} = require('electron')
@@ -42,7 +43,8 @@ angular.module('ndm', [
ngAutofocus,
ngTagInput,
ngTableKeyboard,
- assetsModule
+ assetsModule,
+ filtersModule
])
.constant('timeoutForWhenUserIsPresent', 2500)
.constant('appHistoryFile', 'snapshots.json')
diff --git a/lib/js/interface/shell.js b/lib/js/interface/shell.js
index ec16dde5..99aa475e 100644
--- a/lib/js/interface/shell.js
+++ b/lib/js/interface/shell.js
@@ -20,6 +20,7 @@ angular.module(moduleName, [
loadingFactory,
notificationFactory,
assets) {
+
const chooseProjectDir = files => {
let pathExt;
@@ -286,6 +287,47 @@ angular.module(moduleName, [
}
};
+
+ this.runDoctor = () => {
+
+ if (!this.runningDoctor) {
+ this.finishedRunningDoctor = false;
+ this.runningDoctor = true;
+ npm.npmInFolder('')
+ .then(npmInFolder => npmInFolder.doctor().then(doctorRes => {
+ //replace bad chars in log
+ $scope.$apply(() => {
+ this.doctorLog = doctorRes.map(logs => logs.map(log => log.replace(/\[\d\dm/g, '')));
+ this.runningDoctor = undefined;
+ this.finishedRunningDoctor = true;
+ });
+ $log.info('npm doctor:', doctorRes);
+ notificationFactory.notify('Finished running doctor.');
+ }))
+ .catch(err => {
+ $log.error('npm doctor error:', err);
+ $scope.$apply(() => {
+ this.runningDoctor = undefined;
+ this.finishedRunningDoctor = true;
+ });
+ });
+ }
+ };
+
+ this.activeClickedLink = activeLink => {
+ if ((activeLink === '1' || activeLink === '4') &&
+ this.activeLink === activeLink) {
+ //toggle prompts show/hide
+ this.activeLink = false;
+ } else {
+
+ this.activeLink = activeLink;
+ $rootScope.$emit('top-bar:active-link', {
+ 'link': activeLink
+ });
+ }
+ };
+
this.openChooser = () => {
dialog.showOpenDialog({
diff --git a/lib/js/interface/top.js b/lib/js/interface/top.js
index fe82b413..5ec9b395 100644
--- a/lib/js/interface/top.js
+++ b/lib/js/interface/top.js
@@ -5,10 +5,18 @@ const moduleName = 'npm-ui.top-menu'
, Path = require('path');
angular.module(moduleName, [])
-.directive('topMenu', /*@ngInject*/ function TopMenuController($document, $rootScope, $log, npm, npmGlobal, loadingFactory, notificationFactory, errorsService) {
+.directive('topMenu', /*@ngInject*/ function TopMenuController($document, $rootScope, $log, $timeout, npm, npmGlobal, loadingFactory, notificationFactory, errorsService) {
return (scope, element, attrs) => {
-
- const topMenuIdentifierPath = attrs.topMenuId;
+ let searchTimeout //debounce search
+ , prevSearchKeyword;
+
+ const unregisterLeftBarSelectProjectListener = $rootScope.$on('left-bar:select-project', (eventInformation, data) => {
+ if (data &&
+ data.path) {
+ scope.projectPath = data.path;
+ }
+ })
+ , topMenuIdentifierPath = attrs.topMenuId;
scope.installPackage = (pkgs, packageKind) => {
if (pkgs &&
@@ -36,9 +44,6 @@ angular.module(moduleName, [])
}).catch(error => {
errorsService.showErrorBox('Error', `Installing ${pkg.name}: ${error}`);
});
- });
- });
- });
promiseSequence.then(() => {
$log.info('Finished installing packages.');
@@ -289,6 +294,51 @@ angular.module(moduleName, [])
});
};
};
+
+ scope.search = keyword => {
+ $log.info('search', keyword);
+ if (keyword &&
+ keyword.trim() !== prevSearchKeyword) {
+ /*eslint-disable*/
+ if (searchTimeout) {
+ $timeout.cancel(searchTimeout);
+ }
+ prevSearchKeyword = keyword;
+ /*eslint-enable*/
+ searchTimeout = $timeout(() => {
+ scope.searchingNpm = true;
+ scope.searchResults = [];
+ npm.npmInFolder(this.projectPath).then(npmInFolder => {
+ npmInFolder.search(keyword).then(data => {
+ scope.$apply(() => {
+ scope.searchingNpm = false;
+ scope.searchResults = data;
+ });
+ }).catch(err => {
+ scope.$apply(() => {
+ scope.searchingNpm = false;
+ scope.searchResults = [];
+ });
+ $log.error('SEARCH ERROR', err);
+ });
+ });
+ }, 500);
+ } else {
+ scope.searchingNpm = false;
+ scope.searchResults = [];
+ }
+ };
+
+ scope.searchChoosePackage = packageName => {
+ //update digits in input
+ scope.packageName[this.packageName.length - 1].name = packageName;
+ $rootScope.$emit('top-menu:search-choosen-package', this.packageName);
+ scope.searchResults = [];
+ };
+
+ $rootScope.$on('$destroy', () => {
+ unregisterLeftBarSelectProjectListener();
+ });
});
export default moduleName;
diff --git a/lib/js/loading.js b/lib/js/loading.js
index 226ec5bc..a7073764 100644
--- a/lib/js/loading.js
+++ b/lib/js/loading.js
@@ -34,7 +34,7 @@ angular.module(moduleName, [])
return {
'scope': true,
'restrict': 'A',
- 'templateUrl': 'logs-prompt.html',
+ 'templateUrl': 'npm-update-log.html',
'controller': /*@ngInject*/ function NpmLoadingController($scope) {
let unregisterOnNpmLogs;
diff --git a/lib/js/notification.js b/lib/js/notification.js
index 12fce30f..82333e77 100644
--- a/lib/js/notification.js
+++ b/lib/js/notification.js
@@ -19,11 +19,13 @@ angular.module(moduleName, [])
notification.onclick = () => {
if (!skeepFocus) {
windows = BrowserWindow.getAllWindows();
-
- windows.forEach(window => {
- window.show();
- window.focus();
- });
+ if (windows[0] && windows[1]) {
+ //hide updates window and show main window
+ windows[0].hide();
+ windows[1].show();
+ windows[1].focus();
+ windows[0].hide();
+ }
}
notification = undefined;
diff --git a/lib/js/npm/npm-api.js b/lib/js/npm/npm-api.js
index d762a224..f528d1c5 100644
--- a/lib/js/npm/npm-api.js
+++ b/lib/js/npm/npm-api.js
@@ -7,30 +7,21 @@ const moduleName = 'npm-api.service'
, fs = require('fs')
, cp = require('child_process')
, exec = cp.exec;
- //, sudo = require('electron-sudo')
- /*, sudoOptions = {
- 'name': 'ndm',
- 'icns': 'icon.icns',
- 'on': function onSudo(ps) {
- ps.stdout.on('data', function onSudoStdout(data) {
-
- $log.info(data);
- });
-
- setTimeout(() => {
- ps.kill();
- }, 50000);
- }
- };*/
angular.module(moduleName, [])
.service('npm', /*@ngInject*/ function NpmService($rootScope, $log, errorsService) {
const writable = new stream.Writable({
'write': (chunk, encoding, next) => {
const thisLogBuffer = new Buffer(chunk)
- , thisLog = thisLogBuffer.toString();
+ , thisLog = thisLogBuffer
+ .toString()
+ .trim();
+
+ if (thisLog) {
+
+ $rootScope.$emit('npm:log', thisLog);
+ }
- $rootScope.$emit('npm:log', thisLog);
next();
}
})
diff --git a/lib/js/npm/npm-operations.js b/lib/js/npm/npm-operations.js
index 03970881..4a81e87a 100644
--- a/lib/js/npm/npm-operations.js
+++ b/lib/js/npm/npm-operations.js
@@ -1,4 +1,4 @@
-/* global process */
+/* global process,fetch */
const isGlobalSym = Symbol('isGlobal')
, npmSym = Symbol('npm')
, whereSym = Symbol('where')
@@ -37,6 +37,12 @@ class NpmOperations {
});
}
+ search(keyword) {
+
+ return fetch(`https://registry.npmjs.org/-/v1/search?text=${keyword}&size=25`)
+ .then(res => res.json());
+ }
+
run(scriptName) {
return new Promise((resolveRun, rejectRun) => {
this[npmSym].commands.runScript([scriptName], (err, infos) => {
@@ -382,6 +388,21 @@ class NpmOperations {
});
}
+ doctor() {
+ return new Promise((resolveDoctor, rejectDoctor) => {
+
+ this[npmSym].commands.doctor((doctorErr, doctorInfo) => {
+
+ if (doctorErr) {
+
+ return rejectDoctor(doctorErr);
+ }
+
+ return resolveDoctor(doctorInfo);
+ });
+ });
+ }
+
root() {
return new Promise((resolveRoot, rejectRoot) => {
diff --git a/lib/npm-doctor-log.pug b/lib/npm-doctor-log.pug
new file mode 100644
index 00000000..d90a25db
--- /dev/null
+++ b/lib/npm-doctor-log.pug
@@ -0,0 +1,75 @@
+div.dialog.dialog-window(ng-if="shell.activeLink === 'doctor'")
+ div(class="prompt-window-options")
+ img(ng-show="!shell.finishedRunningDoctor", src='img/loading.svg', width='13')
+ i(class="fa fa-check color-primary", ng-show="shell.finishedRunningDoctor")
+ button(ng-click="shell.activeLink = false")
+ | Close
+ button(ng-click="shell.activeClickedLink('doctor'); shell.runDoctor()", ng-if="!shell.runningDoctor")
+ | Run again
+ div(contenteditable="true", class="window", ng-autoscroll)
+ div(class="col-md-12 logs")
+ b
+ | Running doctor
+ div(class="col-md-12 logs")
+ | npm ping:
+ = " "
+ b
+ | {{shell.doctorLog[0][1]}}
+ div(class="col-md-12 logs logs-error", ng-if="shell.doctorLog[0][2] && shell.doctorLog[0][2].length > 0")
+ | ↳ {{shell.doctorLog[0][2]}}
+ div(class="col-md-12 logs")
+ | npm -v:
+ = " "
+ b
+ | {{shell.doctorLog[1][1]}}
+ div(class="col-md-12 logs logs-error", ng-if="shell.doctorLog[1][2] && shell.doctorLog[1][2].length > 0")
+ | ↳ {{shell.doctorLog[1][2]}}
+ div(class="col-md-12 logs")
+ | node -v:
+ = " "
+ b
+ | {{shell.doctorLog[2][1]}}
+ div(class="col-md-12 logs logs-error", ng-if="shell.doctorLog[2][2] && shell.doctorLog[2][2].length > 0")
+ | ↳ {{shell.doctorLog[2][2]}}
+ div(class="col-md-12 logs")
+ | npm config get registry:
+ = " "
+ b
+ | {{shell.doctorLog[3][1]}}
+ div(class="col-md-12 logs logs-error", ng-if="shell.doctorLog[3][2] && shell.doctorLog[3][2].length > 0")
+ | ↳ {{shell.doctorLog[3][2]}}
+ div(class="col-md-12 logs")
+ | which git:
+ = " "
+ b
+ | {{shell.doctorLog[4][1]}}
+ div(class="col-md-12 logs logs-error", ng-if="shell.doctorLog[4][2] && shell.doctorLog[4][2].length > 0")
+ | ↳ {{shell.doctorLog[4][2]}}
+ div(class="col-md-12 logs")
+ | Perms check on cached files:
+ = " "
+ b
+ | {{shell.doctorLog[5][1]}}
+ div(class="col-md-12 logs logs-error", ng-if="shell.doctorLog[5][2] && shell.doctorLog[5][2].length > 0")
+ | ↳ {{shell.doctorLog[5][2]}}
+ div(class="col-md-12 logs")
+ | Perms check on global node_modules:
+ = " "
+ b
+ | {{shell.doctorLog[6][1]}}
+ div(class="col-md-12 logs logs-error", ng-if="shell.doctorLog[6][2] && shell.doctorLog[6][2].length > 0")
+ | ↳ {{shell.doctorLog[6][2]}}
+ div(class="col-md-12 logs")
+ | Perms check on local node_modules:
+ = " "
+ b
+ | {{shell.doctorLog[7][1]}}
+ div(class="col-md-12 logs logs-error", ng-if="shell.doctorLog[7][2] && shell.doctorLog[7][2].length > 0")
+ | ↳ {{shell.doctorLog[7][2]}}
+ div(class="col-md-12 logs")
+ | Checksum cached files :
+ = " "
+ b
+ | {{shell.doctorLog[8][1]}}
+ div(class="col-md-12 logs logs-error", ng-if="shell.doctorLog[8][2] && shell.doctorLog[8][2].length > 0")
+ | ↳ {{shell.doctorLog[8][2]}}
diff --git a/lib/logs-prompt.pug b/lib/npm-update-log.pug
similarity index 55%
rename from lib/logs-prompt.pug
rename to lib/npm-update-log.pug
index 82a26ad7..21ec675b 100644
--- a/lib/logs-prompt.pug
+++ b/lib/npm-update-log.pug
@@ -4,19 +4,13 @@ div.dialog.dialog-window(ng-if="shell.activeLink === 'update'")
i(class="fa fa-check color-primary", ng-show="log.logsFinished")
button(ng-click="shell.activeLink = false", ng-if="!shell.updatingNpm")
| Close
+ button(ng-click="shell.activeClickedLink('update'); shell.updateNpm()", ng-if="!shell.updatingNpm")
+ | Run again
div(contenteditable="true", class="window", ng-autoscroll)
div(class="col-md-12 logs")
b
| Updating npm
- div
- | =============================================
- | Local Datetime:
- = " "
- | {{ log.nowDatetime | date : 'longDate'}}
- = " "
- | {{ log.nowDatetime | date : 'mediumTime'}}
- div
- | =============================================
+ div(class="col-md-12 logs")
| Output:
- div(contenteditable="true", ng-repeat="aLog in log.logs track by $index")
- | {{ aLog }}
+ div(class="col-md-12 logs", contenteditable="true", ng-repeat="aLog in log.logs track by $index")
+ | {{ aLog }}
diff --git a/lib/package-informations.pug b/lib/package-informations.pug
index 8673a025..2e204d4f 100644
--- a/lib/package-informations.pug
+++ b/lib/package-informations.pug
@@ -8,7 +8,7 @@ div.table-infos-content
b
| Description:
= " "
- | {{packageViewInfos.description || '-'}}
+ | {{packageViewInfos.description || '-' | removeHTML}}
div.information(title="Package dependencies")
b
| Dependencies:
diff --git a/lib/scss/header.scss b/lib/scss/header.scss
index 379a02e3..c644bcb5 100644
--- a/lib/scss/header.scss
+++ b/lib/scss/header.scss
@@ -23,7 +23,7 @@
float: right;
font-size: 12px;
padding-left: 2px;
- margin: 5px 4px 0 0;
+ margin: 4.5px 4px 0 0;
line-height: 13px;
i {
diff --git a/lib/scss/prompt.scss b/lib/scss/prompt.scss
index 05ab17df..545bd1bc 100644
--- a/lib/scss/prompt.scss
+++ b/lib/scss/prompt.scss
@@ -145,8 +145,16 @@
margin-top: -4px;
.logs {
- padding: 6px;
+ padding: 1px 6px;
+
+ &:first-child {
+ margin-top: 5px;
+ }
}
+ .logs-error {
+ color: $color-error;
+ }
+
.ng-ace-editor {
height: 100%;
}
@@ -243,3 +251,44 @@
}
}
}
+
+.prompt-search {
+ font-size: 11.5px;
+ margin-top: 3px;
+ color: $color-muted;
+ overflow: hidden;
+ overflow-y: auto;
+ max-height: 200px;
+
+ .prompt-search-loader {
+ img {
+ vertical-align: bottom;
+ margin: 0;
+ margin-right: 2px;
+ width: 16px;
+ }
+ }
+
+ h5 {
+ color: $color-222;
+ margin: 0;
+ padding: 0;
+ margin-top: 5px;
+ font-weight: 500;
+ font-size: 12px;
+ margin-bottom: 3px;
+ }
+
+ .prompt-search-item {
+ padding: 3px;
+ border-bottom: 1px solid $bg-muted-invisible;
+
+ &:last-child {
+ border: 0;
+ }
+
+ &:hover {
+ background: $bg-muted-invisible;
+ }
+ }
+}
diff --git a/lib/top.pug b/lib/top.pug
index 67fa1ff7..f33ab382 100644
--- a/lib/top.pug
+++ b/lib/top.pug
@@ -1,5 +1,6 @@
.top-menu(top-menu, top-menu-id="{{tab}}")
span(npm-loading)
+ include ./npm-doctor-log.pug
include ./install-new-package-version.pug
include ./install-new-package.pug
.row
diff --git a/package.json b/package.json
index f18b4f25..8c2fa110 100644
--- a/package.json
+++ b/package.json
@@ -87,9 +87,9 @@
"appTemplate": {
"title": "ndm",
"width": 640,
- "height": 430,
+ "height": 420,
"minWidth": 640,
- "minHeight": 430,
+ "minHeight": 420,
"show": false,
"center": true,
"movable": true,
@@ -124,7 +124,7 @@
"bootstrap": "^3.3.6",
"electron-storage": "^1.0.6",
"fs-extra": "^2.0.0",
- "npm": "^4.1.1",
+ "npm": "^4.4.0",
"rimraf": "^2.5.4",
"selection-model": "^0.11.0",
"shell-path": "^2.0.0",