From b17a9eb9383a8a20621ca5853185343b85713e91 Mon Sep 17 00:00:00 2001 From: Sudhakar Reddy Date: Wed, 19 Aug 2015 16:46:29 -0700 Subject: [PATCH 01/14] updated readme --- README.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6df99d0..d91083a 100644 --- a/README.md +++ b/README.md @@ -1 +1,11 @@ -# mldocs +### **ML Docs**_lite_ + +[MarkLogic](http://www.marklogic.com/) has over 3000 apis, its very hard to quicky and accurately find the api you are looking for. More often than not you just want to lookup the api, learn about it and get back to work. [Docs](http://docs.marklogic.com/) portal does not really help in that case. It has a clumsy UI and often is too slow to access. It requires the user to type the exact key word to narrow the results. Its a huge hinderance especially for new marklogic developers who are not really aware of the all the apis or the relevant names. + +**ML Docs**_lite_ tries to solve this problem with a simple, light weight and clean interface, that’ll enable you to quickly and accurately locate the api at lightning speed, whether you are online or __offline!__ + +#####highlights + ++ Offline search, the user can save the docs for later usage to access, even when they are on a plane or inside a cave! ++ Clean interface to quickly find the api you are looking for instead of using docs.marklogic.com which is often too slow and does event return the correct results sometimes ++ Using fuzzy search, you don’t need to type exact names, it will help narrow down the results as you type From 52772d3e93ceb6c9d1968b3b649617fb5068bc4d Mon Sep 17 00:00:00 2001 From: Sudhakar Reddy Date: Wed, 19 Aug 2015 18:34:21 -0700 Subject: [PATCH 02/14] some minor tweaks --- client/app/main/list.html | 7 +++-- client/app/main/main.css | 11 +++++-- client/app/main/sidebar.html | 56 +++++++++++++++++++----------------- client/index.html | 4 +-- server/config/express.js | 6 ++-- server/offline.manifest | 2 +- 6 files changed, 48 insertions(+), 38 deletions(-) diff --git a/client/app/main/list.html b/client/app/main/list.html index 74c006f..82023ff 100644 --- a/client/app/main/list.html +++ b/client/app/main/list.html @@ -3,19 +3,20 @@

{{$state.params.lib}}({{list.length}})

- + - + + diff --git a/client/app/main/main.css b/client/app/main/main.css index cd3da4d..781242e 100644 --- a/client/app/main/main.css +++ b/client/app/main/main.css @@ -6,10 +6,15 @@ } .gray { - background: #f5f5f5; + background: #f5f5f5; } .msg { - padding-top:20px; - padding-bottom:20px + padding-top: 20px; + padding-bottom: 20px } + +/*#sidebar { + max-height: 700px; + overflow: scroll; +}*/ diff --git a/client/app/main/sidebar.html b/client/app/main/sidebar.html index 87d2ecc..56353e7 100644 --- a/client/app/main/sidebar.html +++ b/client/app/main/sidebar.html @@ -1,29 +1,31 @@ - -
- Modules +
+
+ +
+ Modules +
+
- - - - - - - - - - - - - - - -
{{facet.name}} ({{facet.count}})
-
-
+
+ + + + + + + + + + + + +
{{facet.name}} ({{facet.count}})
+
+
+
+ +
- - - -
+ +
+
diff --git a/client/index.html b/client/index.html index f4bcc75..e9df667 100644 --- a/client/index.html +++ b/client/index.html @@ -3,7 +3,7 @@ - + @@ -57,7 +57,7 @@
- +
diff --git a/server/config/express.js b/server/config/express.js index 80adef6..21f6af2 100644 --- a/server/config/express.js +++ b/server/config/express.js @@ -15,6 +15,8 @@ var errorHandler = require('errorhandler'); var path = require('path'); var config = require('./environment'); +var cacheTime = 86400000*7; // 7 days + module.exports = function(app) { var env = app.get('env'); @@ -29,7 +31,7 @@ module.exports = function(app) { if ('production' === env) { app.use(favicon(path.join(config.root, 'public', 'favicon.ico'))); - app.use(express.static(path.join(config.root, 'public'))); + app.use(express.static(path.join(config.root, 'public'), {maxAge:cacheTime})); app.set('appPath', config.root + '/public'); app.use(morgan('dev')); } @@ -37,7 +39,7 @@ module.exports = function(app) { if ('development' === env || 'test' === env) { app.use(require('connect-livereload')()); app.use(express.static(path.join(config.root, '.tmp'))); - app.use(express.static(path.join(config.root, 'client'))); + app.use(express.static(path.join(config.root, 'client'), {maxAge:cacheTime})); app.set('appPath', 'client'); app.use(morgan('dev')); app.use(errorHandler()); // Error handler - has to be last diff --git a/server/offline.manifest b/server/offline.manifest index 204745e..0791a93 100644 --- a/server/offline.manifest +++ b/server/offline.manifest @@ -51,4 +51,4 @@ bower_components/angular-animate/angular-animate.js bower_components/angular-aria/angular-aria.js bower_components/angular-material/angular-material.js - + From 7145416939d1b9f774f5e97ad231ebeaee3cf526 Mon Sep 17 00:00:00 2001 From: Sudhakar Reddy Date: Wed, 19 Aug 2015 22:39:14 -0700 Subject: [PATCH 03/14] updated sidebar menu icon --- client/app/main/navbar.html | 3 +-- server/offline.manifest | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/client/app/main/navbar.html b/client/app/main/navbar.html index 37331f7..a85259d 100644 --- a/client/app/main/navbar.html +++ b/client/app/main/navbar.html @@ -18,8 +18,7 @@
- menu - + sidebar diff --git a/server/offline.manifest b/server/offline.manifest index 0791a93..eeffa30 100644 --- a/server/offline.manifest +++ b/server/offline.manifest @@ -50,5 +50,7 @@ bower_components/angular-ui-router/release/angular-ui-router.js bower_components/angular-animate/angular-animate.js bower_components/angular-aria/angular-aria.js bower_components/angular-material/angular-material.js - + + + From 46d05c7cb922ccab89e3c4aae58834aee2e67749 Mon Sep 17 00:00:00 2001 From: Sudhakar Reddy Date: Thu, 20 Aug 2015 12:01:57 -0700 Subject: [PATCH 04/14] added dist folder --- .gitignore | 2 - bower.json | 2 - client/app/app.js | 2 - client/app/main/main.controller.js | 8 +- client/app/main/main.css | 4 + client/index.html | 4 +- client/util/fuse.js | 484 - client/util/fuse.min.js | 20 + dist/package.json | 85 + dist/public/.htaccess | 543 + dist/public/app/7878b2da.app.js | 3 + dist/public/app/c8d5270e.vendor.js | 19 + dist/public/app/ebda609f.vendor.css | 13 + dist/public/app/fc1c5422.app.css | 1 + dist/public/assets/images/d535427a.yeoman.png | Bin 0 -> 8604 bytes .../angular-animate/.bower.json | 19 + .../angular-animate/README.md | 68 + .../angular-animate/angular-animate.js | 3721 ++ .../angular-animate/angular-animate.min.js | 52 + .../angular-animate.min.js.map | 8 + .../angular-animate/bower.json | 9 + .../bower_components/angular-animate/index.js | 2 + .../angular-animate/package.json | 26 + .../bower_components/angular-aria/.bower.json | 19 + .../bower_components/angular-aria/README.md | 67 + .../angular-aria/angular-aria.js | 393 + .../angular-aria/angular-aria.min.js | 13 + .../angular-aria/angular-aria.min.js.map | 8 + .../bower_components/angular-aria/bower.json | 9 + .../bower_components/angular-aria/index.js | 2 + .../angular-aria/package.json | 27 + .../angular-bootstrap/.bower.json | 23 + .../angular-bootstrap/bower.json | 11 + .../angular-bootstrap/ui-bootstrap-tpls.js | 4167 ++ .../ui-bootstrap-tpls.min.js | 10 + .../angular-bootstrap/ui-bootstrap.js | 3857 ++ .../angular-bootstrap/ui-bootstrap.min.js | 9 + .../angular-material/.bower.json | 24 + .../angular-material/.gitignore | 5 + .../angular-material/CHANGELOG.md | 1773 + .../bower_components/angular-material/LICENSE | 21 + .../angular-material/README.md | 211 + .../angular-material-mocks.js | 93 + .../angular-material/angular-material.css | 7282 +++ .../angular-material/angular-material.js | 17168 +++++++ .../angular-material/angular-material.min.css | 6 + .../angular-material/angular-material.min.js | 14 + .../angular-material/angular-material.scss | 5085 ++ .../angular-material/bower.json | 14 + .../demoBasicUsage/img/icons/copy.svg | 1 + .../demoBasicUsage/img/icons/copy2.svg | 1 + .../demoBasicUsage/img/icons/facebook.svg | 1 + .../demoBasicUsage/img/icons/hangout.svg | 1 + .../demoBasicUsage/img/icons/mail.svg | 1 + .../demoBasicUsage/img/icons/message.svg | 1 + .../demoBasicUsage/img/icons/print.svg | 1 + .../demoBasicUsage/img/icons/share-arrow.svg | 1 + .../demoBasicUsage/img/icons/twitter.svg | 2 + .../demoBasicUsage/img/icons/upload.svg | 1 + .../demos/chips/demoBasicUsage/style.scss | 39 + .../demos/chips/demoContactChips/style.scss | 47 + .../demos/gridList/demoBasicUsage/style.scss | 75 + .../gridList/demoDynamicTiles/style.scss | 78 + .../gridList/demoResponsiveUsage/style.scss | 0 .../img/icons/addShoppingCart.svg | 1 + .../img/icons/android.svg | 1 + .../img/icons/cake.svg | 1 + .../icon/demoSvgIconSets/assets/cake.svg | 1 + .../demoSvgIconSets/assets/core-icons.svg | 26 + .../demoSvgIconSets/assets/social-icons.svg | 26 + .../img/icons/addShoppingCart.svg | 1 + .../demoSvgIconsFromURL/img/icons/android.svg | 1 + .../demoSvgIconsFromURL/img/icons/cake.svg | 1 + .../demoUsingTemplateCache/assets/android.svg | 1 + .../demoUsingTemplateCache/assets/cake.svg | 1 + .../assets/core-icons.svg | 26 + .../input/demoIcons/icons/ic_email_24px.svg | 4 + .../input/demoIcons/icons/ic_person_24px.svg | 4 + .../input/demoIcons/icons/ic_phone_24px.svg | 4 + .../input/demoIcons/icons/ic_place_24px.svg | 4 + .../demos/input/demoIcons/style.scss | 18 + .../list/demoListControls/img/100-0.jpeg | Bin 0 -> 2331 bytes .../list/demoListControls/img/100-1.jpeg | Bin 0 -> 2816 bytes .../list/demoListControls/img/100-2.jpeg | Bin 0 -> 3389 bytes .../demos/tabs/demoDynamicHeight/style.scss | 13 + .../demos/tabs/demoDynamicTabs/style.scss | 44 + .../demos/tabs/demoStaticTabs/style.scss | 25 + .../demoBasicUsage/img/icons/favorite.svg | 4 + .../toolbar/demoBasicUsage/img/icons/menu.svg | 4 + .../demoBasicUsage/img/icons/more_vert.svg | 4 + .../angular-material/index.js | 12 + .../autocomplete-default-theme.css | 24 + .../closure/autocomplete/autocomplete.css | 222 + .../closure/autocomplete/autocomplete.js | 1047 + .../backdrop/backdrop-default-theme.css | 17 + .../modules/closure/backdrop/backdrop.css | 30 + .../modules/closure/backdrop/backdrop.js | 73 + .../bottomSheet/bottomSheet-default-theme.css | 16 + .../closure/bottomSheet/bottomSheet.css | 170 + .../closure/bottomSheet/bottomSheet.js | 267 + .../closure/button/button-default-theme.css | 94 + .../modules/closure/button/button.css | 166 + .../modules/closure/button/button.js | 135 + .../closure/card/card-default-theme.css | 12 + .../modules/closure/card/card.css | 34 + .../modules/closure/card/card.js | 84 + .../checkbox/checkbox-default-theme.css | 47 + .../modules/closure/checkbox/checkbox.css | 125 + .../modules/closure/checkbox/checkbox.js | 166 + .../closure/chips/chips-default-theme.css | 24 + .../modules/closure/chips/chips.css | 136 + .../modules/closure/chips/chips.js | 949 + .../closure/content/content-default-theme.css | 10 + .../modules/closure/content/content.css | 20 + .../modules/closure/content/content.js | 84 + .../modules/closure/core/core.css | 2594 + .../modules/closure/core/core.js | 4234 ++ .../modules/closure/core/default-theme.js | 4 + .../closure/dialog/dialog-default-theme.css | 12 + .../modules/closure/dialog/dialog.css | 114 + .../modules/closure/dialog/dialog.js | 790 + .../closure/divider/divider-default-theme.css | 9 + .../modules/closure/divider/divider.css | 14 + .../modules/closure/divider/divider.js | 45 + .../modules/closure/fabActions/fabActions.js | 69 + .../closure/fabSpeedDial/fabSpeedDial.css | 103 + .../closure/fabSpeedDial/fabSpeedDial.js | 270 + .../modules/closure/fabToolbar/fabToolbar.css | 74 + .../modules/closure/fabToolbar/fabToolbar.js | 228 + .../modules/closure/fabTrigger/fabTrigger.js | 54 + .../gridList/gridList-default-theme.css | 6 + .../modules/closure/gridList/gridList.css | 68 + .../modules/closure/gridList/gridList.js | 762 + .../closure/icon/icon-default-theme.css | 15 + .../modules/closure/icon/icon.css | 20 + .../modules/closure/icon/icon.js | 824 + .../closure/input/input-default-theme.css | 46 + .../modules/closure/input/input.css | 165 + .../modules/closure/input/input.js | 417 + .../closure/list/list-default-theme.css | 23 + .../modules/closure/list/list.css | 164 + .../modules/closure/list/list.js | 273 + .../closure/menu/menu-default-theme.css | 11 + .../modules/closure/menu/menu.css | 134 + .../modules/closure/menu/menu.js | 672 + .../progressCircular-default-theme.css | 36 + .../progressCircular/progressCircular.css | 1409 + .../progressCircular/progressCircular.js | 109 + .../progressLinear-default-theme.css | 27 + .../closure/progressLinear/progressLinear.css | 287 + .../closure/progressLinear/progressLinear.js | 126 + .../radioButton/radioButton-default-theme.css | 47 + .../closure/radioButton/radioButton.css | 97 + .../closure/radioButton/radioButton.js | 312 + .../closure/select/select-default-theme.css | 44 + .../modules/closure/select/select.css | 185 + .../modules/closure/select/select.js | 1150 + .../closure/sidenav/sidenav-default-theme.css | 9 + .../modules/closure/sidenav/sidenav.css | 99 + .../modules/closure/sidenav/sidenav.js | 426 + .../closure/slider/slider-default-theme.css | 56 + .../modules/closure/slider/slider.css | 222 + .../modules/closure/slider/slider.js | 412 + .../modules/closure/sticky/sticky.css | 21 + .../modules/closure/sticky/sticky.js | 315 + .../subheader/subheader-default-theme.css | 16 + .../modules/closure/subheader/subheader.css | 63 + .../modules/closure/subheader/subheader.js | 93 + .../modules/closure/swipe/swipe.js | 72 + .../closure/switch/switch-default-theme.css | 33 + .../modules/closure/switch/switch.css | 110 + .../modules/closure/switch/switch.js | 169 + .../modules/closure/tabs/tabs-arrow.svg | 7 + .../closure/tabs/tabs-default-theme.css | 82 + .../modules/closure/tabs/tabs.css | 276 + .../modules/closure/tabs/tabs.js | 1157 + .../textField/textField-default-theme.css | 30 + .../modules/closure/textField/textField.css | 111 + .../modules/closure/textField/textField.js | 145 + .../closure/toast/toast-default-theme.css | 18 + .../modules/closure/toast/toast.css | 119 + .../modules/closure/toast/toast.js | 274 + .../closure/toolbar/toolbar-default-theme.css | 20 + .../modules/closure/toolbar/toolbar.css | 89 + .../modules/closure/toolbar/toolbar.js | 167 + .../closure/tooltip/tooltip-default-theme.css | 11 + .../modules/closure/tooltip/tooltip.css | 72 + .../modules/closure/tooltip/tooltip.js | 272 + .../closure/virtualRepeat/virtualRepeat.css | 48 + .../closure/virtualRepeat/virtualRepeat.js | 683 + .../modules/closure/whiteframe/whiteframe.css | 25 + .../modules/closure/whiteframe/whiteframe.js | 15 + .../modules/css/angular-material-layout.css | 2375 + .../autocomplete-default-theme.css | 24 + .../autocomplete-default-theme.min.css | 6 + .../modules/js/autocomplete/autocomplete.css | 222 + .../modules/js/autocomplete/autocomplete.js | 1047 + .../js/autocomplete/autocomplete.min.css | 6 + .../js/autocomplete/autocomplete.min.js | 7 + .../modules/js/autocomplete/bower.json | 8 + .../js/backdrop/backdrop-default-theme.css | 17 + .../backdrop/backdrop-default-theme.min.css | 6 + .../modules/js/backdrop/backdrop.css | 30 + .../modules/js/backdrop/backdrop.js | 74 + .../modules/js/backdrop/backdrop.min.css | 6 + .../modules/js/backdrop/backdrop.min.js | 7 + .../modules/js/backdrop/bower.json | 7 + .../bottomSheet/bottomSheet-default-theme.css | 16 + .../bottomSheet-default-theme.min.css | 6 + .../modules/js/bottomSheet/bottomSheet.css | 170 + .../modules/js/bottomSheet/bottomSheet.js | 267 + .../js/bottomSheet/bottomSheet.min.css | 6 + .../modules/js/bottomSheet/bottomSheet.min.js | 7 + .../modules/js/bottomSheet/bower.json | 8 + .../modules/js/button/bower.json | 7 + .../js/button/button-default-theme.css | 94 + .../js/button/button-default-theme.min.css | 6 + .../modules/js/button/button.css | 166 + .../modules/js/button/button.js | 136 + .../modules/js/button/button.min.css | 6 + .../modules/js/button/button.min.js | 7 + .../modules/js/card/bower.json | 7 + .../modules/js/card/card-default-theme.css | 12 + .../js/card/card-default-theme.min.css | 6 + .../angular-material/modules/js/card/card.css | 34 + .../angular-material/modules/js/card/card.js | 85 + .../modules/js/card/card.min.css | 6 + .../modules/js/card/card.min.js | 7 + .../modules/js/checkbox/bower.json | 7 + .../js/checkbox/checkbox-default-theme.css | 47 + .../checkbox/checkbox-default-theme.min.css | 6 + .../modules/js/checkbox/checkbox.css | 125 + .../modules/js/checkbox/checkbox.js | 167 + .../modules/js/checkbox/checkbox.min.css | 6 + .../modules/js/checkbox/checkbox.min.js | 7 + .../modules/js/chips/bower.json | 8 + .../modules/js/chips/chips-default-theme.css | 24 + .../js/chips/chips-default-theme.min.css | 6 + .../modules/js/chips/chips.css | 136 + .../modules/js/chips/chips.js | 949 + .../modules/js/chips/chips.min.css | 6 + .../modules/js/chips/chips.min.js | 7 + .../modules/js/content/bower.json | 7 + .../js/content/content-default-theme.css | 10 + .../js/content/content-default-theme.min.css | 6 + .../modules/js/content/content.css | 20 + .../modules/js/content/content.js | 85 + .../modules/js/content/content.min.css | 6 + .../modules/js/content/content.min.js | 7 + .../modules/js/core/bower.json | 8 + .../angular-material/modules/js/core/core.css | 2594 + .../angular-material/modules/js/core/core.js | 4234 ++ .../modules/js/core/core.min.css | 6 + .../modules/js/core/core.min.js | 10 + .../modules/js/core/default-theme.js | 4 + .../modules/js/dialog/bower.json | 8 + .../js/dialog/dialog-default-theme.css | 12 + .../js/dialog/dialog-default-theme.min.css | 6 + .../modules/js/dialog/dialog.css | 114 + .../modules/js/dialog/dialog.js | 790 + .../modules/js/dialog/dialog.min.css | 6 + .../modules/js/dialog/dialog.min.js | 7 + .../modules/js/divider/bower.json | 7 + .../js/divider/divider-default-theme.css | 9 + .../js/divider/divider-default-theme.min.css | 6 + .../modules/js/divider/divider.css | 14 + .../modules/js/divider/divider.js | 46 + .../modules/js/divider/divider.min.css | 6 + .../modules/js/divider/divider.min.js | 7 + .../modules/js/fabActions/bower.json | 7 + .../modules/js/fabActions/fabActions.js | 70 + .../modules/js/fabActions/fabActions.min.js | 7 + .../modules/js/fabSpeedDial/bower.json | 9 + .../modules/js/fabSpeedDial/fabSpeedDial.css | 103 + .../modules/js/fabSpeedDial/fabSpeedDial.js | 269 + .../js/fabSpeedDial/fabSpeedDial.min.css | 6 + .../js/fabSpeedDial/fabSpeedDial.min.js | 7 + .../modules/js/fabToolbar/bower.json | 9 + .../modules/js/fabToolbar/fabToolbar.css | 74 + .../modules/js/fabToolbar/fabToolbar.js | 227 + .../modules/js/fabToolbar/fabToolbar.min.css | 6 + .../modules/js/fabToolbar/fabToolbar.min.js | 7 + .../modules/js/fabTrigger/bower.json | 7 + .../modules/js/fabTrigger/fabTrigger.js | 55 + .../modules/js/fabTrigger/fabTrigger.min.js | 7 + .../modules/js/gridList/bower.json | 7 + .../modules/js/gridList/gridList.css | 68 + .../modules/js/gridList/gridList.js | 763 + .../modules/js/gridList/gridList.min.css | 6 + .../modules/js/gridList/gridList.min.js | 7 + .../modules/js/icon/bower.json | 7 + .../modules/js/icon/icon-default-theme.css | 15 + .../js/icon/icon-default-theme.min.css | 6 + .../angular-material/modules/js/icon/icon.css | 20 + .../angular-material/modules/js/icon/icon.js | 825 + .../modules/js/icon/icon.min.css | 6 + .../modules/js/icon/icon.min.js | 7 + .../modules/js/input/bower.json | 7 + .../modules/js/input/input-default-theme.css | 46 + .../js/input/input-default-theme.min.css | 6 + .../modules/js/input/input.css | 165 + .../modules/js/input/input.js | 418 + .../modules/js/input/input.min.css | 6 + .../modules/js/input/input.min.js | 7 + .../modules/js/list/bower.json | 7 + .../modules/js/list/list-default-theme.css | 23 + .../js/list/list-default-theme.min.css | 6 + .../angular-material/modules/js/list/list.css | 164 + .../angular-material/modules/js/list/list.js | 274 + .../modules/js/list/list.min.css | 6 + .../modules/js/list/list.min.js | 7 + .../modules/js/menu/bower.json | 8 + .../modules/js/menu/menu-default-theme.css | 11 + .../js/menu/menu-default-theme.min.css | 6 + .../angular-material/modules/js/menu/menu.css | 134 + .../angular-material/modules/js/menu/menu.js | 672 + .../modules/js/menu/menu.min.css | 6 + .../modules/js/menu/menu.min.js | 7 + .../modules/js/progressCircular/bower.json | 7 + .../progressCircular-default-theme.css | 36 + .../progressCircular-default-theme.min.css | 6 + .../js/progressCircular/progressCircular.css | 1409 + .../js/progressCircular/progressCircular.js | 110 + .../progressCircular/progressCircular.min.css | 6 + .../progressCircular/progressCircular.min.js | 7 + .../modules/js/progressLinear/bower.json | 7 + .../progressLinear-default-theme.css | 27 + .../progressLinear-default-theme.min.css | 6 + .../js/progressLinear/progressLinear.css | 287 + .../js/progressLinear/progressLinear.js | 127 + .../js/progressLinear/progressLinear.min.css | 6 + .../js/progressLinear/progressLinear.min.js | 7 + .../modules/js/radioButton/bower.json | 7 + .../radioButton/radioButton-default-theme.css | 47 + .../radioButton-default-theme.min.css | 6 + .../modules/js/radioButton/radioButton.css | 97 + .../modules/js/radioButton/radioButton.js | 313 + .../js/radioButton/radioButton.min.css | 6 + .../modules/js/radioButton/radioButton.min.js | 7 + .../modules/js/select/bower.json | 8 + .../js/select/select-default-theme.css | 44 + .../js/select/select-default-theme.min.css | 6 + .../modules/js/select/select.css | 185 + .../modules/js/select/select.js | 1150 + .../modules/js/select/select.min.css | 6 + .../modules/js/select/select.min.js | 7 + .../modules/js/sidenav/bower.json | 8 + .../js/sidenav/sidenav-default-theme.css | 9 + .../js/sidenav/sidenav-default-theme.min.css | 6 + .../modules/js/sidenav/sidenav.css | 99 + .../modules/js/sidenav/sidenav.js | 426 + .../modules/js/sidenav/sidenav.min.css | 6 + .../modules/js/sidenav/sidenav.min.js | 7 + .../modules/js/slider/bower.json | 7 + .../js/slider/slider-default-theme.css | 56 + .../js/slider/slider-default-theme.min.css | 6 + .../modules/js/slider/slider.css | 222 + .../modules/js/slider/slider.js | 413 + .../modules/js/slider/slider.min.css | 6 + .../modules/js/slider/slider.min.js | 7 + .../modules/js/sticky/bower.json | 8 + .../modules/js/sticky/sticky.css | 21 + .../modules/js/sticky/sticky.js | 315 + .../modules/js/sticky/sticky.min.css | 6 + .../modules/js/sticky/sticky.min.js | 7 + .../modules/js/subheader/bower.json | 8 + .../js/subheader/subheader-default-theme.css | 16 + .../subheader/subheader-default-theme.min.css | 6 + .../modules/js/subheader/subheader.css | 63 + .../modules/js/subheader/subheader.js | 93 + .../modules/js/subheader/subheader.min.css | 6 + .../modules/js/subheader/subheader.min.js | 7 + .../modules/js/swipe/bower.json | 7 + .../modules/js/swipe/swipe.js | 73 + .../modules/js/swipe/swipe.min.js | 7 + .../modules/js/switch/bower.json | 8 + .../js/switch/switch-default-theme.css | 33 + .../js/switch/switch-default-theme.min.css | 6 + .../modules/js/switch/switch.css | 110 + .../modules/js/switch/switch.js | 169 + .../modules/js/switch/switch.min.css | 6 + .../modules/js/switch/switch.min.js | 7 + .../modules/js/tabs/bower.json | 8 + .../modules/js/tabs/tabs-default-theme.css | 82 + .../js/tabs/tabs-default-theme.min.css | 6 + .../angular-material/modules/js/tabs/tabs.css | 276 + .../angular-material/modules/js/tabs/tabs.js | 1157 + .../modules/js/tabs/tabs.min.css | 6 + .../modules/js/tabs/tabs.min.js | 7 + .../modules/js/textField/bower.json | 7 + .../js/textField/textField-default-theme.css | 30 + .../textField/textField-default-theme.min.css | 6 + .../modules/js/textField/textField.css | 111 + .../modules/js/textField/textField.js | 143 + .../modules/js/textField/textField.min.css | 6 + .../modules/js/textField/textField.min.js | 7 + .../modules/js/toast/bower.json | 8 + .../modules/js/toast/toast-default-theme.css | 18 + .../js/toast/toast-default-theme.min.css | 6 + .../modules/js/toast/toast.css | 119 + .../modules/js/toast/toast.js | 274 + .../modules/js/toast/toast.min.css | 6 + .../modules/js/toast/toast.min.js | 7 + .../modules/js/toolbar/bower.json | 8 + .../js/toolbar/toolbar-default-theme.css | 20 + .../js/toolbar/toolbar-default-theme.min.css | 6 + .../modules/js/toolbar/toolbar.css | 89 + .../modules/js/toolbar/toolbar.js | 167 + .../modules/js/toolbar/toolbar.min.css | 6 + .../modules/js/toolbar/toolbar.min.js | 7 + .../modules/js/tooltip/bower.json | 7 + .../js/tooltip/tooltip-default-theme.css | 11 + .../js/tooltip/tooltip-default-theme.min.css | 6 + .../modules/js/tooltip/tooltip.css | 72 + .../modules/js/tooltip/tooltip.js | 273 + .../modules/js/tooltip/tooltip.min.css | 6 + .../modules/js/tooltip/tooltip.min.js | 7 + .../modules/js/virtualRepeat/bower.json | 7 + .../js/virtualRepeat/virtualRepeat.css | 48 + .../modules/js/virtualRepeat/virtualRepeat.js | 684 + .../js/virtualRepeat/virtualRepeat.min.css | 6 + .../js/virtualRepeat/virtualRepeat.min.js | 7 + .../modules/js/whiteframe/bower.json | 5 + .../modules/js/whiteframe/whiteframe.css | 25 + .../modules/js/whiteframe/whiteframe.js | 16 + .../modules/js/whiteframe/whiteframe.min.css | 6 + .../modules/js/whiteframe/whiteframe.min.js | 7 + .../angular-material/package.json | 48 + .../angular-mocks/.bower.json | 19 + .../bower_components/angular-mocks/README.md | 63 + .../angular-mocks/angular-mocks.js | 2436 + .../bower_components/angular-mocks/bower.json | 9 + .../angular-mocks/ngAnimateMock.js | 2 + .../bower_components/angular-mocks/ngMock.js | 2 + .../angular-mocks/ngMockE2E.js | 2 + .../angular-mocks/package.json | 27 + .../angular-scenario/.bower.json | 19 + .../angular-scenario/README.md | 61 + .../angular-scenario/angular-scenario.js | 39772 ++++++++++++++++ .../angular-scenario/bower.json | 9 + .../jstd-scenario-adapter-config.js | 6 + .../angular-scenario/jstd-scenario-adapter.js | 185 + .../angular-scenario/package.json | 26 + .../angular-ui-router/.bower.json | 33 + .../angular-ui-router/CHANGELOG.md | 228 + .../angular-ui-router/CONTRIBUTING.md | 65 + .../angular-ui-router/LICENSE | 21 + .../angular-ui-router/README.md | 245 + .../api/angular-ui-router.d.ts | 126 + .../angular-ui-router/bower.json | 23 + .../release/angular-ui-router.js | 4370 ++ .../release/angular-ui-router.min.js | 7 + .../angular-ui-router/src/common.js | 292 + .../angular-ui-router/src/resolve.js | 252 + .../angular-ui-router/src/state.js | 1465 + .../angular-ui-router/src/stateDirectives.js | 285 + .../angular-ui-router/src/stateFilters.js | 39 + .../angular-ui-router/src/templateFactory.js | 110 + .../src/urlMatcherFactory.js | 1050 + .../angular-ui-router/src/urlRouter.js | 427 + .../angular-ui-router/src/view.js | 71 + .../angular-ui-router/src/viewDirective.js | 303 + .../angular-ui-router/src/viewScroll.js | 52 + .../bower_components/angular/.bower.json | 17 + .../public/bower_components/angular/README.md | 64 + .../bower_components/angular/angular-csp.css | 21 + .../bower_components/angular/angular.js | 28364 +++++++++++ .../bower_components/angular/angular.min.js | 290 + .../angular/angular.min.js.gzip | Bin 0 -> 51629 bytes .../angular/angular.min.js.map | 8 + .../bower_components/angular/bower.json | 8 + dist/public/bower_components/angular/index.js | 2 + .../bower_components/angular/package.json | 25 + .../bower_components/bootstrap/.bower.json | 34 + .../bower_components/bootstrap/Gruntfile.js | 421 + .../public/bower_components/bootstrap/LICENSE | 21 + .../bower_components/bootstrap/README.md | 173 + .../bower_components/bootstrap/bower.json | 24 + .../bootstrap/dist/css/bootstrap-theme.css | 347 + .../dist/css/bootstrap-theme.css.map | 1 + .../dist/css/bootstrap-theme.min.css | 7 + .../bootstrap/dist/css/bootstrap.css | 5785 +++ .../bootstrap/dist/css/bootstrap.css.map | 1 + .../bootstrap/dist/css/bootstrap.min.css | 7 + .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20335 bytes .../fonts/glyphicons-halflings-regular.svg | 229 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 41280 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23320 bytes .../bootstrap/dist/js/bootstrap.js | 1951 + .../bootstrap/dist/js/bootstrap.min.js | 6 + .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20335 bytes .../fonts/glyphicons-halflings-regular.svg | 229 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 41280 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23320 bytes .../grunt/bs-glyphicons-data-generator.js | 34 + .../bootstrap/grunt/bs-lessdoc-parser.js | 236 + .../bootstrap/grunt/bs-raw-files-generator.js | 31 + .../bootstrap/grunt/shrinkwrap.js | 28 + .../bower_components/bootstrap/js/affix.js | 137 + .../bower_components/bootstrap/js/alert.js | 88 + .../bower_components/bootstrap/js/button.js | 107 + .../bower_components/bootstrap/js/carousel.js | 205 + .../bower_components/bootstrap/js/collapse.js | 170 + .../bower_components/bootstrap/js/dropdown.js | 147 + .../bower_components/bootstrap/js/modal.js | 243 + .../bower_components/bootstrap/js/popover.js | 110 + .../bootstrap/js/scrollspy.js | 153 + .../bower_components/bootstrap/js/tab.js | 125 + .../bower_components/bootstrap/js/tooltip.js | 399 + .../bootstrap/js/transition.js | 48 + .../bootstrap/less/alerts.less | 67 + .../bootstrap/less/badges.less | 55 + .../bootstrap/less/bootstrap.less | 49 + .../bootstrap/less/breadcrumbs.less | 26 + .../bootstrap/less/button-groups.less | 226 + .../bootstrap/less/buttons.less | 159 + .../bootstrap/less/carousel.less | 232 + .../bootstrap/less/close.less | 33 + .../bower_components/bootstrap/less/code.less | 63 + .../bootstrap/less/component-animations.less | 29 + .../bootstrap/less/dropdowns.less | 213 + .../bootstrap/less/forms.less | 438 + .../bootstrap/less/glyphicons.less | 233 + .../bower_components/bootstrap/less/grid.less | 84 + .../bootstrap/less/input-groups.less | 162 + .../bootstrap/less/jumbotron.less | 44 + .../bootstrap/less/labels.less | 64 + .../bootstrap/less/list-group.less | 110 + .../bootstrap/less/media.less | 56 + .../bootstrap/less/mixins.less | 929 + .../bootstrap/less/modals.less | 139 + .../bootstrap/less/navbar.less | 616 + .../bower_components/bootstrap/less/navs.less | 242 + .../bootstrap/less/normalize.less | 423 + .../bootstrap/less/pager.less | 55 + .../bootstrap/less/pagination.less | 88 + .../bootstrap/less/panels.less | 241 + .../bootstrap/less/popovers.less | 133 + .../bootstrap/less/print.less | 101 + .../bootstrap/less/progress-bars.less | 80 + .../bootstrap/less/responsive-utilities.less | 92 + .../bootstrap/less/scaffolding.less | 134 + .../bootstrap/less/tables.less | 233 + .../bootstrap/less/theme.less | 247 + .../bootstrap/less/thumbnails.less | 36 + .../bootstrap/less/tooltip.less | 95 + .../bower_components/bootstrap/less/type.less | 293 + .../bootstrap/less/utilities.less | 56 + .../bootstrap/less/variables.less | 829 + .../bootstrap/less/wells.less | 29 + .../bower_components/bootstrap/package.json | 70 + .../bootstrap/test-infra/README.md | 100 + .../test-infra/npm-shrinkwrap.canonical.json | 1 + .../bootstrap/test-infra/requirements.txt | 1 + .../bootstrap/test-infra/s3_cache.py | 107 + .../bootstrap/test-infra/sauce_browsers.yml | 83 + .../test-infra/uncached-npm-install.sh | 4 + .../bower_components/es5-shim/.bower.json | 44 + dist/public/bower_components/es5-shim/CHANGES | 118 + .../bower_components/es5-shim/CONTRIBUTORS.md | 27 + dist/public/bower_components/es5-shim/LICENSE | 22 + .../bower_components/es5-shim/README.md | 166 + .../bower_components/es5-shim/bower.json | 35 + .../bower_components/es5-shim/component.json | 20 + .../bower_components/es5-shim/es5-sham.js | 466 + .../bower_components/es5-shim/es5-sham.map | 1 + .../bower_components/es5-shim/es5-sham.min.js | 7 + .../bower_components/es5-shim/es5-shim.js | 1402 + .../bower_components/es5-shim/es5-shim.map | 1 + .../bower_components/es5-shim/es5-shim.min.js | 7 + .../bower_components/es5-shim/package.json | 60 + .../bower_components/es5-shim/shims.json | 7 + .../bower_components/font-awesome/.bower.json | 36 + .../bower_components/font-awesome/.gitignore | 33 + .../bower_components/font-awesome/.npmignore | 42 + .../bower_components/font-awesome/bower.json | 23 + .../font-awesome/css/font-awesome.css | 1801 + .../font-awesome/css/font-awesome.css.map | 7 + .../font-awesome/css/font-awesome.min.css | 4 + .../font-awesome/fonts/FontAwesome.otf | Bin 0 -> 93888 bytes .../fonts/fontawesome-webfont.eot | Bin 0 -> 60767 bytes .../fonts/fontawesome-webfont.svg | 565 + .../fonts/fontawesome-webfont.ttf | Bin 0 -> 122092 bytes .../fonts/fontawesome-webfont.woff | Bin 0 -> 71508 bytes .../fonts/fontawesome-webfont.woff2 | Bin 0 -> 56780 bytes .../font-awesome/less/animated.less | 34 + .../font-awesome/less/bordered-pulled.less | 16 + .../font-awesome/less/core.less | 13 + .../font-awesome/less/fixed-width.less | 6 + .../font-awesome/less/font-awesome.less | 17 + .../font-awesome/less/icons.less | 596 + .../font-awesome/less/larger.less | 13 + .../font-awesome/less/list.less | 19 + .../font-awesome/less/mixins.less | 27 + .../font-awesome/less/path.less | 15 + .../font-awesome/less/rotated-flipped.less | 20 + .../font-awesome/less/stacked.less | 20 + .../font-awesome/less/variables.less | 606 + .../font-awesome/scss/_animated.scss | 34 + .../font-awesome/scss/_bordered-pulled.scss | 16 + .../font-awesome/scss/_core.scss | 13 + .../font-awesome/scss/_fixed-width.scss | 6 + .../font-awesome/scss/_icons.scss | 596 + .../font-awesome/scss/_larger.scss | 13 + .../font-awesome/scss/_list.scss | 19 + .../font-awesome/scss/_mixins.scss | 27 + .../font-awesome/scss/_path.scss | 15 + .../font-awesome/scss/_rotated-flipped.scss | 20 + .../font-awesome/scss/_stacked.scss | 20 + .../font-awesome/scss/_variables.scss | 606 + .../font-awesome/scss/font-awesome.scss | 17 + .../bower_components/jquery/.bower.json | 38 + .../bower_components/jquery/MIT-LICENSE.txt | 21 + .../public/bower_components/jquery/bower.json | 28 + .../bower_components/jquery/dist/jquery.js | 9210 ++++ .../jquery/dist/jquery.min.js | 5 + .../jquery/dist/jquery.min.map | 1 + .../bower_components/jquery/src/ajax.js | 786 + .../bower_components/jquery/src/ajax/jsonp.js | 89 + .../bower_components/jquery/src/ajax/load.js | 75 + .../jquery/src/ajax/parseJSON.js | 13 + .../jquery/src/ajax/parseXML.js | 28 + .../jquery/src/ajax/script.js | 64 + .../jquery/src/ajax/var/nonce.js | 5 + .../jquery/src/ajax/var/rquery.js | 3 + .../bower_components/jquery/src/ajax/xhr.js | 136 + .../bower_components/jquery/src/attributes.js | 11 + .../jquery/src/attributes/attr.js | 141 + .../jquery/src/attributes/classes.js | 158 + .../jquery/src/attributes/prop.js | 94 + .../jquery/src/attributes/support.js | 35 + .../jquery/src/attributes/val.js | 161 + .../bower_components/jquery/src/callbacks.js | 205 + .../bower_components/jquery/src/core.js | 502 + .../jquery/src/core/access.js | 60 + .../bower_components/jquery/src/core/init.js | 123 + .../jquery/src/core/parseHTML.js | 39 + .../bower_components/jquery/src/core/ready.js | 97 + .../jquery/src/core/var/rsingleTag.js | 4 + .../public/bower_components/jquery/src/css.js | 450 + .../jquery/src/css/addGetHookIf.js | 22 + .../bower_components/jquery/src/css/curCSS.js | 57 + .../jquery/src/css/defaultDisplay.js | 70 + .../jquery/src/css/hiddenVisibleSelectors.js | 15 + .../jquery/src/css/support.js | 96 + .../bower_components/jquery/src/css/swap.js | 28 + .../jquery/src/css/var/cssExpand.js | 3 + .../jquery/src/css/var/getStyles.js | 12 + .../jquery/src/css/var/isHidden.js | 13 + .../jquery/src/css/var/rmargin.js | 3 + .../jquery/src/css/var/rnumnonpx.js | 5 + .../bower_components/jquery/src/data.js | 178 + .../bower_components/jquery/src/data/Data.js | 181 + .../jquery/src/data/accepts.js | 20 + .../jquery/src/data/var/data_priv.js | 5 + .../jquery/src/data/var/data_user.js | 5 + .../bower_components/jquery/src/deferred.js | 149 + .../bower_components/jquery/src/deprecated.js | 13 + .../bower_components/jquery/src/dimensions.js | 50 + .../bower_components/jquery/src/effects.js | 648 + .../jquery/src/effects/Tween.js | 114 + .../jquery/src/effects/animatedSelector.js | 13 + .../bower_components/jquery/src/event.js | 868 + .../bower_components/jquery/src/event/ajax.js | 13 + .../jquery/src/event/alias.js | 39 + .../jquery/src/event/support.js | 9 + .../jquery/src/exports/amd.js | 24 + .../jquery/src/exports/global.js | 32 + .../bower_components/jquery/src/intro.js | 44 + .../bower_components/jquery/src/jquery.js | 37 + .../jquery/src/manipulation.js | 580 + .../jquery/src/manipulation/_evalUrl.js | 18 + .../jquery/src/manipulation/support.js | 32 + .../src/manipulation/var/rcheckableType.js | 3 + .../bower_components/jquery/src/offset.js | 207 + .../bower_components/jquery/src/outro.js | 1 + .../bower_components/jquery/src/queue.js | 142 + .../jquery/src/queue/delay.js | 22 + .../jquery/src/selector-native.js | 172 + .../jquery/src/selector-sizzle.js | 14 + .../bower_components/jquery/src/selector.js | 1 + .../bower_components/jquery/src/serialize.js | 111 + .../jquery/src/sizzle/dist/sizzle.js | 2067 + .../jquery/src/sizzle/dist/sizzle.min.js | 3 + .../jquery/src/sizzle/dist/sizzle.min.map | 1 + .../bower_components/jquery/src/traversing.js | 199 + .../jquery/src/traversing/findFilter.js | 100 + .../src/traversing/var/rneedsContext.js | 6 + .../bower_components/jquery/src/var/arr.js | 3 + .../jquery/src/var/class2type.js | 4 + .../bower_components/jquery/src/var/concat.js | 5 + .../bower_components/jquery/src/var/hasOwn.js | 5 + .../jquery/src/var/indexOf.js | 5 + .../bower_components/jquery/src/var/pnum.js | 3 + .../bower_components/jquery/src/var/push.js | 5 + .../jquery/src/var/rnotwhite.js | 3 + .../bower_components/jquery/src/var/slice.js | 5 + .../jquery/src/var/strundefined.js | 3 + .../jquery/src/var/support.js | 4 + .../jquery/src/var/toString.js | 5 + .../bower_components/jquery/src/wrap.js | 79 + .../public/bower_components/json3/.bower.json | 47 + .../bower_components/json3/CHANGELOG.md | 44 + .../bower_components/json3/CONTRIBUTING.md | 3 + dist/public/bower_components/json3/LICENSE | 20 + dist/public/bower_components/json3/README.md | 152 + dist/public/bower_components/json3/bower.json | 38 + .../bower_components/json3/lib/json3.js | 902 + .../bower_components/json3/lib/json3.min.js | 17 + .../bower_components/lodash/.bower.json | 33 + .../bower_components/lodash/LICENSE.txt | 22 + .../public/bower_components/lodash/bower.json | 23 + .../lodash/dist/lodash.compat.js | 7158 +++ .../lodash/dist/lodash.compat.min.js | 92 + .../bower_components/lodash/dist/lodash.js | 6786 +++ .../lodash/dist/lodash.min.js | 87 + .../lodash/dist/lodash.underscore.js | 4979 ++ .../lodash/dist/lodash.underscore.min.js | 39 + dist/public/favicon.ico | Bin 0 -> 6774 bytes dist/public/index.html | 92 + dist/public/robots.txt | 3 + dist/server/api/search/index.js | 15 + dist/server/api/search/search.controller.js | 228 + dist/server/api/search/search.spec.js | 20 + dist/server/app.js | 50 + dist/server/components/errors/index.js | 20 + dist/server/config/db-config.js | 18 + dist/server/config/environment/development.js | 12 + dist/server/config/environment/index.js | 50 + dist/server/config/environment/production.js | 23 + dist/server/config/environment/test.js | 10 + dist/server/config/express.js | 47 + dist/server/config/local.env.js | 13 + dist/server/config/local.env.sample.js | 14 + dist/server/offline.manifest | 25 + dist/server/routes.js | 23 + dist/server/views/404.html | 157 + server/api/search/search.controller.js | 4 +- server/config/environment/production.js | 2 +- server/offline.manifest | 59 +- 740 files changed, 248509 insertions(+), 546 deletions(-) delete mode 100644 client/util/fuse.js create mode 100644 client/util/fuse.min.js create mode 100644 dist/package.json create mode 100644 dist/public/.htaccess create mode 100644 dist/public/app/7878b2da.app.js create mode 100644 dist/public/app/c8d5270e.vendor.js create mode 100644 dist/public/app/ebda609f.vendor.css create mode 100644 dist/public/app/fc1c5422.app.css create mode 100644 dist/public/assets/images/d535427a.yeoman.png create mode 100644 dist/public/bower_components/angular-animate/.bower.json create mode 100644 dist/public/bower_components/angular-animate/README.md create mode 100644 dist/public/bower_components/angular-animate/angular-animate.js create mode 100644 dist/public/bower_components/angular-animate/angular-animate.min.js create mode 100644 dist/public/bower_components/angular-animate/angular-animate.min.js.map create mode 100644 dist/public/bower_components/angular-animate/bower.json create mode 100644 dist/public/bower_components/angular-animate/index.js create mode 100644 dist/public/bower_components/angular-animate/package.json create mode 100644 dist/public/bower_components/angular-aria/.bower.json create mode 100644 dist/public/bower_components/angular-aria/README.md create mode 100644 dist/public/bower_components/angular-aria/angular-aria.js create mode 100644 dist/public/bower_components/angular-aria/angular-aria.min.js create mode 100644 dist/public/bower_components/angular-aria/angular-aria.min.js.map create mode 100644 dist/public/bower_components/angular-aria/bower.json create mode 100644 dist/public/bower_components/angular-aria/index.js create mode 100644 dist/public/bower_components/angular-aria/package.json create mode 100644 dist/public/bower_components/angular-bootstrap/.bower.json create mode 100644 dist/public/bower_components/angular-bootstrap/bower.json create mode 100644 dist/public/bower_components/angular-bootstrap/ui-bootstrap-tpls.js create mode 100644 dist/public/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js create mode 100644 dist/public/bower_components/angular-bootstrap/ui-bootstrap.js create mode 100644 dist/public/bower_components/angular-bootstrap/ui-bootstrap.min.js create mode 100644 dist/public/bower_components/angular-material/.bower.json create mode 100644 dist/public/bower_components/angular-material/.gitignore create mode 100644 dist/public/bower_components/angular-material/CHANGELOG.md create mode 100644 dist/public/bower_components/angular-material/LICENSE create mode 100644 dist/public/bower_components/angular-material/README.md create mode 100644 dist/public/bower_components/angular-material/angular-material-mocks.js create mode 100644 dist/public/bower_components/angular-material/angular-material.css create mode 100644 dist/public/bower_components/angular-material/angular-material.js create mode 100644 dist/public/bower_components/angular-material/angular-material.min.css create mode 100644 dist/public/bower_components/angular-material/angular-material.min.js create mode 100644 dist/public/bower_components/angular-material/angular-material.scss create mode 100644 dist/public/bower_components/angular-material/bower.json create mode 100644 dist/public/bower_components/angular-material/demos/bottomSheet/demoBasicUsage/img/icons/copy.svg create mode 100644 dist/public/bower_components/angular-material/demos/bottomSheet/demoBasicUsage/img/icons/copy2.svg create mode 100644 dist/public/bower_components/angular-material/demos/bottomSheet/demoBasicUsage/img/icons/facebook.svg create mode 100644 dist/public/bower_components/angular-material/demos/bottomSheet/demoBasicUsage/img/icons/hangout.svg create mode 100644 dist/public/bower_components/angular-material/demos/bottomSheet/demoBasicUsage/img/icons/mail.svg create mode 100644 dist/public/bower_components/angular-material/demos/bottomSheet/demoBasicUsage/img/icons/message.svg create mode 100644 dist/public/bower_components/angular-material/demos/bottomSheet/demoBasicUsage/img/icons/print.svg create mode 100644 dist/public/bower_components/angular-material/demos/bottomSheet/demoBasicUsage/img/icons/share-arrow.svg create mode 100644 dist/public/bower_components/angular-material/demos/bottomSheet/demoBasicUsage/img/icons/twitter.svg create mode 100644 dist/public/bower_components/angular-material/demos/bottomSheet/demoBasicUsage/img/icons/upload.svg create mode 100644 dist/public/bower_components/angular-material/demos/chips/demoBasicUsage/style.scss create mode 100644 dist/public/bower_components/angular-material/demos/chips/demoContactChips/style.scss create mode 100644 dist/public/bower_components/angular-material/demos/gridList/demoBasicUsage/style.scss create mode 100644 dist/public/bower_components/angular-material/demos/gridList/demoDynamicTiles/style.scss create mode 100644 dist/public/bower_components/angular-material/demos/gridList/demoResponsiveUsage/style.scss create mode 100644 dist/public/bower_components/angular-material/demos/icon/demoLoadSvgIconsFromUrl/img/icons/addShoppingCart.svg create mode 100644 dist/public/bower_components/angular-material/demos/icon/demoLoadSvgIconsFromUrl/img/icons/android.svg create mode 100644 dist/public/bower_components/angular-material/demos/icon/demoLoadSvgIconsFromUrl/img/icons/cake.svg create mode 100644 dist/public/bower_components/angular-material/demos/icon/demoSvgIconSets/assets/cake.svg create mode 100644 dist/public/bower_components/angular-material/demos/icon/demoSvgIconSets/assets/core-icons.svg create mode 100644 dist/public/bower_components/angular-material/demos/icon/demoSvgIconSets/assets/social-icons.svg create mode 100644 dist/public/bower_components/angular-material/demos/icon/demoSvgIconsFromURL/img/icons/addShoppingCart.svg create mode 100644 dist/public/bower_components/angular-material/demos/icon/demoSvgIconsFromURL/img/icons/android.svg create mode 100644 dist/public/bower_components/angular-material/demos/icon/demoSvgIconsFromURL/img/icons/cake.svg create mode 100644 dist/public/bower_components/angular-material/demos/icon/demoUsingTemplateCache/assets/android.svg create mode 100644 dist/public/bower_components/angular-material/demos/icon/demoUsingTemplateCache/assets/cake.svg create mode 100644 dist/public/bower_components/angular-material/demos/icon/demoUsingTemplateCache/assets/core-icons.svg create mode 100644 dist/public/bower_components/angular-material/demos/input/demoIcons/icons/ic_email_24px.svg create mode 100644 dist/public/bower_components/angular-material/demos/input/demoIcons/icons/ic_person_24px.svg create mode 100644 dist/public/bower_components/angular-material/demos/input/demoIcons/icons/ic_phone_24px.svg create mode 100644 dist/public/bower_components/angular-material/demos/input/demoIcons/icons/ic_place_24px.svg create mode 100644 dist/public/bower_components/angular-material/demos/input/demoIcons/style.scss create mode 100644 dist/public/bower_components/angular-material/demos/list/demoListControls/img/100-0.jpeg create mode 100644 dist/public/bower_components/angular-material/demos/list/demoListControls/img/100-1.jpeg create mode 100644 dist/public/bower_components/angular-material/demos/list/demoListControls/img/100-2.jpeg create mode 100644 dist/public/bower_components/angular-material/demos/tabs/demoDynamicHeight/style.scss create mode 100644 dist/public/bower_components/angular-material/demos/tabs/demoDynamicTabs/style.scss create mode 100644 dist/public/bower_components/angular-material/demos/tabs/demoStaticTabs/style.scss create mode 100644 dist/public/bower_components/angular-material/demos/toolbar/demoBasicUsage/img/icons/favorite.svg create mode 100644 dist/public/bower_components/angular-material/demos/toolbar/demoBasicUsage/img/icons/menu.svg create mode 100644 dist/public/bower_components/angular-material/demos/toolbar/demoBasicUsage/img/icons/more_vert.svg create mode 100644 dist/public/bower_components/angular-material/index.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/autocomplete/autocomplete-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/autocomplete/autocomplete.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/autocomplete/autocomplete.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/backdrop/backdrop-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/backdrop/backdrop.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/backdrop/backdrop.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/bottomSheet/bottomSheet-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/bottomSheet/bottomSheet.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/bottomSheet/bottomSheet.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/button/button-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/button/button.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/button/button.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/card/card-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/card/card.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/card/card.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/checkbox/checkbox-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/checkbox/checkbox.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/checkbox/checkbox.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/chips/chips-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/chips/chips.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/chips/chips.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/content/content-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/content/content.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/content/content.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/core/core.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/core/core.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/core/default-theme.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/dialog/dialog-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/dialog/dialog.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/dialog/dialog.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/divider/divider-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/divider/divider.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/divider/divider.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/fabActions/fabActions.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/fabSpeedDial/fabSpeedDial.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/fabSpeedDial/fabSpeedDial.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/fabToolbar/fabToolbar.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/fabToolbar/fabToolbar.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/fabTrigger/fabTrigger.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/gridList/gridList-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/gridList/gridList.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/gridList/gridList.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/icon/icon-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/icon/icon.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/icon/icon.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/input/input-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/input/input.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/input/input.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/list/list-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/list/list.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/list/list.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/menu/menu-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/menu/menu.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/menu/menu.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/progressCircular/progressCircular-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/progressCircular/progressCircular.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/progressCircular/progressCircular.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/progressLinear/progressLinear-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/progressLinear/progressLinear.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/progressLinear/progressLinear.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/radioButton/radioButton-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/radioButton/radioButton.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/radioButton/radioButton.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/select/select-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/select/select.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/select/select.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/sidenav/sidenav-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/sidenav/sidenav.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/sidenav/sidenav.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/slider/slider-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/slider/slider.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/slider/slider.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/sticky/sticky.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/sticky/sticky.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/subheader/subheader-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/subheader/subheader.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/subheader/subheader.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/swipe/swipe.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/switch/switch-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/switch/switch.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/switch/switch.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/tabs/tabs-arrow.svg create mode 100644 dist/public/bower_components/angular-material/modules/closure/tabs/tabs-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/tabs/tabs.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/tabs/tabs.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/textField/textField-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/textField/textField.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/textField/textField.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/toast/toast-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/toast/toast.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/toast/toast.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/toolbar/toolbar-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/toolbar/toolbar.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/toolbar/toolbar.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/tooltip/tooltip-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/tooltip/tooltip.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/tooltip/tooltip.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/virtualRepeat/virtualRepeat.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/virtualRepeat/virtualRepeat.js create mode 100644 dist/public/bower_components/angular-material/modules/closure/whiteframe/whiteframe.css create mode 100644 dist/public/bower_components/angular-material/modules/closure/whiteframe/whiteframe.js create mode 100644 dist/public/bower_components/angular-material/modules/css/angular-material-layout.css create mode 100644 dist/public/bower_components/angular-material/modules/js/autocomplete/autocomplete-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/autocomplete/autocomplete-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/autocomplete/autocomplete.css create mode 100644 dist/public/bower_components/angular-material/modules/js/autocomplete/autocomplete.js create mode 100644 dist/public/bower_components/angular-material/modules/js/autocomplete/autocomplete.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/autocomplete/autocomplete.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/autocomplete/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/backdrop/backdrop-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/backdrop/backdrop-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/backdrop/backdrop.css create mode 100644 dist/public/bower_components/angular-material/modules/js/backdrop/backdrop.js create mode 100644 dist/public/bower_components/angular-material/modules/js/backdrop/backdrop.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/backdrop/backdrop.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/backdrop/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/bottomSheet/bottomSheet-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/bottomSheet/bottomSheet-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/bottomSheet/bottomSheet.css create mode 100644 dist/public/bower_components/angular-material/modules/js/bottomSheet/bottomSheet.js create mode 100644 dist/public/bower_components/angular-material/modules/js/bottomSheet/bottomSheet.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/bottomSheet/bottomSheet.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/bottomSheet/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/button/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/button/button-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/button/button-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/button/button.css create mode 100644 dist/public/bower_components/angular-material/modules/js/button/button.js create mode 100644 dist/public/bower_components/angular-material/modules/js/button/button.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/button/button.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/card/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/card/card-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/card/card-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/card/card.css create mode 100644 dist/public/bower_components/angular-material/modules/js/card/card.js create mode 100644 dist/public/bower_components/angular-material/modules/js/card/card.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/card/card.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/checkbox/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/checkbox/checkbox-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/checkbox/checkbox-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/checkbox/checkbox.css create mode 100644 dist/public/bower_components/angular-material/modules/js/checkbox/checkbox.js create mode 100644 dist/public/bower_components/angular-material/modules/js/checkbox/checkbox.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/checkbox/checkbox.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/chips/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/chips/chips-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/chips/chips-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/chips/chips.css create mode 100644 dist/public/bower_components/angular-material/modules/js/chips/chips.js create mode 100644 dist/public/bower_components/angular-material/modules/js/chips/chips.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/chips/chips.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/content/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/content/content-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/content/content-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/content/content.css create mode 100644 dist/public/bower_components/angular-material/modules/js/content/content.js create mode 100644 dist/public/bower_components/angular-material/modules/js/content/content.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/content/content.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/core/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/core/core.css create mode 100644 dist/public/bower_components/angular-material/modules/js/core/core.js create mode 100644 dist/public/bower_components/angular-material/modules/js/core/core.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/core/core.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/core/default-theme.js create mode 100644 dist/public/bower_components/angular-material/modules/js/dialog/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/dialog/dialog-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/dialog/dialog-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/dialog/dialog.css create mode 100644 dist/public/bower_components/angular-material/modules/js/dialog/dialog.js create mode 100644 dist/public/bower_components/angular-material/modules/js/dialog/dialog.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/dialog/dialog.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/divider/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/divider/divider-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/divider/divider-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/divider/divider.css create mode 100644 dist/public/bower_components/angular-material/modules/js/divider/divider.js create mode 100644 dist/public/bower_components/angular-material/modules/js/divider/divider.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/divider/divider.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/fabActions/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/fabActions/fabActions.js create mode 100644 dist/public/bower_components/angular-material/modules/js/fabActions/fabActions.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/fabSpeedDial/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/fabSpeedDial/fabSpeedDial.css create mode 100644 dist/public/bower_components/angular-material/modules/js/fabSpeedDial/fabSpeedDial.js create mode 100644 dist/public/bower_components/angular-material/modules/js/fabSpeedDial/fabSpeedDial.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/fabSpeedDial/fabSpeedDial.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/fabToolbar/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/fabToolbar/fabToolbar.css create mode 100644 dist/public/bower_components/angular-material/modules/js/fabToolbar/fabToolbar.js create mode 100644 dist/public/bower_components/angular-material/modules/js/fabToolbar/fabToolbar.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/fabToolbar/fabToolbar.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/fabTrigger/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/fabTrigger/fabTrigger.js create mode 100644 dist/public/bower_components/angular-material/modules/js/fabTrigger/fabTrigger.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/gridList/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/gridList/gridList.css create mode 100644 dist/public/bower_components/angular-material/modules/js/gridList/gridList.js create mode 100644 dist/public/bower_components/angular-material/modules/js/gridList/gridList.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/gridList/gridList.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/icon/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/icon/icon-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/icon/icon-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/icon/icon.css create mode 100644 dist/public/bower_components/angular-material/modules/js/icon/icon.js create mode 100644 dist/public/bower_components/angular-material/modules/js/icon/icon.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/icon/icon.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/input/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/input/input-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/input/input-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/input/input.css create mode 100644 dist/public/bower_components/angular-material/modules/js/input/input.js create mode 100644 dist/public/bower_components/angular-material/modules/js/input/input.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/input/input.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/list/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/list/list-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/list/list-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/list/list.css create mode 100644 dist/public/bower_components/angular-material/modules/js/list/list.js create mode 100644 dist/public/bower_components/angular-material/modules/js/list/list.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/list/list.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/menu/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/menu/menu-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/menu/menu-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/menu/menu.css create mode 100644 dist/public/bower_components/angular-material/modules/js/menu/menu.js create mode 100644 dist/public/bower_components/angular-material/modules/js/menu/menu.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/menu/menu.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/progressCircular/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/progressCircular/progressCircular-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/progressCircular/progressCircular-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/progressCircular/progressCircular.css create mode 100644 dist/public/bower_components/angular-material/modules/js/progressCircular/progressCircular.js create mode 100644 dist/public/bower_components/angular-material/modules/js/progressCircular/progressCircular.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/progressCircular/progressCircular.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/progressLinear/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/progressLinear/progressLinear-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/progressLinear/progressLinear-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/progressLinear/progressLinear.css create mode 100644 dist/public/bower_components/angular-material/modules/js/progressLinear/progressLinear.js create mode 100644 dist/public/bower_components/angular-material/modules/js/progressLinear/progressLinear.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/progressLinear/progressLinear.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/radioButton/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/radioButton/radioButton-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/radioButton/radioButton-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/radioButton/radioButton.css create mode 100644 dist/public/bower_components/angular-material/modules/js/radioButton/radioButton.js create mode 100644 dist/public/bower_components/angular-material/modules/js/radioButton/radioButton.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/radioButton/radioButton.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/select/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/select/select-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/select/select-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/select/select.css create mode 100644 dist/public/bower_components/angular-material/modules/js/select/select.js create mode 100644 dist/public/bower_components/angular-material/modules/js/select/select.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/select/select.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/sidenav/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/sidenav/sidenav-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/sidenav/sidenav-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/sidenav/sidenav.css create mode 100644 dist/public/bower_components/angular-material/modules/js/sidenav/sidenav.js create mode 100644 dist/public/bower_components/angular-material/modules/js/sidenav/sidenav.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/sidenav/sidenav.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/slider/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/slider/slider-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/slider/slider-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/slider/slider.css create mode 100644 dist/public/bower_components/angular-material/modules/js/slider/slider.js create mode 100644 dist/public/bower_components/angular-material/modules/js/slider/slider.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/slider/slider.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/sticky/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/sticky/sticky.css create mode 100644 dist/public/bower_components/angular-material/modules/js/sticky/sticky.js create mode 100644 dist/public/bower_components/angular-material/modules/js/sticky/sticky.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/sticky/sticky.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/subheader/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/subheader/subheader-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/subheader/subheader-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/subheader/subheader.css create mode 100644 dist/public/bower_components/angular-material/modules/js/subheader/subheader.js create mode 100644 dist/public/bower_components/angular-material/modules/js/subheader/subheader.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/subheader/subheader.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/swipe/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/swipe/swipe.js create mode 100644 dist/public/bower_components/angular-material/modules/js/swipe/swipe.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/switch/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/switch/switch-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/switch/switch-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/switch/switch.css create mode 100644 dist/public/bower_components/angular-material/modules/js/switch/switch.js create mode 100644 dist/public/bower_components/angular-material/modules/js/switch/switch.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/switch/switch.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/tabs/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/tabs/tabs-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/tabs/tabs-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/tabs/tabs.css create mode 100644 dist/public/bower_components/angular-material/modules/js/tabs/tabs.js create mode 100644 dist/public/bower_components/angular-material/modules/js/tabs/tabs.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/tabs/tabs.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/textField/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/textField/textField-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/textField/textField-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/textField/textField.css create mode 100644 dist/public/bower_components/angular-material/modules/js/textField/textField.js create mode 100644 dist/public/bower_components/angular-material/modules/js/textField/textField.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/textField/textField.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/toast/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/toast/toast-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/toast/toast-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/toast/toast.css create mode 100644 dist/public/bower_components/angular-material/modules/js/toast/toast.js create mode 100644 dist/public/bower_components/angular-material/modules/js/toast/toast.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/toast/toast.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/toolbar/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/toolbar/toolbar-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/toolbar/toolbar-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/toolbar/toolbar.css create mode 100644 dist/public/bower_components/angular-material/modules/js/toolbar/toolbar.js create mode 100644 dist/public/bower_components/angular-material/modules/js/toolbar/toolbar.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/toolbar/toolbar.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/tooltip/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/tooltip/tooltip-default-theme.css create mode 100644 dist/public/bower_components/angular-material/modules/js/tooltip/tooltip-default-theme.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/tooltip/tooltip.css create mode 100644 dist/public/bower_components/angular-material/modules/js/tooltip/tooltip.js create mode 100644 dist/public/bower_components/angular-material/modules/js/tooltip/tooltip.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/tooltip/tooltip.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/virtualRepeat/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/virtualRepeat/virtualRepeat.css create mode 100644 dist/public/bower_components/angular-material/modules/js/virtualRepeat/virtualRepeat.js create mode 100644 dist/public/bower_components/angular-material/modules/js/virtualRepeat/virtualRepeat.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/virtualRepeat/virtualRepeat.min.js create mode 100644 dist/public/bower_components/angular-material/modules/js/whiteframe/bower.json create mode 100644 dist/public/bower_components/angular-material/modules/js/whiteframe/whiteframe.css create mode 100644 dist/public/bower_components/angular-material/modules/js/whiteframe/whiteframe.js create mode 100644 dist/public/bower_components/angular-material/modules/js/whiteframe/whiteframe.min.css create mode 100644 dist/public/bower_components/angular-material/modules/js/whiteframe/whiteframe.min.js create mode 100644 dist/public/bower_components/angular-material/package.json create mode 100644 dist/public/bower_components/angular-mocks/.bower.json create mode 100644 dist/public/bower_components/angular-mocks/README.md create mode 100644 dist/public/bower_components/angular-mocks/angular-mocks.js create mode 100644 dist/public/bower_components/angular-mocks/bower.json create mode 100644 dist/public/bower_components/angular-mocks/ngAnimateMock.js create mode 100644 dist/public/bower_components/angular-mocks/ngMock.js create mode 100644 dist/public/bower_components/angular-mocks/ngMockE2E.js create mode 100644 dist/public/bower_components/angular-mocks/package.json create mode 100644 dist/public/bower_components/angular-scenario/.bower.json create mode 100644 dist/public/bower_components/angular-scenario/README.md create mode 100644 dist/public/bower_components/angular-scenario/angular-scenario.js create mode 100644 dist/public/bower_components/angular-scenario/bower.json create mode 100644 dist/public/bower_components/angular-scenario/jstd-scenario-adapter-config.js create mode 100644 dist/public/bower_components/angular-scenario/jstd-scenario-adapter.js create mode 100644 dist/public/bower_components/angular-scenario/package.json create mode 100644 dist/public/bower_components/angular-ui-router/.bower.json create mode 100644 dist/public/bower_components/angular-ui-router/CHANGELOG.md create mode 100644 dist/public/bower_components/angular-ui-router/CONTRIBUTING.md create mode 100644 dist/public/bower_components/angular-ui-router/LICENSE create mode 100644 dist/public/bower_components/angular-ui-router/README.md create mode 100644 dist/public/bower_components/angular-ui-router/api/angular-ui-router.d.ts create mode 100644 dist/public/bower_components/angular-ui-router/bower.json create mode 100644 dist/public/bower_components/angular-ui-router/release/angular-ui-router.js create mode 100644 dist/public/bower_components/angular-ui-router/release/angular-ui-router.min.js create mode 100644 dist/public/bower_components/angular-ui-router/src/common.js create mode 100644 dist/public/bower_components/angular-ui-router/src/resolve.js create mode 100644 dist/public/bower_components/angular-ui-router/src/state.js create mode 100644 dist/public/bower_components/angular-ui-router/src/stateDirectives.js create mode 100644 dist/public/bower_components/angular-ui-router/src/stateFilters.js create mode 100644 dist/public/bower_components/angular-ui-router/src/templateFactory.js create mode 100644 dist/public/bower_components/angular-ui-router/src/urlMatcherFactory.js create mode 100644 dist/public/bower_components/angular-ui-router/src/urlRouter.js create mode 100644 dist/public/bower_components/angular-ui-router/src/view.js create mode 100644 dist/public/bower_components/angular-ui-router/src/viewDirective.js create mode 100644 dist/public/bower_components/angular-ui-router/src/viewScroll.js create mode 100644 dist/public/bower_components/angular/.bower.json create mode 100644 dist/public/bower_components/angular/README.md create mode 100644 dist/public/bower_components/angular/angular-csp.css create mode 100644 dist/public/bower_components/angular/angular.js create mode 100644 dist/public/bower_components/angular/angular.min.js create mode 100644 dist/public/bower_components/angular/angular.min.js.gzip create mode 100644 dist/public/bower_components/angular/angular.min.js.map create mode 100644 dist/public/bower_components/angular/bower.json create mode 100644 dist/public/bower_components/angular/index.js create mode 100644 dist/public/bower_components/angular/package.json create mode 100644 dist/public/bower_components/bootstrap/.bower.json create mode 100644 dist/public/bower_components/bootstrap/Gruntfile.js create mode 100644 dist/public/bower_components/bootstrap/LICENSE create mode 100644 dist/public/bower_components/bootstrap/README.md create mode 100644 dist/public/bower_components/bootstrap/bower.json create mode 100644 dist/public/bower_components/bootstrap/dist/css/bootstrap-theme.css create mode 100644 dist/public/bower_components/bootstrap/dist/css/bootstrap-theme.css.map create mode 100644 dist/public/bower_components/bootstrap/dist/css/bootstrap-theme.min.css create mode 100644 dist/public/bower_components/bootstrap/dist/css/bootstrap.css create mode 100644 dist/public/bower_components/bootstrap/dist/css/bootstrap.css.map create mode 100644 dist/public/bower_components/bootstrap/dist/css/bootstrap.min.css create mode 100644 dist/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot create mode 100644 dist/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg create mode 100644 dist/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf create mode 100644 dist/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff create mode 100644 dist/public/bower_components/bootstrap/dist/js/bootstrap.js create mode 100644 dist/public/bower_components/bootstrap/dist/js/bootstrap.min.js create mode 100644 dist/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot create mode 100644 dist/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg create mode 100644 dist/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf create mode 100644 dist/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff create mode 100644 dist/public/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js create mode 100644 dist/public/bower_components/bootstrap/grunt/bs-lessdoc-parser.js create mode 100644 dist/public/bower_components/bootstrap/grunt/bs-raw-files-generator.js create mode 100644 dist/public/bower_components/bootstrap/grunt/shrinkwrap.js create mode 100644 dist/public/bower_components/bootstrap/js/affix.js create mode 100644 dist/public/bower_components/bootstrap/js/alert.js create mode 100644 dist/public/bower_components/bootstrap/js/button.js create mode 100644 dist/public/bower_components/bootstrap/js/carousel.js create mode 100644 dist/public/bower_components/bootstrap/js/collapse.js create mode 100644 dist/public/bower_components/bootstrap/js/dropdown.js create mode 100644 dist/public/bower_components/bootstrap/js/modal.js create mode 100644 dist/public/bower_components/bootstrap/js/popover.js create mode 100644 dist/public/bower_components/bootstrap/js/scrollspy.js create mode 100644 dist/public/bower_components/bootstrap/js/tab.js create mode 100644 dist/public/bower_components/bootstrap/js/tooltip.js create mode 100644 dist/public/bower_components/bootstrap/js/transition.js create mode 100644 dist/public/bower_components/bootstrap/less/alerts.less create mode 100644 dist/public/bower_components/bootstrap/less/badges.less create mode 100644 dist/public/bower_components/bootstrap/less/bootstrap.less create mode 100644 dist/public/bower_components/bootstrap/less/breadcrumbs.less create mode 100644 dist/public/bower_components/bootstrap/less/button-groups.less create mode 100644 dist/public/bower_components/bootstrap/less/buttons.less create mode 100644 dist/public/bower_components/bootstrap/less/carousel.less create mode 100644 dist/public/bower_components/bootstrap/less/close.less create mode 100644 dist/public/bower_components/bootstrap/less/code.less create mode 100644 dist/public/bower_components/bootstrap/less/component-animations.less create mode 100644 dist/public/bower_components/bootstrap/less/dropdowns.less create mode 100644 dist/public/bower_components/bootstrap/less/forms.less create mode 100644 dist/public/bower_components/bootstrap/less/glyphicons.less create mode 100644 dist/public/bower_components/bootstrap/less/grid.less create mode 100644 dist/public/bower_components/bootstrap/less/input-groups.less create mode 100644 dist/public/bower_components/bootstrap/less/jumbotron.less create mode 100644 dist/public/bower_components/bootstrap/less/labels.less create mode 100644 dist/public/bower_components/bootstrap/less/list-group.less create mode 100644 dist/public/bower_components/bootstrap/less/media.less create mode 100644 dist/public/bower_components/bootstrap/less/mixins.less create mode 100644 dist/public/bower_components/bootstrap/less/modals.less create mode 100644 dist/public/bower_components/bootstrap/less/navbar.less create mode 100644 dist/public/bower_components/bootstrap/less/navs.less create mode 100644 dist/public/bower_components/bootstrap/less/normalize.less create mode 100644 dist/public/bower_components/bootstrap/less/pager.less create mode 100644 dist/public/bower_components/bootstrap/less/pagination.less create mode 100644 dist/public/bower_components/bootstrap/less/panels.less create mode 100644 dist/public/bower_components/bootstrap/less/popovers.less create mode 100644 dist/public/bower_components/bootstrap/less/print.less create mode 100644 dist/public/bower_components/bootstrap/less/progress-bars.less create mode 100644 dist/public/bower_components/bootstrap/less/responsive-utilities.less create mode 100644 dist/public/bower_components/bootstrap/less/scaffolding.less create mode 100644 dist/public/bower_components/bootstrap/less/tables.less create mode 100644 dist/public/bower_components/bootstrap/less/theme.less create mode 100644 dist/public/bower_components/bootstrap/less/thumbnails.less create mode 100644 dist/public/bower_components/bootstrap/less/tooltip.less create mode 100644 dist/public/bower_components/bootstrap/less/type.less create mode 100644 dist/public/bower_components/bootstrap/less/utilities.less create mode 100644 dist/public/bower_components/bootstrap/less/variables.less create mode 100644 dist/public/bower_components/bootstrap/less/wells.less create mode 100644 dist/public/bower_components/bootstrap/package.json create mode 100644 dist/public/bower_components/bootstrap/test-infra/README.md create mode 100644 dist/public/bower_components/bootstrap/test-infra/npm-shrinkwrap.canonical.json create mode 100644 dist/public/bower_components/bootstrap/test-infra/requirements.txt create mode 100644 dist/public/bower_components/bootstrap/test-infra/s3_cache.py create mode 100644 dist/public/bower_components/bootstrap/test-infra/sauce_browsers.yml create mode 100644 dist/public/bower_components/bootstrap/test-infra/uncached-npm-install.sh create mode 100644 dist/public/bower_components/es5-shim/.bower.json create mode 100644 dist/public/bower_components/es5-shim/CHANGES create mode 100644 dist/public/bower_components/es5-shim/CONTRIBUTORS.md create mode 100644 dist/public/bower_components/es5-shim/LICENSE create mode 100644 dist/public/bower_components/es5-shim/README.md create mode 100644 dist/public/bower_components/es5-shim/bower.json create mode 100644 dist/public/bower_components/es5-shim/component.json create mode 100644 dist/public/bower_components/es5-shim/es5-sham.js create mode 100644 dist/public/bower_components/es5-shim/es5-sham.map create mode 100644 dist/public/bower_components/es5-shim/es5-sham.min.js create mode 100644 dist/public/bower_components/es5-shim/es5-shim.js create mode 100644 dist/public/bower_components/es5-shim/es5-shim.map create mode 100644 dist/public/bower_components/es5-shim/es5-shim.min.js create mode 100644 dist/public/bower_components/es5-shim/package.json create mode 100644 dist/public/bower_components/es5-shim/shims.json create mode 100644 dist/public/bower_components/font-awesome/.bower.json create mode 100644 dist/public/bower_components/font-awesome/.gitignore create mode 100644 dist/public/bower_components/font-awesome/.npmignore create mode 100644 dist/public/bower_components/font-awesome/bower.json create mode 100644 dist/public/bower_components/font-awesome/css/font-awesome.css create mode 100644 dist/public/bower_components/font-awesome/css/font-awesome.css.map create mode 100644 dist/public/bower_components/font-awesome/css/font-awesome.min.css create mode 100644 dist/public/bower_components/font-awesome/fonts/FontAwesome.otf create mode 100644 dist/public/bower_components/font-awesome/fonts/fontawesome-webfont.eot create mode 100644 dist/public/bower_components/font-awesome/fonts/fontawesome-webfont.svg create mode 100644 dist/public/bower_components/font-awesome/fonts/fontawesome-webfont.ttf create mode 100644 dist/public/bower_components/font-awesome/fonts/fontawesome-webfont.woff create mode 100644 dist/public/bower_components/font-awesome/fonts/fontawesome-webfont.woff2 create mode 100644 dist/public/bower_components/font-awesome/less/animated.less create mode 100644 dist/public/bower_components/font-awesome/less/bordered-pulled.less create mode 100644 dist/public/bower_components/font-awesome/less/core.less create mode 100644 dist/public/bower_components/font-awesome/less/fixed-width.less create mode 100644 dist/public/bower_components/font-awesome/less/font-awesome.less create mode 100644 dist/public/bower_components/font-awesome/less/icons.less create mode 100644 dist/public/bower_components/font-awesome/less/larger.less create mode 100644 dist/public/bower_components/font-awesome/less/list.less create mode 100644 dist/public/bower_components/font-awesome/less/mixins.less create mode 100644 dist/public/bower_components/font-awesome/less/path.less create mode 100644 dist/public/bower_components/font-awesome/less/rotated-flipped.less create mode 100644 dist/public/bower_components/font-awesome/less/stacked.less create mode 100644 dist/public/bower_components/font-awesome/less/variables.less create mode 100644 dist/public/bower_components/font-awesome/scss/_animated.scss create mode 100644 dist/public/bower_components/font-awesome/scss/_bordered-pulled.scss create mode 100644 dist/public/bower_components/font-awesome/scss/_core.scss create mode 100644 dist/public/bower_components/font-awesome/scss/_fixed-width.scss create mode 100644 dist/public/bower_components/font-awesome/scss/_icons.scss create mode 100644 dist/public/bower_components/font-awesome/scss/_larger.scss create mode 100644 dist/public/bower_components/font-awesome/scss/_list.scss create mode 100644 dist/public/bower_components/font-awesome/scss/_mixins.scss create mode 100644 dist/public/bower_components/font-awesome/scss/_path.scss create mode 100644 dist/public/bower_components/font-awesome/scss/_rotated-flipped.scss create mode 100644 dist/public/bower_components/font-awesome/scss/_stacked.scss create mode 100644 dist/public/bower_components/font-awesome/scss/_variables.scss create mode 100644 dist/public/bower_components/font-awesome/scss/font-awesome.scss create mode 100644 dist/public/bower_components/jquery/.bower.json create mode 100644 dist/public/bower_components/jquery/MIT-LICENSE.txt create mode 100644 dist/public/bower_components/jquery/bower.json create mode 100644 dist/public/bower_components/jquery/dist/jquery.js create mode 100644 dist/public/bower_components/jquery/dist/jquery.min.js create mode 100644 dist/public/bower_components/jquery/dist/jquery.min.map create mode 100644 dist/public/bower_components/jquery/src/ajax.js create mode 100644 dist/public/bower_components/jquery/src/ajax/jsonp.js create mode 100644 dist/public/bower_components/jquery/src/ajax/load.js create mode 100644 dist/public/bower_components/jquery/src/ajax/parseJSON.js create mode 100644 dist/public/bower_components/jquery/src/ajax/parseXML.js create mode 100644 dist/public/bower_components/jquery/src/ajax/script.js create mode 100644 dist/public/bower_components/jquery/src/ajax/var/nonce.js create mode 100644 dist/public/bower_components/jquery/src/ajax/var/rquery.js create mode 100644 dist/public/bower_components/jquery/src/ajax/xhr.js create mode 100644 dist/public/bower_components/jquery/src/attributes.js create mode 100644 dist/public/bower_components/jquery/src/attributes/attr.js create mode 100644 dist/public/bower_components/jquery/src/attributes/classes.js create mode 100644 dist/public/bower_components/jquery/src/attributes/prop.js create mode 100644 dist/public/bower_components/jquery/src/attributes/support.js create mode 100644 dist/public/bower_components/jquery/src/attributes/val.js create mode 100644 dist/public/bower_components/jquery/src/callbacks.js create mode 100644 dist/public/bower_components/jquery/src/core.js create mode 100644 dist/public/bower_components/jquery/src/core/access.js create mode 100644 dist/public/bower_components/jquery/src/core/init.js create mode 100644 dist/public/bower_components/jquery/src/core/parseHTML.js create mode 100644 dist/public/bower_components/jquery/src/core/ready.js create mode 100644 dist/public/bower_components/jquery/src/core/var/rsingleTag.js create mode 100644 dist/public/bower_components/jquery/src/css.js create mode 100644 dist/public/bower_components/jquery/src/css/addGetHookIf.js create mode 100644 dist/public/bower_components/jquery/src/css/curCSS.js create mode 100644 dist/public/bower_components/jquery/src/css/defaultDisplay.js create mode 100644 dist/public/bower_components/jquery/src/css/hiddenVisibleSelectors.js create mode 100644 dist/public/bower_components/jquery/src/css/support.js create mode 100644 dist/public/bower_components/jquery/src/css/swap.js create mode 100644 dist/public/bower_components/jquery/src/css/var/cssExpand.js create mode 100644 dist/public/bower_components/jquery/src/css/var/getStyles.js create mode 100644 dist/public/bower_components/jquery/src/css/var/isHidden.js create mode 100644 dist/public/bower_components/jquery/src/css/var/rmargin.js create mode 100644 dist/public/bower_components/jquery/src/css/var/rnumnonpx.js create mode 100644 dist/public/bower_components/jquery/src/data.js create mode 100644 dist/public/bower_components/jquery/src/data/Data.js create mode 100644 dist/public/bower_components/jquery/src/data/accepts.js create mode 100644 dist/public/bower_components/jquery/src/data/var/data_priv.js create mode 100644 dist/public/bower_components/jquery/src/data/var/data_user.js create mode 100644 dist/public/bower_components/jquery/src/deferred.js create mode 100644 dist/public/bower_components/jquery/src/deprecated.js create mode 100644 dist/public/bower_components/jquery/src/dimensions.js create mode 100644 dist/public/bower_components/jquery/src/effects.js create mode 100644 dist/public/bower_components/jquery/src/effects/Tween.js create mode 100644 dist/public/bower_components/jquery/src/effects/animatedSelector.js create mode 100644 dist/public/bower_components/jquery/src/event.js create mode 100644 dist/public/bower_components/jquery/src/event/ajax.js create mode 100644 dist/public/bower_components/jquery/src/event/alias.js create mode 100644 dist/public/bower_components/jquery/src/event/support.js create mode 100644 dist/public/bower_components/jquery/src/exports/amd.js create mode 100644 dist/public/bower_components/jquery/src/exports/global.js create mode 100644 dist/public/bower_components/jquery/src/intro.js create mode 100644 dist/public/bower_components/jquery/src/jquery.js create mode 100644 dist/public/bower_components/jquery/src/manipulation.js create mode 100644 dist/public/bower_components/jquery/src/manipulation/_evalUrl.js create mode 100644 dist/public/bower_components/jquery/src/manipulation/support.js create mode 100644 dist/public/bower_components/jquery/src/manipulation/var/rcheckableType.js create mode 100644 dist/public/bower_components/jquery/src/offset.js create mode 100644 dist/public/bower_components/jquery/src/outro.js create mode 100644 dist/public/bower_components/jquery/src/queue.js create mode 100644 dist/public/bower_components/jquery/src/queue/delay.js create mode 100644 dist/public/bower_components/jquery/src/selector-native.js create mode 100644 dist/public/bower_components/jquery/src/selector-sizzle.js create mode 100644 dist/public/bower_components/jquery/src/selector.js create mode 100644 dist/public/bower_components/jquery/src/serialize.js create mode 100644 dist/public/bower_components/jquery/src/sizzle/dist/sizzle.js create mode 100644 dist/public/bower_components/jquery/src/sizzle/dist/sizzle.min.js create mode 100644 dist/public/bower_components/jquery/src/sizzle/dist/sizzle.min.map create mode 100644 dist/public/bower_components/jquery/src/traversing.js create mode 100644 dist/public/bower_components/jquery/src/traversing/findFilter.js create mode 100644 dist/public/bower_components/jquery/src/traversing/var/rneedsContext.js create mode 100644 dist/public/bower_components/jquery/src/var/arr.js create mode 100644 dist/public/bower_components/jquery/src/var/class2type.js create mode 100644 dist/public/bower_components/jquery/src/var/concat.js create mode 100644 dist/public/bower_components/jquery/src/var/hasOwn.js create mode 100644 dist/public/bower_components/jquery/src/var/indexOf.js create mode 100644 dist/public/bower_components/jquery/src/var/pnum.js create mode 100644 dist/public/bower_components/jquery/src/var/push.js create mode 100644 dist/public/bower_components/jquery/src/var/rnotwhite.js create mode 100644 dist/public/bower_components/jquery/src/var/slice.js create mode 100644 dist/public/bower_components/jquery/src/var/strundefined.js create mode 100644 dist/public/bower_components/jquery/src/var/support.js create mode 100644 dist/public/bower_components/jquery/src/var/toString.js create mode 100644 dist/public/bower_components/jquery/src/wrap.js create mode 100644 dist/public/bower_components/json3/.bower.json create mode 100644 dist/public/bower_components/json3/CHANGELOG.md create mode 100644 dist/public/bower_components/json3/CONTRIBUTING.md create mode 100644 dist/public/bower_components/json3/LICENSE create mode 100644 dist/public/bower_components/json3/README.md create mode 100644 dist/public/bower_components/json3/bower.json create mode 100644 dist/public/bower_components/json3/lib/json3.js create mode 100644 dist/public/bower_components/json3/lib/json3.min.js create mode 100644 dist/public/bower_components/lodash/.bower.json create mode 100644 dist/public/bower_components/lodash/LICENSE.txt create mode 100644 dist/public/bower_components/lodash/bower.json create mode 100644 dist/public/bower_components/lodash/dist/lodash.compat.js create mode 100644 dist/public/bower_components/lodash/dist/lodash.compat.min.js create mode 100644 dist/public/bower_components/lodash/dist/lodash.js create mode 100644 dist/public/bower_components/lodash/dist/lodash.min.js create mode 100644 dist/public/bower_components/lodash/dist/lodash.underscore.js create mode 100644 dist/public/bower_components/lodash/dist/lodash.underscore.min.js create mode 100644 dist/public/favicon.ico create mode 100644 dist/public/index.html create mode 100644 dist/public/robots.txt create mode 100644 dist/server/api/search/index.js create mode 100644 dist/server/api/search/search.controller.js create mode 100644 dist/server/api/search/search.spec.js create mode 100644 dist/server/app.js create mode 100644 dist/server/components/errors/index.js create mode 100644 dist/server/config/db-config.js create mode 100644 dist/server/config/environment/development.js create mode 100644 dist/server/config/environment/index.js create mode 100644 dist/server/config/environment/production.js create mode 100644 dist/server/config/environment/test.js create mode 100644 dist/server/config/express.js create mode 100644 dist/server/config/local.env.js create mode 100644 dist/server/config/local.env.sample.js create mode 100644 dist/server/offline.manifest create mode 100644 dist/server/routes.js create mode 100644 dist/server/views/404.html diff --git a/.gitignore b/.gitignore index 6a443da..6038ac4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,7 @@ node_modules -public .tmp .sass-cache client/bower_components -dist errors/* .settings test_result.* diff --git a/bower.json b/bower.json index 1fd4191..79a9b04 100644 --- a/bower.json +++ b/bower.json @@ -7,8 +7,6 @@ "es5-shim": "~3.0.1", "jquery": "~1.11.0", "bootstrap": "~3.1.1", - "angular-cookies": ">=1.2.*", - "angular-sanitize": ">=1.2.*", "angular-bootstrap": "~0.11.0", "font-awesome": ">=4.1.0", "lodash": "~2.4.1", diff --git a/client/app/app.js b/client/app/app.js index 0e5340d..272fe7b 100644 --- a/client/app/app.js +++ b/client/app/app.js @@ -1,8 +1,6 @@ 'use strict'; angular.module('mldocsApp', [ - 'ngCookies', - 'ngSanitize', 'ui.router', 'ui.bootstrap', 'ngMaterial', diff --git a/client/app/main/main.controller.js b/client/app/main/main.controller.js index 0ad6292..3d5374a 100644 --- a/client/app/main/main.controller.js +++ b/client/app/main/main.controller.js @@ -195,12 +195,8 @@ angular $scope.list = result; // remove first item from array $scope.list = _.rest(result); - - //console.log('list', $scope.list); - - // save into indexedDB for offline access - // offline.addApis($scope.list); - + $scope.list = _.sortBy($scope.list, 'apiName'); + }).error(function(error) { $scope.showProgress = false; diff --git a/client/app/main/main.css b/client/app/main/main.css index 781242e..cb27d10 100644 --- a/client/app/main/main.css +++ b/client/app/main/main.css @@ -14,6 +14,10 @@ padding-bottom: 20px } +pre { + border-radius: 0px; +} + /*#sidebar { max-height: 700px; overflow: scroll; diff --git a/client/index.html b/client/index.html index e9df667..22a62ff 100644 --- a/client/index.html +++ b/client/index.html @@ -102,8 +102,6 @@

ML Man

- - @@ -122,7 +120,7 @@

ML Man

- + diff --git a/client/util/fuse.js b/client/util/fuse.js deleted file mode 100644 index ab65020..0000000 --- a/client/util/fuse.js +++ /dev/null @@ -1,484 +0,0 @@ -/** - * @license - * Fuse - Lightweight fuzzy-search - * - * Copyright (c) 2012 Kirollos Risk . - * All Rights Reserved. Apache Software License 2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -(function(global) { - - /** - * Adapted from "Diff, Match and Patch", by Google - * - * http://code.google.com/p/google-diff-match-patch/ - * - * Modified by: Kirollos Risk - * ----------------------------------------------- - * Details: the algorithm and structure was modified to allow the creation of - * instances with a method which does the actual - * bitap search. The (the string that is searched for) is only defined - * once per instance and thus it eliminates redundant re-creation when searching - * over a list of strings. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - */ - var BitapSearcher = function(pattern, options) { - options = options || {}; - this.options = options; - this.options.location = options.location || BitapSearcher.defaultOptions.location; - this.options.distance = 'distance' in options ? options.distance : BitapSearcher.defaultOptions.distance; - this.options.threshold = 'threshold' in options ? options.threshold : BitapSearcher.defaultOptions.threshold; - this.options.maxPatternLength = options.maxPatternLength || BitapSearcher.defaultOptions.maxPatternLength; - - this.pattern = options.caseSensitive ? pattern : pattern.toLowerCase(); - this.patternLen = pattern.length; - - if (this.patternLen > this.options.maxPatternLength) { - throw new Error('Pattern length is too long'); - } - - this.matchmask = 1 << (this.patternLen - 1); - this.patternAlphabet = this._calculatePatternAlphabet(); - }; - - BitapSearcher.defaultOptions = { - // Approximately where in the text is the pattern expected to be found? - location: 0, - - // Determines how close the match must be to the fuzzy location (specified above). - // An exact letter match which is 'distance' characters away from the fuzzy location - // would score as a complete mismatch. A distance of '0' requires the match be at - // the exact location specified, a threshold of '1000' would require a perfect match - // to be within 800 characters of the fuzzy location to be found using a 0.8 threshold. - distance: 100, - - // At what point does the match algorithm give up. A threshold of '0.0' requires a perfect match - // (of both letters and location), a threshold of '1.0' would match anything. - threshold: 0.6, - - // Machine word size - maxPatternLength: 32 - }; - - /** - * Initialize the alphabet for the Bitap algorithm. - * @return {Object} Hash of character locations. - * @private - */ - BitapSearcher.prototype._calculatePatternAlphabet = function() { - var mask = {}, - i = 0; - - for (i = 0; i < this.patternLen; i++) { - mask[this.pattern.charAt(i)] = 0; - } - - for (i = 0; i < this.patternLen; i++) { - mask[this.pattern.charAt(i)] |= 1 << (this.pattern.length - i - 1); - } - - return mask; - }; - - /** - * Compute and return the score for a match with `e` errors and `x` location. - * @param {number} errors Number of errors in match. - * @param {number} location Location of match. - * @return {number} Overall score for match (0.0 = good, 1.0 = bad). - * @private - */ - BitapSearcher.prototype._bitapScore = function(errors, location) { - var accuracy = errors / this.patternLen, - proximity = Math.abs(this.options.location - location); - - if (!this.options.distance) { - // Dodge divide by zero error. - return proximity ? 1.0 : accuracy; - } - return accuracy + (proximity / this.options.distance); - }; - - /** - * Compute and return the result of the search - * @param {String} text The text to search in - * @return {Object} Literal containing: - * {Boolean} isMatch Whether the text is a match or not - * {Decimal} score Overall score for the match - * @public - */ - BitapSearcher.prototype.search = function(text) { - text = this.options.caseSensitive ? text : text.toLowerCase(); - - if (this.pattern === text) { - // Exact match - return { - isMatch: true, - score: 0 - }; - } - - var i, j, - // Set starting location at beginning text and initialize the alphabet. - textLen = text.length, - LOCATION = this.options.location, - // Highest score beyond which we give up. - THRESHOLD = this.options.threshold, - // Is there a nearby exact match? (speedup) - bestLoc = text.indexOf(this.pattern, LOCATION), - binMin, binMid, - binMax = this.patternLen + textLen, - start, finish, - bitArr, lastBitArr, - charMatch, - score = 1, - locations = []; - - if (bestLoc != -1) { - THRESHOLD = Math.min(this._bitapScore(0, bestLoc), THRESHOLD); - // What about in the other direction? (speedup) - bestLoc = text.lastIndexOf(this.pattern, LOCATION + this.patternLen); - - if (bestLoc != -1) { - THRESHOLD = Math.min(this._bitapScore(0, bestLoc), THRESHOLD); - } - } - - bestLoc = -1; - - for (i = 0; i < this.patternLen; i++) { - // Scan for the best match; each iteration allows for one more error. - // Run a binary search to determine how far from 'MATCH_LOCATION' we can stray at this - // error level. - binMin = 0; - binMid = binMax; - while (binMin < binMid) { - if (this._bitapScore(i, LOCATION + binMid) <= THRESHOLD) { - binMin = binMid; - } else { - binMax = binMid; - } - binMid = Math.floor((binMax - binMin) / 2 + binMin); - } - - // Use the result from this iteration as the maximum for the next. - binMax = binMid; - start = Math.max(1, LOCATION - binMid + 1); - finish = Math.min(LOCATION + binMid, textLen) + this.patternLen; - - // Initialize the bit array - bitArr = Array(finish + 2); - - bitArr[finish + 1] = (1 << i) - 1; - - for (j = finish; j >= start; j--) { - // The alphabet is a sparse hash, so the following line generates warnings. - charMatch = this.patternAlphabet[text.charAt(j - 1)]; - - if (i === 0) { - // First pass: exact match. - bitArr[j] = ((bitArr[j + 1] << 1) | 1) & charMatch; - } else { - // Subsequent passes: fuzzy match. - bitArr[j] = ((bitArr[j + 1] << 1) | 1) & charMatch | (((lastBitArr[j + 1] | lastBitArr[j]) << 1) | 1) | lastBitArr[j + 1]; - } - if (bitArr[j] & this.matchmask) { - score = this._bitapScore(i, j - 1); - // This match will almost certainly be better than any existing match. - // But check anyway. - if (score <= THRESHOLD) { - // Told you so. - THRESHOLD = score; - bestLoc = j - 1; - locations.push(bestLoc); - - if (bestLoc > LOCATION) { - // When passing loc, don't exceed our current distance from loc. - start = Math.max(1, 2 * LOCATION - bestLoc); - } else { - // Already passed loc, downhill from here on in. - break; - } - } - } - } - - // No hope for a (better) match at greater error levels. - if (this._bitapScore(i + 1, LOCATION) > THRESHOLD) { - break; - } - lastBitArr = bitArr; - } - - return { - isMatch: bestLoc >= 0, - score: score - }; - }; - - var deepValueHelper = function(obj, path, list) { - var firstSegment, remaining, dotIndex; - - if (!path) { - // If there's no path left, we've gotten to the object we care about. - list.push(obj); - } else { - dotIndex = path.indexOf('.'); - if (dotIndex !== -1) { - firstSegment = path.slice(0, dotIndex); - remaining = path.slice(dotIndex + 1); - } else { - firstSegment = path; - } - - var value = obj[firstSegment]; - if (value) { - if (!remaining && (typeof value === 'string' || typeof value === 'number')) { - list.push(value); - } else if (Utils.isArray(value)) { - // Search each item in the array. - for (var i = 0, len = value.length; i < len; i++) { - deepValueHelper(value[i], remaining, list); - } - } else if (remaining) { - // An object. Recurse further. - deepValueHelper(value, remaining, list); - } - } - } - - return list; - }; - - var Utils = { - /** - * Traverse an object - * @param {Object} obj The object to traverse - * @param {String} path A . separated path to a key in the object. Example 'Data.Object.Somevalue' - * @return {Object} - */ - deepValue: function(obj, path) { - return deepValueHelper(obj, path, []); - }, - isArray: function(obj) { - return Object.prototype.toString.call(obj) === '[object Array]'; - } - }; - - /** - * @param {Array} list - * @param {Object} options - * @public - */ - function Fuse(list, options) { - this.list = list; - this.options = options = options || {}; - - var i, len, key, keys; - // Add boolean type options - for (i = 0, keys = ['sort', 'includeScore', 'shouldSort'], len = keys.length; i < len; i++) { - key = keys[i]; - this.options[key] = key in options ? options[key] : Fuse.defaultOptions[key]; - } - // Add all other options - for (i = 0, keys = ['searchFn', 'sortFn', 'keys', 'getFn'], len = keys.length; i < len; i++) { - key = keys[i]; - this.options[key] = options[key] || Fuse.defaultOptions[key]; - } - }; - - Fuse.defaultOptions = { - id: null, - - caseSensitive: false, - - // Whether the score should be included in the result set. - // When , each result in the list will be of the form: `{ item: ..., score: ... }` - includeScore: false, - - // Whether to sort the result list, by score - shouldSort: true, - - // The search function to use - // Note that the default search function ([[Function]]) must conform to the following API: - // - // @param pattern The pattern string to search - // @param options The search option - // [[Function]].constructor = function(pattern, options) - // - // @param text: the string to search in for the pattern - // @return Object in the form of: - // - isMatch: boolean - // - score: Int - // [[Function]].prototype.search = function(text) - searchFn: BitapSearcher, - - // Default sort function - sortFn: function(a, b) { - return a.score - b.score; - }, - - // Default get function - getFn: Utils.deepValue, - - keys: [] - }; - - /** - * Sets a new list for Fuse to match against. - * @param {Array} list - * @return {Array} The newly set list - * @public - */ - Fuse.prototype.set = function(list) { - this.list = list; - - return list; - }; - - /** - * Searches for all the items whose keys (fuzzy) match the pattern. - * @param {String} pattern The pattern string to fuzzy search on. - * @return {Array} A list of all serch matches. - * @public - */ - Fuse.prototype.search = function(pattern) { - var searcher = new(this.options.searchFn)(pattern, this.options), - j, item, - list = this.list, - dataLen = list.length, - options = this.options, - searchKeys = this.options.keys, - searchKeysLen = searchKeys.length, - bitapResult, - rawResults = [], - resultMap = {}, - existingResult, - results = []; - - /** - * Calls for bitap analysis. Builds the raw result list. - * @param {String} text The pattern string to fuzzy search on. - * @param {String|Number} entity If the is an Array, then entity will be an index, - * otherwise it's the item object. - * @param {Number} index - * @private - */ - var analyzeText = function(text, entity, index) { - // Check if the text can be searched - if (text === undefined || text === null) { - return; - } - - if (typeof text === 'string') { - - // Get the result - bitapResult = searcher.search(text); - - // If a match is found, add the item to , including its score - if (bitapResult.isMatch) { - - // Check if the item already exists in our results - existingResult = resultMap[index]; - if (existingResult) { - // Use the lowest score - existingResult.score = Math.min(existingResult.score, bitapResult.score); - } else { - // Add it to the raw result list - resultMap[index] = { - item: entity, - score: bitapResult.score - }; - rawResults.push(resultMap[index]); - } - } - } else if (Utils.isArray(text)) { - for (var i = 0; i < text.length; i++) { - analyzeText(text[i], entity, index); - } - } - }; - - // Check the first item in the list, if it's a string, then we assume - // that every item in the list is also a string, and thus it's a flattened array. - if (typeof list[0] === 'string') { - // Iterate over every item - for (var i = 0; i < dataLen; i++) { - analyzeText(list[i], i, i); - } - } else { - // Otherwise, the first item is an Object (hopefully), and thus the searching - // is done on the values of the keys of each item. - - // Iterate over every item - for (var i = 0; i < dataLen; i++) { - item = list[i]; - // Iterate over every key - for (j = 0; j < searchKeysLen; j++) { - analyzeText(options.getFn(item, searchKeys[j]), item, i); - } - } - } - - if (options.shouldSort) { - rawResults.sort(options.sortFn); - } - - // Helper function, here for speed-up, which returns the - // the raw item, including the score, or simply the item itself, depending - // on the specified option - var getItem = options.includeScore ? function(i) { - return rawResults[i]; - } : function(i) { - return rawResults[i].item; - }; - - // Helper function, here for speed-up, which replaces the item with its value, - // if the options specifies it, - var replaceValue = options.id ? function(i) { - rawResults[i].item = options.getFn(rawResults[i].item, options.id)[0]; - } : function() { - return; // no-op - }; - - // From the results, push into a new array only the item identifier (if specified) - // of the entire item. This is because we don't want to return the , - // since it contains other metadata; - for (var i = 0, len = rawResults.length; i < len; i++) { - // replace the item with its value, which can be its id if the options specifies it - replaceValue(i); - results.push(getItem(i)); - } - - return results; - }; - - // Export to Common JS Loader - if (typeof exports === 'object') { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = Fuse; - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(function() { - return Fuse; - }); - } else { - // Browser globals (root is window) - global.Fuse = Fuse; - } - -})(this); \ No newline at end of file diff --git a/client/util/fuse.min.js b/client/util/fuse.min.js new file mode 100644 index 0000000..e00f47e --- /dev/null +++ b/client/util/fuse.min.js @@ -0,0 +1,20 @@ +/** + * @license + * Fuse - Lightweight fuzzy-search + * + * Copyright (c) 2012 Kirollos Risk . + * All Rights Reserved. Apache Software License 2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +!function(t){function e(t,n){this.list=t,this.options=n=n||{};var i,o,s,r;for(i=0,r=["sort","includeScore","shouldSort"],o=r.length;o>i;i++)s=r[i],this.options[s]=s in n?n[s]:e.defaultOptions[s];for(i=0,r=["searchFn","sortFn","keys","getFn"],o=r.length;o>i;i++)s=r[i],this.options[s]=n[s]||e.defaultOptions[s]}var n=function(t,e){if(e=e||{},this.options=e,this.options.location=e.location||n.defaultOptions.location,this.options.distance="distance"in e?e.distance:n.defaultOptions.distance,this.options.threshold="threshold"in e?e.threshold:n.defaultOptions.threshold,this.options.maxPatternLength=e.maxPatternLength||n.defaultOptions.maxPatternLength,this.pattern=e.caseSensitive?t:t.toLowerCase(),this.patternLen=t.length,this.patternLen>this.options.maxPatternLength)throw new Error("Pattern length is too long");this.matchmask=1<i;)this._bitapScore(e,l+o)<=f?i=o:d=o,o=Math.floor((d-i)/2+i);for(d=o,s=Math.max(1,l-o+1),r=Math.min(l+o,c)+this.patternLen,a=Array(r+2),a[r+1]=(1<=s;n--)if(p=this.patternAlphabet[t.charAt(n-1)],a[n]=0===e?(a[n+1]<<1|1)&p:(a[n+1]<<1|1)&p|((h[n+1]|h[n])<<1|1)|h[n+1],a[n]&this.matchmask&&(g=this._bitapScore(e,n-1),f>=g)){if(f=g,u=n-1,m.push(u),!(u>l))break;s=Math.max(1,2*l-u)}if(this._bitapScore(e+1,l)>f)break;h=a}return{isMatch:u>=0,score:g}};var i=function(t,e,n){var s,r,a;if(e){a=e.indexOf("."),-1!==a?(s=e.slice(0,a),r=e.slice(a+1)):s=e;var h=t[s];if(h)if(r||"string"!=typeof h&&"number"!=typeof h)if(o.isArray(h))for(var p=0,c=h.length;c>p;p++)i(h[p],r,n);else r&&i(h,r,n);else n.push(h)}else n.push(t);return n},o={deepValue:function(t,e){return i(t,e,[])},isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)}};e.defaultOptions={id:null,caseSensitive:!1,includeScore:!1,shouldSort:!0,searchFn:n,sortFn:function(t,e){return t.score-e.score},getFn:o.deepValue,keys:[]},e.prototype.set=function(t){return this.list=t,t},e.prototype.search=function(t){var e,n,i,s,r=new this.options.searchFn(t,this.options),a=this.list,h=a.length,p=this.options,c=this.options.keys,l=c.length,f=[],u={},d=[],g=function(t,e,n){if(void 0!==t&&null!==t)if("string"==typeof t)i=r.search(t),i.isMatch&&(s=u[n],s?s.score=Math.min(s.score,i.score):(u[n]={item:e,score:i.score},f.push(u[n])));else if(o.isArray(t))for(var a=0;am;m++)g(a[m],m,m);else for(var m=0;h>m;m++)for(n=a[m],e=0;l>e;e++)g(p.getFn(n,c[e]),n,m);p.shouldSort&&f.sort(p.sortFn);for(var y=p.includeScore?function(t){return f[t]}:function(t){return f[t].item},v=p.id?function(t){f[t].item=p.getFn(f[t].item,p.id)[0]}:function(){},m=0,b=f.length;b>m;m++)v(m),d.push(y(m));return d},"object"==typeof exports?module.exports=e:"function"==typeof define&&define.amd?define(function(){return e}):t.Fuse=e}(this); \ No newline at end of file diff --git a/dist/package.json b/dist/package.json new file mode 100644 index 0000000..37d150c --- /dev/null +++ b/dist/package.json @@ -0,0 +1,85 @@ +{ + "name": "mldocs", + "version": "0.0.0", + "main": "server/app.js", + "dependencies": { + "body-parser": "~1.5.0", + "composable-middleware": "^0.3.0", + "compression": "~1.0.1", + "connect-mongo": "^0.4.1", + "cookie-parser": "~1.0.1", + "ejs": "~0.8.4", + "errorhandler": "~1.0.0", + "express": "~4.0.0", + "express-session": "~1.0.2", + "lodash": "3.10.1", + "marklogic": "^1.0.3", + "method-override": "~1.0.0", + "morgan": "~1.0.0", + "multer": "^0.1.8", + "serve-favicon": "~2.0.1" + }, + "devDependencies": { + "grunt": "~0.4.4", + "grunt-autoprefixer": "~0.7.2", + "grunt-wiredep": "~1.8.0", + "grunt-concurrent": "~0.5.0", + "grunt-contrib-clean": "~0.5.0", + "grunt-contrib-concat": "~0.4.0", + "grunt-contrib-copy": "~0.5.0", + "grunt-contrib-cssmin": "~0.9.0", + "grunt-contrib-htmlmin": "~0.2.0", + "grunt-contrib-imagemin": "~0.7.1", + "grunt-contrib-jshint": "~0.10.0", + "grunt-contrib-uglify": "~0.4.0", + "grunt-contrib-watch": "~0.6.1", + "grunt-google-cdn": "~0.4.0", + "grunt-newer": "~0.7.0", + "grunt-ng-annotate": "^0.2.3", + "grunt-rev": "~0.1.0", + "grunt-svgmin": "~0.4.0", + "grunt-usemin": "~2.1.1", + "grunt-env": "~0.4.1", + "grunt-node-inspector": "~0.1.5", + "grunt-nodemon": "~0.2.0", + "grunt-angular-templates": "^0.5.4", + "grunt-dom-munger": "^3.4.0", + "grunt-protractor-runner": "^1.1.0", + "grunt-asset-injector": "^0.1.0", + "grunt-karma": "~0.8.2", + "grunt-build-control": "DaftMonk/grunt-build-control", + "grunt-mocha-test": "~0.10.2", + "jit-grunt": "^0.5.0", + "time-grunt": "~0.3.1", + "grunt-express-server": "~0.4.17", + "grunt-open": "~0.2.3", + "open": "~0.0.4", + "jshint-stylish": "~0.1.5", + "connect-livereload": "~0.4.0", + "karma-ng-scenario": "~0.1.0", + "karma-firefox-launcher": "~0.1.3", + "karma-script-launcher": "~0.1.0", + "karma-html2js-preprocessor": "~0.1.0", + "karma-ng-jade2js-preprocessor": "^0.1.2", + "karma-jasmine": "~0.1.5", + "karma-chrome-launcher": "~0.1.3", + "requirejs": "~2.1.11", + "karma-requirejs": "~0.2.1", + "karma-coffee-preprocessor": "~0.2.1", + "karma-jade-preprocessor": "0.0.11", + "karma-phantomjs-launcher": "~0.1.4", + "karma": "~0.12.9", + "karma-ng-html2js-preprocessor": "~0.1.0", + "supertest": "~0.11.0", + "should": "~3.3.1" + }, + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "start": "node server/app.js", + "test": "grunt test", + "update-webdriver": "node node_modules/grunt-protractor-runner/node_modules/protractor/bin/webdriver-manager update" + }, + "private": true +} diff --git a/dist/public/.htaccess b/dist/public/.htaccess new file mode 100644 index 0000000..cb84cb9 --- /dev/null +++ b/dist/public/.htaccess @@ -0,0 +1,543 @@ +# Apache Configuration File + +# (!) Using `.htaccess` files slows down Apache, therefore, if you have access +# to the main server config file (usually called `httpd.conf`), you should add +# this logic there: http://httpd.apache.org/docs/current/howto/htaccess.html. + +# ############################################################################## +# # CROSS-ORIGIN RESOURCE SHARING (CORS) # +# ############################################################################## + +# ------------------------------------------------------------------------------ +# | Cross-domain AJAX requests | +# ------------------------------------------------------------------------------ + +# Enable cross-origin AJAX requests. +# http://code.google.com/p/html5security/wiki/CrossOriginRequestSecurity +# http://enable-cors.org/ + +# +# Header set Access-Control-Allow-Origin "*" +# + +# ------------------------------------------------------------------------------ +# | CORS-enabled images | +# ------------------------------------------------------------------------------ + +# Send the CORS header for images when browsers request it. +# https://developer.mozilla.org/en/CORS_Enabled_Image +# http://blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html +# http://hacks.mozilla.org/2011/11/using-cors-to-load-webgl-textures-from-cross-domain-images/ + + + + + SetEnvIf Origin ":" IS_CORS + Header set Access-Control-Allow-Origin "*" env=IS_CORS + + + + +# ------------------------------------------------------------------------------ +# | Web fonts access | +# ------------------------------------------------------------------------------ + +# Allow access from all domains for web fonts + + + + Header set Access-Control-Allow-Origin "*" + + + + +# ############################################################################## +# # ERRORS # +# ############################################################################## + +# ------------------------------------------------------------------------------ +# | 404 error prevention for non-existing redirected folders | +# ------------------------------------------------------------------------------ + +# Prevent Apache from returning a 404 error for a rewrite if a directory +# with the same name does not exist. +# http://httpd.apache.org/docs/current/content-negotiation.html#multiviews +# http://www.webmasterworld.com/apache/3808792.htm + +Options -MultiViews + +# ------------------------------------------------------------------------------ +# | Custom error messages / pages | +# ------------------------------------------------------------------------------ + +# You can customize what Apache returns to the client in case of an error (see +# http://httpd.apache.org/docs/current/mod/core.html#errordocument), e.g.: + +ErrorDocument 404 /404.html + + +# ############################################################################## +# # INTERNET EXPLORER # +# ############################################################################## + +# ------------------------------------------------------------------------------ +# | Better website experience | +# ------------------------------------------------------------------------------ + +# Force IE to render pages in the highest available mode in the various +# cases when it may not: http://hsivonen.iki.fi/doctype/ie-mode.pdf. + + + Header set X-UA-Compatible "IE=edge" + # `mod_headers` can't match based on the content-type, however, we only + # want to send this header for HTML pages and not for the other resources + + Header unset X-UA-Compatible + + + +# ------------------------------------------------------------------------------ +# | Cookie setting from iframes | +# ------------------------------------------------------------------------------ + +# Allow cookies to be set from iframes in IE. + +# +# Header set P3P "policyref=\"/w3c/p3p.xml\", CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"" +# + +# ------------------------------------------------------------------------------ +# | Screen flicker | +# ------------------------------------------------------------------------------ + +# Stop screen flicker in IE on CSS rollovers (this only works in +# combination with the `ExpiresByType` directives for images from below). + +# BrowserMatch "MSIE" brokenvary=1 +# BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1 +# BrowserMatch "Opera" !brokenvary +# SetEnvIf brokenvary 1 force-no-vary + + +# ############################################################################## +# # MIME TYPES AND ENCODING # +# ############################################################################## + +# ------------------------------------------------------------------------------ +# | Proper MIME types for all files | +# ------------------------------------------------------------------------------ + + + + # Audio + AddType audio/mp4 m4a f4a f4b + AddType audio/ogg oga ogg + + # JavaScript + # Normalize to standard type (it's sniffed in IE anyways): + # http://tools.ietf.org/html/rfc4329#section-7.2 + AddType application/javascript js jsonp + AddType application/json json + + # Video + AddType video/mp4 mp4 m4v f4v f4p + AddType video/ogg ogv + AddType video/webm webm + AddType video/x-flv flv + + # Web fonts + AddType application/font-woff woff + AddType application/vnd.ms-fontobject eot + + # Browsers usually ignore the font MIME types and sniff the content, + # however, Chrome shows a warning if other MIME types are used for the + # following fonts. + AddType application/x-font-ttf ttc ttf + AddType font/opentype otf + + # Make SVGZ fonts work on iPad: + # https://twitter.com/FontSquirrel/status/14855840545 + AddType image/svg+xml svg svgz + AddEncoding gzip svgz + + # Other + AddType application/octet-stream safariextz + AddType application/x-chrome-extension crx + AddType application/x-opera-extension oex + AddType application/x-shockwave-flash swf + AddType application/x-web-app-manifest+json webapp + AddType application/x-xpinstall xpi + AddType application/xml atom rdf rss xml + AddType image/webp webp + AddType image/x-icon ico + AddType text/cache-manifest appcache manifest + AddType text/vtt vtt + AddType text/x-component htc + AddType text/x-vcard vcf + + + +# ------------------------------------------------------------------------------ +# | UTF-8 encoding | +# ------------------------------------------------------------------------------ + +# Use UTF-8 encoding for anything served as `text/html` or `text/plain`. +AddDefaultCharset utf-8 + +# Force UTF-8 for certain file formats. + + AddCharset utf-8 .atom .css .js .json .rss .vtt .webapp .xml + + + +# ############################################################################## +# # URL REWRITES # +# ############################################################################## + +# ------------------------------------------------------------------------------ +# | Rewrite engine | +# ------------------------------------------------------------------------------ + +# Turning on the rewrite engine and enabling the `FollowSymLinks` option is +# necessary for the following directives to work. + +# If your web host doesn't allow the `FollowSymlinks` option, you may need to +# comment it out and use `Options +SymLinksIfOwnerMatch` but, be aware of the +# performance impact: http://httpd.apache.org/docs/current/misc/perf-tuning.html#symlinks + +# Also, some cloud hosting services require `RewriteBase` to be set: +# http://www.rackspace.com/knowledge_center/frequently-asked-question/why-is-mod-rewrite-not-working-on-my-site + + + Options +FollowSymlinks + # Options +SymLinksIfOwnerMatch + RewriteEngine On + # RewriteBase / + + +# ------------------------------------------------------------------------------ +# | Suppressing / Forcing the "www." at the beginning of URLs | +# ------------------------------------------------------------------------------ + +# The same content should never be available under two different URLs especially +# not with and without "www." at the beginning. This can cause SEO problems +# (duplicate content), therefore, you should choose one of the alternatives and +# redirect the other one. + +# By default option 1 (no "www.") is activated: +# http://no-www.org/faq.php?q=class_b + +# If you'd prefer to use option 2, just comment out all the lines from option 1 +# and uncomment the ones from option 2. + +# IMPORTANT: NEVER USE BOTH RULES AT THE SAME TIME! + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +# Option 1: rewrite www.example.com → example.com + + + RewriteCond %{HTTPS} !=on + RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] + RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L] + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +# Option 2: rewrite example.com → www.example.com + +# Be aware that the following might not be a good idea if you use "real" +# subdomains for certain parts of your website. + +# +# RewriteCond %{HTTPS} !=on +# RewriteCond %{HTTP_HOST} !^www\..+$ [NC] +# RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] +# + + +# ############################################################################## +# # SECURITY # +# ############################################################################## + +# ------------------------------------------------------------------------------ +# | Content Security Policy (CSP) | +# ------------------------------------------------------------------------------ + +# You can mitigate the risk of cross-site scripting and other content-injection +# attacks by setting a Content Security Policy which whitelists trusted sources +# of content for your site. + +# The example header below allows ONLY scripts that are loaded from the current +# site's origin (no inline scripts, no CDN, etc). This almost certainly won't +# work as-is for your site! + +# To get all the details you'll need to craft a reasonable policy for your site, +# read: http://html5rocks.com/en/tutorials/security/content-security-policy (or +# see the specification: http://w3.org/TR/CSP). + +# +# Header set Content-Security-Policy "script-src 'self'; object-src 'self'" +# +# Header unset Content-Security-Policy +# +# + +# ------------------------------------------------------------------------------ +# | File access | +# ------------------------------------------------------------------------------ + +# Block access to directories without a default document. +# Usually you should leave this uncommented because you shouldn't allow anyone +# to surf through every directory on your server (which may includes rather +# private places like the CMS's directories). + + + Options -Indexes + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +# Block access to hidden files and directories. +# This includes directories used by version control systems such as Git and SVN. + + + RewriteCond %{SCRIPT_FILENAME} -d [OR] + RewriteCond %{SCRIPT_FILENAME} -f + RewriteRule "(^|/)\." - [F] + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +# Block access to backup and source files. +# These files may be left by some text editors and can pose a great security +# danger when anyone has access to them. + + + Order allow,deny + Deny from all + Satisfy All + + +# ------------------------------------------------------------------------------ +# | Secure Sockets Layer (SSL) | +# ------------------------------------------------------------------------------ + +# Rewrite secure requests properly to prevent SSL certificate warnings, e.g.: +# prevent `https://www.example.com` when your certificate only allows +# `https://secure.example.com`. + +# +# RewriteCond %{SERVER_PORT} !^443 +# RewriteRule ^ https://example-domain-please-change-me.com%{REQUEST_URI} [R=301,L] +# + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +# Force client-side SSL redirection. + +# If a user types "example.com" in his browser, the above rule will redirect him +# to the secure version of the site. That still leaves a window of opportunity +# (the initial HTTP connection) for an attacker to downgrade or redirect the +# request. The following header ensures that browser will ONLY connect to your +# server via HTTPS, regardless of what the users type in the address bar. +# http://www.html5rocks.com/en/tutorials/security/transport-layer-security/ + +# +# Header set Strict-Transport-Security max-age=16070400; +# + +# ------------------------------------------------------------------------------ +# | Server software information | +# ------------------------------------------------------------------------------ + +# Avoid displaying the exact Apache version number, the description of the +# generic OS-type and the information about Apache's compiled-in modules. + +# ADD THIS DIRECTIVE IN THE `httpd.conf` AS IT WILL NOT WORK IN THE `.htaccess`! + +# ServerTokens Prod + + +# ############################################################################## +# # WEB PERFORMANCE # +# ############################################################################## + +# ------------------------------------------------------------------------------ +# | Compression | +# ------------------------------------------------------------------------------ + + + + # Force compression for mangled headers. + # http://developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping + + + SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding + RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding + + + + # Compress all output labeled with one of the following MIME-types + # (for Apache versions below 2.3.7, you don't need to enable `mod_filter` + # and can remove the `` and `` lines + # as `AddOutputFilterByType` is still in the core directives). + + AddOutputFilterByType DEFLATE application/atom+xml \ + application/javascript \ + application/json \ + application/rss+xml \ + application/vnd.ms-fontobject \ + application/x-font-ttf \ + application/x-web-app-manifest+json \ + application/xhtml+xml \ + application/xml \ + font/opentype \ + image/svg+xml \ + image/x-icon \ + text/css \ + text/html \ + text/plain \ + text/x-component \ + text/xml + + + + +# ------------------------------------------------------------------------------ +# | Content transformations | +# ------------------------------------------------------------------------------ + +# Prevent some of the mobile network providers from modifying the content of +# your site: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.5. + +# +# Header set Cache-Control "no-transform" +# + +# ------------------------------------------------------------------------------ +# | ETag removal | +# ------------------------------------------------------------------------------ + +# Since we're sending far-future expires headers (see below), ETags can +# be removed: http://developer.yahoo.com/performance/rules.html#etags. + +# `FileETag None` is not enough for every server. + + Header unset ETag + + +FileETag None + +# ------------------------------------------------------------------------------ +# | Expires headers (for better cache control) | +# ------------------------------------------------------------------------------ + +# The following expires headers are set pretty far in the future. If you don't +# control versioning with filename-based cache busting, consider lowering the +# cache time for resources like CSS and JS to something like 1 week. + + + + ExpiresActive on + ExpiresDefault "access plus 1 month" + + # CSS + ExpiresByType text/css "access plus 1 year" + + # Data interchange + ExpiresByType application/json "access plus 0 seconds" + ExpiresByType application/xml "access plus 0 seconds" + ExpiresByType text/xml "access plus 0 seconds" + + # Favicon (cannot be renamed!) + ExpiresByType image/x-icon "access plus 1 week" + + # HTML components (HTCs) + ExpiresByType text/x-component "access plus 1 month" + + # HTML + ExpiresByType text/html "access plus 0 seconds" + + # JavaScript + ExpiresByType application/javascript "access plus 1 year" + + # Manifest files + ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds" + ExpiresByType text/cache-manifest "access plus 0 seconds" + + # Media + ExpiresByType audio/ogg "access plus 1 month" + ExpiresByType image/gif "access plus 1 month" + ExpiresByType image/jpeg "access plus 1 month" + ExpiresByType image/png "access plus 1 month" + ExpiresByType video/mp4 "access plus 1 month" + ExpiresByType video/ogg "access plus 1 month" + ExpiresByType video/webm "access plus 1 month" + + # Web feeds + ExpiresByType application/atom+xml "access plus 1 hour" + ExpiresByType application/rss+xml "access plus 1 hour" + + # Web fonts + ExpiresByType application/font-woff "access plus 1 month" + ExpiresByType application/vnd.ms-fontobject "access plus 1 month" + ExpiresByType application/x-font-ttf "access plus 1 month" + ExpiresByType font/opentype "access plus 1 month" + ExpiresByType image/svg+xml "access plus 1 month" + + + +# ------------------------------------------------------------------------------ +# | Filename-based cache busting | +# ------------------------------------------------------------------------------ + +# If you're not using a build process to manage your filename version revving, +# you might want to consider enabling the following directives to route all +# requests such as `/css/style.12345.css` to `/css/style.css`. + +# To understand why this is important and a better idea than `*.css?v231`, read: +# http://stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring + +# +# RewriteCond %{REQUEST_FILENAME} !-f +# RewriteCond %{REQUEST_FILENAME} !-d +# RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ $1.$3 [L] +# + +# ------------------------------------------------------------------------------ +# | File concatenation | +# ------------------------------------------------------------------------------ + +# Allow concatenation from within specific CSS and JS files, e.g.: +# Inside of `script.combined.js` you could have +# +# +# and they would be included into this single file. + +# +# +# Options +Includes +# AddOutputFilterByType INCLUDES application/javascript application/json +# SetOutputFilter INCLUDES +# +# +# Options +Includes +# AddOutputFilterByType INCLUDES text/css +# SetOutputFilter INCLUDES +# +# + +# ------------------------------------------------------------------------------ +# | Persistent connections | +# ------------------------------------------------------------------------------ + +# Allow multiple requests to be sent over the same TCP connection: +# http://httpd.apache.org/docs/current/en/mod/core.html#keepalive. + +# Enable if you serve a lot of static content but, be aware of the +# possible disadvantages! + +# +# Header set Connection Keep-Alive +# diff --git a/dist/public/app/7878b2da.app.js b/dist/public/app/7878b2da.app.js new file mode 100644 index 0000000..95c153e --- /dev/null +++ b/dist/public/app/7878b2da.app.js @@ -0,0 +1,3 @@ +"use strict";angular.module("mldocsApp",["ui.router","ui.bootstrap","ngMaterial","search.service","offline.service"]).config(["$mdThemingProvider","$mdIconProvider",function(a,b){a.theme("teal").primaryPalette("teal"),a.setDefaultTheme("teal")}]).config(["$stateProvider","$urlRouterProvider","$locationProvider",function(a,b,c){b.otherwise("/"),a.state("app",{url:"/",resolve:{isOnline:["offline",function(a){return a.checkIsOnline().then(function(a){return a.data.isOnline},function(a){return!1})}],modules:["Search",function(a){return a.search({q:"",facetsOnly:!0}).then(function(a){var b=a.data[0].facets;return _.forEach(b,function(a,c){b[c]=a.facetValues}),b},function(a){return console.error("Error getting modules",a),503===a.state?[]:void 0})}],apiList:["Search",function(a){return a.all().then(function(a){return _.pluck(a.data,"apiName")},function(a){return console.error("Error getting api ",a),503===a.state?[]:void 0})}]},views:{"":{templateUrl:"app/main/main.html",controller:"SearchCtrl"},sidebar:{templateUrl:"app/main/sidebar.html",controller:"SearchCtrl"},navbar:{templateUrl:"app/main/navbar.html",controller:"NavCtrl"}}}),c.html5Mode(!0)}]).filter("cut",function(){return function(a,b,c,d){if(!a)return"";if(c=parseInt(c,10),!c)return a;if(a.length<=c)return a;if(a=a.substr(0,c),b){var e=a.lastIndexOf(" ");-1!=e&&(a=a.substr(0,e))}return a+(d||" …")}}).run(["$rootScope","$state","$stateParams","offline",function(a,b,c,d){a.$state=b,a.$stateParams=c}]),angular.module("mldocsApp").controller("SearchCtrl",["$rootScope","$scope","$timeout","isOnline","$mdSidenav","$mdUtil","$log","Search","$state","modules","apiList","offline",function(a,b,c,d,e,f,g,h,i,j,k,l){function m(a){l.search(a).then(function(a){b.$apply(function(){b.results=a}),console.log("offline results",b.results)},function(a){console.log("error in offline search",a)})}var n=a.isOnline||d;console.log("---------- THE APP IS ONLINE: "+d+" ------------"),b.intro=!0,b.results=[],b.modules=j||[];var o=k||[];n||(l.apiList().then(function(a){o=a},function(a){console.log("Error getting offline api list",a)}),l.moduleList().then(function(a){b.modules=a},function(a){console.log("Error getting offline api list",a)})),b.query={q:i.params.q||"",fuzzy:!1,strict:!0,suggestions:[],strictSuggest:function(a){h.suggest({q:decodeURIComponent(a),facetsOnly:!1}).success(function(a){b.query.suggestions=_.compact(a)}).error(function(a){console.log("error",a)})},fuzzySuggest:function(a){var c={keys:["lib","apiName"]},d=new Fuse(o,c);b.query.suggestions=d.search(a)},suggest:function(a){var c=[],d=[];try{var e=new Fuse(o);c=e.search(a),c=c.map(function(a){return o[a]})}catch(f){console.log(f.message)}return n?void h.suggest({q:decodeURIComponent(a),facetsOnly:!1}).success(function(a){d=_.compact(a),b.query.suggestions=_.uniq(_.flatten([d,c],!0))}).error(function(a){console.log("error",a)}):void(b.query.suggestions=c)}},b.search=function(a,c){b.showProgress=!0,b.intro=!1,b.query.q=a||b.query.q;var d=c?"api:":"";return n?void h.search({q:d+b.query.q,facetsOnly:!1,perPage:9999}).success(function(a){b.showProgress=!1,b.results=_.rest(a),i.$current.data=b.results,i.go("app.search",{q:b.query.q})}).error(function(a){b.showProgress=!1,console.error("Error",a)}):(m({q:b.query.q,facetsOnly:!1,perPage:9999}),i.go("app.search",{q:b.query.q}),void(b.showProgress=!1))};try{i.params.q&&(b.intro=!1,b.query.q=decodeURIComponent(i.params.q),b.search(b.query.q))}catch(p){console.error("error",p.toString())}}]).controller("ResultCtrl",["$scope","$state",function(a,b){a.results=b.$current.data,console.log("resultCtrl data",a.results)}]).controller("ListCtrl",["$rootScope","$scope","$state","isOnline","Search","offline",function(a,b,c,d,e,f){b.showProgress=!0,b.getList=function(c){var g=a.isOnline||d;return g?void e.search({collection:c,perPage:9999}).success(function(a){b.showProgress=!1,b.list=a,b.list=_.rest(a),b.list=_.sortBy(b.list,"apiName")}).error(function(a){b.showProgress=!1,console.error("Error in list",a)}):(console.log("showProgress",b.showProgress),f.getApisInModule(c).then(function(a){console.log("list",a),b.list=a},function(a){console.log("error",a)}),void(b.showProgress=!1))},b.$evalAsync(function(){b.getList(c.params.lib)}),b.addItems=function(){f.save(b.list)},b.getOfflineItems=function(){f.getList()}}]).controller("DetailCtrl",["$rootScope","$scope","$state","isOnline","Search","offline",function(a,b,c,d,e,f){b.showProgress=!0;var g=a.isOnline||d;b.$evalAsync(function(){return g?void e.get(c.params.uri).success(function(a){b.showProgress=!1,b.api=a}).error(function(a){b.showProgress=!1,console.error("error",a)}):(f.get(c.params.uri).then(function(a){b.api=a}),void(b.showProgress=!1))})}]).controller("NavCtrl",["$rootScope","$scope","$mdSidenav","$mdToast","Search","offline","isOnline",function(a,b,c,d,e,f,g){a.isOnline=g,a.showToast=function(a){var b=d.simple().content(a).action("OK").highlightAction(!1).position("top left").hideDelay(3e3);d.show(b)},a.isOnline||a.showToast("Unable to connect to the internet, switched to offline mode"),b.showSidebar=function(){return!c("left").isLockedOpen()}.call(),b.toggleSideBar=function(){console.log("toggling..."),c("left").toggle()},b.saveForOffline=function(){e.search({q:"",facetsOnly:!1,perPage:9999}).success(function(c){b.forOffline=_.rest(c),f.save(b.forOffline),a.showToast("API docs saved for offline access")}).error(function(a){console.error("error",a)})}}]).controller("RightCtrl",["$scope","$timeout","$mdSidenav","$log",function(a,b,c,d){a.close=function(){c("right").close().then(function(){d.debug("close RIGHT is done")})}}]),angular.module("mldocsApp").config(["$stateProvider","$urlRouterProvider","$locationProvider",function(a,b,c){a.state("app.search",{url:"search?q={search}",views:{"@":{templateUrl:"app/main/main.html",controller:"SearchCtrl"}}}).state("app.search.result",{views:{"@":{templateUrl:"app/main/result.html",controller:"SearchCtrl"}}}).state("app.list",{url:"list/{lib}",resolve:{isOnline:["offline",function(a){return a.checkIsOnline().then(function(a){return a.data.isOnline},function(a){return!1})}]},views:{"@":{templateUrl:"app/main/list.html",controller:"ListCtrl"}}}).state("app.detail",{url:"api?uri={detail}",resolve:{isOnline:["offline",function(a){return a.checkIsOnline().then(function(a){return a.data.isOnline},function(a){return!1})}]},views:{"@":{templateUrl:"app/main/detail.html",controller:"DetailCtrl"}}})}]),angular.module("offline.service",[]).service("offline",["$window","$http","$interval","$rootScope",function(a,b,c,d){function e(a){o.version(a).stores({apis:"++id,isRest,&apiName,lib,category,subcategory,bucket,summary,*params,*headers,return,usage,*examples"})}function f(a){o.version(1).stores({apis:"++id,&apiName,isRest,lib,category,subcategory,bucket,summary,uri"}),o.open(),a.forEach(function(a){o.apis.put(a),console.log("saved api",a.apiName)})}function g(a){o.tables.forEach(function(a){console.log("Schema of "+a.name+": "+JSON.stringify(a.schema))})}function h(a){console.log("seaching...");var b=o.apis.where("apiName").equalsIgnoreCase(a.q);return b.toArray().then(function(a){return a})}function i(){o.apis.add({apiName:"appserver-get-privilege",bucket:"XQuery Library Modules",category:"Admin Library",examples:[],headers:[],"http-verb":"",isRest:!1,lib:"admin",params:[{description:"A configuration specification, typically as returned from one of the Admin module functions",name:"config",type:"element(configuration)"},{description:"The ID of the App Server. Typically, this is the result of an admin:appserver-get-id call.",name:"appserver-id",type:"xs:unsignedLong"}],"return":"xs:unsignedLong",subcategory:"appserver",summary:"This function returns the privilege ID for the specified App Server. If no privilege is configured, It returns 0.",usage:""})}function j(){return b({method:"GET",url:"/api/search/check"})}function k(){console.log("offline api list...");var a=o.apis;return a.toArray().then(function(a){return _.pluck(a,"apiName")})}function l(){console.log("offline module list...");var a={lib:[],bucket:[]};return o.apis.toArray().then(function(b){var c=_.pluck(b,"lib").sort(),d=_.pluck(b,"bucket").sort();return _.forEach(_.uniq(c),function(b){var d=0;_.forEach(c,function(a){b===a&&d++}),a.lib.push({name:b,count:d})}),_.forEach(_.uniq(d),function(b){var c=0;_.forEach(d,function(a){b===a&&c++}),a.bucket.push({name:b,count:c})}),a})}function m(a){return o.apis.where("lib").anyOf([a]).toArray().then(function(a){var b=a;return b=b.map(function(a){return a.uri=a["http-verb"].length>0?"/"+a.lib+"/"+a["http-verb"]+"/"+a.apiName+".json":"/"+a.lib+"/"+a.apiName+".json",_.pick(a,["apiName","lib","http-verb","summary","uri"])})})}function n(a){return o.apis.where("uri").equals(decodeURIComponent(a)).first().then(function(a){return console.log("api",a),a})}var o=new Dexie("offlineMLDocs"),p=!0;j().then(function(a){p=a.data.isOnline,console.log("app is online",p)},function(a){p=!1,console.log("app is online",p)}),this.db=o,this.defineDBSchema=e,this.save=f,this.getDBSchema=g,this.search=h,this.addData=i,this.checkIsOnline=j,this.isOnline=p,this.apiList=k,this.moduleList=l,this.getApisInModule=m,this.get=n}]),angular.module("search.service",[]).service("Search",["$http",function(a){function b(b){return a({method:"POST",url:"/api/search",data:b})}function c(b){return a({method:"POST",url:"/api/search/suggest",data:b})}function d(){return a({method:"GET",url:"/api/search/all"})}function e(b){return console.log("url",decodeURIComponent(b)),a({method:"GET",url:"/api/search/get?uri="+b})}this.search=b,this.suggest=c,this.all=d,this.get=e}]),angular.module("mldocsApp").factory("Modal",["$rootScope","$modal",function(a,b){function c(c,d){var e=a.$new();return c=c||{},d=d||"modal-default",angular.extend(e,c),b.open({templateUrl:"components/modal/modal.html",windowClass:d,scope:e})}return{confirm:{"delete":function(a){return a=a||angular.noop,function(){var b,d=Array.prototype.slice.call(arguments),e=d.shift();b=c({modal:{dismissable:!0,title:"Confirm Delete",html:"

Are you sure you want to delete "+e+" ?

",buttons:[{classes:"btn-danger",text:"Delete",click:function(a){b.close(a)}},{classes:"btn-default",text:"Cancel",click:function(a){b.dismiss(a)}}]}},"modal-danger"),b.result.then(function(b){a.apply(b,d)})}}}}}]),angular.module("mldocsApp").controller("NavbarCtrl",["$scope","$location",function(a,b){a.menu=[{title:"Home",link:"/"}],a.isCollapsed=!0,a.isActive=function(a){return a===b.path()}}]),function(a,b,c){function d(a,b){return"object"!=typeof b&&(b=b()),Object.keys(b).forEach(function(c){a[c]=b[c]}),a}function e(a){return{from:function(b){return a.prototype=Object.create(b.prototype),a.prototype.constructor=a,{extend:function(c){d(a.prototype,"object"!=typeof c?c(b.prototype):c)}}}}}function f(a,b){return b(a)}function g(a,b){function k(){Aa.on("versionchange",function(){Aa.close(),Aa.on("error").fire(new oa("Database version changed by other database connection."))})}function n(a){this._cfg={version:a,storesSource:null,dbschema:{},tables:{},contentUpgrade:null},this.stores({})}function s(a,b,c,d){var e,g,h,i,j,k;if(0===a)Object.keys(pa).forEach(function(a){C(b,a,pa[a].primKey,pa[a].indexes)}),e=Aa._createTransaction(za,ra,pa),e.idbtrans=b,e.idbtrans.onerror=E(c,["populating database"]),e.on("error").subscribe(c),O.newPSD(function(){O.PSD.trans=e;try{Aa.on("populate").fire(e)}catch(a){d.onerror=b.onerror=function(a){a.preventDefault()};try{b.abort()}catch(f){}b.db.close(),c(a)}});else{if(g=[],h=qa.filter(function(b){return b._cfg.version===a})[0],!h)throw new oa("Dexie specification of currently installed DB version is missing");pa=Aa._dbSchema=h._cfg.dbschema,i=!1,j=qa.filter(function(b){return b._cfg.version>a}),j.forEach(function(a){var d,e=pa,h=a._cfg.dbschema;ia(e,b),ia(h,b),pa=Aa._dbSchema=h,d=u(e,h),d.add.forEach(function(a){g.push(function(b,c){C(b,a[0],a[1].primKey,a[1].indexes),c()})}),d.change.forEach(function(a){if(a.recreate)throw new oa("Not yet support for changing primary key");g.push(function(b,c){var d=b.objectStore(a.name);a.add.forEach(function(a){R(d,a)}),a.change.forEach(function(a){d.deleteIndex(a.name),R(d,a)}),a.del.forEach(function(a){d.deleteIndex(a)}),c()})}),a._cfg.contentUpgrade&&g.push(function(b,d){var e,g;i=!0,e=Aa._createTransaction(za,[].slice.call(b.db.objectStoreNames,0),h),e.idbtrans=b,g=0,e._promise=f(e._promise,function(a){return function(b,c,e){function f(a){return function(){a.apply(this,arguments),0==--g&&d()}}return++g,a.call(this,b,function(a,b){arguments[0]=f(a),arguments[1]=f(b),c.apply(this,arguments)},e)}}),b.onerror=E(c,["running upgrader function for version",a._cfg.version]),e.on("error").subscribe(c),a._cfg.contentUpgrade(e),0===g&&d()}),i&&ga()||g.push(function(a,b){Q(h,a),b()})}),k=function(){try{g.length?g.shift()(b,k):N(pa,b)}catch(a){d.onerror=b.onerror=function(a){a.preventDefault()};try{b.abort()}catch(e){}b.db.close(),c(a)}},k()}}function u(a,b){var c,d,e,f,g,h,i,j,k,l={del:[],add:[],change:[]};for(c in a)b[c]||l.del.push(c);for(c in b)if(d=a[c],e=b[c],d)if(f={name:c,def:b[c],recreate:!1,del:[],add:[],change:[]},d.primKey.src!==e.primKey.src)f.recreate=!0,l.change.push(f);else{g=d.indexes.reduce(function(a,b){return a[b.name]=b,a},{}),h=e.indexes.reduce(function(a,b){return a[b.name]=b,a},{});for(i in g)h[i]||f.del.push(i);for(i in h)j=g[i],k=h[i],j?j.src!==k.src&&f.change.push(k):f.add.push(k);(f.recreate||f.del.length>0||f.add.length>0||f.change.length>0)&&l.change.push(f)}else l.add.push([c,e]);return l}function C(a,b,c,d){var e=a.db.createObjectStore(b,c.keyPath?{keyPath:c.keyPath,autoIncrement:c.auto}:{autoIncrement:c.auto});return d.forEach(function(a){R(e,a)}),e}function N(a,b){Object.keys(a).forEach(function(c){b.db.objectStoreNames.contains(c)||C(b,c,a[c].primKey,a[c].indexes)})}function Q(a,b){for(var d,e=0;ea?-1:a>b?1:0}function da(a,b){return b>a?1:a>b?-1:0}function ea(a){return function(b,c){for(var d,e=0;;){if(d=a(b[e],c[e]),0!==d)return d;if(++e,e===b.length||e===c.length)return a(b.length,c.length)}}}function fa(a,b){return a?b?function(){return a.apply(this,arguments)&&b.apply(this,arguments)}:a:b}function ga(){return navigator.userAgent.indexOf("Trident")>=0||navigator.userAgent.indexOf("MSIE")>=0}function ha(){if(Aa.verno=ua.version/10,Aa._dbSchema=pa={},ra=[].slice.call(ua.objectStoreNames,0),0!==ra.length){var a=ua.transaction(L(ra),"readonly");ra.forEach(function(b){for(var c,d,e=a.objectStore(b),f=e.keyPath,g=f&&"string"==typeof f&&-1!==f.indexOf("."),h=new I(f,f||"",!1,!1,!!e.autoIncrement,f&&"string"!=typeof f,g),i=[],j=0;jMath.pow(2,62)?0:b.oldVersion,s(g/10,e.transaction,d,e))},d),e.onsuccess=v(function(){xa=!1,ua=e.result,Ca?ha():ua.objectStoreNames.length>0&&ia(pa,ua.transaction(L(ua.objectStoreNames),ya)),ua.onversionchange=Aa.on("versionchange").fire,Da||H(function(b){return-1===b.indexOf(a)?b.push(a):void 0}),O.newPSD(function(){function a(){va=!1,Ba.forEach(function(a){a.resume()}),Ba=[],b()}O.PSD.letThrough=!0;try{var c=Aa.on.ready.fire();c&&"function"==typeof c.then?c.then(a,function(a){ua.close(),ua=null,d(a)}):t(a)}catch(e){d(e)}})},d)}catch(g){d(g)}})},this.close=function(){ua&&(ua.close(),ua=null,va=!0,wa=null)},this["delete"]=function(){var b=arguments;return new O(function(c,d){function e(){Aa.close();var b=la.deleteDatabase(a);b.onsuccess=function(){Da||H(function(b){var c=b.indexOf(a);return c>=0?b.splice(c,1):void 0}),c()},b.onerror=E(d,["deleting",a]),b.onblocked=function(){Aa.on("blocked").fire()}}if(b.length>0)throw new oa("Arguments not allowed in db.delete()");xa?Ba.push({resume:e}):e()})},this.backendDB=function(){return ua},this.isOpen=function(){return null!==ua},this.hasFailed=function(){return null!==wa},this.dynamicallyOpened=function(){return Ca},this.name=a,Object.defineProperty(this,"tables",{get:function(){return Object.keys(sa).map(function(a){return sa[a]})}}),this.on=r(this,"error","populate","blocked",{ready:[q,h],versionchange:[o,h]}),this.on.ready.subscribe=f(this.on.ready.subscribe,function(a){return function(b,c){function d(){return c||Aa.on.ready.unsubscribe(d),b.apply(this,arguments)}a.call(this,d),Aa.isOpen()&&(va?Ba.push({resume:d}):d())}}),P(function(){Aa.on("populate").fire(Aa._createTransaction(za,ra,pa)),Aa.on("error").fire(new oa)}),this.transaction=function(a,b,c){function d(b,d){var g,h,k,l=null;try{if(i)throw i;l=Aa._createTransaction(a,j,pa,e),g=j.map(function(a){return l.tables[a]}),g.push(l),k=0,O.newPSD(function(){O.PSD.trans=l,l.scopeFunc=c,e&&(l.idbtrans=e.idbtrans,l._promise=f(l._promise,function(a){return function(b,c,d){function e(a){return function(b){var c;return O._rootExec(function(){c=a(b),O._tickFinalize(function(){0==--k&&l.active&&(l.active=!1,l.on.complete.fire())})}),c}}return++k,a.call(this,b,function(a,b,d){return c(e(a),e(b),d)},d)}})),l.complete(function(){b(h)}),l.error(function(a){l.idbtrans&&(l.idbtrans.onerror=G);try{l.abort()}catch(b){}e&&(e.active=!1,e.on.error.fire(a));var c=d(a);e||c||Aa.on.error.fire(a)}),O._rootExec(function(){h=c.apply(l,g)})}),(!l.idbtrans||e&&0===k)&&l._nop()}catch(m){l&&l.idbtrans&&(l.idbtrans.onerror=G),l&&l.abort(),e&&e.on.error.fire(m),t(function(){d(m)||Aa.on("error").fire(m)})}}var e,g;b=[].slice.call(arguments,1,arguments.length-1),c=arguments[arguments.length-1],e=O.PSD&&O.PSD.trans,e&&e.db===Aa&&-1===a.indexOf("!")||(e=null),g=-1!==a.indexOf("?"),a=a.replace("!","").replace("?","");var h=Array.isArray(b[0])?b.reduce(function(a,b){return a.concat(b)}):b,i=null,j=h.map(function(a){return"string"==typeof a?a:(a instanceof T||(i=i||new na("Invalid type. Arguments following mode must be instances of Table or String")),a.name)});return"r"==a||a==ya?a=ya:"rw"==a||a==za?a=za:i=new oa("Invalid transaction mode: "+a),e&&(i||(e&&e.mode===ya&&a===za&&(g?e=null:i=i||new oa("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY")),e&&j.forEach(function(a){e.tables.hasOwnProperty(a)||(g?e=null:i=i||new oa("Table "+a+" not included in parent transaction. Parent Transaction function: "+e.scopeFunc.toString()))}))),e?e._promise(a,d,"lock"):Aa._whenReady(d)},this.table=function(a){if(!Ca&&!sa.hasOwnProperty(a))throw new oa("Table does not exist");return sa[a]},d(T.prototype,function(){function a(){throw new oa("Current Transaction is READONLY")}return{_trans:function(a,b,c){return this._tpf(a,[this.name],b,c)},_idbstore:function(a,b,c){var d=this;return this._tpf(a,[this.name],function(a,c,e){b(a,c,e.idbtrans.objectStore(d.name),e)},c)},get:function(a,b){var c=this;return P(function(){b(c.schema.instanceTemplate)}),this._idbstore(ya,function(b,d,e){var f=e.get(a);f.onerror=E(d,["getting",a,"from",c.name]),f.onsuccess=function(){b(c.hook.reading.fire(f.result))}}).then(b)},where:function(a){return new W(this,a)},count:function(a){return this.toCollection().count(a)},offset:function(a){return this.toCollection().offset(a)},limit:function(a){return this.toCollection().limit(a)},reverse:function(){return this.toCollection().reverse()},filter:function(a){return this.toCollection().and(a)},each:function(a){var b=this;return P(function(){a(b.schema.instanceTemplate)}),this._idbstore(ya,function(c,d,e){var f=e.openCursor();f.onerror=E(d,["calling","Table.each()","on",b.name]),aa(f,null,a,c,d,b.hook.reading.fire)})},toArray:function(a){var b=this;return P(function(){a([b.schema.instanceTemplate])}),this._idbstore(ya,function(a,c,d){var e=[],f=d.openCursor();f.onerror=E(c,["calling","Table.toArray()","on",b.name]),aa(f,null,function(a){e.push(a)},function(){a(e)},c,b.hook.reading.fire)}).then(a)},orderBy:function(a){return new this._collClass(new W(this,a))},toCollection:function(){return new this._collClass(new W(this))},mapToClass:function(a,b){var c,d;return this.schema.mappedClass=a,c=Object.create(a.prototype),this.schema.primKey.keyPath&&(x(c,this.schema.primKey.keyPath,this.schema.primKey.auto?0:""),y(a.prototype,this.schema.primKey.keyPath)),b&&D(c,b),this.schema.instanceTemplate=c,d=Object.setPrototypeOf?function(b){return b?(Object.setPrototypeOf(b,a.prototype),b):b}:function(b){var c,d;if(!b)return b;c=Object.create(a.prototype);for(d in b)b.hasOwnProperty(d)&&(c[d]=b[d]);return c},this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=d,this.hook("reading",d),a},defineClass:function(a){return this.mapToClass(g.defineClass(a),a)},add:a,put:a,"delete":a,clear:a,update:a}}),e(U).from(T).extend(function(){return{add:function(a,b){var d=this,e=this.hook.creating.fire;return this._idbstore(za,function(f,g,i,j){var k,l,m,n={};e!==h&&(k=b||(i.keyPath?w(a,i.keyPath):c),l=e.call(n,k,a,j),k===c&&l!==c&&(i.keyPath?x(a,i.keyPath,l):b=l)),m=b?i.add(a,b):i.add(a),m.onerror=E(function(a){return n.onerror&&n.onerror(a),g(a)},["adding",a,"into",d.name]),m.onsuccess=function(b){var c=i.keyPath;c&&x(a,c,b.target.result),n.onsuccess&&n.onsuccess(b.target.result),f(m.result)}})},put:function(a,b){var d=this,e=this.hook.creating.fire,f=this.hook.updating.fire;return e!==h||f!==h?this._trans(za,function(e,f,g){var h=b||d.schema.primKey.keyPath&&w(a,d.schema.primKey.keyPath);h===c?g.tables[d.name].add(a).then(e,f):(g._lock(),a=A(a),g.tables[d.name].where(":id").equals(h).modify(function(){this.value=a}).then(function(c){return 0===c?g.tables[d.name].add(a,b):h})["finally"](function(){g._unlock()}).then(e,f))}):this._idbstore(za,function(c,e,f){var g=b?f.put(a,b):f.put(a);g.onerror=E(e,["putting",a,"into",d.name]),g.onsuccess=function(b){var d=f.keyPath;d&&x(a,d,b.target.result),c(g.result)}})},"delete":function(a){return this.hook.deleting.subscribers.length?this.where(":id").equals(a)["delete"]():this._idbstore(za,function(b,c,d){var e=d["delete"](a);e.onerror=E(c,["deleting",a,"from",d.name]),e.onsuccess=function(){b(e.result)}})},clear:function(){return this.hook.deleting.subscribers.length?this.toCollection()["delete"]():this._idbstore(za,function(a,b,c){var d=c.clear();d.onerror=E(b,["clearing",c.name]),d.onsuccess=function(){a(d.result)}})},update:function(a,b){if("object"!=typeof b||Array.isArray(b))throw new oa("db.update(keyOrObject, modifications). modifications must be an object.");if("object"!=typeof a||Array.isArray(a))return this.where(":id").equals(a).modify(b);Object.keys(b).forEach(function(c){x(a,c,b[c])});var d=w(a,this.schema.primKey.keyPath);return d===c&&O.reject(new oa("Object does not contain its primary key")),this.where(":id").equals(d).modify(b)}}}),d(V.prototype,{_lock:function(){return++this._reculock,1===this._reculock&&O.PSD&&(O.PSD.lockOwnerFor=this),this},_unlock:function(){if(0==--this._reculock)for(O.PSD&&(O.PSD.lockOwnerFor=null);this._blockedFuncs.length>0&&!this._locked();){var a=this._blockedFuncs.shift();try{a()}catch(b){}}return this},_locked:function(){return this._reculock&&(!O.PSD||O.PSD.lockOwnerFor!==this)},_nop:function(a){this.tables[this.storeNames[0]].get(0).then(a)},_promise:function(a,b,c){var d=this;return O.newPSD(function(){var e;return d._locked()?e=new O(function(e,f){d._blockedFuncs.push(function(){d._promise(a,b,c).then(e,f)})}):(e=d.active?new O(function(e,f){if(!d.idbtrans&&a){if(!ua)throw new oa(wa?"Database not open. Following error in populate, ready or upgrade function made Dexie.open() fail: "+wa:"Database not open");var h=d.idbtrans=ua.transaction(L(d.storeNames),d.mode);h.onerror=function(a){d.on("error").fire(a&&a.target.error),a.preventDefault(),d.abort()},h.onabort=function(a){d.active=!1,d.on("abort").fire(a)},h.oncomplete=function(a){d.active=!1,d.on("complete").fire(a)}}c&&d._lock();try{b(e,f,d)}catch(i){g.ignoreTransaction(function(){d.on("error").fire(i)}),d.abort(),f(i)}}):O.reject(F(new oa("Transaction is inactive. Original Scope Function Source: "+d.scopeFunc.toString()))),d.active&&c&&e["finally"](function(){d._unlock()})),e.onuncatched=function(a){g.ignoreTransaction(function(){d.on("error").fire(a)}),d.abort()},e})},complete:function(a){return this.on("complete",a)},error:function(a){return this.on("error",a)},abort:function(){if(this.idbtrans&&this.active)try{this.active=!1,this.idbtrans.abort(),this.on.error.fire(new oa("Transaction Aborted"))}catch(a){}},table:function(a){if(!this.tables.hasOwnProperty(a))throw new oa("Table "+a+" not in transaction");return this.tables[a]}}),d(W.prototype,function(){function a(a,b){try{throw b}catch(c){a._ctx.error=c}return a}function b(a){return Array.prototype.slice.call(1===a.length&&Array.isArray(a[0])?a[0]:a)}function c(a){return"next"===a?function(a){return a.toUpperCase()}:function(a){return a.toLowerCase()}}function d(a){return"next"===a?function(a){return a.toLowerCase()}:function(a){return a.toUpperCase()}}function e(a,b,c,d,e,f){for(var g,h=Math.min(a.length,d.length),i=-1,j=0;h>j;++j){if(g=b[j],g!==d[j])return e(a[j],c[j])<0?a.substr(0,j)+c[j]+c.substr(j+1):e(a[j],d[j])<0?a.substr(0,j)+d[j]+c.substr(j+1):i>=0?a.substr(0,i)+b[i]+c.substr(i+1):null;e(a[j],g)<0&&(i=j)}return hi?null:a.substr(0,i)+d[i]+c.substr(i+1)}function f(a,b,f){function g(a){h=c(a),i=d(a),j="next"===a?ca:da,k=h(f),l=i(f),m=a}var h,i,j,k,l,m;g("next"),a._ondirectionchange=function(a){g(a)},a._addAlgorithm(function(a,c,d){var f,g,h=a.key;return"string"!=typeof h?!1:(f=i(h),b(f,l)?(c(function(){a["continue"]()}),!0):(g=e(h,f,k,l,j,m),c(g?function(){a["continue"](g)}:d),!1))})}return{between:function(a,b,c,d){return c=c!==!1,d=d===!0,a>b||a===b&&(c||d)&&!(c&&d)?new this._ctx.collClass(this,function(){return ma.only(a)}).limit(0):new this._ctx.collClass(this,function(){return ma.bound(a,b,!c,!d)})},equals:function(a){return new this._ctx.collClass(this,function(){return ma.only(a)})},above:function(a){ +return new this._ctx.collClass(this,function(){return ma.lowerBound(a,!0)})},aboveOrEqual:function(a){return new this._ctx.collClass(this,function(){return ma.lowerBound(a)})},below:function(a){return new this._ctx.collClass(this,function(){return ma.upperBound(a,!0)})},belowOrEqual:function(a){return new this._ctx.collClass(this,function(){return ma.upperBound(a)})},startsWith:function(b){return"string"!=typeof b?a(new this._ctx.collClass(this),new na("String expected")):this.between(b,b+String.fromCharCode(65535),!0,!0)},startsWithIgnoreCase:function(b){if("string"!=typeof b)return a(new this._ctx.collClass(this),new na("String expected"));if(""===b)return this.startsWith(b);var c=new this._ctx.collClass(this,function(){return ma.bound(b.toUpperCase(),b.toLowerCase()+String.fromCharCode(65535))});return f(c,function(a,b){return 0===a.indexOf(b)},b),c._ondirectionchange=function(){a(c,new oa("reverse() not supported with WhereClause.startsWithIgnoreCase()"))},c},equalsIgnoreCase:function(b){if("string"!=typeof b)return a(new this._ctx.collClass(this),new na("String expected"));var c=new this._ctx.collClass(this,function(){return ma.bound(b.toUpperCase(),b.toLowerCase())});return f(c,function(a,b){return a===b},b),c},anyOf:function(){var a,c,d=this._ctx,e=d.table.schema,f=d.index?e.idxByName[d.index]:e.primKey,g=f&&f.compound,h=b(arguments),i=g?ea(ca):ca;return h.sort(i),0===h.length?new this._ctx.collClass(this,function(){return ma.only("")}).limit(0):(a=new this._ctx.collClass(this,function(){return ma.bound(h[0],h[h.length-1])}),a._ondirectionchange=function(a){i="next"===a?ca:da,g&&(i=ea(i)),h.sort(i)},c=0,a._addAlgorithm(function(a,b,d){for(var e=a.key;i(e,h[c])>0;)if(++c,c===h.length)return b(d),!1;return 0===i(e,h[c])?(b(function(){a["continue"]()}),!0):(b(function(){a["continue"](h[c])}),!1)}),a)}}}),d(X.prototype,function(){function a(a,b){a.filter=fa(a.filter,b)}function b(a,b){a.isMatch=fa(a.isMatch,b)}function c(a,b){if(a.isPrimKey)return b;var c=a.table.schema.idxByName[a.index];if(!c)throw new oa("KeyPath "+a.index+" on object store "+b.name+" is not indexed");return a.isPrimKey?b:b.index(c.name)}function d(a,b){return c(a,b)[a.op](a.range||null,a.dir+a.unique)}function e(a,b,c,e,f){a.or?function(){function g(){2==++k&&c()}function h(a,c,d){if(!i||i(c,d,g,e)){var f=c.primaryKey.toString();j.hasOwnProperty(f)||(j[f]=!0,b(a,c,d))}}var i=a.filter,j={},k=(a.table.schema.primKey.keyPath,0);a.or._iterate(h,g,e,f),aa(d(a,f),a.algorithm,h,g,e,a.table.hook.reading.fire)}():aa(d(a,f),fa(a.algorithm,a.filter),b,c,e,a.table.hook.reading.fire)}function f(a){return a.table.schema.instanceTemplate}return{_read:function(a,b){var c=this._ctx;return c.error?c.table._trans(null,function(a,b){b(c.error)}):c.table._idbstore(ya,a).then(b)},_write:function(a){var b=this._ctx;return b.error?b.table._trans(null,function(a,c){c(b.error)}):b.table._idbstore(za,a,"locked")},_addAlgorithm:function(a){var b=this._ctx;b.algorithm=fa(b.algorithm,a)},_iterate:function(a,b,c,d){return e(this._ctx,a,b,c,d)},each:function(a){var b=this._ctx;return P(function(){a(f(b))}),this._read(function(c,d,f){e(b,a,c,d,f)})},count:function(a){var b,d,f;return P(function(){a(0)}),b=this,d=this._ctx,d.filter||d.algorithm||d.or?(f=0,this._read(function(a,b,c){e(d,function(){return++f,!1},function(){a(f)},b,c)},a)):this._read(function(a,e,f){var g=c(d,f),h=d.range?g.count(d.range):g.count();h.onerror=E(e,["calling","count()","on",b.name]),h.onsuccess=function(b){a(Math.min(b.target.result,Math.max(0,d.limit-d.offset)))}},a)},sortBy:function(a,b){function c(a,b){return b?c(a[h[b]],b-1):a[i]}function d(a,b){var d=c(a,j),f=c(b,j);return f>d?-e:d>f?e:0}var e,g=this._ctx;P(function(){b([f(g)])});var h=a.split(".").reverse(),i=h[0],j=h.length-1;return e="next"===this._ctx.dir?1:-1,this.toArray(function(a){return a.sort(d)}).then(b)},toArray:function(a){var b=this._ctx;return P(function(){a([f(b)])}),this._read(function(a,c,d){var f=[];e(b,function(a){f.push(a)},function(){a(f)},c,d)},a)},offset:function(b){var c=this._ctx;return 0>=b?this:(c.offset+=b,c.or||c.algorithm||c.filter?a(c,function(){return--b<0}):a(c,function(a,c){return 0===b?!0:1===b?(--b,!1):(c(function(){a.advance(b),b=0}),!1)}),this)},limit:function(b){return this._ctx.limit=Math.min(this._ctx.limit,b),a(this._ctx,function(a,c,d){return--b<=0&&c(d),b>=0}),this},until:function(b,c){var d=this._ctx;return P(function(){b(f(d))}),a(this._ctx,function(a,d,e){return b(a.value)?(d(e),c):!0}),this},first:function(a){var b=this;return P(function(){a(f(b._ctx))}),this.limit(1).toArray(function(a){return a[0]}).then(a)},last:function(a){return this.reverse().first(a)},and:function(c){var d=this;return P(function(){c(f(d._ctx))}),a(this._ctx,function(a){return c(a.value)}),b(this._ctx,c),this},or:function(a){return new W(this._ctx.table,a,this)},reverse:function(){return this._ctx.dir="prev"===this._ctx.dir?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this},desc:function(){return this.reverse()},eachKey:function(a){var b=this,c=this._ctx;return P(function(){a(f(b._ctx)[b._ctx.index])}),c.isPrimKey||(c.op="openKeyCursor"),this.each(function(b,c){a(c.key,c)})},eachUniqueKey:function(a){return this._ctx.unique="unique",this.eachKey(a)},keys:function(a){var b,c,d;return P(function(){a([f(c)[b._ctx.index]])}),b=this,c=this._ctx,c.isPrimKey||(c.op="openKeyCursor"),d=[],this.each(function(a,b){d.push(b.key)}).then(function(){return d}).then(a)},uniqueKeys:function(a){return this._ctx.unique="unique",this.keys(a)},firstKey:function(a){return this.limit(1).keys(function(a){return a[0]}).then(a)},lastKey:function(a){return this.reverse().firstKey(a)},distinct:function(){var b={};return a(this._ctx,function(a){var c=a.primaryKey.toString(),d=b.hasOwnProperty(c);return b[c]=!0,!d}),this}}}),e(Y).from(X).extend({modify:function(a){var b=this,c=this._ctx,e=c.table.hook,f=e.updating.fire,g=e.deleting.fire;return P(function(){"function"==typeof a&&a.call({value:c.table.schema.instanceTemplate},c.table.schema.instanceTemplate)}),this._write(function(e,i,j,k){function l(a,b){var d,e,f;C=b.primaryKey,d={primKey:b.primaryKey,value:a},o.call(d,a)!==!1?(e=!d.hasOwnProperty("value"),f=e?b["delete"]():b.update(d.value),++s,f.onerror=E(function(a){return v.push(a),y.push(d.primKey),d.onerror&&d.onerror(a),n(),!0},e?["deleting",a,"from",c.table.name]:["modifying",a,"on",c.table.name]),f.onsuccess=function(){d.onsuccess&&d.onsuccess(d.value),++t,n()}):d.onsuccess&&d.onsuccess(d.value)}function m(a){return a&&(v.push(a),y.push(C)),i(new K("Error modifying one or more objects",v,t,y))}function n(){u&&t+v.length===s&&(v.length>0?m():e(t))}var o,p,q,r;"function"==typeof a?o=f===h&&g===h?a:function(b){var c,d,e=A(b);return a.call(this,b)===!1?!1:void(this.hasOwnProperty("value")?(c=B(e,this.value),d=f.call(this,c,this.primKey,e,k),d&&(b=this.value,Object.keys(d).forEach(function(a){x(b,a,d[a])}))):g.call(this,this.primKey,b,k))}:f===h?(p=Object.keys(a),q=p.length,o=function(b){for(var c,d,e=!1,f=0;q>f;++f)c=p[f],d=a[c],w(b,c)!==d&&(x(b,c,d),e=!0);return e}):(r=a,a=z(r),o=function(b){var c=!1,e=f.call(this,a,this.primKey,A(b),k);return e&&d(a,e),Object.keys(a).forEach(function(d){var e=a[d];w(b,d)!==e&&(x(b,d,e),c=!0)}),e&&(a=z(r)),c});var s=0,t=0,u=!1,v=[],y=[],C=null;b._iterate(l,function(){u=!0,n()},m,j)})},"delete":function(){return this.modify(function(){delete this.value})}}),d(this,{Collection:X,Table:T,Transaction:V,Version:n,WhereClause:W,WriteableCollection:Y,WriteableTable:U}),k(),ja.forEach(function(a){a(Aa)})}function h(){}function i(a){return a}function j(a,b){return a===i?b:function(c){return b(a(c))}}function k(a,b){return function(){a.apply(this,arguments),b.apply(this,arguments)}}function l(a,b){return a===h?b:function(){var d,e,f,g=a.apply(this,arguments);return g!==c&&(arguments[0]=g),d=this.onsuccess,e=this.onerror,delete this.onsuccess,delete this.onerror,f=b.apply(this,arguments),d&&(this.onsuccess=this.onsuccess?k(d,this.onsuccess):d),e&&(this.onerror=this.onerror?k(e,this.onerror):e),f!==c?f:g}}function m(a,b){return a===h?b:function(){var e,f,g,h=a.apply(this,arguments);return h!==c&&d(arguments[0],h),e=this.onsuccess,f=this.onerror,delete this.onsuccess,delete this.onerror,g=b.apply(this,arguments),e&&(this.onsuccess=this.onsuccess?k(e,this.onsuccess):e),f&&(this.onerror=this.onerror?k(f,this.onerror):f),h===c?g===c?c:g:g===c?h:d(h,g)}}function n(a,b){return a===h?b:function(){return a.apply(this,arguments)===!1?!1:b.apply(this,arguments)}}function o(a,b){return a===h?b:function(){return b.apply(this,arguments)===!1?!1:a.apply(this,arguments)}}function p(a,b){return a===h?b:function(){a.apply(this,arguments),b.apply(this,arguments)}}function q(a,b){return a===h?b:function(){var c,d,e=a.apply(this,arguments);return e&&"function"==typeof e.then?(c=this,d=arguments,e.then(function(){return b.apply(c,d)})):b.apply(this,arguments)}}function r(b){function c(a,b,c){if(Array.isArray(a))return e(a);if("object"==typeof a)return d(a);b||(b=n),c||(c=h);var f={subscribers:[],fire:c,subscribe:function(a){f.subscribers.push(a),f.fire=b(f.fire,a)},unsubscribe:function(a){f.subscribers=f.subscribers.filter(function(b){return b!==a}),f.fire=f.subscribers.reduce(b,c)}};return j[a]=k[a]=f,f}function d(b){Object.keys(b).forEach(function(d){var e,f=b[d];if(Array.isArray(f))c(d,b[d][0],b[d][1]);else{if("asap"!==f)throw new Error("Invalid event config");e=c(d,null,function(){var b=arguments;e.subscribers.forEach(function(c){t(function(){c.apply(a,b)})})}),e.subscribe=function(a){-1===e.subscribers.indexOf(a)&&e.subscribers.push(a)},e.unsubscribe=function(a){var b=e.subscribers.indexOf(a);-1!==b&&e.subscribers.splice(b,1)}}})}function e(a){function b(){return d?!1:void(d=!0)}var d=!1;a.forEach(function(a){c(a).subscribe(b)})}var f,g,i=arguments,j={},k=function(a,c){if(c){var d=[].slice.call(arguments,1),e=j[a];return e.subscribe.apply(e,d),b}return"string"==typeof a?j[a]:void 0};for(k.addEventType=c,f=1,g=i.length;g>f;++f)c(i[f]);return k}function s(a){if(!a)throw new Error("Assertion failed")}function t(b){a.setImmediate?setImmediate(b):setTimeout(b,0)}function u(a){var b=setTimeout(a,1e3);clearTimeout(b)}function v(a,b,c){return function(){var d=O.PSD;O.PSD=c;try{a.apply(this,arguments)}catch(e){b(e)}finally{O.PSD=d}}}function w(a,b){var d,e,f,g,h,i;if(a.hasOwnProperty(b))return a[b];if(!b)return a;if("string"!=typeof b){for(d=[],e=0,f=b.length;f>e;++e)g=w(a,b[e]),d.push(g);return d}return h=b.indexOf("."),-1!==h?(i=a[b.substr(0,h)],i===c?c:w(i,b.substr(h+1))):c}function x(a,b,d){var e,f,g,h,i,j;if(a&&b!==c)if("string"!=typeof b&&"length"in b)for((s("string"!=typeof d&&"length"in d),e=0,f=b.length);f>e;++e)x(a,b[e],d[e]);else g=b.indexOf("."),-1!==g?(h=b.substr(0,g),i=b.substr(g+1),""===i?d===c?delete a[h]:a[h]=d:(j=a[h],j||(j=a[h]={}),x(j,i,d))):d===c?delete a[b]:a[b]=d}function y(a,b){x(a,b,c)}function z(a){var b={};for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b}function A(a){var b,c,d,e;if(!a||"object"!=typeof a)return a;if(Array.isArray(a))for(b=[],c=0,d=a.length;d>c;++c)b.push(A(a[c]));else if(a instanceof Date)b=new Date,b.setTime(a.getTime());else{b=a.constructor?Object.create(a.constructor.prototype):{};for(e in a)a.hasOwnProperty(e)&&(b[e]=A(a[e]))}return b}function B(a,b){var d={};for(var e in a)a.hasOwnProperty(e)&&(b.hasOwnProperty(e)?a[e]!==b[e]&&JSON.stringify(a[e])!=JSON.stringify(b[e])&&(d[e]=b[e]):d[e]=c);for(e in b)b.hasOwnProperty(e)&&!a.hasOwnProperty(e)&&(d[e]=b[e]);return d}function C(a){if("function"==typeof a)return new a;if(Array.isArray(a))return[C(a[0])];if(a&&"object"==typeof a){var b={};return D(b,a),b}return a}function D(a,b){Object.keys(b).forEach(function(c){var d=C(b[c]);a[c]=d})}function E(a,b){return function(c){var d,e=c&&c.target.error||new Error;return b&&(d=" occurred when "+b.map(function(a){switch(typeof a){case"function":return a();case"string":return a;default:return JSON.stringify(a)}}).join(" "),e.name?e.toString=function(){return e.name+d+(e.message?". "+e.message:"")}:e+=d),a(e),c&&(c.stopPropagation&&c.stopPropagation(),c.preventDefault&&c.preventDefault()),!1}}function F(a){try{throw a}catch(b){return b}}function G(a){a.preventDefault()}function H(a){var b,c=g.dependencies.localStorage;if(!c)return a([]);try{b=JSON.parse(c.getItem("Dexie.DatabaseNames")||"[]")}catch(d){b=[]}a(b)&&c.setItem("Dexie.DatabaseNames",JSON.stringify(b))}function I(a,b,c,d,e,f,g){this.name=a,this.keyPath=b,this.unique=c,this.multi=d,this.auto=e,this.compound=f,this.dotted=g;var h="string"==typeof b?b:b&&"["+[].join.call(b,"+")+"]";this.src=(c?"&":"")+(d?"*":"")+(e?"++":"")+h}function J(a,b,c,d){this.name=a,this.primKey=b||new I,this.indexes=c||[new I],this.instanceTemplate=d,this.mappedClass=null,this.idxByName=c.reduce(function(a,b){return a[b.name]=b,a},{})}function K(a,b,c,d){this.name="ModifyError",this.failures=b,this.failedKeys=d,this.successCount=c,this.message=b.join("\n")}function L(a){return 1===a.length?a[0]:a}function M(){var a=g.dependencies.indexedDB,b=a&&(a.getDatabaseNames||a.webkitGetDatabaseNames);return b&&b.bind(a)}var N,O=function(){function b(a){s.push([a,n.call(arguments,1)])}function c(){var b,c,d,e=s;for(s=[],b=0,c=e.length;c>b;++b)d=e[b],d[0].apply(a,d[1])}function d(a){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof a)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],this._catched=!1;var b=this,c=!0;this._PSD=d.PSD;try{m(this,a,function(a){c?p(i,b,a):i(b,a)},function(a){return c?(p(j,b,a),!1):j(b,a)})}finally{c=!1}}function e(a,e){var f,h,i,j,k,l;if(null===a._state)return void a._deferreds.push(e);if(f=a._state?e.onFulfilled:e.onRejected,null===f)return(a._state?e.resolve:e.reject)(a._value);i=q,q=!1,p=b;try{j=d.PSD,d.PSD=a._PSD,h=f(a._value),a._state||h&&"function"==typeof h.then&&h._state===!1||g(a),e.resolve(h)}catch(m){if(k=e.reject(m),!k&&a.onuncatched)try{a.onuncatched(m)}catch(m){}}finally{if(d.PSD=j,i){do{for(;s.length>0;)c();if(l=t.pop())try{l()}catch(m){}}while(t.length>0||s.length>0);p=o,q=!0}}}function f(a){var d,e=q;q=!1,p=b;try{a()}finally{if(e){do{for(;s.length>0;)c();if(d=t.pop())try{d()}catch(f){}}while(t.length>0||s.length>0);p=o,q=!0}}}function g(a){a._catched=!0,a._parent&&g(a._parent)}function i(a,b){var c=d.PSD;d.PSD=a._PSD;try{if(b===a)throw new TypeError("A promise cannot be resolved with itself.");if(b&&("object"==typeof b||"function"==typeof b)&&"function"==typeof b.then)return void m(a,function(a,c){b.then(a,c)},function(b){i(a,b)},function(b){j(a,b)});a._state=!0,a._value=b,k.call(a)}catch(e){j(e)}finally{d.PSD=c}}function j(a,b){var c=d.PSD;if(d.PSD=a._PSD,a._state=!1,a._value=b,k.call(a),!a._catched)try{a.onuncatched&&a.onuncatched(a._value),d.on.error.fire(a._value)}catch(e){}return d.PSD=c,a._catched}function k(){for(var a=0,b=this._deferreds.length;b>a;a++)e(this,this._deferreds[a]);this._deferreds=[]}function l(a,b,c,d){this.onFulfilled="function"==typeof a?a:null,this.onRejected="function"==typeof b?b:null,this.resolve=c,this.reject=d}function m(a,b,c,d){var e=!1;try{b(function(a){e||(e=!0,c(a))},function(b){return e?a._catched:(e=!0,d(b))})}catch(f){return e?void 0:d(f)}}var n=[].slice,o="undefined"==typeof setImmediate?function(b){var c=arguments;setTimeout(function(){b.apply(a,n.call(c,1))},0)}:setImmediate,p=o,q=!0,s=[],t=[];return d.on=r(null,"error"),d.all=function(){var a=Array.prototype.slice.call(1===arguments.length&&Array.isArray(arguments[0])?arguments[0]:arguments);return new d(function(b,c){function d(f,g){try{if(g&&("object"==typeof g||"function"==typeof g)){var h=g.then;if("function"==typeof h)return void h.call(g,function(a){d(f,a)},c)}a[f]=g,0==--e&&b(a)}catch(i){c(i)}}var e,f;if(0===a.length)return b([]);for(e=a.length,f=0;fd;d++)f=g[d],this.options[f]=f in c?c[f]:b.defaultOptions[f];for(d=0,g=["searchFn","sortFn","keys","getFn"],e=g.length;e>d;d++)f=g[d],this.options[f]=c[f]||b.defaultOptions[f]}var c=function(a,b){if(b=b||{},this.options=b,this.options.location=b.location||c.defaultOptions.location,this.options.distance="distance"in b?b.distance:c.defaultOptions.distance,this.options.threshold="threshold"in b?b.threshold:c.defaultOptions.threshold,this.options.maxPatternLength=b.maxPatternLength||c.defaultOptions.maxPatternLength,this.pattern=b.caseSensitive?a:a.toLowerCase(),this.patternLen=a.length,this.patternLen>this.options.maxPatternLength)throw new Error("Pattern length is too long");this.matchmask=1<d;)this._bitapScore(b,l+e)<=m?d=e:o=e,e=Math.floor((o-d)/2+d);for(o=e,f=Math.max(1,l-e+1),g=Math.min(l+e,k)+this.patternLen,h=Array(g+2),h[g+1]=(1<=f;c--)if(j=this.patternAlphabet[a.charAt(c-1)],h[c]=0===b?(h[c+1]<<1|1)&j:(h[c+1]<<1|1)&j|((i[c+1]|i[c])<<1|1)|i[c+1],h[c]&this.matchmask&&(p=this._bitapScore(b,c-1),m>=p)){if(m=p,n=c-1,q.push(n),!(n>l))break;f=Math.max(1,2*l-n)}if(this._bitapScore(b+1,l)>m)break;i=h}return{isMatch:n>=0,score:p}};var d=function(a,b,c){var f,g,h;if(b){h=b.indexOf("."),-1!==h?(f=b.slice(0,h),g=b.slice(h+1)):f=b;var i=a[f];if(i)if(g||"string"!=typeof i&&"number"!=typeof i)if(e.isArray(i))for(var j=0,k=i.length;k>j;j++)d(i[j],g,c);else g&&d(i,g,c);else c.push(i)}else c.push(a);return c},e={deepValue:function(a,b){return d(a,b,[])},isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)}};b.defaultOptions={id:null,caseSensitive:!1,includeScore:!1,shouldSort:!0,searchFn:c,sortFn:function(a,b){return a.score-b.score},getFn:e.deepValue,keys:[]},b.prototype.set=function(a){return this.list=a,a},b.prototype.search=function(a){var b,c,d,f,g=new this.options.searchFn(a,this.options),h=this.list,i=h.length,j=this.options,k=this.options.keys,l=k.length,m=[],n={},o=[],p=function(a,b,c){if(void 0!==a&&null!==a)if("string"==typeof a)d=g.search(a),d.isMatch&&(f=n[c],f?f.score=Math.min(f.score,d.score):(n[c]={item:b,score:d.score},m.push(n[c])));else if(e.isArray(a))for(var h=0;hq;q++)p(h[q],q,q);else for(var q=0;i>q;q++)for(c=h[q],b=0;l>b;b++)p(j.getFn(c,k[b]),c,q);j.shouldSort&&m.sort(j.sortFn);for(var r=j.includeScore?function(a){return m[a]}:function(a){return m[a].item},s=j.id?function(a){m[a].item=j.getFn(m[a].item,j.id)[0]}:function(){},q=0,t=m.length;t>q;q++)s(q),o.push(r(q));return o},"object"==typeof exports?module.exports=b:"function"==typeof define&&define.amd?define(function(){return b}):a.Fuse=b}(this),angular.module("mldocsApp").run(["$templateCache",function(a){a.put("app/main/detail.html","
"),a.put("app/main/list.html","

{{$state.params.lib}}({{list.length}})

- Name + Names Description
{{::item['http-verb']}} {{::item.lib}}:{{::item.apiName}}
NamesDescription
{{::item['http-verb']}} {{::item.lib}}:{{::item.apiName}}{{::item.summary | cut:true:150 }}
"),a.put("app/main/main.html",'
{{suggest}}No matches found for "{{query.q}}".
Search

Found {{results.length}} APIs

{{::item.lib}}:{{::item.apiName}} ({{::item.bucket}})

{{::item.summary | cut:true:220}}

'),a.put("app/main/navbar.html",'
sidebar ML Docslite in offline modeDon\'t worry! you can still search apis Savesave docs for offline access
'),a.put("app/main/partials/api.detail.partial.html",'

{{::api.lib}}:{{::api.apiName}}()

Summary

{{::api.summary}}

Usage

\n        {{::api.lib}}:{{::api.apiName}}(){ \n        \n        {{::param.name}} as {{::param.type}}\n         \n        } as {{::api.return}}\n        

Parameters

NameRequiredDescription
{{::param.name}}{{::param.required}}{{::param.description}}

Example

{{::example}}
'),a.put("app/main/partials/intro.partial.html",'
Find your API in 3 simple steps....even offline!
Get in

Find your API

Get out
'), +a.put("app/main/partials/progress.partial.html","



"),a.put("app/main/partials/restapi.detail.partial.html",'

{{api.lib}}: {{api[\'http-verb\']}} {{api.apiName}}

Summary

{{api.summary}}

Parameters

NameTypeDescription
{{param.name}}{{param.type}}{{param.description}}

Headers

NameTypeDescription
{{header.name}}{{header.type}}{{header.description}}

Example

{{example}}
'),a.put("app/main/result.html",'

Results: ({{results.length}})

'),a.put("app/main/search.html",'Side barSearch'),a.put("app/main/sidebar.html",'
Modules
{{facet.name}} ({{facet.count}})
'),a.put("components/modal/modal.html",''),a.put("components/navbar/navbar.html",'')}]); \ No newline at end of file diff --git a/dist/public/app/c8d5270e.vendor.js b/dist/public/app/c8d5270e.vendor.js new file mode 100644 index 0000000..311db75 --- /dev/null +++ b/dist/public/app/c8d5270e.vendor.js @@ -0,0 +1,19 @@ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){function c(a){var b="length"in a&&a.length,c=_.type(a);return"function"===c||_.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}function d(a,b,c){if(_.isFunction(b))return _.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return _.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(ha.test(b))return _.filter(b,a,c);b=_.filter(b,a)}return _.grep(a,function(a){return U.call(b,a)>=0!==c})}function e(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function f(a){var b=oa[a]={};return _.each(a.match(na)||[],function(a,c){b[c]=!0}),b}function g(){Z.removeEventListener("DOMContentLoaded",g,!1),a.removeEventListener("load",g,!1),_.ready()}function h(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=_.expando+h.uid++}function i(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(ua,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:ta.test(c)?_.parseJSON(c):c}catch(e){}sa.set(a,b,c)}else c=void 0;return c}function j(){return!0}function k(){return!1}function l(){try{return Z.activeElement}catch(a){}}function m(a,b){return _.nodeName(a,"table")&&_.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function n(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function o(a){var b=Ka.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function p(a,b){for(var c=0,d=a.length;d>c;c++)ra.set(a[c],"globalEval",!b||ra.get(b[c],"globalEval"))}function q(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(ra.hasData(a)&&(f=ra.access(a),g=ra.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)_.event.add(b,e,j[e][c])}sa.hasData(a)&&(h=sa.access(a),i=_.extend({},h),sa.set(b,i))}}function r(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&_.nodeName(a,b)?_.merge([a],c):c}function s(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ya.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}function t(b,c){var d,e=_(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:_.css(e[0],"display");return e.detach(),f}function u(a){var b=Z,c=Oa[a];return c||(c=t(a,b),"none"!==c&&c||(Na=(Na||_("