├── www ├── lib │ ├── pouchdb │ │ ├── docs │ │ │ ├── _includes │ │ │ │ ├── code │ │ │ │ │ ├── end.html │ │ │ │ │ └── start.html │ │ │ │ ├── alert │ │ │ │ │ ├── end.html │ │ │ │ │ └── start.html │ │ │ │ ├── iframe.html │ │ │ │ ├── nav_item.html │ │ │ │ ├── anchor.html │ │ │ │ ├── guides_nav.html │ │ │ │ ├── img.html │ │ │ │ ├── nav.html │ │ │ │ ├── api │ │ │ │ │ ├── events.html │ │ │ │ │ ├── plugins.html │ │ │ │ │ ├── delete_database.html │ │ │ │ │ ├── debug_mode.html │ │ │ │ │ ├── delete_attachment.html │ │ │ │ │ ├── view_cleanup.html │ │ │ │ │ ├── api_overview.html │ │ │ │ │ ├── defaults.html │ │ │ │ │ ├── revisions_diff.html │ │ │ │ │ ├── compaction.html │ │ │ │ │ ├── database_information.html │ │ │ │ │ ├── sync.html │ │ │ │ │ ├── get_attachment.html │ │ │ │ │ └── fetch_document.html │ │ │ │ ├── social.html │ │ │ │ ├── api.html │ │ │ │ └── post_details.html │ │ │ ├── static │ │ │ │ ├── favicon.ico │ │ │ │ ├── img │ │ │ │ │ ├── fauxton.png │ │ │ │ │ ├── kittens.jpg │ │ │ │ │ ├── debug_mode.png │ │ │ │ │ ├── dev_tools.png │ │ │ │ │ ├── safari_popup.png │ │ │ │ │ ├── apple-indexeddb.png │ │ │ │ │ ├── cors_in_couchdb.png │ │ │ │ │ ├── kittens_small.jpg │ │ │ │ │ ├── pouchdb_inspector.png │ │ │ │ │ ├── safari_inspector.png │ │ │ │ │ ├── travis-screenshot.png │ │ │ │ │ ├── offline_replication.gif │ │ │ │ │ ├── screenshots │ │ │ │ │ │ └── todo-1.png │ │ │ │ │ ├── orson_welles_clapping.gif │ │ │ │ │ ├── browser-logos │ │ │ │ │ │ ├── opera_32x32.png │ │ │ │ │ │ ├── android_32x32.png │ │ │ │ │ │ ├── chrome_32x32.png │ │ │ │ │ │ ├── firefox_32x32.png │ │ │ │ │ │ ├── safari_32x32.png │ │ │ │ │ │ ├── blackberry_32x32.png │ │ │ │ │ │ ├── safari-ios_32x32.png │ │ │ │ │ │ ├── chrome-android_32x32.png │ │ │ │ │ │ ├── internet-explorer_32x32.png │ │ │ │ │ │ └── internet-explorer-tile_32x32.png │ │ │ │ │ ├── pepperidge_farm_remembers.png │ │ │ │ │ └── mark.svg │ │ │ │ ├── less │ │ │ │ │ ├── pouchdb │ │ │ │ │ │ ├── post.less │ │ │ │ │ │ ├── code.less │ │ │ │ │ │ ├── header.less │ │ │ │ │ │ ├── anchors.less │ │ │ │ │ │ ├── block.less │ │ │ │ │ │ ├── utilities.less │ │ │ │ │ │ ├── ribbon.less │ │ │ │ │ │ ├── mixins.less │ │ │ │ │ │ ├── scaffolding.less │ │ │ │ │ │ ├── buttons.less │ │ │ │ │ │ ├── logo.less │ │ │ │ │ │ ├── pouchdb.less │ │ │ │ │ │ ├── alerts.less │ │ │ │ │ │ ├── variables.less │ │ │ │ │ │ ├── navs.less │ │ │ │ │ │ ├── highlight.less │ │ │ │ │ │ └── icons.less │ │ │ │ │ └── bootstrap │ │ │ │ │ │ ├── component-animations.less │ │ │ │ │ │ ├── wells.less │ │ │ │ │ │ ├── breadcrumbs.less │ │ │ │ │ │ ├── close.less │ │ │ │ │ │ ├── thumbnails.less │ │ │ │ │ │ ├── utilities.less │ │ │ │ │ │ ├── jumbotron.less │ │ │ │ │ │ ├── media.less │ │ │ │ │ │ ├── pager.less │ │ │ │ │ │ ├── bootstrap.less │ │ │ │ │ │ ├── badges.less │ │ │ │ │ │ ├── labels.less │ │ │ │ │ │ ├── code.less │ │ │ │ │ │ ├── alerts.less │ │ │ │ │ │ ├── grid.less │ │ │ │ │ │ ├── progress-bars.less │ │ │ │ │ │ ├── print.less │ │ │ │ │ │ ├── pagination.less │ │ │ │ │ │ └── responsive-utilities.less │ │ │ │ ├── assets │ │ │ │ │ └── pouchdb-getting-started-todo.zip │ │ │ │ └── js │ │ │ │ │ ├── code.min.js │ │ │ │ │ └── code.js │ │ │ ├── _layouts │ │ │ │ ├── post.html │ │ │ │ ├── 2ColLeft.html │ │ │ │ └── guide.html │ │ │ ├── _config.yml │ │ │ ├── _plugins │ │ │ │ └── markdown.rb │ │ │ ├── _posts │ │ │ │ ├── 2014-08-16-pouchdb-3.0.1.md │ │ │ │ ├── 2014-08-20-pouchdb-3.0.2.md │ │ │ │ ├── 2014-04-01-welcome-to-the-pouchdb-blog.md │ │ │ │ ├── 2014-09-04-pouchdb-3.0.4.md │ │ │ │ ├── 2014-05-01-pouchdb-2.2.0.md │ │ │ │ ├── 2014-06-01-pouchdb-2.2.3.md │ │ │ │ ├── 2014-04-01-pouchdb-2.1.0.md │ │ │ │ ├── 2015-04-07-better-late-than-never.md │ │ │ │ └── 2014-08-29-pouchdb-3.0.3.md │ │ │ ├── _data │ │ │ │ └── authors.yml │ │ │ ├── blog │ │ │ │ └── index.html │ │ │ ├── api.html │ │ │ ├── feed.xml │ │ │ ├── _guides │ │ │ │ ├── setup-pouchdb.md │ │ │ │ └── local-documents.md │ │ │ └── manifest.appcache │ │ ├── lib │ │ │ ├── version-browser.js │ │ │ ├── adapters │ │ │ │ ├── preferredAdapters.js │ │ │ │ ├── preferredAdapters-browser.js │ │ │ │ ├── websql │ │ │ │ │ └── websql-constants.js │ │ │ │ ├── idb │ │ │ │ │ ├── idb-constants.js │ │ │ │ │ └── idb-blob-support.js │ │ │ │ └── leveldb │ │ │ │ │ └── leveldb-transaction.js │ │ │ ├── version.js │ │ │ ├── deps │ │ │ │ ├── buffer.js │ │ │ │ ├── buffer-browser.js │ │ │ │ ├── upsert.js │ │ │ │ ├── blob.js │ │ │ │ ├── parse-uri.js │ │ │ │ ├── parse-hex.js │ │ │ │ ├── uuid.js │ │ │ │ └── md5.js │ │ │ ├── evalFilter.js │ │ │ ├── evalView.js │ │ │ ├── index.js │ │ │ └── taskqueue.js │ │ ├── bin │ │ │ ├── publish-site.sh │ │ │ ├── get-version.js │ │ │ ├── run-csg-on-travis.sh │ │ │ ├── build-plugin.sh │ │ │ ├── build-all-plugins.sh │ │ │ ├── release.sh │ │ │ ├── run-couch-master-on-travis.sh │ │ │ ├── test-node.sh │ │ │ ├── run-coverage.js │ │ │ ├── build-site.js │ │ │ ├── add-license.js │ │ │ └── run-test.sh │ │ ├── scripts │ │ │ ├── bundle-browserify-test.sh │ │ │ ├── jenkins-deploy.sh │ │ │ ├── baldrick-test.sh │ │ │ └── start_standalone_couch.sh │ │ ├── component.json │ │ ├── bower.json │ │ ├── .bower.json │ │ └── README.md │ ├── ionic │ │ ├── fonts │ │ │ ├── ionicons.eot │ │ │ ├── ionicons.ttf │ │ │ └── ionicons.woff │ │ ├── scss │ │ │ ├── _progress.scss │ │ │ ├── _loaders.scss │ │ │ ├── _backdrop.scss │ │ │ ├── _split-pane.scss │ │ │ ├── ionicons │ │ │ │ ├── ionicons.scss │ │ │ │ ├── _ionicons-font.scss │ │ │ │ └── _ionicons-animation.scss │ │ │ ├── ionic.scss │ │ │ ├── _loading.scss │ │ │ ├── _slide-box.scss │ │ │ ├── _button-bar.scss │ │ │ ├── _menu.scss │ │ │ ├── _animations.scss │ │ │ ├── _radio.scss │ │ │ ├── _badge.scss │ │ │ ├── _platform.scss │ │ │ ├── _spinner.scss │ │ │ ├── _popup.scss │ │ │ └── _modal.scss │ │ ├── README.md │ │ ├── bower.json │ │ └── .bower.json │ ├── angular │ │ ├── angular.min.js.gzip │ │ ├── bower.json │ │ ├── angular-csp.css │ │ ├── .bower.json │ │ ├── package.json │ │ └── README.md │ ├── angular-animate │ │ ├── bower.json │ │ ├── .bower.json │ │ ├── package.json │ │ └── README.md │ ├── angular-sanitize │ │ ├── bower.json │ │ ├── .bower.json │ │ ├── package.json │ │ └── README.md │ └── angular-ui-router │ │ ├── bower.json │ │ ├── .bower.json │ │ ├── LICENSE │ │ └── src │ │ ├── stateFilters.js │ │ ├── viewScroll.js │ │ └── view.js ├── css │ └── style.css ├── img │ └── ionic.png └── js │ ├── app.js │ └── overview.controller.js ├── ionic.project ├── bower.json ├── README.md ├── package.json ├── config.xml ├── scss └── ionic.app.scss └── gulpfile.js /www/lib/pouchdb/docs/_includes/code/end.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/css/style.css: -------------------------------------------------------------------------------- 1 | /* Empty. Add your own CSS if you like */ 2 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/alert/end.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /www/lib/pouchdb/lib/version-browser.js: -------------------------------------------------------------------------------- 1 | module.exports = "3.4.0"; 2 | -------------------------------------------------------------------------------- /www/lib/pouchdb/lib/adapters/preferredAdapters.js: -------------------------------------------------------------------------------- 1 | module.exports = ['leveldb']; -------------------------------------------------------------------------------- /ionic.project: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ionic-tutorial-pouchdb", 3 | "app_id": "" 4 | } -------------------------------------------------------------------------------- /www/lib/pouchdb/lib/version.js: -------------------------------------------------------------------------------- 1 | module.exports = require('../package.json').version; -------------------------------------------------------------------------------- /www/lib/pouchdb/lib/adapters/preferredAdapters-browser.js: -------------------------------------------------------------------------------- 1 | module.exports = ['idb', 'websql']; -------------------------------------------------------------------------------- /www/img/ionic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/img/ionic.png -------------------------------------------------------------------------------- /www/lib/pouchdb/lib/deps/buffer.js: -------------------------------------------------------------------------------- 1 | //this soley exists so we can exclude it in browserify 2 | module.exports = Buffer; -------------------------------------------------------------------------------- /www/lib/pouchdb/lib/deps/buffer-browser.js: -------------------------------------------------------------------------------- 1 | // hey guess what, we don't need this in the browser 2 | module.exports = {}; -------------------------------------------------------------------------------- /www/lib/ionic/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/ionic/fonts/ionicons.eot -------------------------------------------------------------------------------- /www/lib/ionic/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/ionic/fonts/ionicons.ttf -------------------------------------------------------------------------------- /www/lib/ionic/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/ionic/fonts/ionicons.woff -------------------------------------------------------------------------------- /www/lib/angular/angular.min.js.gzip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/angular/angular.min.js.gzip -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/iframe.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/favicon.ico -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/fauxton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/fauxton.png -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/kittens.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/kittens.jpg -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/debug_mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/debug_mode.png -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/dev_tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/dev_tools.png -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/safari_popup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/safari_popup.png -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/pouchdb/post.less: -------------------------------------------------------------------------------- 1 | .post { 2 | margin-top: 10px; 3 | margin-bottom: 40px; 4 | &:last-of-type { margin-bottom: 10px; } 5 | } -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ionic-tutorial-pouchdb", 3 | "private": "true", 4 | "devDependencies": { 5 | "ionic": "driftyco/ionic-bower#1.0.0-rc.4" 6 | } 7 | } -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/apple-indexeddb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/apple-indexeddb.png -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/cors_in_couchdb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/cors_in_couchdb.png -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/kittens_small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/kittens_small.jpg -------------------------------------------------------------------------------- /www/lib/angular/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.3.13", 4 | "main": "./angular.js", 5 | "ignore": [], 6 | "dependencies": { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/pouchdb_inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/pouchdb_inspector.png -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/safari_inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/safari_inspector.png -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/travis-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/travis-screenshot.png -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/offline_replication.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/offline_replication.gif -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/screenshots/todo-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/screenshots/todo-1.png -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/pouchdb/code.less: -------------------------------------------------------------------------------- 1 | @import "@{bootstrap}/code.less"; 2 | 3 | pre { 4 | padding-left: @pre-padding; 5 | padding-right: @pre-padding; 6 | } 7 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/orson_welles_clapping.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/orson_welles_clapping.gif -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/browser-logos/opera_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/browser-logos/opera_32x32.png -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/pepperidge_farm_remembers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/pepperidge_farm_remembers.png -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/browser-logos/android_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/browser-logos/android_32x32.png -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/browser-logos/chrome_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/browser-logos/chrome_32x32.png -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/browser-logos/firefox_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/browser-logos/firefox_32x32.png -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/browser-logos/safari_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/browser-logos/safari_32x32.png -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/browser-logos/blackberry_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/browser-logos/blackberry_32x32.png -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/browser-logos/safari-ios_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/browser-logos/safari-ios_32x32.png -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/assets/pouchdb-getting-started-todo.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/assets/pouchdb-getting-started-todo.zip -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/browser-logos/chrome-android_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/browser-logos/chrome-android_32x32.png -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/browser-logos/internet-explorer_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/browser-logos/internet-explorer_32x32.png -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/img/browser-logos/internet-explorer-tile_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashteya/ionic-tutorial-pouchdb/HEAD/www/lib/pouchdb/docs/static/img/browser-logos/internet-explorer-tile_32x32.png -------------------------------------------------------------------------------- /www/lib/pouchdb/lib/deps/upsert.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var upsert = require('pouchdb-upsert').upsert; 4 | 5 | module.exports = function (db, doc, diffFun, cb) { 6 | return upsert.call(db, doc, diffFun, cb); 7 | }; 8 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/nav_item.html: -------------------------------------------------------------------------------- 1 |
  • 2 | {{ include.text }} 3 |
  • 4 | -------------------------------------------------------------------------------- /www/lib/angular-animate/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-animate", 3 | "version": "1.3.13", 4 | "main": "./angular-animate.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.3.13" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /www/lib/angular-sanitize/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-sanitize", 3 | "version": "1.3.13", 4 | "main": "./angular-sanitize.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.3.13" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_progress.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Progress 4 | * -------------------------------------------------- 5 | */ 6 | 7 | progress { 8 | display: block; 9 | margin: $progress-margin; 10 | width: $progress-width; 11 | } 12 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/pouchdb/header.less: -------------------------------------------------------------------------------- 1 | header { 2 | overflow-x: hidden; 3 | position: relative; 4 | padding: 25px 0; 5 | border-bottom: 2px solid; 6 | border-color: @header-border-color; 7 | background-color: @header-color; 8 | } -------------------------------------------------------------------------------- /www/lib/pouchdb/lib/evalFilter.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = evalFilter; 4 | function evalFilter(input) { 5 | /*jshint evil: true */ 6 | return eval([ 7 | '(function () { return ', 8 | input, 9 | ' })()' 10 | ].join('')); 11 | } -------------------------------------------------------------------------------- /www/lib/pouchdb/bin/publish-site.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Build the website 4 | BUILD=1 npm run build-site 5 | 6 | # Push the site live, requires credentials, open a bug 7 | # if you need to be able to push the site 8 | scp -r docs/_site/* pouchdb@pouchdb.com:/home/pouchdb/www/pouchdb.com/ 9 | -------------------------------------------------------------------------------- /www/lib/pouchdb/bin/get-version.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 'use strict'; 3 | var version = require('../package.json').version; 4 | var fs = require('fs'); 5 | var file = 'module.exports = "' + version + '";\n'; 6 | fs.writeFileSync('./lib/version-browser.js', file, { 7 | encoding: 'utf8' 8 | }); 9 | -------------------------------------------------------------------------------- /www/lib/pouchdb/scripts/bundle-browserify-test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo '' > test.html 4 | echo "" >> test.html 5 | echo "" >> test.html -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_layouts/post.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 |
    5 |
    6 |
    7 | {% include post_details.html %} 8 | 9 | {{ content }} 10 |
    11 |
    12 |
    13 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/anchor.html: -------------------------------------------------------------------------------- 1 | {% if include.class %} 2 | {% assign class = include.class %} 3 | {% else %} 4 | {% assign class = 'h2' %} 5 | {% endif %} 6 |
    7 | {{ include.title }} 8 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_config.yml: -------------------------------------------------------------------------------- 1 | name: PouchDB 2 | description: PouchDB, the JavaScript Database that Syncs! 3 | url: http://pouchdb.com 4 | highlighter: pygments 5 | markdown: redcarpet 6 | baseurl: 7 | version: 3.3.1 8 | paginate: 5 9 | paginate_path: "blog/page:num" 10 | collections: 11 | guides: 12 | output: true 13 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/pouchdb/anchors.less: -------------------------------------------------------------------------------- 1 | .anchor { 2 | &.h1, 3 | &.h2, 4 | &.h3, 5 | &.h4, 6 | &.h5, 7 | &.h6 { 8 | display: inline-block; 9 | text-decoration: none; 10 | } 11 | 12 | &::before { 13 | content: '# '; 14 | opacity: .25; 15 | } 16 | &:focus { outline: none; } 17 | } -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/guides_nav.html: -------------------------------------------------------------------------------- 1 | {% assign guides = (site.guides | sort: 'index') %} 2 | {% for guide in guides %} 3 | {% assign title = guide.title %} 4 | {% if guide.nav %} 5 | {% assign title = guide.nav %} 6 | {% endif %} 7 | {% include nav_item.html path=guide.url text=title %} 8 | {% endfor %} 9 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/pouchdb/block.less: -------------------------------------------------------------------------------- 1 | .block { 2 | @media (max-width: @screen-md-min) { 3 | > h1, > h2, > h3, > h4, > h5, > h6, 4 | > .h1, > .h2, > .h3, > .h4, > .h5, > .h6, 5 | > p { 6 | text-align: center; 7 | } 8 | > p { 9 | margin: 0 auto; 10 | max-width: 60%; 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /www/lib/angular/angular-csp.css: -------------------------------------------------------------------------------- 1 | /* Include this file in your html if you are using the CSP mode. */ 2 | 3 | @charset "UTF-8"; 4 | 5 | [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], 6 | .ng-cloak, .x-ng-cloak, 7 | .ng-hide:not(.ng-hide-animate) { 8 | display: none !important; 9 | } 10 | 11 | ng\:form { 12 | display: block; 13 | } 14 | -------------------------------------------------------------------------------- /www/lib/pouchdb/scripts/jenkins-deploy.sh: -------------------------------------------------------------------------------- 1 | ROOT=$(pwd) 2 | 3 | # Build the docs 4 | cd $ROOT/docs 5 | jekyll 6 | 7 | # Publish docs 8 | cp -R $ROOT/docs/_site/* /home/daleharvey/www/pouchdb.com 9 | 10 | # Build 11 | cd $ROOT 12 | npm install 13 | 14 | grunt 15 | grunt spatial 16 | grunt gql 17 | 18 | cp $ROOT/dist/* /home/daleharvey/www/download.pouchdb.com -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/alert/start.html: -------------------------------------------------------------------------------- 1 | {% if include.variant == "success" %} 2 |
    3 | {% elsif include.variant == "warning" %} 4 |
    5 | {% elsif include.variant == "danger" %} 6 |
    7 | {% else %} 8 |
    9 | {% endif %} 10 | 11 |
    12 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/img.html: -------------------------------------------------------------------------------- 1 | {% if include.href %} 2 | {% assign href = include.href %} 3 | {% else %} 4 | {% capture href %}{{ site.baseurl }}/static/img/{{ include.src }}{% endcapture %} 5 | {% endif %} 6 | 7 | 8 | {{ include.alt }} 9 | 10 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_plugins/markdown.rb: -------------------------------------------------------------------------------- 1 | module Jekyll 2 | class MarkdownBlock < Liquid::Block 3 | def initialize(tag_name, text, tokens) 4 | super 5 | end 6 | require "kramdown" 7 | def render(context) 8 | content = super 9 | "#{Kramdown::Document.new(content).to_html}" 10 | end 11 | end 12 | end 13 | Liquid::Template.register_tag('markdown', Jekyll::MarkdownBlock) -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ionic-tutorial-pouchdb 2 | 3 | This code is part of a tutorial on how to use PouchDB and SQLite for local storage in Ionic apps. 4 | 5 | Read the tutorial here: [How To Use PouchDB + SQLite For Local Storage In Your Ionic App](http://gonehybrid.com/how-to-use-pouchdb-sqlite-for-local-storage-in-your-ionic-app/) 6 | 7 | For more tutorials on Ionic, check out my blog [Gone Hybrid](http://gonehybrid.com). 8 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/code/start.html: -------------------------------------------------------------------------------- 1 | {% if include.type == 'promise' %} 2 | {% assign class = 'active' %} 3 | {% else %} 4 | {% assign class = '' %} 5 | {% endif %} 6 | {{ include.type | capitalize }}: 7 | 8 |
    14 | -------------------------------------------------------------------------------- /www/lib/pouchdb/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pouchdb", 3 | "version": "3.4.0", 4 | "description": "PouchDB is a pocket-sized database.", 5 | "repo": "daleharvey/pouchdb", 6 | "keywords": [ 7 | "db", 8 | "couchdb", 9 | "pouchdb" 10 | ], 11 | "dependencies": {}, 12 | "development": {}, 13 | "license": "Apache", 14 | "main": "dist/pouchdb.js", 15 | "scripts": [ 16 | "dist/pouchdb.js" 17 | ] 18 | } -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/pouchdb/utilities.less: -------------------------------------------------------------------------------- 1 | @import "@{bootstrap}/utilities.less"; 2 | 3 | .affix { 4 | padding: 1em 0; 5 | position: static; 6 | } 7 | 8 | @media (min-width: @affix-min-width) and (min-height: @affix-min-height) { 9 | 10 | .affix { position: fixed; } 11 | 12 | .affix, 13 | .affix-top { 14 | top: 0; 15 | } 16 | 17 | .affix-top, 18 | .affix-bottom { 19 | position: absolute; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_loaders.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Loaders (Spinners) 3 | * -------------------------------------------------- 4 | */ 5 | 6 | svg.loader { 7 | width: 28px; 8 | height: 28px; 9 | stroke: #333; 10 | fill: #333; 11 | } 12 | 13 | .loader-ios, 14 | .loader-ios-small { 15 | 16 | line { 17 | stroke: #69717d; 18 | } 19 | 20 | } 21 | 22 | .loader-android { 23 | 24 | circle { 25 | stroke: #4b8bf4; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_backdrop.scss: -------------------------------------------------------------------------------- 1 | 2 | .backdrop { 3 | position: fixed; 4 | top: 0; 5 | left: 0; 6 | z-index: $z-index-backdrop; 7 | 8 | width: 100%; 9 | height: 100%; 10 | 11 | background-color: $loading-backdrop-bg-color; 12 | 13 | visibility: hidden; 14 | opacity: 0; 15 | 16 | &.visible { 17 | visibility: visible; 18 | } 19 | &.active { 20 | opacity: 1; 21 | } 22 | 23 | @include transition($loading-backdrop-fadein-duration opacity linear); 24 | } 25 | -------------------------------------------------------------------------------- /www/lib/pouchdb/bin/run-csg-on-travis.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | set -x 4 | 5 | CWD=$(pwd) 6 | 7 | # Install CSG 8 | curl -o csg.deb http://packages.couchbase.com/releases/couchbase-sync-gateway/1.0.3/couchbase-sync-gateway-community_1.0.3_x86_64.deb 9 | 10 | sudo dpkg -i csg.deb 11 | 12 | # Run CSG 13 | /opt/couchbase-sync-gateway/bin/sync_gateway ./tests/misc/sync-gateway-config.json >sg.log 2>&1 < /dev/null & 14 | 15 | # Lets get rid of this at some point :) 16 | sleep 2 17 | 18 | cd $CWD 19 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/nav.html: -------------------------------------------------------------------------------- 1 | {% include nav_item.html path="/learn.html" text="About PouchDB" %} 2 | {% include nav_item.html path="/getting-started.html" text="Get Started Guide" %} 3 | {% include nav_item.html path="/api.html" text="API" %} 4 | {% include nav_item.html path="/adapters.html" text="Adapters" %} 5 | {% include nav_item.html path="/external.html" text="Plugins" %} 6 | {% include nav_item.html path="/faq.html" text="FAQ" %} 7 | {% include nav_item.html path="/errors.html" text="Common Errors" %} 8 | -------------------------------------------------------------------------------- /www/lib/angular-ui-router/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-ui-router", 3 | "version": "0.2.13", 4 | "main": "./release/angular-ui-router.js", 5 | "dependencies": { 6 | "angular": ">= 1.0.8" 7 | }, 8 | "ignore": [ 9 | "**/.*", 10 | "node_modules", 11 | "bower_components", 12 | "component.json", 13 | "package.json", 14 | "lib", 15 | "config", 16 | "sample", 17 | "test", 18 | "tests", 19 | "ngdoc_assets", 20 | "Gruntfile.js", 21 | "files.js" 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /www/lib/angular/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.3.13", 4 | "main": "./angular.js", 5 | "ignore": [], 6 | "dependencies": {}, 7 | "homepage": "https://github.com/angular/bower-angular", 8 | "_release": "1.3.13", 9 | "_resolution": { 10 | "type": "version", 11 | "tag": "v1.3.13", 12 | "commit": "ad68cfecb69ff7cacb27813377ce9d95e072529b" 13 | }, 14 | "_source": "git://github.com/angular/bower-angular.git", 15 | "_target": "1.3.13", 16 | "_originalSource": "angular" 17 | } -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/pouchdb/ribbon.less: -------------------------------------------------------------------------------- 1 | .ribbon { 2 | z-index: 1; 3 | position: absolute; 4 | top: 0; right: 0; 5 | padding: .1em 3em; 6 | border: 1px solid rgba(0,0,0,.1); 7 | background-color: @gray-lighter; 8 | color: @text-color; 9 | font-weight: bold; 10 | -webkit-transform: translateX(75%) rotate(45deg) translateX(-30%); 11 | transform: translateX(75%) rotate(45deg) translateX(-30%); 12 | -webkit-transform-origin: top left; 13 | transform-origin: top left; 14 | } -------------------------------------------------------------------------------- /www/lib/ionic/README.md: -------------------------------------------------------------------------------- 1 | # ionic-bower 2 | 3 | Bower repository for [Ionic Framework](http://github.com/driftyco/ionic) 4 | 5 | ### Usage 6 | 7 | Include `js/ionic.bundle.js` to get ionic and all of its dependencies. 8 | 9 | Alternatively, include the individual ionic files with the dependencies separately. 10 | 11 | ### Versions 12 | 13 | To install the latest stable version, `bower install driftyco/ionic-bower#v1.0.0-beta.13` 14 | 15 | To install the latest nightly release, `bower install driftyco/ionic-bower#master` 16 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/api/events.html: -------------------------------------------------------------------------------- 1 | {% include anchor.html title="Events" hash="events" %} 2 | 3 | PouchDB is an [event emitter][event emitter] and will emit a `'created'` event when a database is created. A `'destroyed'` event is emitted when a database is destroyed. 4 | 5 | {% highlight js %} 6 | PouchDB.on('created', function (dbName) { 7 | // called whenver a db is created. 8 | }); 9 | PouchDB.on('destroyed', function (dbName) { 10 | // called whenver a db is destroyed. 11 | }); 12 | {% endhighlight %} 13 | 14 | 15 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/social.html: -------------------------------------------------------------------------------- 1 | {% for author in site.data.authors %} 2 | {% if author.name == page.author %} 3 | {% capture author_twitter %}@{{ author.twitter }}{% endcapture %} 4 | {% endif %} 5 | {% endfor %} 6 | View on GitHub 7 | Tweet this article -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_posts/2014-08-16-pouchdb-3.0.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | 4 | title: PouchDB 3.0.1 5 | 6 | author: Nolan Lawson 7 | 8 | --- 9 | 10 | [PouchDB 3.0.1](https://github.com/pouchdb/pouchdb/releases/tag/3.0.1) is a patch release to fix a migration bug in PouchDB 3.0.0 ([#2456](https://github.com/pouchdb/pouchdb/issues/2456)). Please upgrade your existing users directly from 2.2.3 and do not use 3.0.0. 11 | 12 | This release also contains a small performance boost for `bulkDocs()` ([#2553](https://github.com/pouchdb/pouchdb/issues/2553)). -------------------------------------------------------------------------------- /www/lib/pouchdb/lib/evalView.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = evalView; 4 | function evalView(input) { 5 | /*jshint evil: true */ 6 | return eval([ 7 | '(function () {', 8 | ' return function (doc) {', 9 | ' var emitted = false;', 10 | ' var emit = function (a, b) {', 11 | ' emitted = true;', 12 | ' };', 13 | ' var view = ' + input + ';', 14 | ' view(doc);', 15 | ' if (emitted) {', 16 | ' return true;', 17 | ' }', 18 | ' }', 19 | '})()' 20 | ].join('\n')); 21 | } -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/pouchdb/mixins.less: -------------------------------------------------------------------------------- 1 | @import "@{bootstrap}/mixins.less"; 2 | 3 | // Intrinsic Ratio Helper 4 | // https://github.com/nickcolley/intrinsic-ratio-less 5 | 6 | 7 | // Intrinsic ratio 8 | .ir(@ratio: 16/9, @width: 100%, @margin: auto) { 9 | position: relative; 10 | margin: @margin; 11 | width: unit(@width, ~'%'); 12 | height: 0; 13 | padding-bottom: unit(@width / @ratio, ~'%'); 14 | > iframe { 15 | position: absolute; 16 | width: 100%; 17 | height: 100%; 18 | border: 0; 19 | } 20 | } 21 | 22 | .iframe-responsive { .ir(); } 23 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_layouts/2ColLeft.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 |
    6 |
    7 |
    8 | 15 | 16 |
    17 | {{content}} 18 |
    19 | 20 |
    21 | 22 |
    23 | 24 |
    25 | -------------------------------------------------------------------------------- /www/lib/angular-animate/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-animate", 3 | "version": "1.3.13", 4 | "main": "./angular-animate.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.3.13" 8 | }, 9 | "homepage": "https://github.com/angular/bower-angular-animate", 10 | "_release": "1.3.13", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "v1.3.13", 14 | "commit": "f18cb98590471ad9c1e5ae0e57178e9ecb8d384c" 15 | }, 16 | "_source": "git://github.com/angular/bower-angular-animate.git", 17 | "_target": "1.3.13", 18 | "_originalSource": "angular-animate" 19 | } -------------------------------------------------------------------------------- /www/lib/angular-sanitize/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-sanitize", 3 | "version": "1.3.13", 4 | "main": "./angular-sanitize.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.3.13" 8 | }, 9 | "homepage": "https://github.com/angular/bower-angular-sanitize", 10 | "_release": "1.3.13", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "v1.3.13", 14 | "commit": "ee7a595d32ae566701da29873eb1dfb466e3cfef" 15 | }, 16 | "_source": "git://github.com/angular/bower-angular-sanitize.git", 17 | "_target": "1.3.13", 18 | "_originalSource": "angular-sanitize" 19 | } -------------------------------------------------------------------------------- /www/lib/pouchdb/bin/build-plugin.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -z "$LEVEL_BACKEND" ]; then 4 | echo "Error: must specify LEVEL_BACKEND parameter." 5 | exit 1 6 | fi 7 | 8 | if [ -z "$OUTPUT_FILENAME" ]; then 9 | echo "Error: must specify OUTPUT_FILENAME parameter." 10 | exit 1 11 | fi 12 | DEREQUIRE=./node_modules/.bin/derequire 13 | 14 | ./node_modules/.bin/browserify lib/plugins/index.js \ 15 | -r $LEVEL_BACKEND \ 16 | -x pouchdb \ 17 | -r ./lib/plugins/config-$LEVEL_BACKEND.js:adapter-config \ 18 | -r ./lib/plugins/migrate-browser.js:migrate \ 19 | | $DEREQUIRE > ./dist/$OUTPUT_FILENAME 20 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ionic-tutorial-pouchdb", 3 | "version": "1.0.0", 4 | "description": "ionic-tutorial-pouchdb: An Ionic project", 5 | "dependencies": { 6 | "gulp": "^3.5.6", 7 | "gulp-sass": "^1.3.3", 8 | "gulp-concat": "^2.2.0", 9 | "gulp-minify-css": "^0.3.0", 10 | "gulp-rename": "^1.2.0" 11 | }, 12 | "devDependencies": { 13 | "bower": "^1.3.3", 14 | "gulp-util": "^2.2.14", 15 | "shelljs": "^0.3.0" 16 | }, 17 | "cordovaPlugins": [ 18 | "org.apache.cordova.device", 19 | "org.apache.cordova.console", 20 | "com.ionic.keyboard" 21 | ], 22 | "cordovaPlatforms": [] 23 | } -------------------------------------------------------------------------------- /www/lib/pouchdb/bin/build-all-plugins.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | LEVEL_BACKEND=memdown \ 4 | OUTPUT_FILENAME=pouchdb.memory.js \ 5 | ./bin/build-plugin.sh 6 | 7 | LEVEL_BACKEND=localstorage-down \ 8 | OUTPUT_FILENAME=pouchdb.localstorage.js \ 9 | ./bin/build-plugin.sh 10 | 11 | LEVEL_BACKEND=level-js \ 12 | OUTPUT_FILENAME=pouchdb.idb-alt.js \ 13 | ./bin/build-plugin.sh 14 | 15 | UGLIFY=./node_modules/uglify-js/bin/uglifyjs 16 | 17 | $UGLIFY dist/pouchdb.memory.js -mc > dist/pouchdb.memory.min.js 18 | $UGLIFY dist/pouchdb.localstorage.js -mc > dist/pouchdb.localstorage.min.js 19 | $UGLIFY dist/pouchdb.idb-alt.js -mc > dist/pouchdb.idb-alt.min.js -------------------------------------------------------------------------------- /www/lib/pouchdb/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pouchdb", 3 | "version": "3.4.0", 4 | "description": "PouchDB is a pocket-sized database.", 5 | "repo": "daleharvey/pouchdb", 6 | "keywords": [ 7 | "db", 8 | "couchdb", 9 | "pouchdb" 10 | ], 11 | "dependencies": {}, 12 | "development": {}, 13 | "license": "Apache", 14 | "main": "dist/pouchdb.js", 15 | "scripts": [ 16 | "dist/pouchdb.js", 17 | "dist/pouchdb.min.js" 18 | ], 19 | "ignore": [ 20 | "**/.*", 21 | "node_modules", 22 | "bower_components", 23 | "tests", 24 | "vendor", 25 | "npm-debug.log", 26 | "phantomjsdriver.log" 27 | ] 28 | } -------------------------------------------------------------------------------- /www/lib/ionic/scss/_split-pane.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Split Pane 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .split-pane { 8 | @include display-flex(); 9 | @include align-items(stretch); 10 | width: 100%; 11 | height: 100%; 12 | } 13 | 14 | .split-pane-menu { 15 | @include flex(0, 0, $split-pane-menu-width); 16 | 17 | overflow-y: auto; 18 | width: $split-pane-menu-width; 19 | height: 100%; 20 | border-right: 1px solid $split-pane-menu-border-color; 21 | 22 | @media all and (max-width: 568px) { 23 | border-right: none; 24 | } 25 | } 26 | 27 | .split-pane-content { 28 | @include flex(1, 0, auto); 29 | } 30 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/ionicons/ionicons.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | @import "ionicons-variables"; 3 | /*! 4 | Ionicons, v2.0.1 5 | Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ 6 | https://twitter.com/benjsperry https://twitter.com/ionicframework 7 | MIT License: https://github.com/driftyco/ionicons 8 | 9 | Android-style icons originally built by Google’s 10 | Material Design Icons: https://github.com/google/material-design-icons 11 | used under CC BY http://creativecommons.org/licenses/by/4.0/ 12 | Modified icons to fit ionicon’s grid from original. 13 | */ 14 | 15 | @import "ionicons-font"; 16 | @import "ionicons-icons"; 17 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/bootstrap/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twitter/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | .transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .collapse { 19 | display: none; 20 | &.in { 21 | display: block; 22 | } 23 | } 24 | .collapsing { 25 | position: relative; 26 | height: 0; 27 | overflow: hidden; 28 | .transition(height .35s ease); 29 | } 30 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/bootstrap/wells.less: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: @well-bg; 12 | border: 1px solid @well-border; 13 | border-radius: @border-radius-base; 14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-lg { 23 | padding: 24px; 24 | border-radius: @border-radius-large; 25 | } 26 | .well-sm { 27 | padding: 9px; 28 | border-radius: @border-radius-small; 29 | } 30 | -------------------------------------------------------------------------------- /www/lib/angular/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.3.13", 4 | "description": "HTML enhanced for web apps", 5 | "main": "angular.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/angular/angular.js.git" 12 | }, 13 | "keywords": [ 14 | "angular", 15 | "framework", 16 | "browser", 17 | "client-side" 18 | ], 19 | "author": "Angular Core Team ", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/angular/angular.js/issues" 23 | }, 24 | "homepage": "http://angularjs.org" 25 | } 26 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/pouchdb/scaffolding.less: -------------------------------------------------------------------------------- 1 | @import "@{bootstrap}/scaffolding.less"; 2 | 3 | blockquote { 4 | font-size: 1.1em; 5 | border-left-color: #ddf3e7; 6 | cite { font-size: 1.2em; } 7 | } 8 | 9 | // Temporary fix for Jekyll's P tags all over the place. :/ 10 | p:empty { display: none; } 11 | 12 | .intro, 13 | .infoblocks, 14 | .icons, 15 | .footer { 16 | padding: 20px 0 30px; 17 | } 18 | .page-head { padding: 10px 0 20px; } 19 | 20 | article { padding: 20px 0 75px; } 21 | 22 | .page-head, 23 | .intro, 24 | .blog, 25 | .footer { 26 | background-color: @gray-lighter; 27 | } 28 | 29 | .intro .highlight { margin-top: 2em; } 30 | .icons { border-top: 20px solid @gray-lighter; } 31 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_posts/2014-08-20-pouchdb-3.0.2.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | 4 | title: PouchDB 3.0.2 5 | 6 | author: Nolan Lawson 7 | 8 | --- 9 | 10 | [PouchDB 3.0.2](https://github.com/pouchdb/pouchdb/releases/tag/3.0.2) is another small patch release, this time to fix a bug in replication of deleted documents ([#2636](https://github.com/pouchdb/pouchdb/issues/2636)). 11 | 12 | Other fixes: 13 | 14 | * Ensure PouchDB stops writing after replication is over ([#2639](https://github.com/pouchdb/pouchdb/issues/2639)) 15 | * Fix a race condition in LevelDB ([#2631](https://github.com/pouchdb/pouchdb/issues/2631)) 16 | * Allow special URI characters in doc IDs ([#2651](https://github.com/pouchdb/pouchdb/issues/2651)) -------------------------------------------------------------------------------- /www/lib/angular-animate/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-animate", 3 | "version": "1.3.13", 4 | "description": "AngularJS module for animations", 5 | "main": "angular-animate.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/angular/angular.js.git" 12 | }, 13 | "keywords": [ 14 | "angular", 15 | "framework", 16 | "browser", 17 | "animation", 18 | "client-side" 19 | ], 20 | "author": "Angular Core Team ", 21 | "license": "MIT", 22 | "bugs": { 23 | "url": "https://github.com/angular/angular.js/issues" 24 | }, 25 | "homepage": "http://angularjs.org" 26 | } 27 | -------------------------------------------------------------------------------- /www/lib/angular-sanitize/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-sanitize", 3 | "version": "1.3.13", 4 | "description": "AngularJS module for sanitizing HTML", 5 | "main": "angular-sanitize.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/angular/angular.js.git" 12 | }, 13 | "keywords": [ 14 | "angular", 15 | "framework", 16 | "browser", 17 | "html", 18 | "client-side" 19 | ], 20 | "author": "Angular Core Team ", 21 | "license": "MIT", 22 | "bugs": { 23 | "url": "https://github.com/angular/angular.js/issues" 24 | }, 25 | "homepage": "http://angularjs.org" 26 | } 27 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/bootstrap/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; 8 | margin-bottom: @line-height-computed; 9 | list-style: none; 10 | background-color: @breadcrumb-bg; 11 | border-radius: @border-radius-base; 12 | 13 | > li { 14 | display: inline-block; 15 | 16 | + li:before { 17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space 18 | padding: 0 5px; 19 | color: @breadcrumb-color; 20 | } 21 | } 22 | 23 | > .active { 24 | color: @breadcrumb-active-color; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /www/js/app.js: -------------------------------------------------------------------------------- 1 | // Ionic Starter App 2 | 3 | // angular.module is a global place for creating, registering and retrieving Angular modules 4 | // 'starter' is the name of this angular module example (also set in a attribute in index.html) 5 | // the 2nd parameter is an array of 'requires' 6 | angular.module('starter', ['ionic']) 7 | 8 | .run(function($ionicPlatform) { 9 | $ionicPlatform.ready(function() { 10 | // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard 11 | // for form inputs) 12 | if(window.cordova && window.cordova.plugins.Keyboard) { 13 | cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 14 | } 15 | if(window.StatusBar) { 16 | StatusBar.styleDefault(); 17 | } 18 | }); 19 | }) 20 | -------------------------------------------------------------------------------- /www/lib/pouchdb/bin/release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #make sure deps are up to date 4 | rm -r node_modules 5 | npm install 6 | 7 | # get current version 8 | VERSION=$(node --eval "console.log(require('./package.json').version);") 9 | 10 | # Build 11 | git checkout -b build 12 | 13 | npm run build 14 | 15 | # Publish npm release with tests/scripts/goodies 16 | npm publish 17 | 18 | # Create git tag, which is also the Bower/Github release 19 | git add dist -f 20 | git add bower.json component.json package.json lib/version-browser.js 21 | git rm -r bin docs scripts tests vendor 22 | 23 | git commit -m "build $VERSION" 24 | 25 | # Tag and push 26 | git tag $VERSION 27 | git push --tags git@github.com:pouchdb/pouchdb.git $VERSION 28 | 29 | # Cleanup 30 | git checkout master 31 | git branch -D build 32 | -------------------------------------------------------------------------------- /www/lib/pouchdb/bin/run-couch-master-on-travis.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | set -x 4 | 5 | CWD=$(pwd) 6 | 7 | # Install deps 8 | sudo apt-get update 9 | sudo apt-get --no-install-recommends -y install \ 10 | build-essential \ 11 | ca-certificates \ 12 | curl \ 13 | erlang-dev \ 14 | erlang-nox \ 15 | git \ 16 | libicu-dev \ 17 | libmozjs185-dev \ 18 | python 19 | 20 | # Rebar isnt in apt 21 | git clone git://github.com/rebar/rebar.git ~/rebar 22 | cd ~/rebar 23 | ./bootstrap 24 | sudo cp ./rebar /usr/local/bin 25 | 26 | # Sweet, build CouchDB 27 | cd .. 28 | git clone https://github.com/apache/couchdb.git ~/couchdb 29 | cd ~/couchdb 30 | ./configure 31 | make 32 | 33 | # All done, run a cluster 34 | python dev/run -n 1 & 35 | 36 | # Lets get rid of this at some point :) 37 | sleep 10 38 | 39 | cd $CWD 40 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/ionic.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | @import 4 | // Ionicons 5 | "ionicons/ionicons.scss", 6 | 7 | // Variables 8 | "mixins", 9 | "variables", 10 | 11 | // Base 12 | "reset", 13 | "scaffolding", 14 | "type", 15 | 16 | // Components 17 | "action-sheet", 18 | "backdrop", 19 | "bar", 20 | "tabs", 21 | "menu", 22 | "modal", 23 | "popover", 24 | "popup", 25 | "loading", 26 | "items", 27 | "list", 28 | "badge", 29 | "slide-box", 30 | "refresher", 31 | "spinner", 32 | 33 | // Forms 34 | "form", 35 | "checkbox", 36 | "toggle", 37 | "radio", 38 | "range", 39 | "select", 40 | "progress", 41 | 42 | // Buttons 43 | "button", 44 | "button-bar", 45 | 46 | // Util 47 | "grid", 48 | "util", 49 | "platform", 50 | 51 | // Animations 52 | "animations", 53 | "transitions"; 54 | -------------------------------------------------------------------------------- /www/lib/pouchdb/lib/adapters/websql/websql-constants.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | function quote(str) { 4 | return "'" + str + "'"; 5 | } 6 | 7 | exports.ADAPTER_VERSION = 7; // used to manage migrations 8 | 9 | // The object stores created for each database 10 | // DOC_STORE stores the document meta data, its revision history and state 11 | exports.DOC_STORE = quote('document-store'); 12 | // BY_SEQ_STORE stores a particular version of a document, keyed by its 13 | // sequence id 14 | exports.BY_SEQ_STORE = quote('by-sequence'); 15 | // Where we store attachments 16 | exports.ATTACH_STORE = quote('attach-store'); 17 | exports.LOCAL_STORE = quote('local-store'); 18 | exports.META_STORE = quote('metadata-store'); 19 | // where we store many-to-many relations between attachment 20 | // digests and seqs 21 | exports.ATTACH_AND_SEQ_STORE = quote('attach-seq-store'); 22 | 23 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_layouts/guide.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: 2ColLeft 3 | --- 4 | {{ content }} 5 | 6 | {% assign guides = (site.guides | sort: 'index') %} 7 | {% for guide in guides %} 8 | {% if page.title == guide.title %} 9 | {% assign prev = guide.index | minus: 2 %} 10 | {% assign next = guide.index %} 11 | 12 | 24 | {% endif %} 25 | {% endfor %} 26 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/bootstrap/close.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: (@font-size-base * 1.5); 9 | font-weight: @close-font-weight; 10 | line-height: 1; 11 | color: @close-color; 12 | text-shadow: @close-text-shadow; 13 | .opacity(.2); 14 | 15 | &:hover, 16 | &:focus { 17 | color: @close-color; 18 | text-decoration: none; 19 | cursor: pointer; 20 | .opacity(.5); 21 | } 22 | 23 | // Additional properties for button version 24 | // iOS requires the button element instead of an anchor tag. 25 | // If you want the anchor version, it requires `href="#"`. 26 | button& { 27 | padding: 0; 28 | cursor: pointer; 29 | background: transparent; 30 | border: 0; 31 | -webkit-appearance: none; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_data/authors.yml: -------------------------------------------------------------------------------- 1 | - name: Nick Colley 2 | twitter: nickcolley 3 | github: nickcolley 4 | www: http://nickcolley.co.uk 5 | gravatar: d83613912d1a2511a784b99c703bdcf6 6 | 7 | - name: Nolan Lawson 8 | twitter: nolanlawson 9 | github: nolanlawson 10 | www: http://nolanlawson.com 11 | gravatar: c436dec61b906e27c963518d0ef1d972 12 | 13 | - name: Dale Harvey 14 | twitter: daleharvey 15 | github: daleharvey 16 | www: http://arandomurl.com 17 | gravatar: 030451d8cfc268d666bae9a7fe8d10ec 18 | 19 | - name: Calvin Metcalf 20 | twitter: CWMma 21 | github: calvinmetcalf 22 | www: http://calvinmetcalf.com/ 23 | gravatar: e8153037a068f1c32e546f82729a64a5 24 | 25 | - name: Giovanni Ornaghi 26 | twitter: sphaso 27 | github: sphaso 28 | www: https://it.linkedin.com/in/giovanniornaghi 29 | gravatar: da853b1ad9ebe5e1c3ab5b340bb63b70 30 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/api/plugins.html: -------------------------------------------------------------------------------- 1 | {% include anchor.html title="Plugins" hash="plugins" %} 2 | 3 | Writing a plugin is easy! The API is: 4 | 5 | {% highlight js %} 6 | PouchDB.plugin({ 7 | methodName: myFunction 8 | }); 9 | {% endhighlight %} 10 | 11 | This will add a `db.methodName()` to all databases, which runs `myFunction`.It will always be called in context, so that within the function, `this` refers to the database object. 12 | 13 | There is a [PouchDB Plugin Seed project](https://github.com/pouchdb/plugin-seed), which is the fastest way to get started writing, building and testing your very own plugin. 14 | 15 | #### Example Usage: 16 | {% highlight js %} 17 | PouchDB.plugin({ 18 | sayHello : function () { 19 | console.log("Hello!"); 20 | } 21 | }); 22 | new PouchDB('foobar').sayHello(); // prints "Hello!" 23 | {% endhighlight %} 24 | 25 | 26 | -------------------------------------------------------------------------------- /www/lib/angular-ui-router/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-ui-router", 3 | "version": "0.2.13", 4 | "main": "./release/angular-ui-router.js", 5 | "dependencies": { 6 | "angular": ">= 1.0.8" 7 | }, 8 | "ignore": [ 9 | "**/.*", 10 | "node_modules", 11 | "bower_components", 12 | "component.json", 13 | "package.json", 14 | "lib", 15 | "config", 16 | "sample", 17 | "test", 18 | "tests", 19 | "ngdoc_assets", 20 | "Gruntfile.js", 21 | "files.js" 22 | ], 23 | "homepage": "https://github.com/angular-ui/ui-router", 24 | "_release": "0.2.13", 25 | "_resolution": { 26 | "type": "version", 27 | "tag": "0.2.13", 28 | "commit": "c3d543aae43d4600512520a0d70723ac31f2cb62" 29 | }, 30 | "_source": "git://github.com/angular-ui/ui-router.git", 31 | "_target": "0.2.13", 32 | "_originalSource": "angular-ui-router" 33 | } -------------------------------------------------------------------------------- /www/lib/pouchdb/scripts/baldrick-test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | # Run PouchDB test suite, expect a global couchdb command to be installed 4 | # 5 | # Run as: 6 | # 7 | # ./scripts/baldrick-test.sh 8 | 9 | # tmp directory to store CouchDB data files 10 | TMP=./tmp 11 | COUCH_URI_FILE=$TMP/couch.uri 12 | 13 | # Install PouchDB dependancies 14 | npm install 15 | 16 | # Provision a CouchDB instance just for this test 17 | ./scripts/start_standalone_couch.sh $TMP > /dev/null 2>&1 & 18 | COUCH_PID=$! 19 | 20 | # Wait for CouchDB to start by polling for the uri file 21 | # Not nasty at all :) 22 | while [ ! -f $COUCH_URI_FILE ] 23 | do 24 | sleep 2 25 | done 26 | COUCH_HOST=$(cat $COUCH_URI_FILE) 27 | 28 | # Run tests 29 | grunt test --couch-host=$COUCH_HOST 30 | EXIT_STATUS=$? 31 | 32 | # Cleanup 33 | kill $COUCH_PID 34 | 35 | # Make sure we exit with the right status 36 | exit $EXIT_STATUS -------------------------------------------------------------------------------- /www/lib/pouchdb/bin/test-node.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | : ${TIMEOUT:=50000} 4 | : ${REPORTER:="spec"} 5 | : ${BAIL:=1} 6 | 7 | if [ $BAIL -eq 1 ]; then 8 | BAIL_OPT="--bail" 9 | else 10 | BAIL_OPT="" 11 | fi 12 | 13 | if [ $PERF ]; then 14 | node tests/performance/index.js 15 | elif [ ! $COVERAGE ]; then 16 | ./node_modules/.bin/mocha \ 17 | $BAIL_OPT \ 18 | --timeout $TIMEOUT \ 19 | --require=./tests/integration/node.setup.js \ 20 | --reporter=$REPORTER \ 21 | --grep=$GREP \ 22 | tests/integration/test.*.js 23 | else 24 | ./node_modules/.bin/istanbul cover ./node_modules/mocha/bin/_mocha -- \ 25 | $BAIL_OPT \ 26 | --timeout $TIMEOUT \ 27 | --require=./tests/integration/node.setup.js \ 28 | --reporter=$REPORTER \ 29 | --grep=$GREP \ 30 | tests/integration/test.*.js 31 | fi 32 | 33 | -------------------------------------------------------------------------------- /config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ionic-tutorial-pouchdb 4 | 5 | An Ionic Framework and Cordova project. 6 | 7 | 8 | Ionic Framework Team 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /www/lib/pouchdb/lib/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var PouchDB = require('./setup'); 4 | 5 | module.exports = PouchDB; 6 | 7 | PouchDB.ajax = require('./deps/ajax'); 8 | PouchDB.utils = require('./utils'); 9 | PouchDB.Errors = require('./deps/errors'); 10 | PouchDB.replicate = require('./replicate').replicate; 11 | PouchDB.sync = require('./sync'); 12 | PouchDB.version = require('./version'); 13 | var httpAdapter = require('./adapters/http/http'); 14 | PouchDB.adapter('http', httpAdapter); 15 | PouchDB.adapter('https', httpAdapter); 16 | 17 | PouchDB.adapter('idb', require('./adapters/idb/idb')); 18 | PouchDB.adapter('websql', require('./adapters/websql/websql')); 19 | PouchDB.plugin(require('pouchdb-mapreduce')); 20 | 21 | if (!process.browser) { 22 | var ldbAdapter = require('./adapters/leveldb/leveldb'); 23 | PouchDB.adapter('ldb', ldbAdapter); 24 | PouchDB.adapter('leveldb', ldbAdapter); 25 | } 26 | -------------------------------------------------------------------------------- /scss/ionic.app.scss: -------------------------------------------------------------------------------- 1 | /* 2 | To customize the look and feel of Ionic, you can override the variables 3 | in ionic's _variables.scss file. 4 | 5 | For example, you might change some of the default colors: 6 | 7 | $light: #fff !default; 8 | $stable: #f8f8f8 !default; 9 | $positive: #387ef5 !default; 10 | $calm: #11c1f3 !default; 11 | $balanced: #33cd5f !default; 12 | $energized: #ffc900 !default; 13 | $assertive: #ef473a !default; 14 | $royal: #886aea !default; 15 | $dark: #444 !default; 16 | */ 17 | 18 | // The path for our ionicons font files, relative to the built CSS in www/css 19 | $ionicons-font-path: "../lib/ionic/fonts" !default; 20 | 21 | // Include all of Ionic 22 | @import "www/lib/ionic/scss/ionic"; 23 | 24 | -------------------------------------------------------------------------------- /www/lib/pouchdb/lib/deps/blob.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | //Abstracts constructing a Blob object, so it also works in older 4 | //browsers that don't support the native Blob constructor. (i.e. 5 | //old QtWebKit versions, at least). 6 | function createBlob(parts, properties) { 7 | parts = parts || []; 8 | properties = properties || {}; 9 | try { 10 | return new Blob(parts, properties); 11 | } catch (e) { 12 | if (e.name !== "TypeError") { 13 | throw e; 14 | } 15 | var BlobBuilder = global.BlobBuilder || 16 | global.MSBlobBuilder || 17 | global.MozBlobBuilder || 18 | global.WebKitBlobBuilder; 19 | var builder = new BlobBuilder(); 20 | for (var i = 0; i < parts.length; i += 1) { 21 | builder.append(parts[i]); 22 | } 23 | return builder.getBlob(properties.type); 24 | } 25 | } 26 | 27 | module.exports = createBlob; 28 | 29 | -------------------------------------------------------------------------------- /www/lib/ionic/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ionic", 3 | "version": "1.0.0-rc.4", 4 | "codename": "sulfur-suricate", 5 | "homepage": "https://github.com/driftyco/ionic", 6 | "authors": [ 7 | "Max Lynch ", 8 | "Adam Bradley ", 9 | "Ben Sperry " 10 | ], 11 | "description": "Advanced HTML5 hybrid mobile app development framework.", 12 | "main": [ 13 | "css/ionic.css", 14 | "fonts/*", 15 | "js/ionic.js", 16 | "js/ionic-angular.js" 17 | ], 18 | "keywords": [ 19 | "mobile", 20 | "html5", 21 | "ionic", 22 | "cordova", 23 | "phonegap", 24 | "trigger", 25 | "triggerio", 26 | "angularjs", 27 | "angular" 28 | ], 29 | "license": "MIT", 30 | "private": false, 31 | "dependencies": { 32 | "angular": "1.3.13", 33 | "angular-animate": "1.3.13", 34 | "angular-sanitize": "1.3.13", 35 | "angular-ui-router": "0.2.13" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/bootstrap/thumbnails.less: -------------------------------------------------------------------------------- 1 | // 2 | // Thumbnails 3 | // -------------------------------------------------- 4 | 5 | 6 | // Mixin and adjust the regular image class 7 | .thumbnail { 8 | display: block; 9 | padding: @thumbnail-padding; 10 | margin-bottom: @line-height-computed; 11 | line-height: @line-height-base; 12 | background-color: @thumbnail-bg; 13 | border: 1px solid @thumbnail-border; 14 | border-radius: @thumbnail-border-radius; 15 | .transition(all .2s ease-in-out); 16 | 17 | > img, 18 | a > img { 19 | &:extend(.img-responsive); 20 | margin-left: auto; 21 | margin-right: auto; 22 | } 23 | 24 | // Add a hover state for linked versions only 25 | a&:hover, 26 | a&:focus, 27 | a&.active { 28 | border-color: @link-color; 29 | } 30 | 31 | // Image captions 32 | .caption { 33 | padding: @thumbnail-caption-padding; 34 | color: @thumbnail-caption-color; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /www/lib/pouchdb/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pouchdb", 3 | "version": "3.4.0", 4 | "description": "PouchDB is a pocket-sized database.", 5 | "repo": "daleharvey/pouchdb", 6 | "keywords": [ 7 | "db", 8 | "couchdb", 9 | "pouchdb" 10 | ], 11 | "dependencies": {}, 12 | "development": {}, 13 | "license": "Apache", 14 | "main": "dist/pouchdb.js", 15 | "scripts": [ 16 | "dist/pouchdb.js", 17 | "dist/pouchdb.min.js" 18 | ], 19 | "ignore": [ 20 | "**/.*", 21 | "node_modules", 22 | "bower_components", 23 | "tests", 24 | "vendor", 25 | "npm-debug.log", 26 | "phantomjsdriver.log" 27 | ], 28 | "homepage": "https://github.com/daleharvey/pouchdb", 29 | "_release": "3.4.0", 30 | "_resolution": { 31 | "type": "version", 32 | "tag": "3.4.0", 33 | "commit": "1114aa494e7742c65c4126e10c9a52b4986d09f6" 34 | }, 35 | "_source": "git://github.com/daleharvey/pouchdb.git", 36 | "_target": "~3.4.0", 37 | "_originalSource": "pouchdb", 38 | "_direct": true 39 | } -------------------------------------------------------------------------------- /www/lib/ionic/scss/ionicons/_ionicons-font.scss: -------------------------------------------------------------------------------- 1 | // Ionicons Font Path 2 | // -------------------------- 3 | 4 | @font-face { 5 | font-family: $ionicons-font-family; 6 | src:url("#{$ionicons-font-path}/ionicons.eot?v=#{$ionicons-version}"); 7 | src:url("#{$ionicons-font-path}/ionicons.eot?v=#{$ionicons-version}#iefix") format("embedded-opentype"), 8 | url("#{$ionicons-font-path}/ionicons.ttf?v=#{$ionicons-version}") format("truetype"), 9 | url("#{$ionicons-font-path}/ionicons.woff?v=#{$ionicons-version}") format("woff"), 10 | url("#{$ionicons-font-path}/ionicons.svg?v=#{$ionicons-version}#Ionicons") format("svg"); 11 | font-weight: normal; 12 | font-style: normal; 13 | } 14 | 15 | .ion { 16 | display: inline-block; 17 | font-family: $ionicons-font-family; 18 | speak: none; 19 | font-style: normal; 20 | font-weight: normal; 21 | font-variant: normal; 22 | text-transform: none; 23 | text-rendering: auto; 24 | line-height: 1; 25 | -webkit-font-smoothing: antialiased; 26 | -moz-osx-font-smoothing: grayscale; 27 | } -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/api/delete_database.html: -------------------------------------------------------------------------------- 1 | {% include anchor.html title="Delete a database" hash="delete_database"%} 2 | 3 | {% highlight js %} 4 | db.destroy([options], [callback]) 5 | {% endhighlight %} 6 | 7 | Delete the database. Note that this has no impact on other replicated databases. 8 | 9 | ### Options 10 | 11 | * `options.ajax`: (Remote databases only.) Ajax requester options, [as described above](#create_database). 12 | 13 | #### Example Usage 14 | 15 | {% include code/start.html id="destroy_db" type="callback" %} 16 | {% highlight js %} 17 | db.destroy(function (error) { 18 | if (error) { 19 | return console.log(error); 20 | } else { 21 | // success 22 | } 23 | }); 24 | {% endhighlight %} 25 | {% include code/end.html %} 26 | 27 | {% include code/start.html id="destroy_db" type="promise" %} 28 | {% highlight js %} 29 | db.destroy().then(function () { 30 | // success 31 | }).catch(function (error) { 32 | console.log(error); 33 | }); 34 | {% endhighlight %} 35 | {% include code/end.html %} 36 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/pouchdb/buttons.less: -------------------------------------------------------------------------------- 1 | @import "@{bootstrap}/buttons.less"; 2 | 3 | .btn { 4 | .button-size(@padding-base-vertical; @padding-large-horizontal*2; @font-size-base; @line-height-base; @border-radius-base); 5 | } 6 | 7 | .btn-lg { 8 | .button-size(@padding-large-vertical; @padding-large-horizontal*2; @font-size-large; @line-height-large; @border-radius-large); 9 | } 10 | .btn-sm { 11 | .button-size(@padding-small-vertical; @padding-small-horizontal*2; @font-size-small; @line-height-small; @border-radius-small); 12 | } 13 | .btn-xs { 14 | .button-size(@padding-xs-vertical; @padding-xs-horizontal*2; @font-size-small; @line-height-small; @border-radius-small); 15 | } 16 | 17 | // Social button variants 18 | .btn-github { 19 | .button-variant(@btn-github-color; @btn-github-bg; @btn-github-border); 20 | } 21 | .btn-twitter { 22 | .button-variant(@btn-twitter-color; @btn-twitter-bg; @btn-twitter-border); 23 | } 24 | 25 | @media (max-width: @screen-xs-max) { 26 | .btn { 27 | width: 100%; 28 | } 29 | } -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/blog/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Blog 4 | --- 5 | 6 |
    7 |
    8 |
    9 | {% for post in paginator.posts %} 10 | 11 | {{ post.title }} 12 | {% include post_details.html %} 13 | 14 | {% endfor %} 15 |
      16 |
    • «
    • 17 | {% for page in (1..paginator.total_pages) %} 18 | {% if page == paginator.page %} 19 |
    • {{page}}
    • 20 | {% elsif page == 1 %} 21 |
    • {{page}}
    • 22 | {% else %} 23 |
    • {{page}}
    • 24 | {% endif %} 25 | {% endfor %} 26 |
    • »
    • 27 |
    28 |
    29 |
    30 |
    31 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_loading.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Loading 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .loading-container { 8 | position: absolute; 9 | left: 0; 10 | top: 0; 11 | right: 0; 12 | bottom: 0; 13 | 14 | z-index: $z-index-loading; 15 | 16 | @include display-flex(); 17 | @include justify-content(center); 18 | @include align-items(center); 19 | 20 | @include transition(0.2s opacity linear); 21 | visibility: hidden; 22 | opacity: 0; 23 | 24 | &:not(.visible) .icon { 25 | display: none; 26 | } 27 | &.visible { 28 | visibility: visible; 29 | } 30 | &.active { 31 | opacity: 1; 32 | } 33 | 34 | .loading { 35 | padding: $loading-padding; 36 | 37 | border-radius: $loading-border-radius; 38 | background-color: $loading-bg-color; 39 | 40 | color: $loading-text-color; 41 | 42 | text-align: center; 43 | text-overflow: ellipsis; 44 | font-size: $loading-font-size; 45 | 46 | h1, h2, h3, h4, h5, h6 { 47 | color: $loading-text-color; 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/bootstrap/utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // Floats 7 | // ------------------------- 8 | 9 | .clearfix { 10 | .clearfix(); 11 | } 12 | .center-block { 13 | .center-block(); 14 | } 15 | .pull-right { 16 | float: right !important; 17 | } 18 | .pull-left { 19 | float: left !important; 20 | } 21 | 22 | 23 | // Toggling content 24 | // ------------------------- 25 | 26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1 27 | .hide { 28 | display: none !important; 29 | } 30 | .show { 31 | display: block !important; 32 | } 33 | .invisible { 34 | visibility: hidden; 35 | } 36 | .text-hide { 37 | .text-hide(); 38 | } 39 | 40 | 41 | // Hide from screenreaders and browsers 42 | // 43 | // Credit: HTML5 Boilerplate 44 | 45 | .hidden { 46 | display: none !important; 47 | visibility: hidden !important; 48 | } 49 | 50 | 51 | // For Affix plugin 52 | // ------------------------- 53 | 54 | .affix { 55 | position: fixed; 56 | } 57 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/api.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: 2ColLeft 3 | title: API Reference 4 | sidebar: api.html 5 | --- 6 | 7 | {% markdown %} 8 | 9 | {% include api/api_overview.html %} 10 | {% include api/create_database.html %} 11 | {% include api/delete_database.html %} 12 | {% include api/create_document.html %} 13 | {% include api/fetch_document.html %} 14 | {% include api/delete_document.html %} 15 | {% include api/batch_create.html %} 16 | {% include api/batch_fetch.html %} 17 | {% include api/changes.html %} 18 | {% include api/replication.html %} 19 | {% include api/sync.html %} 20 | {% include api/save_attachment.html %} 21 | {% include api/get_attachment.html %} 22 | {% include api/delete_attachment.html %} 23 | {% include api/query_database.html %} 24 | {% include api/view_cleanup.html %} 25 | {% include api/database_information.html %} 26 | {% include api/compaction.html %} 27 | {% include api/revisions_diff.html %} 28 | {% include api/events.html %} 29 | {% include api/defaults.html %} 30 | {% include api/plugins.html %} 31 | {% include api/debug_mode.html %} 32 | 33 | {% endmarkdown %} -------------------------------------------------------------------------------- /www/lib/pouchdb/lib/adapters/idb/idb-constants.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // IndexedDB requires a versioned database structure, so we use the 4 | // version here to manage migrations. 5 | exports.ADAPTER_VERSION = 5; 6 | 7 | // The object stores created for each database 8 | // DOC_STORE stores the document meta data, its revision history and state 9 | // Keyed by document id 10 | exports. DOC_STORE = 'document-store'; 11 | // BY_SEQ_STORE stores a particular version of a document, keyed by its 12 | // sequence id 13 | exports.BY_SEQ_STORE = 'by-sequence'; 14 | // Where we store attachments 15 | exports.ATTACH_STORE = 'attach-store'; 16 | // Where we store many-to-many relations 17 | // between attachment digests and seqs 18 | exports.ATTACH_AND_SEQ_STORE = 'attach-seq-store'; 19 | 20 | // Where we store database-wide meta data in a single record 21 | // keyed by id: META_STORE 22 | exports.META_STORE = 'meta-store'; 23 | // Where we store local documents 24 | exports.LOCAL_STORE = 'local-store'; 25 | // Where we detect blob support 26 | exports.DETECT_BLOB_SUPPORT_STORE = 'detect-blob-support'; -------------------------------------------------------------------------------- /www/lib/ionic/scss/_slide-box.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Slide Box 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .slider { 8 | position: relative; 9 | visibility: hidden; 10 | // Make sure items don't scroll over ever 11 | overflow: hidden; 12 | } 13 | 14 | .slider-slides { 15 | position: relative; 16 | height: 100%; 17 | } 18 | 19 | .slider-slide { 20 | position: relative; 21 | display: block; 22 | float: left; 23 | width: 100%; 24 | height: 100%; 25 | vertical-align: top; 26 | } 27 | 28 | .slider-slide-image { 29 | > img { 30 | width: 100%; 31 | } 32 | } 33 | 34 | .slider-pager { 35 | position: absolute; 36 | bottom: 20px; 37 | z-index: $z-index-slider-pager; 38 | width: 100%; 39 | height: 15px; 40 | text-align: center; 41 | 42 | .slider-pager-page { 43 | display: inline-block; 44 | margin: 0px 3px; 45 | width: 15px; 46 | color: #000; 47 | text-decoration: none; 48 | 49 | opacity: 0.3; 50 | 51 | &.active { 52 | @include transition(opacity 0.4s ease-in); 53 | opacity: 1; 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /www/lib/pouchdb/scripts/start_standalone_couch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | 3 | # Start a standalone CouchDB, this is a wrapper around the $ couchdb 4 | # command that will create a standalone instance of CouchDB allowing 5 | # you to easily run serveral servers in parallel, each instance starts 6 | # on an ephemeral port and has a dedicated directory for its data and logs 7 | # use the couch.uri file to locate the host 8 | # 9 | # Run as: 10 | # 11 | # $ ./start_standalone_couch.sh ~/data/instanceId 12 | 13 | COUCH_DIR=$1 14 | 15 | # Make all the directories 16 | mkdir -p $COUCH_DIR/data/views 17 | 18 | # Create a standalone configuration based on the directory 19 | # we are passed in, CouchDB will start on a random port and couch.uri 20 | # will tell us where that is, data is stored within the directory 21 | echo "[httpd] 22 | bind_address = 127.0.0.1 23 | port = 0 24 | 25 | [log] 26 | level = debug 27 | file = $COUCH_DIR/couch.log 28 | 29 | [couchdb] 30 | database_dir = $COUCH_DIR/data 31 | view_index_dir = $COUCH_DIR/data/views 32 | uri_file = $COUCH_DIR/couch.uri" > $COUCH_DIR/couch.ini 33 | 34 | couchdb -a $COUCH_DIR/couch.ini -------------------------------------------------------------------------------- /www/lib/ionic/scss/_button-bar.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Button Bar 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .button-bar { 8 | @include display-flex(); 9 | @include flex(1); 10 | width: 100%; 11 | 12 | &.button-bar-inline { 13 | display: block; 14 | width: auto; 15 | 16 | @include clearfix(); 17 | 18 | > .button { 19 | width: auto; 20 | display: inline-block; 21 | float: left; 22 | } 23 | } 24 | } 25 | 26 | .button-bar > .button { 27 | @include flex(1); 28 | display: block; 29 | 30 | overflow: hidden; 31 | 32 | padding: 0 16px; 33 | 34 | width: 0; 35 | 36 | border-width: 1px 0px 1px 1px; 37 | border-radius: 0; 38 | text-align: center; 39 | text-overflow: ellipsis; 40 | white-space: nowrap; 41 | 42 | &:before, 43 | .icon:before { 44 | line-height: 44px; 45 | } 46 | 47 | &:first-child { 48 | border-radius: $button-border-radius 0px 0px $button-border-radius; 49 | } 50 | &:last-child { 51 | border-right-width: 1px; 52 | border-radius: 0px $button-border-radius $button-border-radius 0px; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/js/code.min.js: -------------------------------------------------------------------------------- 1 | function codeWrap(){function d(a){a=a||localStorage.getItem("codeStyle");"undefined"!==typeof a&&null!==a&&($("[data-code-tablist] li, .tab-pane").removeClass("active"),$('[data-code-tablist] [href="#'+a+'"]').parent().addClass("active"),$('.tab-pane[id="'+a+'"]').addClass("active"),localStorage.setItem("codeStyle",a))}$("[data-code-id]").get().map(function(a){return a.attributes["data-code-id"].value}).filter(function(a,b,c){return c.indexOf(a)==b}).forEach(function(a){a=$("[data-code-id='"+a+"']"); 2 | var b=0,c=a.get().map(function(a){a.clientHeight>b&&(b=a.clientHeight);return a.outerHTML}).join(""),b=b+15,c='
    {{tapPanes}}
    '.replace(/{{tapPanes}}/g,c).replace(/
    /g,"
     .pull-left {
    41 |     margin-right: 10px;
    42 |   }
    43 |   > .pull-right {
    44 |     margin-left: 10px;
    45 |   }
    46 | }
    47 | 
    48 | 
    49 | // Media list variation
    50 | // -------------------------
    51 | 
    52 | // Undo default ul/ol styles
    53 | .media-list {
    54 |   padding-left: 0;
    55 |   list-style: none;
    56 | }
    57 | 
    
    
    --------------------------------------------------------------------------------
    /www/lib/pouchdb/docs/static/less/bootstrap/pager.less:
    --------------------------------------------------------------------------------
     1 | //
     2 | // Pager pagination
     3 | // --------------------------------------------------
     4 | 
     5 | 
     6 | .pager {
     7 |   padding-left: 0;
     8 |   margin: @line-height-computed 0;
     9 |   list-style: none;
    10 |   text-align: center;
    11 |   &:extend(.clearfix all);
    12 |   li {
    13 |     display: inline;
    14 |     > a,
    15 |     > span {
    16 |       display: inline-block;
    17 |       padding: 5px 14px;
    18 |       background-color: @pager-bg;
    19 |       border: 1px solid @pager-border;
    20 |       border-radius: @pager-border-radius;
    21 |     }
    22 | 
    23 |     > a:hover,
    24 |     > a:focus {
    25 |       text-decoration: none;
    26 |       background-color: @pager-hover-bg;
    27 |     }
    28 |   }
    29 | 
    30 |   .next {
    31 |     > a,
    32 |     > span {
    33 |       float: right;
    34 |     }
    35 |   }
    36 | 
    37 |   .previous {
    38 |     > a,
    39 |     > span {
    40 |       float: left;
    41 |     }
    42 |   }
    43 | 
    44 |   .disabled {
    45 |     > a,
    46 |     > a:hover,
    47 |     > a:focus,
    48 |     > span {
    49 |       color: @pager-disabled-color;
    50 |       background-color: @pager-bg;
    51 |       cursor: not-allowed;
    52 |     }
    53 |   }
    54 | 
    55 | }
    56 | 
    
    
    --------------------------------------------------------------------------------
    /www/lib/pouchdb/docs/static/less/pouchdb/logo.less:
    --------------------------------------------------------------------------------
     1 | .logo {
     2 |   float: left;
     3 |   width: @logo-width;
     4 |   .logo-img,
     5 |   .logo-type {
     6 |     float: left;
     7 |   }
     8 |   .logo-img {
     9 |     opacity: .9;
    10 |     height: @logo-img-height;
    11 |     margin-top: -@logo-img-height*.2;
    12 |     width: @logo-img-height*@logo-img-ratio;
    13 |     background-image: url(@logo-img);
    14 |     background-size: 100%;
    15 |   }
    16 |   .logo-type {
    17 |     margin-left: 8px;
    18 |     font-size: 3em;
    19 |     line-height: 1.1;
    20 |     text-transform: lowercase;
    21 |     letter-spacing: -1px;
    22 |     color: @text-color;
    23 |   }
    24 |   &:hover .logo-img { opacity: 1; }
    25 |   .clearfix();
    26 | }
    27 | /**
    28 |  * When we hit the breakpoint
    29 |  * Center the logo in the middle
    30 |  **/
    31 | @media (max-width: @navs-breakpoint-justified) {
    32 |   .logo {
    33 |     float: none;
    34 |     display: block;
    35 |     margin: auto;
    36 |   }
    37 | }
    38 | @media (max-width: @logo-breakpoint) {
    39 |   .logo {
    40 |     width: auto;
    41 |     .logo-img {
    42 |       display: block;
    43 |       float: none;
    44 |       margin: auto;
    45 |     }
    46 |     .logo-type { display: none; }
    47 |   }
    48 | 
    49 | }
    50 | 
    
    
    --------------------------------------------------------------------------------
    /www/lib/pouchdb/docs/static/img/mark.svg:
    --------------------------------------------------------------------------------
    1 | 
    2 | 
    
    
    --------------------------------------------------------------------------------
    /www/lib/pouchdb/docs/static/less/pouchdb/pouchdb.less:
    --------------------------------------------------------------------------------
     1 | @bootstrap: "../bootstrap";
     2 | 
     3 | @import "variables.less";
     4 | 
     5 | // Mixins
     6 | @import "mixins.less";
     7 | 
     8 | // Reset
     9 | @import "@{bootstrap}/normalize.less";
    10 | @import "@{bootstrap}/print.less";
    11 | @import "@{bootstrap}/type.less";
    12 | 
    13 | @import "@{bootstrap}/normalize.less";
    14 | @import "@{bootstrap}/print.less";
    15 | @import "alerts.less";
    16 | 
    17 | // Core CSS
    18 | @import "scaffolding.less";
    19 | @import "code.less";
    20 | @import "@{bootstrap}/grid.less";
    21 | @import "@{bootstrap}/tables.less";
    22 | 
    23 | 
    24 | // Components
    25 | @import "@{bootstrap}/media.less";
    26 | @import "@{bootstrap}/pagination.less";
    27 | @import "@{bootstrap}/pager.less";
    28 | 
    29 | // Utility classes
    30 | @import "@{bootstrap}/responsive-utilities.less";
    31 | 
    32 | // PouchDB Overrides
    33 | @import "navs.less";
    34 | @import "buttons.less";
    35 | @import "utilities.less";
    36 | 
    37 | // PouchDB Specific
    38 | @import "highlight.less";
    39 | @import "header.less";
    40 | @import "logo.less";
    41 | @import "anchors.less";
    42 | @import "post.less";
    43 | @import "ribbon.less";
    44 | @import "icons.less";
    45 | @import "block.less";
    46 | 
    
    
    --------------------------------------------------------------------------------
    /www/lib/angular-ui-router/LICENSE:
    --------------------------------------------------------------------------------
     1 | The MIT License
     2 | 
     3 | Copyright (c) 2014 The AngularUI Team, Karsten Sperling
     4 | 
     5 | Permission is hereby granted, free of charge, to any person obtaining a copy
     6 | of this software and associated documentation files (the "Software"), to deal
     7 | in the Software without restriction, including without limitation the rights
     8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
     9 | copies of the Software, and to permit persons to whom the Software is
    10 | furnished to do so, subject to the following conditions:
    11 | 
    12 | The above copyright notice and this permission notice shall be included in
    13 | all copies or substantial portions of the Software.
    14 | 
    15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    21 | THE SOFTWARE.
    22 | 
    
    
    --------------------------------------------------------------------------------
    /www/lib/angular-ui-router/src/stateFilters.js:
    --------------------------------------------------------------------------------
     1 | /**
     2 |  * @ngdoc filter
     3 |  * @name ui.router.state.filter:isState
     4 |  *
     5 |  * @requires ui.router.state.$state
     6 |  *
     7 |  * @description
     8 |  * Translates to {@link ui.router.state.$state#methods_is $state.is("stateName")}.
     9 |  */
    10 | $IsStateFilter.$inject = ['$state'];
    11 | function $IsStateFilter($state) {
    12 |   var isFilter = function (state) {
    13 |     return $state.is(state);
    14 |   };
    15 |   isFilter.$stateful = true;
    16 |   return isFilter;
    17 | }
    18 | 
    19 | /**
    20 |  * @ngdoc filter
    21 |  * @name ui.router.state.filter:includedByState
    22 |  *
    23 |  * @requires ui.router.state.$state
    24 |  *
    25 |  * @description
    26 |  * Translates to {@link ui.router.state.$state#methods_includes $state.includes('fullOrPartialStateName')}.
    27 |  */
    28 | $IncludedByStateFilter.$inject = ['$state'];
    29 | function $IncludedByStateFilter($state) {
    30 |   var includesFilter = function (state) {
    31 |     return $state.includes(state);
    32 |   };
    33 |   includesFilter.$stateful = true;
    34 |   return  includesFilter;
    35 | }
    36 | 
    37 | angular.module('ui.router.state')
    38 |   .filter('isState', $IsStateFilter)
    39 |   .filter('includedByState', $IncludedByStateFilter);
    40 | 
    
    
    --------------------------------------------------------------------------------
    /www/lib/pouchdb/docs/feed.xml:
    --------------------------------------------------------------------------------
     1 | ---
     2 | ---
     3 | 
     4 | 
     5 |   
     6 |     {{ site.name | xml_escape }}
     7 |     {% if site.description %}{{ site.description | xml_escape }}{% endif %}
     8 |     {{ site.url }}
     9 |     
    10 |     {% for post in site.posts limit:10 %}
    11 |       
    12 |         {{ post.title | xml_escape }}
    13 |         {% if post.author %}
    14 |           {{ post.author | xml_escape }}
    15 |         {% endif %}
    16 |         {% if post.excerpt %}
    17 |           {{ post.excerpt | xml_escape }}
    18 |         {% else %}
    19 |           {{ post.content | xml_escape }}
    20 |         {% endif %}
    21 |         {{ post.date | date: "%a, %d %b %Y %H:%M:%S %z" }}
    22 |         {{ site.url }}{{ post.url }}
    23 |         {{ site.url }}{{ post.url }}
    24 |       
    25 |     {% endfor %}
    26 |   
    27 | 
    28 | 
    
    
    --------------------------------------------------------------------------------
    /www/lib/pouchdb/docs/_includes/api/debug_mode.html:
    --------------------------------------------------------------------------------
     1 | {% include anchor.html title="Debug mode" hash="debug_mode" %} 
     2 | 
     3 | PouchDB uses the [debug](https://www.npmjs.org/package/debug) module for fine-grained debug output.
     4 | 
     5 | To enable debug mode, just call:
     6 | 
     7 | {% highlight js %}
     8 | PouchDB.debug.enable('*');
     9 | {% endhighlight %}
    10 | 
    11 | In your browser console, you should then see something like this:
    12 | 
    13 | {% include img.html src="debug_mode.png" alt="Coloured Log Output" %}
    14 | 
    15 | In Node.js, you can also set a command-line flag:
    16 | 
    17 | {% highlight bash %}
    18 | DEBUG=pouchdb:* node myscript.js
    19 | {% endhighlight %}
    20 | 
    21 | You can also enable debugging of specific modules. Currently we only have `pouchb:api` (API-level calls) and `pouchdb:http`  (HTTP requests):
    22 | 
    23 | {% highlight js %}
    24 | PouchDB.debug.enable('pouchdb:api'); // or
    25 | PouchDB.debug.enable('pouchdb:http');
    26 | {% endhighlight %}
    27 | 
    28 | These settings are saved to the browser's LocalStorage. So to disable them, you must call:
    29 | 
    30 | {% highlight js %}
    31 | PouchDB.debug.disable();
    32 | {% endhighlight %}
    33 | 
    34 | Your users won't see debug output unless you explicitly call `PouchDB.debug.enable()` within your application code.
    
    
    --------------------------------------------------------------------------------
    /www/lib/pouchdb/docs/_includes/api.html:
    --------------------------------------------------------------------------------
     1 | 
  • API overview
  • 2 |
  • Create database
  • 3 |
  • Delete database
  • 4 |
  • Create/update doc
  • 5 |
  • Fetch doc
  • 6 |
  • Delete doc
  • 7 |
  • Batch create
  • 8 |
  • Batch fetch
  • 9 |
  • Changes
  • 10 |
  • Replication
  • 11 |
  • Sync
  • 12 |
  • Save attachment
  • 13 |
  • Get attachment
  • 14 |
  • Delete attachment
  • 15 |
  • Query database
  • 16 |
  • View cleanup
  • 17 |
  • Database info
  • 18 |
  • Compaction
  • 19 |
  • Revision diff
  • 20 |
  • Events
  • 21 |
  • Default settings
  • 22 |
  • Plugins
  • 23 |
  • Debug mode
  • 24 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/api/delete_attachment.html: -------------------------------------------------------------------------------- 1 | {% include anchor.html title="Delete an attachment" hash="delete_attachment" %} 2 | 3 | {% highlight js %} 4 | db.removeAttachment(docId, attachmentId, rev, [callback]) 5 | {% endhighlight %} 6 | 7 | Delete an attachment from a doc. You must supply the `rev` of the existing doc. 8 | 9 | #### Example Usage: 10 | 11 | {% include code/start.html id="delete_att" type="callback" %} 12 | {% highlight js %} 13 | var rev = '1-068E73F5B44FEC987B51354DFC772891'; 14 | db.removeAttachment('doc', 'att.txt', rev, function(err, res) { 15 | if (err) { return console.log(err); } 16 | // handle result 17 | }); 18 | {% endhighlight %} 19 | {% include code/end.html %} 20 | {% include code/start.html id="delete_att" type="promise" %} 21 | {% highlight js %} 22 | var rev = '1-068E73F5B44FEC987B51354DFC772891'; 23 | db.removeAttachment('doc', 'att.txt', rev).then(function (result) { 24 | // handle result 25 | }).catch(function (err) { 26 | console.log(err); 27 | }); 28 | {% endhighlight %} 29 | {% include code/end.html %} 30 | 31 | #### Example Response: 32 | 33 | {% highlight js %} 34 | { 35 | "ok": true, 36 | "rev": "2-1F983211AB87EFCCC980974DFC27382F" 37 | } 38 | {% endhighlight %} 39 | 40 | 41 | -------------------------------------------------------------------------------- /www/lib/ionic/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ionic", 3 | "version": "1.0.0-rc.4", 4 | "codename": "sulfur-suricate", 5 | "homepage": "https://github.com/driftyco/ionic", 6 | "authors": [ 7 | "Max Lynch ", 8 | "Adam Bradley ", 9 | "Ben Sperry " 10 | ], 11 | "description": "Advanced HTML5 hybrid mobile app development framework.", 12 | "main": [ 13 | "css/ionic.css", 14 | "fonts/*", 15 | "js/ionic.js", 16 | "js/ionic-angular.js" 17 | ], 18 | "keywords": [ 19 | "mobile", 20 | "html5", 21 | "ionic", 22 | "cordova", 23 | "phonegap", 24 | "trigger", 25 | "triggerio", 26 | "angularjs", 27 | "angular" 28 | ], 29 | "license": "MIT", 30 | "private": false, 31 | "dependencies": { 32 | "angular": "1.3.13", 33 | "angular-animate": "1.3.13", 34 | "angular-sanitize": "1.3.13", 35 | "angular-ui-router": "0.2.13" 36 | }, 37 | "_release": "1.0.0-rc.4", 38 | "_resolution": { 39 | "type": "version", 40 | "tag": "v1.0.0-rc.4", 41 | "commit": "644b6fdc22947fdec4ee3e37fb4055854b297cbe" 42 | }, 43 | "_source": "git://github.com/driftyco/ionic-bower.git", 44 | "_target": "1.0.0-rc.4", 45 | "_originalSource": "driftyco/ionic-bower" 46 | } -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/api/view_cleanup.html: -------------------------------------------------------------------------------- 1 | {% include anchor.html title="View cleanup" hash="view_cleanup" %} 2 | 3 | {% highlight js %} 4 | db.viewCleanup([callback]) 5 | {% endhighlight %} 6 | 7 | Cleans up any stale map/reduce indexes. 8 | 9 | As design docs are deleted or modified, their associated index files (in CouchDB) or companion databases (in local PouchDBs) continue to take up space on disk. `viewCleanup()` removes these unnecessary index files. 10 | 11 | See [the CouchDB documentation on view cleanup](http://couchdb.readthedocs.org/en/latest/maintenance/compaction.html#views-cleanup) for details. 12 | 13 | #### Example Usage: 14 | 15 | {% include code/start.html id="viewcleanup" type="callback" %} 16 | {% highlight js %} 17 | db.viewCleanup(function (err, result) { 18 | if (err) { return console.log(err); } 19 | // handle result 20 | }); 21 | {% endhighlight %} 22 | {% include code/end.html %} 23 | {% include code/start.html id="viewcleanup" type="promise" %} 24 | {% highlight js %} 25 | db.viewCleanup().then(function (result) { 26 | // handle result 27 | }).catch(function (err) { 28 | console.log(err); 29 | }); 30 | {% endhighlight %} 31 | {% include code/end.html %} 32 | 33 | #### Example Response: 34 | {% highlight js %} 35 | { "ok" : "true" } 36 | {% endhighlight %} -------------------------------------------------------------------------------- /www/lib/ionic/scss/_menu.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Menus 4 | * -------------------------------------------------- 5 | * Side panel structure 6 | */ 7 | 8 | .menu { 9 | position: absolute; 10 | top: 0; 11 | bottom: 0; 12 | z-index: $z-index-menu; 13 | overflow: hidden; 14 | 15 | min-height: 100%; 16 | max-height: 100%; 17 | width: $menu-width; 18 | 19 | background-color: $menu-bg; 20 | 21 | .scroll-content { 22 | z-index: $z-index-menu-scroll-content; 23 | } 24 | 25 | .bar-header { 26 | z-index: $z-index-menu-bar-header; 27 | } 28 | } 29 | 30 | .menu-content { 31 | @include transform(none); 32 | box-shadow: $menu-side-shadow; 33 | } 34 | 35 | .menu-open .menu-content .pane, 36 | .menu-open .menu-content .scroll-content { 37 | pointer-events: none; 38 | } 39 | 40 | .grade-b .menu-content, 41 | .grade-c .menu-content { 42 | @include box-sizing(content-box); 43 | right: -1px; 44 | left: -1px; 45 | border-right: 1px solid #ccc; 46 | border-left: 1px solid #ccc; 47 | box-shadow: none; 48 | } 49 | 50 | .menu-left { 51 | left: 0; 52 | } 53 | 54 | .menu-right { 55 | right: 0; 56 | } 57 | 58 | .aside-open.aside-resizing .menu-right { 59 | display: none; 60 | } 61 | 62 | .menu-animated { 63 | @include transition-transform($menu-animation-speed ease); 64 | } 65 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/api/api_overview.html: -------------------------------------------------------------------------------- 1 | {% include anchor.html title="API overview" hash="overview" %} 2 | 3 | PouchDB has an asynchronous API, supporting both [callbacks](http://docs.nodejitsu.com/articles/getting-started/control-flow/what-are-callbacks) and [promises][promise]. 4 | 5 | Most of the API is exposed as: 6 | 7 | {% highlight js %} 8 | db.doSomething(args..., [options], [callback]) 9 | {% endhighlight %} 10 | 11 | … where both the `options` and `callback` are optional. 12 | 13 | Callbacks use the standard Node.js idiom of: 14 | 15 | {% highlight js %} 16 | function(error, result) { /* ... */ } 17 | {% endhighlight %} 18 | 19 | … where the `error` will be undefined if there's no error. 20 | 21 | If you don't specify a `callback`, then the API returns a [promise][]. In [supported browsers](http://caniuse.com/#feat=promises), native promises are used, falling back to the minimal library [lie][] as needed. In Node.js, promises come from [Bluebird][]. 22 | 23 | For more info, check out the [guide to asynchronous code](/guides/async-code.html). 24 | 25 | [promise]: https://www.promisejs.org/ 26 | [lie]: https://github.com/calvinmetcalf/lie 27 | [bluebird]: https://github.com/petkaantonov/bluebird 28 | [event emitter]: http://nodejs.org/api/events.html#events_class_events_eventemitter -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/api/defaults.html: -------------------------------------------------------------------------------- 1 | {% include anchor.html title="Default settings" hash="defaults" %} 2 | 3 | If you find yourself using the same constructor options repeatedly, 4 | you can simplify your code with `PouchDB.defaults()`: 5 | 6 | {% highlight js %} 7 | PouchDB.defaults({ 8 | option1: 'foo', 9 | option2: 'value' 10 | }); 11 | {% endhighlight %} 12 | 13 | The returned object is a constructor function that works the same as `PouchDB`, except that whenever you invoke it (e.g. with `new`), the given options will be passed in by default. 14 | 15 | #### Example Usage: 16 | {% highlight js %} 17 | var MyMemPouch = PouchDB.defaults({ 18 | db: require('memdown') 19 | }); 20 | // MemDOWN-backed Pouch (in Node) 21 | var MyMemPouch = new MyMemPouch('dbname'); 22 | 23 | var MyPrefixedPouch = PouchDB.defaults({ 24 | prefix: '/path/to/my/db/' 25 | }); 26 | // db will be named '/path/to/my/db/dbname', useful for LevelDB 27 | var myPrefixedPouch = new MyPrefixedPouch('dbname'); 28 | {% endhighlight %} 29 | 30 | Note the special constructor option `prefix`, which appends a prefix to the database name 31 | and can be helpful for URL-based or file-based LevelDOWN path names. 32 | 33 | All [constructor options](#create_database) are supported. Default options can still be overriden individually. 34 | 35 | 36 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/bootstrap/bootstrap.less: -------------------------------------------------------------------------------- 1 | // Core variables and mixins 2 | @import "variables.less"; 3 | @import "mixins.less"; 4 | 5 | // Reset 6 | @import "normalize.less"; 7 | @import "print.less"; 8 | 9 | // Core CSS 10 | @import "scaffolding.less"; 11 | @import "type.less"; 12 | @import "code.less"; 13 | @import "grid.less"; 14 | @import "tables.less"; 15 | @import "forms.less"; 16 | @import "buttons.less"; 17 | 18 | // Components 19 | @import "component-animations.less"; 20 | @import "glyphicons.less"; 21 | @import "dropdowns.less"; 22 | @import "button-groups.less"; 23 | @import "input-groups.less"; 24 | @import "navs.less"; 25 | @import "navbar.less"; 26 | @import "breadcrumbs.less"; 27 | @import "pagination.less"; 28 | @import "pager.less"; 29 | @import "labels.less"; 30 | @import "badges.less"; 31 | @import "jumbotron.less"; 32 | @import "thumbnails.less"; 33 | @import "alerts.less"; 34 | @import "progress-bars.less"; 35 | @import "media.less"; 36 | @import "list-group.less"; 37 | @import "panels.less"; 38 | @import "wells.less"; 39 | @import "close.less"; 40 | 41 | // Components w/ JavaScript 42 | @import "modals.less"; 43 | @import "tooltip.less"; 44 | @import "popovers.less"; 45 | @import "carousel.less"; 46 | 47 | // Utility classes 48 | @import "utilities.less"; 49 | @import "responsive-utilities.less"; 50 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/bootstrap/badges.less: -------------------------------------------------------------------------------- 1 | // 2 | // Badges 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base classes 7 | .badge { 8 | display: inline-block; 9 | min-width: 10px; 10 | padding: 3px 7px; 11 | font-size: @font-size-small; 12 | font-weight: @badge-font-weight; 13 | color: @badge-color; 14 | line-height: @badge-line-height; 15 | vertical-align: baseline; 16 | white-space: nowrap; 17 | text-align: center; 18 | background-color: @badge-bg; 19 | border-radius: @badge-border-radius; 20 | 21 | // Empty badges collapse automatically (not available in IE8) 22 | &:empty { 23 | display: none; 24 | } 25 | 26 | // Quick fix for badges in buttons 27 | .btn & { 28 | position: relative; 29 | top: -1px; 30 | } 31 | .btn-xs & { 32 | top: 0; 33 | padding: 1px 5px; 34 | } 35 | } 36 | 37 | // Hover state, but only for links 38 | a.badge { 39 | &:hover, 40 | &:focus { 41 | color: @badge-link-hover-color; 42 | text-decoration: none; 43 | cursor: pointer; 44 | } 45 | } 46 | 47 | // Account for counters in navs 48 | a.list-group-item.active > .badge, 49 | .nav-pills > .active > a > .badge { 50 | color: @badge-active-color; 51 | background-color: @badge-active-bg; 52 | } 53 | .nav-pills > li > a > .badge { 54 | margin-left: 3px; 55 | } 56 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/pouchdb/alerts.less: -------------------------------------------------------------------------------- 1 | @import "@{bootstrap}/alerts.less"; 2 | 3 | .alert { .clearfix(); } 4 | 5 | .alert-text { .make-xs-column(10); } 6 | 7 | .alert:before { 8 | float: left; 9 | display: block; 10 | content: ''; 11 | height: @alert-before-size; 12 | width: @alert-before-size; 13 | border-radius: 50%; 14 | border: 1px solid; 15 | font-size: @alert-before-size * .75; 16 | font-family: @font-family-monospace; 17 | text-align: center; 18 | line-height: @alert-before-size; 19 | } 20 | 21 | .alert-info:before { 22 | content: @alert-before-info-text; 23 | border-color: @alert-info-border; 24 | background-color: lighten(@alert-info-bg, 3%); 25 | color: @alert-info-text; 26 | } 27 | .alert-success:before { 28 | content: @alert-before-success-text; 29 | border-color: @alert-success-border; 30 | background-color: lighten(@alert-success-bg, 3%); 31 | color: @alert-success-text; 32 | } 33 | .alert-warning:before { 34 | content: @alert-before-warning-text; 35 | border-color: @alert-warning-border; 36 | background-color: lighten(@alert-warning-bg, 3%); 37 | color: @alert-warning-text; 38 | } 39 | .alert-danger:before { 40 | content: @alert-before-danger-text; 41 | border-color: @alert-danger-border; 42 | background-color: lighten(@alert-danger-bg, 3%); 43 | color: @alert-danger-text; 44 | } 45 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_animations.scss: -------------------------------------------------------------------------------- 1 | 2 | // Slide up from the bottom, used for modals 3 | // ------------------------------- 4 | 5 | .slide-in-up { 6 | @include translate3d(0, 100%, 0); 7 | } 8 | .slide-in-up.ng-enter, 9 | .slide-in-up > .ng-enter { 10 | @include transition(all cubic-bezier(.1, .7, .1, 1) 400ms); 11 | } 12 | .slide-in-up.ng-enter-active, 13 | .slide-in-up > .ng-enter-active { 14 | @include translate3d(0, 0, 0); 15 | } 16 | 17 | .slide-in-up.ng-leave, 18 | .slide-in-up > .ng-leave { 19 | @include transition(all ease-in-out 250ms); 20 | } 21 | 22 | 23 | // Scale Out 24 | // Scale from hero (1 in this case) to zero 25 | // ------------------------------- 26 | 27 | @-webkit-keyframes scaleOut { 28 | from { -webkit-transform: scale(1); opacity: 1; } 29 | to { -webkit-transform: scale(0.8); opacity: 0; } 30 | } 31 | @keyframes scaleOut { 32 | from { transform: scale(1); opacity: 1; } 33 | to { transform: scale(0.8); opacity: 0; } 34 | } 35 | 36 | 37 | // Super Scale In 38 | // Scale from super (1.x) to duper (1 in this case) 39 | // ------------------------------- 40 | 41 | @-webkit-keyframes superScaleIn { 42 | from { -webkit-transform: scale(1.2); opacity: 0; } 43 | to { -webkit-transform: scale(1); opacity: 1 } 44 | } 45 | @keyframes superScaleIn { 46 | from { transform: scale(1.2); opacity: 0; } 47 | to { transform: scale(1); opacity: 1; } 48 | } 49 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/api/revisions_diff.html: -------------------------------------------------------------------------------- 1 | {% include anchor.html title="Document revisions diff" hash="revisions_diff" %} 2 | 3 | {% highlight js %} 4 | db.revsDiff(diff, [callback]) 5 | {% endhighlight %} 6 | 7 | Given a set of document/revision IDs, returns the subset of those that do not correspond 8 | to revisions stored in the database. Primarily used in replication. 9 | 10 | #### Example Usage: 11 | 12 | {% include code/start.html id="revsdiff1" type="callback" %} 13 | {% highlight js %} 14 | db.revsDiff({ 15 | myDoc1: [ 16 | "1-b2e54331db828310f3c772d6e042ac9c", 17 | "2-3a24009a9525bde9e4bfa8a99046b00d" 18 | ] 19 | }, function (err, result) { 20 | if (err) { return console.log(err); } 21 | // handle result 22 | }); 23 | {% endhighlight %} 24 | {% include code/end.html %} 25 | {% include code/start.html id="revsdiff1" type="promise" %} 26 | {% highlight js %} 27 | db.revsDiff({ 28 | myDoc1: [ 29 | "1-b2e54331db828310f3c772d6e042ac9c", 30 | "2-3a24009a9525bde9e4bfa8a99046b00d" 31 | ] 32 | }).then(function (result) { 33 | // handle result 34 | }).catch(function (err) { 35 | console.log(err); 36 | }); 37 | {% endhighlight %} 38 | {% include code/end.html %} 39 | 40 | #### Example Response: 41 | {% highlight js %} 42 | { 43 | "myDoc1": { 44 | "missing": ["2-3a24009a9525bde9e4bfa8a99046b00d"] 45 | } 46 | } 47 | {% endhighlight %} 48 | 49 | 50 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/bootstrap/labels.less: -------------------------------------------------------------------------------- 1 | // 2 | // Labels 3 | // -------------------------------------------------- 4 | 5 | .label { 6 | display: inline; 7 | padding: .2em .6em .3em; 8 | font-size: 75%; 9 | font-weight: bold; 10 | line-height: 1; 11 | color: @label-color; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | border-radius: .25em; 16 | 17 | // Add hover effects, but only for links 18 | &[href] { 19 | &:hover, 20 | &:focus { 21 | color: @label-link-hover-color; 22 | text-decoration: none; 23 | cursor: pointer; 24 | } 25 | } 26 | 27 | // Empty labels collapse automatically (not available in IE8) 28 | &:empty { 29 | display: none; 30 | } 31 | 32 | // Quick fix for labels in buttons 33 | .btn & { 34 | position: relative; 35 | top: -1px; 36 | } 37 | } 38 | 39 | // Colors 40 | // Contextual variations (linked labels get darker on :hover) 41 | 42 | .label-default { 43 | .label-variant(@label-default-bg); 44 | } 45 | 46 | .label-primary { 47 | .label-variant(@label-primary-bg); 48 | } 49 | 50 | .label-success { 51 | .label-variant(@label-success-bg); 52 | } 53 | 54 | .label-info { 55 | .label-variant(@label-info-bg); 56 | } 57 | 58 | .label-warning { 59 | .label-variant(@label-warning-bg); 60 | } 61 | 62 | .label-danger { 63 | .label-variant(@label-danger-bg); 64 | } 65 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_posts/2014-04-01-welcome-to-the-pouchdb-blog.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | 4 | title: Welcome to the PouchDB blog 5 | 6 | author: Dale Harvey 7 | 8 | --- 9 | 10 | Hello World! Welcome to the newly formed PouchDB blog. PouchDB has been an active community for over 2 years now, with almost everything being run via IRC and Github. As the project grows, we wanted a way to communicate with users about the current state of the PouchDB world. 11 | 12 | We will obviously be posting updates and releases notes for PouchDB releases, but as well as that, we will also be blogging about related projects and technologies within the PouchDB world, such as Service Workers, CouchDB, etc. 13 | 14 | As with the PouchDB source, we would love to invite everyone to contribute. We have [documented the instructions](https://github.com/daleharvey/pouchdb/blob/master/CONTRIBUTING.md#writing-a-pouchdb-blog-post), so please get involved. 15 | 16 | Over the last 4 years PouchDB has had 89 [awesome contributors](https://github.com/daleharvey/pouchdb/graphs/contributors). I would like to give a shout-out to the people who worked together to get this site up and running in such a short time: [nickcolley](https://twitter.com/NickColley), [misosoup](https://twitter.com/misosoup), [zaccolley](https://twitter.com/zaccolley), [nolanlawson](https://twitter.com/nolanlawson) and [virgie](https://github.com/virgie) in particular. 17 | 18 | Happy Pouching. 19 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_radio.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Radio Button Inputs 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .item-radio { 8 | padding: 0; 9 | 10 | &:hover { 11 | cursor: pointer; 12 | } 13 | } 14 | 15 | .item-radio .item-content { 16 | /* give some room to the right for the checkmark icon */ 17 | padding-right: $item-padding * 4; 18 | } 19 | 20 | .item-radio .radio-icon { 21 | /* checkmark icon will be hidden by default */ 22 | position: absolute; 23 | top: 0; 24 | right: 0; 25 | z-index: $z-index-item-radio; 26 | visibility: hidden; 27 | padding: $item-padding - 2; 28 | height: 100%; 29 | font-size: 24px; 30 | } 31 | 32 | .item-radio input { 33 | /* hide any radio button inputs elements (the ugly circles) */ 34 | position: absolute; 35 | left: -9999px; 36 | 37 | &:checked ~ .item-content { 38 | /* style the item content when its checked */ 39 | background: #f7f7f7; 40 | } 41 | 42 | &:checked ~ .radio-icon { 43 | /* show the checkmark icon when its checked */ 44 | visibility: visible; 45 | } 46 | } 47 | 48 | // Hack for Android to correctly display the checked item 49 | // http://timpietrusky.com/advanced-checkbox-hack 50 | .platform-android.grade-b .item-radio, 51 | .platform-android.grade-c .item-radio { 52 | -webkit-animation: androidCheckedbugfix infinite 1s; 53 | } 54 | @-webkit-keyframes androidCheckedbugfix { 55 | from { padding: 0; } 56 | to { padding: 0; } 57 | } 58 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_guides/setup-pouchdb.md: -------------------------------------------------------------------------------- 1 | --- 2 | index: 3 3 | layout: guide 4 | title: Setting up PouchDB 5 | sidebar: guides_nav.html 6 | --- 7 | 8 | 9 | Installing PouchDB is easy. There are a few different ways to do it: 10 | 11 | Direct download 12 | ------ 13 | 14 | Download the latest **pouchdb-{{site.version}}.min.js** from the big green button above. Then in your `index.html`: 15 | 16 | ```html 17 | 18 | ``` 19 | 20 | Bower 21 | ------- 22 | 23 | Run this on the command line: 24 | 25 | ``` 26 | $ bower install pouchdb 27 | ``` 28 | 29 | Then in your `index.html`: 30 | 31 | ```html 32 | 33 | ``` 34 | 35 | npm 36 | ------ 37 | 38 | Run this on the command line: 39 | 40 | ``` 41 | $ npm install pouchdb 42 | ``` 43 | 44 | Then in your `index.html`: 45 | 46 | ```html 47 | 48 | ``` 49 | 50 | jsdelivr CDN 51 | ------ 52 | 53 | Add this to your `index.html`: 54 | 55 | ```html 56 | 57 | ``` 58 | 59 | Node.js 60 | ------- 61 | 62 | Run this on the command line: 63 | 64 | ``` 65 | $ npm install pouchdb 66 | ``` 67 | 68 | Then in your JavaScript: 69 | 70 | ```js 71 | var PouchDB = require('pouchdb'); 72 | ``` 73 | 74 | Next 75 | ------- 76 | 77 | Now that you have PouchDB installed, let's start working with databases. -------------------------------------------------------------------------------- /www/lib/pouchdb/README.md: -------------------------------------------------------------------------------- 1 | [PouchDB](http://pouchdb.com/) - The Javascript Database that Syncs 2 | ================================================== 3 | 4 | [![Build Status](https://travis-ci.org/pouchdb/pouchdb.svg)](https://travis-ci.org/pouchdb/pouchdb) 5 | 6 | PouchDB was written to help web developers build applications that work as well offline as well as they do online, applications save data locally so the user can use all the features of an app even while offline and synchronise the data between clients so they have up to date data wherever they go. 7 | 8 | PouchDB is a free open source project, written in Javascript by these [wonderful contributors](https://github.com/daleharvey/pouchdb/graphs/contributors) and inspired by Apache CouchDB. 9 | 10 | Using PouchDB 11 | ------------- 12 | 13 | To get started using PouchDB check out our [Documentation](http://pouchdb.com/learn.html) and the [API Documentation](http://pouchdb.com/api.html). 14 | 15 | 16 | Contributors 17 | ------------ 18 | If you want to get involved then check out the [contributing guide](https://github.com/daleharvey/pouchdb/blob/master/CONTRIBUTING.md) 19 | 20 | Example 21 | ------- 22 | 23 | ```javascript 24 | var db = new PouchDB('dbname'); 25 | 26 | db.put({ 27 | _id: 'dave@gmail.com', 28 | name: 'David', 29 | age: 68 30 | }); 31 | 32 | db.changes().on('change', function() { 33 | console.log('Ch-Ch-Changes'); 34 | }); 35 | 36 | db.replicate.to('http://example.com/mydb'); 37 | ``` 38 | -------------------------------------------------------------------------------- /www/lib/pouchdb/lib/deps/parse-uri.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // originally parseUri 1.2.2, now patched by us 4 | // (c) Steven Levithan 5 | // MIT License 6 | var options = { 7 | strictMode: false, 8 | key: ["source", "protocol", "authority", "userInfo", "user", "password", 9 | "host", "port", "relative", "path", "directory", "file", "query", 10 | "anchor"], 11 | q: { 12 | name: "queryKey", 13 | parser: /(?:^|&)([^&=]*)=?([^&]*)/g 14 | }, 15 | parser: { 16 | /* jshint maxlen: false */ 17 | strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, 18 | loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ 19 | } 20 | }; 21 | function parseUri(str) { 22 | var o = options; 23 | var m = o.parser[o.strictMode ? "strict" : "loose"].exec(str); 24 | var uri = {}; 25 | var i = 14; 26 | 27 | while (i--) { 28 | var key = o.key[i]; 29 | var value = m[i] || ""; 30 | var encoded = ['user', 'password'].indexOf(key) !== -1; 31 | uri[key] = encoded ? decodeURIComponent(value) : value; 32 | } 33 | 34 | uri[o.q.name] = {}; 35 | uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { 36 | if ($1) { 37 | uri[o.q.name][$1] = $2; 38 | } 39 | }); 40 | 41 | return uri; 42 | } 43 | 44 | 45 | module.exports = parseUri; -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var gutil = require('gulp-util'); 3 | var bower = require('bower'); 4 | var concat = require('gulp-concat'); 5 | var sass = require('gulp-sass'); 6 | var minifyCss = require('gulp-minify-css'); 7 | var rename = require('gulp-rename'); 8 | var sh = require('shelljs'); 9 | 10 | var paths = { 11 | sass: ['./scss/**/*.scss'] 12 | }; 13 | 14 | gulp.task('default', ['sass']); 15 | 16 | gulp.task('sass', function(done) { 17 | gulp.src('./scss/ionic.app.scss') 18 | .pipe(sass({ 19 | errLogToConsole: true 20 | })) 21 | .pipe(gulp.dest('./www/css/')) 22 | .pipe(minifyCss({ 23 | keepSpecialComments: 0 24 | })) 25 | .pipe(rename({ extname: '.min.css' })) 26 | .pipe(gulp.dest('./www/css/')) 27 | .on('end', done); 28 | }); 29 | 30 | gulp.task('watch', function() { 31 | gulp.watch(paths.sass, ['sass']); 32 | }); 33 | 34 | gulp.task('install', ['git-check'], function() { 35 | return bower.commands.install() 36 | .on('log', function(data) { 37 | gutil.log('bower', gutil.colors.cyan(data.id), data.message); 38 | }); 39 | }); 40 | 41 | gulp.task('git-check', function(done) { 42 | if (!sh.which('git')) { 43 | console.log( 44 | ' ' + gutil.colors.red('Git is not installed.'), 45 | '\n Git, the version control system, is required to download Ionic.', 46 | '\n Download git here:', gutil.colors.cyan('http://git-scm.com/downloads') + '.', 47 | '\n Once git is installed, run \'' + gutil.colors.cyan('gulp install') + '\' again.' 48 | ); 49 | process.exit(1); 50 | } 51 | done(); 52 | }); 53 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/post_details.html: -------------------------------------------------------------------------------- 1 | {% unless post %} 2 | {% assign post = page %} 3 | {% endunless %} 4 | 5 | {% assign post_author = post.author %} 6 | {% assign post_gravatar = 'http://www.fillmurray.com/82/82' %} 7 | {% assign modified_date = '' %} 8 | 9 | {% for author in site.data.authors %} 10 | {% if author.name == post.author %} 11 | {% if author.twitter %} 12 | {% capture post_author %}{{ post.author }}{% endcapture %} 13 | {% endif %} 14 | {% if author.gravatar %} 15 | {% capture post_gravatar %}https://gravatar.com/avatar/{{ author.gravatar }}{% endcapture %} 16 | {% endif %} 17 | {% endif %} 18 | {% endfor %} 19 | 20 | {% if post.modified_date %} 21 | {% capture modified_date %}Updated: {{ post.modified_date | date_to_long_string }}
    {% endcapture %} 22 | {% endif %} 23 | 24 |
    25 |
    26 | 27 | {{ post.author }} 28 | 29 |
    30 |

    31 | By: {{ post_author }}
    32 | Published: {{ post.date | date_to_long_string }}
    33 | {% if page.url == "/blog/index.html" or page.url contains "/blog/page" or page.url == "/index.html" %} 34 | {{ post.excerpt | strip_html | truncatewords: 30, '' }} 35 | [...] 36 | {% endif %} 37 |

    38 |
    39 |
    40 |
    41 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/bootstrap/code.less: -------------------------------------------------------------------------------- 1 | // 2 | // Code (inline and block) 3 | // -------------------------------------------------- 4 | 5 | 6 | // Inline and block code styles 7 | code, 8 | kbd, 9 | pre, 10 | samp { 11 | font-family: @font-family-monospace; 12 | } 13 | 14 | // Inline code 15 | code { 16 | padding: 2px 4px; 17 | font-size: 90%; 18 | color: @code-color; 19 | background-color: @code-bg; 20 | white-space: nowrap; 21 | border-radius: @border-radius-base; 22 | } 23 | 24 | // User input typically entered via keyboard 25 | kbd { 26 | padding: 2px 4px; 27 | font-size: 90%; 28 | color: @kbd-color; 29 | background-color: @kbd-bg; 30 | border-radius: @border-radius-small; 31 | box-shadow: inset 0 -1px 0 rgba(0,0,0,.25); 32 | } 33 | 34 | // Blocks of code 35 | pre { 36 | display: block; 37 | padding: ((@line-height-computed - 1) / 2); 38 | margin: 0 0 (@line-height-computed / 2); 39 | font-size: (@font-size-base - 1); // 14px to 13px 40 | line-height: @line-height-base; 41 | word-break: break-all; 42 | word-wrap: break-word; 43 | color: @pre-color; 44 | background-color: @pre-bg; 45 | border: 1px solid @pre-border-color; 46 | border-radius: @border-radius-base; 47 | 48 | // Account for some code outputs that place code tags in pre tags 49 | code { 50 | padding: 0; 51 | font-size: inherit; 52 | color: inherit; 53 | white-space: pre-wrap; 54 | background-color: transparent; 55 | border-radius: 0; 56 | } 57 | } 58 | 59 | // Enable scrollable blocks of code 60 | .pre-scrollable { 61 | max-height: @pre-scrollable-max-height; 62 | overflow-y: scroll; 63 | } 64 | -------------------------------------------------------------------------------- /www/js/overview.controller.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | angular.module('starter').controller('OverviewController', ['$scope', '$ionicModal', '$ionicPlatform', 'BirthdayService', OverviewController]); 3 | 4 | function OverviewController($scope, $ionicModal, $ionicPlatform, birthdayService) { 5 | var vm = this; 6 | 7 | // Initialize the database. 8 | $ionicPlatform.ready(function() { 9 | birthdayService.initDB(); 10 | 11 | // Get all birthday records from the database. 12 | birthdayService.getAllBirthdays().then(function(birthdays) { 13 | vm.birthdays = birthdays; 14 | }); 15 | }); 16 | 17 | // Initialize the modal view. 18 | $ionicModal.fromTemplateUrl('add-or-edit-birthday.html', { 19 | scope: $scope, 20 | animation: 'slide-in-up' 21 | }).then(function(modal) { 22 | $scope.modal = modal; 23 | }); 24 | 25 | vm.showAddBirthdayModal = function() { 26 | $scope.birthday = {}; 27 | $scope.action = 'Add'; 28 | $scope.isAdd = true; 29 | $scope.modal.show(); 30 | }; 31 | 32 | vm.showEditBirthdayModal = function(birthday) { 33 | $scope.birthday = birthday; 34 | $scope.action = 'Edit'; 35 | $scope.isAdd = false; 36 | $scope.modal.show(); 37 | }; 38 | 39 | $scope.saveBirthday = function() { 40 | if ($scope.isAdd) { 41 | birthdayService.addBirthday($scope.birthday); 42 | } else { 43 | birthdayService.updateBirthday($scope.birthday); 44 | } 45 | $scope.modal.hide(); 46 | }; 47 | 48 | $scope.deleteBirthday = function() { 49 | birthdayService.deleteBirthday($scope.birthday); 50 | $scope.modal.hide(); 51 | }; 52 | 53 | $scope.$on('$destroy', function() { 54 | $scope.modal.remove(); 55 | }); 56 | 57 | return vm; 58 | } 59 | })(); -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/bootstrap/alerts.less: -------------------------------------------------------------------------------- 1 | // 2 | // Alerts 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base styles 7 | // ------------------------- 8 | 9 | .alert { 10 | padding: @alert-padding; 11 | margin-bottom: @line-height-computed; 12 | border: 1px solid transparent; 13 | border-radius: @alert-border-radius; 14 | 15 | // Headings for larger alerts 16 | h4 { 17 | margin-top: 0; 18 | // Specified for the h4 to prevent conflicts of changing @headings-color 19 | color: inherit; 20 | } 21 | // Provide class for links that match alerts 22 | .alert-link { 23 | font-weight: @alert-link-font-weight; 24 | } 25 | 26 | // Improve alignment and spacing of inner content 27 | > p, 28 | > ul { 29 | margin-bottom: 0; 30 | } 31 | > p + p { 32 | margin-top: 5px; 33 | } 34 | } 35 | 36 | // Dismissable alerts 37 | // 38 | // Expand the right padding and account for the close button's positioning. 39 | 40 | .alert-dismissable { 41 | padding-right: (@alert-padding + 20); 42 | 43 | // Adjust close link position 44 | .close { 45 | position: relative; 46 | top: -2px; 47 | right: -21px; 48 | color: inherit; 49 | } 50 | } 51 | 52 | // Alternate styles 53 | // 54 | // Generate contextual modifier classes for colorizing the alert. 55 | 56 | .alert-success { 57 | .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text); 58 | } 59 | .alert-info { 60 | .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text); 61 | } 62 | .alert-warning { 63 | .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text); 64 | } 65 | .alert-danger { 66 | .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text); 67 | } 68 | -------------------------------------------------------------------------------- /www/lib/angular-ui-router/src/viewScroll.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @ngdoc object 3 | * @name ui.router.state.$uiViewScrollProvider 4 | * 5 | * @description 6 | * Provider that returns the {@link ui.router.state.$uiViewScroll} service function. 7 | */ 8 | function $ViewScrollProvider() { 9 | 10 | var useAnchorScroll = false; 11 | 12 | /** 13 | * @ngdoc function 14 | * @name ui.router.state.$uiViewScrollProvider#useAnchorScroll 15 | * @methodOf ui.router.state.$uiViewScrollProvider 16 | * 17 | * @description 18 | * Reverts back to using the core [`$anchorScroll`](http://docs.angularjs.org/api/ng.$anchorScroll) service for 19 | * scrolling based on the url anchor. 20 | */ 21 | this.useAnchorScroll = function () { 22 | useAnchorScroll = true; 23 | }; 24 | 25 | /** 26 | * @ngdoc object 27 | * @name ui.router.state.$uiViewScroll 28 | * 29 | * @requires $anchorScroll 30 | * @requires $timeout 31 | * 32 | * @description 33 | * When called with a jqLite element, it scrolls the element into view (after a 34 | * `$timeout` so the DOM has time to refresh). 35 | * 36 | * If you prefer to rely on `$anchorScroll` to scroll the view to the anchor, 37 | * this can be enabled by calling {@link ui.router.state.$uiViewScrollProvider#methods_useAnchorScroll `$uiViewScrollProvider.useAnchorScroll()`}. 38 | */ 39 | this.$get = ['$anchorScroll', '$timeout', function ($anchorScroll, $timeout) { 40 | if (useAnchorScroll) { 41 | return $anchorScroll; 42 | } 43 | 44 | return function ($element) { 45 | $timeout(function () { 46 | $element[0].scrollIntoView(); 47 | }, 0, false); 48 | }; 49 | }]; 50 | } 51 | 52 | angular.module('ui.router.state').provider('$uiViewScroll', $ViewScrollProvider); 53 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/api/compaction.html: -------------------------------------------------------------------------------- 1 | {% include anchor.html title="Compact the database" hash="compaction" %} 2 | 3 | {% highlight js %} 4 | db.compact([options], [callback]) 5 | {% endhighlight %} 6 | 7 | Triggers a compaction operation in the local or remote database. This reduces the database's size by removing unused and old data, namely non-leaf revisions and attachments that are no longer referenced by those revisions. Note that this is a separate operation from [`viewCleanup()`](#view_cleanup). 8 | 9 | For remote databases, PouchDB checks the compaction status at regular intervals and fires the callback (or resolves the promise) upon completion. Consult the [compaction section of CouchDB's maintenance documentation](http://couchdb.readthedocs.org/en/latest/maintenance/compaction.html) for more details. 10 | 11 | Also see [auto-compaction](#create_database), which runs compaction automatically (local databases only). 12 | 13 | * `options.interval`: Number of milliseconds to wait before asking again if compaction is already done. Defaults to 200. (Only applies to remote databases.) 14 | 15 | #### Example Usage: 16 | 17 | {% include code/start.html id="compact" type="callback" %} 18 | {% highlight js %} 19 | db.compact(function (err, result) { 20 | if (err) { return console.log(err); } 21 | // handle result 22 | }); 23 | {% endhighlight %} 24 | {% include code/end.html %} 25 | {% include code/start.html id="compact" type="promise" %} 26 | {% highlight js %} 27 | db.compact().then(function (result) { 28 | // handle result 29 | }).catch(function (err) { 30 | console.log(err); 31 | }); 32 | {% endhighlight %} 33 | {% include code/end.html %} 34 | 35 | #### Example Response: 36 | {% highlight js %} 37 | { "ok" : "true" } 38 | {% endhighlight %} 39 | 40 | 41 | -------------------------------------------------------------------------------- /www/lib/pouchdb/lib/taskqueue.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = TaskQueue; 4 | 5 | function TaskQueue() { 6 | this.isReady = false; 7 | this.failed = false; 8 | this.queue = []; 9 | } 10 | 11 | TaskQueue.prototype.execute = function () { 12 | var d, func; 13 | if (this.failed) { 14 | while ((d = this.queue.shift())) { 15 | if (typeof d === 'function') { 16 | d(this.failed); 17 | continue; 18 | } 19 | func = d.parameters[d.parameters.length - 1]; 20 | if (typeof func === 'function') { 21 | func(this.failed); 22 | } else if (d.name === 'changes' && typeof func.complete === 'function') { 23 | func.complete(this.failed); 24 | } 25 | } 26 | } else if (this.isReady) { 27 | while ((d = this.queue.shift())) { 28 | 29 | if (typeof d === 'function') { 30 | d(); 31 | } else { 32 | d.task = this.db[d.name].apply(this.db, d.parameters); 33 | } 34 | } 35 | } 36 | }; 37 | 38 | TaskQueue.prototype.fail = function (err) { 39 | this.failed = err; 40 | this.execute(); 41 | }; 42 | 43 | TaskQueue.prototype.ready = function (db) { 44 | if (this.failed) { 45 | return false; 46 | } else if (arguments.length === 0) { 47 | return this.isReady; 48 | } 49 | this.isReady = db ? true: false; 50 | this.db = db; 51 | this.execute(); 52 | }; 53 | 54 | TaskQueue.prototype.addTask = function (name, parameters) { 55 | if (typeof name === 'function') { 56 | this.queue.push(name); 57 | if (this.failed) { 58 | this.execute(); 59 | } 60 | } else { 61 | var task = { name: name, parameters: parameters }; 62 | this.queue.push(task); 63 | if (this.failed) { 64 | this.execute(); 65 | } 66 | return task; 67 | } 68 | }; 69 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_badge.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Badges 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .badge { 8 | @include badge-style($badge-default-bg, $badge-default-text); 9 | z-index: $z-index-badge; 10 | display: inline-block; 11 | padding: 3px 8px; 12 | min-width: 10px; 13 | border-radius: $badge-border-radius; 14 | vertical-align: baseline; 15 | text-align: center; 16 | white-space: nowrap; 17 | font-weight: $badge-font-weight; 18 | font-size: $badge-font-size; 19 | line-height: $badge-line-height; 20 | 21 | &:empty { 22 | display: none; 23 | } 24 | } 25 | 26 | //Be sure to override specificity of rule that 'badge color matches tab color by default' 27 | .tabs .tab-item .badge, 28 | .badge { 29 | &.badge-light { 30 | @include badge-style($badge-light-bg, $badge-light-text); 31 | } 32 | &.badge-stable { 33 | @include badge-style($badge-stable-bg, $badge-stable-text); 34 | } 35 | &.badge-positive { 36 | @include badge-style($badge-positive-bg, $badge-positive-text); 37 | } 38 | &.badge-calm { 39 | @include badge-style($badge-calm-bg, $badge-calm-text); 40 | } 41 | &.badge-assertive { 42 | @include badge-style($badge-assertive-bg, $badge-assertive-text); 43 | } 44 | &.badge-balanced { 45 | @include badge-style($badge-balanced-bg, $badge-balanced-text); 46 | } 47 | &.badge-energized { 48 | @include badge-style($badge-energized-bg, $badge-energized-text); 49 | } 50 | &.badge-royal { 51 | @include badge-style($badge-royal-bg, $badge-royal-text); 52 | } 53 | &.badge-dark { 54 | @include badge-style($badge-dark-bg, $badge-dark-text); 55 | } 56 | } 57 | 58 | // Quick fix for labels/badges in buttons 59 | .button .badge { 60 | position: relative; 61 | top: -1px; 62 | } 63 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_posts/2014-09-04-pouchdb-3.0.4.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | 4 | title: PouchDB 3.0.4: Night of the Living Attachments 5 | 6 | author: Calvin Metcalf 7 | 8 | --- 9 | 10 | This week we present [PouchDB 3.0.4](https://github.com/pouchdb/pouchdb/releases/tag/3.0.4), which fixes a bunch of stuff with attachments. Now the kittens generated by the [3.0.0 release](http://pouchdb.com/2014/08/12/pouchdb-3.0.0.html) may be safely stored in Pouch. 11 | 12 | {% include img.html src="kittens_small.jpg" alt="Kittens" %} 13 | 14 | ### Attachmentspalooza 15 | 16 | - In Firefox, different attachments now (correctly) have different MD5 hashes. Previously they were just hashes of the string `'[Object] object'`. With this, we also now check that the hashes we produce are identical to the ones that CouchDB produces (with the exception of plaintext ones due to Erlang being weird and not having ASCII strings) ([#2698](https://github.com/pouchdb/pouchdb/issues/2698)). 17 | - Weirdness in Chrome 37-39 with FileReader and empty blobs is now fixed ([#2713](https://github.com/pouchdb/pouchdb/issues/2713)). 18 | - Fix for [a bug in Chrome 37](https://code.google.com/p/chromium/issues/detail?id=408120) relating to blobs in IndexedDB ([#2701](https://github.com/pouchdb/pouchdb/issues/2701)). 19 | - HTTP pouches now support buffer/blob data in attachments ([#2577](https://github.com/pouchdb/pouchdb/issues/2577)). 20 | 21 | ### Other fixes in 3.0.4 22 | 23 | * When running sync, it only creates one instance for each database ([#2662](https://github.com/pouchdb/pouchdb/pull/2662)). 24 | * Performance improvements for persisted map/reduce, and it also uses less space ([pouchdb/mapreduce#191](https://github.com/pouchdb/mapreduce/pull/191) and [pouchdb/mapreduce#185](https://github.com/pouchdb/mapreduce/issues/185)). 25 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/bootstrap/grid.less: -------------------------------------------------------------------------------- 1 | // 2 | // Grid system 3 | // -------------------------------------------------- 4 | 5 | 6 | // Container widths 7 | // 8 | // Set the container width, and override it for fixed navbars in media queries. 9 | 10 | .container { 11 | .container-fixed(); 12 | 13 | @media (min-width: @screen-sm-min) { 14 | width: @container-sm; 15 | } 16 | @media (min-width: @screen-md-min) { 17 | width: @container-md; 18 | } 19 | @media (min-width: @screen-lg-min) { 20 | width: @container-lg; 21 | } 22 | } 23 | 24 | 25 | // Fluid container 26 | // 27 | // Utilizes the mixin meant for fixed width containers, but without any defined 28 | // width for fluid, full width layouts. 29 | 30 | .container-fluid { 31 | .container-fixed(); 32 | } 33 | 34 | 35 | // Row 36 | // 37 | // Rows contain and clear the floats of your columns. 38 | 39 | .row { 40 | .make-row(); 41 | } 42 | 43 | 44 | // Columns 45 | // 46 | // Common styles for small and large grid columns 47 | 48 | .make-grid-columns(); 49 | 50 | 51 | // Extra small grid 52 | // 53 | // Columns, offsets, pushes, and pulls for extra small devices like 54 | // smartphones. 55 | 56 | .make-grid(xs); 57 | 58 | 59 | // Small grid 60 | // 61 | // Columns, offsets, pushes, and pulls for the small device range, from phones 62 | // to tablets. 63 | 64 | @media (min-width: @screen-sm-min) { 65 | .make-grid(sm); 66 | } 67 | 68 | 69 | // Medium grid 70 | // 71 | // Columns, offsets, pushes, and pulls for the desktop device range. 72 | 73 | @media (min-width: @screen-md-min) { 74 | .make-grid(md); 75 | } 76 | 77 | 78 | // Large grid 79 | // 80 | // Columns, offsets, pushes, and pulls for the large desktop device range. 81 | 82 | @media (min-width: @screen-lg-min) { 83 | .make-grid(lg); 84 | } 85 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_platform.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Platform 4 | * -------------------------------------------------- 5 | * Platform specific tweaks 6 | */ 7 | 8 | .platform-ios.platform-cordova { 9 | // iOS has a status bar which sits on top of the header. 10 | // Bump down everything to make room for it. However, if 11 | // if its in Cordova, and set to fullscreen, then disregard the bump. 12 | &:not(.fullscreen) { 13 | .bar-header:not(.bar-subheader) { 14 | height: $bar-height + $ios-statusbar-height; 15 | 16 | &.item-input-inset .item-input-wrapper { 17 | margin-top: 19px !important; 18 | } 19 | 20 | > * { 21 | margin-top: $ios-statusbar-height; 22 | } 23 | } 24 | .tabs-top > .tabs, 25 | .tabs.tabs-top { 26 | top: $bar-height + $ios-statusbar-height; 27 | } 28 | 29 | .has-header, 30 | .bar-subheader { 31 | top: $bar-height + $ios-statusbar-height; 32 | } 33 | .has-subheader { 34 | top: $bar-height + $bar-subheader-height + $ios-statusbar-height; 35 | } 36 | .has-header.has-tabs-top { 37 | top: $bar-height + $tabs-height + $ios-statusbar-height; 38 | } 39 | .has-header.has-subheader.has-tabs-top { 40 | top: $bar-height + $bar-subheader-height + $tabs-height + $ios-statusbar-height; 41 | } 42 | } 43 | &.status-bar-hide { 44 | // Cordova doesn't adjust the body height correctly, this makes up for it 45 | margin-bottom: 20px; 46 | } 47 | } 48 | 49 | @media (orientation:landscape) { 50 | .platform-ios.platform-browser.platform-ipad { 51 | position: fixed; // required for iPad 7 Safari 52 | } 53 | } 54 | 55 | .platform-c:not(.enable-transitions) * { 56 | // disable transitions on grade-c devices (Android 2) 57 | -webkit-transition: none !important; 58 | transition: none !important; 59 | } 60 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/api/database_information.html: -------------------------------------------------------------------------------- 1 | {% include anchor.html title="Get database information" hash="database_information" %} 2 | 3 | {% highlight js %} 4 | db.info([callback]) 5 | {% endhighlight %} 6 | 7 | Get information about a database. 8 | 9 | #### Example Usage: 10 | 11 | {% include code/start.html id="dbinfo" type="callback" %} 12 | {% highlight js %} 13 | db.info(function(err, info) { 14 | if (err) { return console.log(err); } 15 | // handle result 16 | }); 17 | {% endhighlight %} 18 | {% include code/end.html %} 19 | {% include code/start.html id="dbinfo" type="promise" %} 20 | {% highlight js %} 21 | db.info().then(function (result) { 22 | // handle result 23 | }).catch(function (err) { 24 | console.log(err); 25 | }); 26 | {% endhighlight %} 27 | {% include code/end.html %} 28 | 29 | #### Example Response: 30 | {% highlight js %} 31 | { 32 | "db_name": "test", 33 | "doc_count": 4, 34 | "update_seq": 5 35 | } 36 | {% endhighlight %} 37 | 38 | **Response object:** 39 | 40 | * `db_name` is the name of the database you gave when you called `new PouchDB()`, and also the unique identifier for the database. 41 | * `doc_count` is the total number of non-deleted documents in the database. 42 | * `update_seq` is the sequence number of the database. It starts at 0 and gets incremented every time a document is added or modified. 43 | 44 | There are also some details you can use for debugging. These are unofficial and may change at any time: 45 | 46 | * `idb_attachment_format`: (IndexedDB) either `'base64'` or `'binary'`, depending on whether the browser [supports binary blobs](/faq.html#data_types). 47 | * `sqlite_plugin`: (WebSQL) true if the [SQLite Plugin][] is being used. 48 | * `websql_encoding`: (WebSQL) either `'UTF-8'` or `'UTF-16'`, depending on the [WebSQL implementation](http://pouchdb.com/faq.html#data_types) -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/api/sync.html: -------------------------------------------------------------------------------- 1 | {% include anchor.html title="Sync a database" hash="sync" %} 2 | 3 | {% highlight js %} 4 | var sync = PouchDB.sync(src, target, [options]) 5 | {% endhighlight %} 6 | 7 | Sync data from `src` to `target` and `target` to `src`. This is a convenience method for bidirectional data replication. 8 | 9 | In other words, this code: 10 | 11 | {% highlight js %} 12 | PouchDB.replicate('mydb', 'http://localhost:5984/mydb'); 13 | PouchDB.replicate('http://localhost:5984/mydb', 'mydb'); 14 | {% endhighlight %} 15 | 16 | 17 | is equivalent to this code: 18 | 19 | {% highlight js %} 20 | PouchDB.sync('mydb', 'http://localhost:5984/mydb'); 21 | {% endhighlight %} 22 | 23 | 24 | ### Options 25 | 26 | Please refer to [replicate()](api.html#replication) for documentation on options, as `sync()` is just a convenience method that entails bidirectional replication. 27 | 28 | #### Example Usage: 29 | {% highlight js %} 30 | var sync = PouchDB.sync('mydb', 'http://localhost:5984/mydb', { 31 | live: true, 32 | retry: true 33 | }).on('change', function (info) { 34 | // handle change 35 | }).on('paused', function () { 36 | // replication paused (e.g. user went offline) 37 | }).on('active', function () { 38 | // replicate resumed (e.g. user went back online) 39 | }).on('denied', function (info) { 40 | // a document failed to replicate, e.g. due to permissions 41 | }).on('complete', function (info) { 42 | // handle complete 43 | }).on('error', function (err) { 44 | // handle error 45 | }); 46 | 47 | sync.cancel(); // whenever you want to cancel 48 | {% endhighlight %} 49 | 50 | There is also a shorthand for syncing given existing PouchDB objects. This behaves the same as `PouchDB.sync()`: 51 | 52 | {% highlight js %} 53 | db.sync(remoteDB, [options]); 54 | {% endhighlight %} 55 | 56 | For any further details, please refer to [replicate()](api.html#replication). 57 | 58 | 59 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/pouchdb/variables.less: -------------------------------------------------------------------------------- 1 | @import "@{bootstrap}/variables.less"; 2 | 3 | // Base img dir 4 | @img_dir: "../img"; 5 | 6 | // Color 7 | @brand-accent: #fa3649; 8 | @brand-primary: #6ccb99; 9 | @twitter: cornflowerblue; 10 | @github: darkslategray; 11 | 12 | // Social colors 13 | @btn-twitter-color: lighten(@twitter, 25%); 14 | @btn-twitter-bg: @twitter; 15 | @btn-twitter-border: darken(@twitter, 10%); 16 | @btn-github-color: lighten(@github, 50%); 17 | @btn-github-bg: @github; 18 | @btn-github-border: darken(@github, 10%); 19 | 20 | // Scaffolding 21 | @body-bg: #f6f6f6; 22 | @text-color: @gray; 23 | 24 | // Container sizes 25 | @container-large-desktop: ((950px + @grid-gutter-width)); 26 | 27 | // Code 28 | @code-color: darken(@brand-primary, 30%); 29 | @code-bg: lighten(@brand-primary, 30%); 30 | 31 | // Type 32 | @font-family-sans-serif: "Open Sans", Helvetica, Arial, sans-serif; 33 | 34 | @link-color: @brand-accent; 35 | @nav-link-hover-bg: none; 36 | 37 | @headings-font-family: "Lato", Helvetica, Arial, sans-serif; 38 | @header-color: #ffffff; 39 | @header-border-color: #c8c8c8; 40 | 41 | // Logo 42 | @logo-img: '@{img_dir}/mark.svg'; 43 | @logo-fallback-img: '@{img_dir}/mark.png'; 44 | @logo-img-ratio: .78; 45 | @logo-img-height: 70px; 46 | @logo-width: 250px; 47 | // When it gets silly small display only the mark. 48 | @logo-breakpoint: 330px; 49 | 50 | // Navs 51 | 52 | // Switch nav into justified view 53 | @navs-breakpoint-justified: @screen-sm-max; 54 | // Switch nav into horizontal view 55 | @navs-breakpoint-horizontal: 510px; 56 | 57 | // Minimum width and height for fixed sidebars 58 | @affix-min-width: @screen-sm-min; 59 | @affix-min-height: 475px; 60 | 61 | // Alerts 62 | @alert-before-size: 35px; 63 | @alert-before-info-text: 'i'; 64 | @alert-before-success-text: '\2713'; 65 | @alert-before-warning-text: '!'; 66 | @alert-before-danger-text: 'x'; 67 | 68 | // Pre 69 | @pre-padding: 15px; 70 | -------------------------------------------------------------------------------- /www/lib/pouchdb/lib/deps/parse-hex.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // 4 | // Parsing hex strings. Yeah. 5 | // 6 | // So basically we need this because of a bug in WebSQL: 7 | // https://code.google.com/p/chromium/issues/detail?id=422690 8 | // https://bugs.webkit.org/show_bug.cgi?id=137637 9 | // 10 | // UTF-8 and UTF-16 are provided as separate functions 11 | // for meager performance improvements 12 | // 13 | 14 | function decodeUtf8(str) { 15 | return decodeURIComponent(window.escape(str)); 16 | } 17 | 18 | function hexToInt(charCode) { 19 | // '0'-'9' is 48-57 20 | // 'A'-'F' is 65-70 21 | // SQLite will only give us uppercase hex 22 | return charCode < 65 ? (charCode - 48) : (charCode - 55); 23 | } 24 | 25 | 26 | // Example: 27 | // pragma encoding=utf8; 28 | // select hex('A'); 29 | // returns '41' 30 | function parseHexUtf8(str, start, end) { 31 | var result = ''; 32 | while (start < end) { 33 | result += String.fromCharCode( 34 | (hexToInt(str.charCodeAt(start++)) << 4) | 35 | hexToInt(str.charCodeAt(start++))); 36 | } 37 | return result; 38 | } 39 | 40 | // Example: 41 | // pragma encoding=utf16; 42 | // select hex('A'); 43 | // returns '4100' 44 | // notice that the 00 comes after the 41 (i.e. it's swizzled) 45 | function parseHexUtf16(str, start, end) { 46 | var result = ''; 47 | while (start < end) { 48 | // UTF-16, so swizzle the bytes 49 | result += String.fromCharCode( 50 | (hexToInt(str.charCodeAt(start + 2)) << 12) | 51 | (hexToInt(str.charCodeAt(start + 3)) << 8) | 52 | (hexToInt(str.charCodeAt(start)) << 4) | 53 | hexToInt(str.charCodeAt(start + 1))); 54 | start += 4; 55 | } 56 | return result; 57 | } 58 | 59 | function parseHexString(str, encoding) { 60 | if (encoding === 'UTF-8') { 61 | return decodeUtf8(parseHexUtf8(str, 0, str.length)); 62 | } else { 63 | return parseHexUtf16(str, 0, str.length); 64 | } 65 | } 66 | 67 | module.exports = parseHexString; -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/bootstrap/progress-bars.less: -------------------------------------------------------------------------------- 1 | // 2 | // Progress bars 3 | // -------------------------------------------------- 4 | 5 | 6 | // Bar animations 7 | // ------------------------- 8 | 9 | // WebKit 10 | @-webkit-keyframes progress-bar-stripes { 11 | from { background-position: 40px 0; } 12 | to { background-position: 0 0; } 13 | } 14 | 15 | // Spec and IE10+ 16 | @keyframes progress-bar-stripes { 17 | from { background-position: 40px 0; } 18 | to { background-position: 0 0; } 19 | } 20 | 21 | 22 | 23 | // Bar itself 24 | // ------------------------- 25 | 26 | // Outer container 27 | .progress { 28 | overflow: hidden; 29 | height: @line-height-computed; 30 | margin-bottom: @line-height-computed; 31 | background-color: @progress-bg; 32 | border-radius: @border-radius-base; 33 | .box-shadow(inset 0 1px 2px rgba(0,0,0,.1)); 34 | } 35 | 36 | // Bar of progress 37 | .progress-bar { 38 | float: left; 39 | width: 0%; 40 | height: 100%; 41 | font-size: @font-size-small; 42 | line-height: @line-height-computed; 43 | color: @progress-bar-color; 44 | text-align: center; 45 | background-color: @progress-bar-bg; 46 | .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15)); 47 | .transition(width .6s ease); 48 | } 49 | 50 | // Striped bars 51 | .progress-striped .progress-bar { 52 | #gradient > .striped(); 53 | background-size: 40px 40px; 54 | } 55 | 56 | // Call animation for the active one 57 | .progress.active .progress-bar { 58 | .animation(progress-bar-stripes 2s linear infinite); 59 | } 60 | 61 | 62 | 63 | // Variations 64 | // ------------------------- 65 | 66 | .progress-bar-success { 67 | .progress-bar-variant(@progress-bar-success-bg); 68 | } 69 | 70 | .progress-bar-info { 71 | .progress-bar-variant(@progress-bar-info-bg); 72 | } 73 | 74 | .progress-bar-warning { 75 | .progress-bar-variant(@progress-bar-warning-bg); 76 | } 77 | 78 | .progress-bar-danger { 79 | .progress-bar-variant(@progress-bar-danger-bg); 80 | } 81 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/pouchdb/navs.less: -------------------------------------------------------------------------------- 1 | @import "@{bootstrap}/navs.less"; 2 | 3 | .nav-header { 4 | float: right; 5 | > li { min-width: 100px; } 6 | } 7 | .nav-silent { 8 | > li > a { 9 | padding: .1em 0; 10 | color: @text-color; 11 | } 12 | } 13 | 14 | /** 15 | * Sidebar navigation used in learn.html 16 | **/ 17 | .nav-sidebar { 18 | > li.active > a, 19 | > li > a:hover { 20 | color: darken(@brand-primary, 10%); 21 | border-right: 2px solid lighten(@brand-primary, 10%); 22 | padding-right: 10px; 23 | } 24 | } 25 | 26 | @media (max-width: @navs-breakpoint-justified) { 27 | .nav-header { 28 | width: 100%; 29 | > li { 30 | float: none; 31 | display: table-cell; 32 | width: 1%; 33 | min-width: initial; 34 | > a { text-align: center; } 35 | } 36 | } 37 | } 38 | 39 | @media (max-width: @navs-breakpoint-horizontal) { 40 | .nav-header > li:last-child { 41 | float: left; 42 | width: 100%; 43 | } 44 | } 45 | 46 | @media (max-width: @logo-breakpoint) { 47 | .nav-header > li { 48 | float: left; 49 | width: 100%; 50 | } 51 | } 52 | 53 | @media (max-width: @screen-sm-min) { 54 | .nav.nav-sidebar { margin-bottom: 25px; } 55 | .nav-head, 56 | .nav.nav-sidebar { text-align: center; } 57 | } 58 | 59 | 60 | .nav-code { 61 | border-bottom: none; 62 | } 63 | .nav-code > li { 64 | float: right; 65 | } 66 | .nav-code > li > a { 67 | outline: 0; 68 | padding: .5em .75em; 69 | margin-right: 0; 70 | margin-left: 1px; 71 | font-size: .8em; 72 | line-height: 1.3; 73 | } 74 | .nav-code > li.active > a, 75 | .nav-code > li.active > a:hover, 76 | .nav-code > li.active > a:focus { 77 | border-color: #3f3f3f; 78 | background: #3f3f3f; 79 | color: #eee; 80 | padding-bottom: 15px; 81 | margin-bottom: -15px; 82 | } 83 | .nav-code > li > a:hover { 84 | border-color: transparent; 85 | } 86 | .nav-code + .tab-content pre { 87 | padding-top: 15px; 88 | padding-bottom: 15px; 89 | } 90 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/pouchdb/highlight.less: -------------------------------------------------------------------------------- 1 | .highlight { 2 | pre { 3 | background-color: #3f3f3f; 4 | 5 | border: none; 6 | border-radius: @border-radius-base; 7 | } 8 | 9 | code, 10 | pre{ color: #ffffff; } 11 | 12 | .hll { background-color: #3e403d } 13 | .c { color: #75715e } 14 | .err { color: #960050; background-color: #1e0010 } 15 | .k { color: #66d9ef } 16 | .l { color: #ae81ff } 17 | .n { color: #f8f8f2 } 18 | .o { color: #f92672 } 19 | .p { color: #f8f8f2 } 20 | .cm { color: #75715e } 21 | .cp { color: #75715e } 22 | .c1 { color: #75715e } 23 | .cs { color: #75715e } 24 | .ge { font-style: italic } 25 | .gs { font-weight: bold } 26 | .kc { color: #66d9ef } 27 | .kd { color: #66d9ef } 28 | .kn { color: #f92672 } 29 | .kp { color: #66d9ef } 30 | .kr { color: #66d9ef } 31 | .kt { color: #66d9ef } 32 | .ld { color: #e6db74 } 33 | .m { color: #ae81ff } 34 | .s { color: #e6db74 } 35 | .na { color: #a6e22e } 36 | .nb { color: #f8f8f2 } 37 | .nc { color: #a6e22e } 38 | .no { color: #66d9ef } 39 | .nd { color: #a6e22e } 40 | .ni { color: #f8f8f2 } 41 | .ne { color: #a6e22e } 42 | .nf { color: #a6e22e } 43 | .nl { color: #f8f8f2 } 44 | .nn { color: #f8f8f2 } 45 | .nx { color: #6eca97 } 46 | .py { color: #f8f8f2 } 47 | .nt { color: #f92672 } 48 | .nv { color: #f8f8f2 } 49 | .ow { color: #f92672 } 50 | .w { color: #f8f8f2 } 51 | .mf { color: #ae81ff } 52 | .mh { color: #ae81ff } 53 | .mi { color: #ae81ff } 54 | .mo { color: #ae81ff } 55 | .sb { color: #e6db74 } 56 | .sc { color: #e6db74 } 57 | .sd { color: #e6db74 } 58 | .s2 { color: #e6db74 } 59 | .se { color: #ae81ff } 60 | .sh { color: #e6db74 } 61 | .si { color: #e6db74 } 62 | .sx { color: #e6db74 } 63 | .sr { color: #e6db74 } 64 | .s1 { color: #e6db74 } 65 | .ss { color: #e6db74 } 66 | .bp { color: #f8f8f2 } 67 | .vc { color: #f8f8f2 } 68 | .vg { color: #f8f8f2 } 69 | .vi { color: #f8f8f2 } 70 | .il { color: #ae81ff } 71 | } 72 | -------------------------------------------------------------------------------- /www/lib/pouchdb/bin/build-site.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | 'use strict'; 4 | 5 | var fs = require('fs'); 6 | 7 | var http_server = require('http-server'); 8 | var execSync = require('exec-sync'); 9 | var mkdirp = require('mkdirp'); 10 | var watchGlob = require('watch-glob'); 11 | var replace = require('replace'); 12 | 13 | var POUCHDB_CSS = __dirname + '/../docs/static/css/pouchdb.css'; 14 | var POUCHDB_LESS = __dirname + '/../docs/static/less/pouchdb/pouchdb.less'; 15 | 16 | if (!execSync('gem list jekyll -i')) { 17 | console.log('Install Jekyll'); 18 | process.exit(1); 19 | } 20 | 21 | mkdirp.sync(__dirname + '/../docs/static/css'); 22 | 23 | function buildCSS() { 24 | var css = 25 | execSync(__dirname + '/../node_modules/less/bin/lessc ' + POUCHDB_LESS); 26 | fs.writeFileSync(POUCHDB_CSS, css); 27 | console.log('Updated: ', POUCHDB_CSS); 28 | } 29 | 30 | if (!process.env.BUILD) { 31 | watchGlob('docs/static/less/*/*.less', buildCSS); 32 | } 33 | buildCSS(); 34 | 35 | process.chdir('docs'); 36 | 37 | function buildJekyll(path) { 38 | // Dont rebuild on website artifacts being written 39 | if (path && /^_site/.test(path.relative)) { 40 | return; 41 | } 42 | execSync('jekyll build'); 43 | console.log('=> Rebuilt jekyll'); 44 | highlightEs6(); 45 | console.log('=> Highlighted ES6'); 46 | } 47 | 48 | function highlightEs6() { 49 | 50 | var path = require('path').resolve(__dirname, '../docs/_site'); 51 | 52 | // TODO: this is a fragile and hacky way to get 53 | // 'async' and 'await' to highlight correctly 54 | // in this blog post. 55 | replace({ 56 | regex: '(await|async|of)', 57 | replacement: '$1', 58 | paths: [path], 59 | recursive: true 60 | }); 61 | } 62 | 63 | if (!process.env.BUILD) { 64 | watchGlob('**', buildJekyll); 65 | buildJekyll(); 66 | http_server.createServer({root: '_site', cache: '-1'}).listen(4000); 67 | console.log('Server address: http://0.0.0.0:4000'); 68 | } else { 69 | execSync('jekyll build'); 70 | highlightEs6(); 71 | } 72 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_posts/2014-05-01-pouchdb-2.2.0.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | 4 | title: PouchDB 2.2.0 5 | 6 | author: Dale Harvey 7 | 8 | --- 9 | 10 | [PouchDB 2.2.0](https://github.com/daleharvey/pouchdb/releases/tag/2.2.0) is now released! Please [file issues](https://github.com/daleharvey/pouchdb/issues) or [tell us what you think](https://github.com/daleharvey/pouchdb/blob/master/CONTRIBUTING.md#get-in-touch). We would also like to give a huge thanks to our [new and existing contributors](https://github.com/daleharvey/pouchdb/graphs/contributors?from=2014-04-01&to=2014-05-01). 11 | 12 | {% include alert/start.html variant="warning"%} 13 | We have removed the ES5 shims from PouchDB. If you require support for older browsers, it can be included from https://github.com/es-shims/es5-shim. 14 | {% include alert/end.html %} 15 | 16 | ### Major Changes: 17 | 18 | * Fix replication for large databases ([#1954](https://github.com/pouchdb/pouchdb/issues/1954)) 19 | * Persistent map/reduce ([#1658](https://github.com/pouchdb/pouchdb/issues/1658)) 20 | * Fix experimental `.sync()` API ([#1696](https://github.com/pouchdb/pouchdb/issues/1696)) 21 | * `.replication()` API switched to an `EventEmitter` ([#1916](https://github.com/pouchdb/pouchdb/issues/1916)) 22 | * `.changes()` API switched to an `EventEmitter` ([#1768](http://github.com/daleharvey/pouchdb/issues/1768)) 23 | * Experimental LevelDB-based LocalStorage adapter ([#44](http://github.com/daleharvey/pouchdb/issues/44)) 24 | * Performance improvements ([#1869](http://github.com/daleharvey/pouchdb/issues/1869), [#1871](http://github.com/daleharvey/pouchdb/issues/1871), [#1889](https://github.com/pouchdb/pouchdb/pull/1889), [#1897](https://github.com/pouchdb/pouchdb/pull/1897), [#1990](https://github.com/pouchdb/pouchdb/issues/1990)) 25 | * Remove ES5 shims ([#1753](http://github.com/daleharvey/pouchdb/issues/1753)) 26 | * Performance tests ([#113](http://github.com/daleharvey/pouchdb/issues/113)) 27 | 28 | 29 | ###### [Complete list of changes](https://github.com/daleharvey/pouchdb/compare/2.1.0...2.2.0) 30 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/pouchdb/icons.less: -------------------------------------------------------------------------------- 1 | .icon { 2 | margin: 0 auto; 3 | margin-top: @grid-gutter-width; 4 | background-image: url("@{img_dir}/icons.svg"); 5 | background-repeat: no-repeat; 6 | 7 | & ~ * { text-align: center; } 8 | 9 | &-twitter, 10 | &-couchdb, 11 | &-github, 12 | &-travis, 13 | &-leveldb, 14 | &-saucelabs { 15 | opacity: .75; 16 | &:hover { opacity: 1; } 17 | } 18 | 19 | &-node { 20 | background-position: 0; 21 | width: 68px; 22 | height: 73px; 23 | } 24 | 25 | &-light { 26 | background-position: -73px -1px; 27 | width: 92px; 28 | height: 85px; 29 | } 30 | 31 | &-learn { 32 | background-position: -170px 0; 33 | width: 92px; 34 | height: 87px; 35 | } 36 | &-open { 37 | background-position: -267px -5px; 38 | width: 111px; 39 | height: 77px; 40 | } 41 | &-twitter { 42 | background-position: -388px -24px; 43 | width: 46px; 44 | height: 39px; 45 | } 46 | &-couchdb { 47 | background-position: -439px -15px; 48 | width: 90px; 49 | height: 57px; 50 | } 51 | &-github { 52 | background-position: -537px -22px; 53 | width: 45px; 54 | height: 43px; 55 | } 56 | &-travis { 57 | background-position: -589px -20px; 58 | width: 45px; 59 | height: 43px; 60 | } 61 | &-leveldb { 62 | background-position: -640px -20px; 63 | width: 40px; 64 | height: 43px; 65 | } 66 | &-saucelabs { 67 | background-position: -686px -22px; 68 | width: 45px; 69 | height: 43px; 70 | } 71 | 72 | @media (max-width: @screen-sm-min) { 73 | &-node, 74 | &-light, 75 | &-learn, 76 | &-open { 77 | height: 70px; 78 | width: 67px; 79 | background-size: 500px; 80 | + * { margin-top: 0; } 81 | } 82 | &-node { 83 | height: 60px; 84 | width: 50px; 85 | background-position: 0 0; 86 | } 87 | &-light { background-position: -50px 0; } 88 | &-learn { background-position: -117px 0; } 89 | &-open { 90 | background-position: -181px 0; 91 | width: 85px; 92 | } 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /www/lib/pouchdb/lib/deps/uuid.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | // BEGIN Math.uuid.js 4 | 5 | /*! 6 | Math.uuid.js (v1.4) 7 | http://www.broofa.com 8 | mailto:robert@broofa.com 9 | 10 | Copyright (c) 2010 Robert Kieffer 11 | Dual licensed under the MIT and GPL licenses. 12 | */ 13 | 14 | /* 15 | * Generate a random uuid. 16 | * 17 | * USAGE: Math.uuid(length, radix) 18 | * length - the desired number of characters 19 | * radix - the number of allowable values for each character. 20 | * 21 | * EXAMPLES: 22 | * // No arguments - returns RFC4122, version 4 ID 23 | * >>> Math.uuid() 24 | * "92329D39-6F5C-4520-ABFC-AAB64544E172" 25 | * 26 | * // One argument - returns ID of the specified length 27 | * >>> Math.uuid(15) // 15 character ID (default base=62) 28 | * "VcydxgltxrVZSTV" 29 | * 30 | * // Two arguments - returns ID of the specified length, and radix. 31 | * // (Radix must be <= 62) 32 | * >>> Math.uuid(8, 2) // 8 character ID (base=2) 33 | * "01001010" 34 | * >>> Math.uuid(8, 10) // 8 character ID (base=10) 35 | * "47473046" 36 | * >>> Math.uuid(8, 16) // 8 character ID (base=16) 37 | * "098F4D35" 38 | */ 39 | var chars = ( 40 | '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 41 | 'abcdefghijklmnopqrstuvwxyz' 42 | ).split(''); 43 | function getValue(radix) { 44 | return 0 | Math.random() * radix; 45 | } 46 | function uuid(len, radix) { 47 | radix = radix || chars.length; 48 | var out = ''; 49 | var i = -1; 50 | 51 | if (len) { 52 | // Compact form 53 | while (++i < len) { 54 | out += chars[getValue(radix)]; 55 | } 56 | return out; 57 | } 58 | // rfc4122, version 4 form 59 | // Fill in random data. At i==19 set the high bits of clock sequence as 60 | // per rfc4122, sec. 4.1.5 61 | while (++i < 36) { 62 | switch (i) { 63 | case 8: 64 | case 13: 65 | case 18: 66 | case 23: 67 | out += '-'; 68 | break; 69 | case 19: 70 | out += chars[(getValue(16) & 0x3) | 0x8]; 71 | break; 72 | default: 73 | out += chars[getValue(16)]; 74 | } 75 | } 76 | 77 | return out; 78 | } 79 | 80 | 81 | 82 | module.exports = uuid; 83 | 84 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_posts/2014-06-01-pouchdb-2.2.3.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | 4 | title: PouchDB 2.2.3 5 | 6 | author: Dale Harvey 7 | 8 | --- 9 | 10 | [PouchDB 2.2.3](https://github.com/daleharvey/pouchdb/releases/tag/2.2.3) is now released! Please [file issues](https://github.com/daleharvey/pouchdb/issues) or [tell us what you think](https://github.com/daleharvey/pouchdb/blob/master/CONTRIBUTING.md#get-in-touch). We would also like to give a huge thanks to our [new and existing contributors](https://github.com/daleharvey/pouchdb/graphs/contributors?from=2014-05-01&to=2014-06-01). 11 | 12 | ### Major Changes: 13 | 14 | * Experimental browser adapter plugins ([#2190](http://github.com/daleharvey/pouchdb/issues/2190)) 15 | * Fix Ember.js integration ([#2158](http://github.com/daleharvey/pouchdb/issues/2158)) 16 | * Fix Browserify integration ([#2249](http://github.com/daleharvey/pouchdb/issues/2249), [pouchdb/mapreduce#170](https://github.com/pouchdb/mapreduce/issues/170)) 17 | * Fixes for conflict resolution ([#2072](http://github.com/daleharvey/pouchdb/issues/2072)) 18 | * Better error handling in replication ([#2122](http://github.com/daleharvey/pouchdb/issues/2122)) 19 | * Fix Internet Explorer 10-11 ([#1661](http://github.com/daleharvey/pouchdb/issues/1661), [#2198](http://github.com/daleharvey/pouchdb/issues/2198), [#2132](http://github.com/daleharvey/pouchdb/issues/2132)) 20 | * Fix attachments in Android 4.x ([#1992](http://github.com/daleharvey/pouchdb/issues/1992)) 21 | * Fix LevelDB memory leak, race condition, error messages ([#2250](http://github.com/daleharvey/pouchdb/issues/2250), [#2251](http://github.com/daleharvey/pouchdb/issues/2251), [#2144](http://github.com/daleharvey/pouchdb/issues/2144)) 22 | * Perf improvements for replication in WebSQL & IndexedDB ([#2180](http://github.com/daleharvey/pouchdb/issues/2180), [#2178](http://github.com/daleharvey/pouchdb/issues/2178)) 23 | * Bugfixes for IndexedDB inclusive_end ([#2129](http://github.com/daleharvey/pouchdb/issues/2129)) 24 | * Fix `changes()` memory leak ([#2311](http://github.com/daleharvey/pouchdb/issues/2311)) 25 | 26 | ###### [Complete list of changes](https://github.com/daleharvey/pouchdb/compare/2.2.0...2.2.3) 27 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/bootstrap/print.less: -------------------------------------------------------------------------------- 1 | // 2 | // Basic print styles 3 | // -------------------------------------------------- 4 | // Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css 5 | 6 | @media print { 7 | 8 | * { 9 | text-shadow: none !important; 10 | color: #000 !important; // Black prints faster: h5bp.com/s 11 | background: transparent !important; 12 | box-shadow: none !important; 13 | } 14 | 15 | a, 16 | a:visited { 17 | text-decoration: underline; 18 | } 19 | 20 | a[href]:after { 21 | content: " (" attr(href) ")"; 22 | } 23 | 24 | abbr[title]:after { 25 | content: " (" attr(title) ")"; 26 | } 27 | 28 | // Don't show links for images, or javascript/internal links 29 | a[href^="javascript:"]:after, 30 | a[href^="#"]:after { 31 | content: ""; 32 | } 33 | 34 | pre, 35 | blockquote { 36 | border: 1px solid #999; 37 | page-break-inside: avoid; 38 | } 39 | 40 | thead { 41 | display: table-header-group; // h5bp.com/t 42 | } 43 | 44 | tr, 45 | img { 46 | page-break-inside: avoid; 47 | } 48 | 49 | img { 50 | max-width: 100% !important; 51 | } 52 | 53 | p, 54 | h2, 55 | h3 { 56 | orphans: 3; 57 | widows: 3; 58 | } 59 | 60 | h2, 61 | h3 { 62 | page-break-after: avoid; 63 | } 64 | 65 | // Chrome (OSX) fix for https://github.com/twbs/bootstrap/issues/11245 66 | // Once fixed, we can just straight up remove this. 67 | select { 68 | background: #fff !important; 69 | } 70 | 71 | // Bootstrap components 72 | .navbar { 73 | display: none; 74 | } 75 | .table { 76 | td, 77 | th { 78 | background-color: #fff !important; 79 | } 80 | } 81 | .btn, 82 | .dropup > .btn { 83 | > .caret { 84 | border-top-color: #000 !important; 85 | } 86 | } 87 | .label { 88 | border: 1px solid #000; 89 | } 90 | 91 | .table { 92 | border-collapse: collapse !important; 93 | } 94 | .table-bordered { 95 | th, 96 | td { 97 | border: 1px solid #ddd !important; 98 | } 99 | } 100 | 101 | } 102 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_includes/api/get_attachment.html: -------------------------------------------------------------------------------- 1 | {% include anchor.html title="Get an attachment" hash="get_attachment" %} 2 | 3 | {% highlight js %} 4 | db.getAttachment(docId, attachmentId, [options], [callback]) 5 | {% endhighlight %} 6 | 7 | Get attachment data. 8 | 9 | #### Example Usage: 10 | 11 | {% include code/start.html id="get_att1" type="callback" %} 12 | {% highlight js %} 13 | db.getAttachment('doc', 'att.txt', function(err, res) { 14 | if (err) { return console.log(err); } 15 | // handle result 16 | }); 17 | {% endhighlight %} 18 | {% include code/end.html %} 19 | {% include code/start.html id="get_att1" type="promise" %} 20 | {% highlight js %} 21 | db.getAttachment('doc', 'att.txt').then(function (result) { 22 | // handle result 23 | }).catch(function (err) { 24 | console.log(err); 25 | }); 26 | {% endhighlight %} 27 | {% include code/end.html %} 28 | 29 | #### Example Response: 30 | 31 | The response will be a `Blob` object in the browser, and a `Buffer` object in Node.js. 32 | 33 | #### Inline base64 attachments 34 | 35 | You can specify `{attachments: true}` to most "read" operations, such as `get()`, `allDocs()`, `changes()`, and `query()`. The attachment data will then be included inlined in the resulting doc(s). However, it will always be supplied as base64. For example: 36 | 37 | {% highlight js %} 38 | { 39 | "_attachments": { 40 | "att.txt": { 41 | "content_type": "text/plain", 42 | "digest": "d5ccfd24a8748bed4e2c9a279a2b6089", 43 | "data": "SXMgdGhlcmUgbGlmZSBvbiBNYXJzPw==" 44 | } 45 | }, 46 | "_id": "mydoc", 47 | "_rev": "1-e147d9ec9c85139dfe7e93bc17148d1a" 48 | } 49 | {% endhighlight %} 50 | 51 | For such APIs, when you don't specify `{attachments: true}`, you will instead get metadata about the attachments. For example: 52 | 53 | {% highlight js %} 54 | { 55 | "_attachments": { 56 | "att.txt": { 57 | "content_type": "text/plain", 58 | "digest": "d5ccfd24a8748bed4e2c9a279a2b6089", 59 | "stub": true 60 | } 61 | }, 62 | "_id": "mydoc", 63 | "_rev": "1-e147d9ec9c85139dfe7e93bc17148d1a" 64 | } 65 | {% endhighlight %} 66 | 67 | This "summary" operation may be faster in some cases, because the attachment itself does not need to be read from disk. -------------------------------------------------------------------------------- /www/lib/ionic/scss/ionicons/_ionicons-animation.scss: -------------------------------------------------------------------------------- 1 | // Animation Icons 2 | // -------------------------- 3 | 4 | .#{$ionicons-prefix}spin { 5 | -webkit-animation: spin 1s infinite linear; 6 | -moz-animation: spin 1s infinite linear; 7 | -o-animation: spin 1s infinite linear; 8 | animation: spin 1s infinite linear; 9 | } 10 | 11 | @-moz-keyframes spin { 12 | 0% { -moz-transform: rotate(0deg); } 13 | 100% { -moz-transform: rotate(359deg); } 14 | } 15 | @-webkit-keyframes spin { 16 | 0% { -webkit-transform: rotate(0deg); } 17 | 100% { -webkit-transform: rotate(359deg); } 18 | } 19 | @-o-keyframes spin { 20 | 0% { -o-transform: rotate(0deg); } 21 | 100% { -o-transform: rotate(359deg); } 22 | } 23 | @-ms-keyframes spin { 24 | 0% { -ms-transform: rotate(0deg); } 25 | 100% { -ms-transform: rotate(359deg); } 26 | } 27 | @keyframes spin { 28 | 0% { transform: rotate(0deg); } 29 | 100% { transform: rotate(359deg); } 30 | } 31 | 32 | 33 | .#{$ionicons-prefix}loading-a, 34 | .#{$ionicons-prefix}loading-b, 35 | .#{$ionicons-prefix}loading-c, 36 | .#{$ionicons-prefix}loading-d, 37 | .#{$ionicons-prefix}looping, 38 | .#{$ionicons-prefix}refreshing, 39 | .#{$ionicons-prefix}ios7-reloading { 40 | @extend .ion; 41 | // must spin entire element for android 4.3 and below 42 | @extend .#{$ionicons-prefix}spin; 43 | } 44 | 45 | .#{$ionicons-prefix}loading-a { 46 | -webkit-animation-timing-function: steps(8, start); 47 | -moz-animation-timing-function: steps(8, start); 48 | animation-timing-function: steps(8, start); 49 | } 50 | 51 | .#{$ionicons-prefix}loading-a:before { 52 | @extend .#{$ionicons-prefix}load-a:before; 53 | } 54 | 55 | .#{$ionicons-prefix}loading-b:before { 56 | @extend .#{$ionicons-prefix}load-b:before; 57 | } 58 | 59 | .#{$ionicons-prefix}loading-c:before { 60 | @extend .#{$ionicons-prefix}load-c:before; 61 | } 62 | 63 | .#{$ionicons-prefix}loading-d:before { 64 | @extend .#{$ionicons-prefix}load-d:before; 65 | } 66 | 67 | .#{$ionicons-prefix}looping:before { 68 | @extend .#{$ionicons-prefix}loop:before; 69 | } 70 | 71 | .#{$ionicons-prefix}refreshing:before { 72 | @extend .#{$ionicons-prefix}refresh:before; 73 | } 74 | 75 | .#{$ionicons-prefix}ios7-reloading:before { 76 | @extend .#{$ionicons-prefix}ios7-reload:before; 77 | } 78 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/js/code.js: -------------------------------------------------------------------------------- 1 | function codeWrap(){ 2 | var codeTpl = '' + 3 | '' + 11 | '
    {{tapPanes}}
    '; 12 | 13 | var codeGroups = 14 | $('[data-code-id]') 15 | .get() 16 | .map(function(div){ 17 | return div.attributes["data-code-id"].value 18 | }) 19 | .filter(function(item, index, inputArray){ 20 | return inputArray.indexOf(item) == index; 21 | }) 22 | .forEach(function(id){ 23 | var $code = $("[data-code-id='" + id + "']"); 24 | 25 | var paneHeight = 0; 26 | 27 | var paneHtml = $code.get().map(function(div){ 28 | if(div.clientHeight > paneHeight){ 29 | paneHeight = div.clientHeight; 30 | } 31 | return div.outerHTML; 32 | }).join(''); 33 | 34 | // Pad the pane height 35 | paneHeight = paneHeight + 15; 36 | 37 | var codeHtml = codeTpl 38 | .replace(/{{tapPanes}}/g, paneHtml) 39 | .replace(/
    /g, "
     li {
    11 |     display: inline; // Remove list-style and block-level defaults
    12 |     > a,
    13 |     > span {
    14 |       position: relative;
    15 |       float: left; // Collapse white-space
    16 |       padding: @padding-base-vertical @padding-base-horizontal;
    17 |       line-height: @line-height-base;
    18 |       text-decoration: none;
    19 |       color: @pagination-color;
    20 |       background-color: @pagination-bg;
    21 |       border: 1px solid @pagination-border;
    22 |       margin-left: -1px;
    23 |     }
    24 |     &:first-child {
    25 |       > a,
    26 |       > span {
    27 |         margin-left: 0;
    28 |         .border-left-radius(@border-radius-base);
    29 |       }
    30 |     }
    31 |     &:last-child {
    32 |       > a,
    33 |       > span {
    34 |         .border-right-radius(@border-radius-base);
    35 |       }
    36 |     }
    37 |   }
    38 | 
    39 |   > li > a,
    40 |   > li > span {
    41 |     &:hover,
    42 |     &:focus {
    43 |       color: @pagination-hover-color;
    44 |       background-color: @pagination-hover-bg;
    45 |       border-color: @pagination-hover-border;
    46 |     }
    47 |   }
    48 | 
    49 |   > .active > a,
    50 |   > .active > span {
    51 |     &,
    52 |     &:hover,
    53 |     &:focus {
    54 |       z-index: 2;
    55 |       color: @pagination-active-color;
    56 |       background-color: @pagination-active-bg;
    57 |       border-color: @pagination-active-border;
    58 |       cursor: default;
    59 |     }
    60 |   }
    61 | 
    62 |   > .disabled {
    63 |     > span,
    64 |     > span:hover,
    65 |     > span:focus,
    66 |     > a,
    67 |     > a:hover,
    68 |     > a:focus {
    69 |       color: @pagination-disabled-color;
    70 |       background-color: @pagination-disabled-bg;
    71 |       border-color: @pagination-disabled-border;
    72 |       cursor: not-allowed;
    73 |     }
    74 |   }
    75 | }
    76 | 
    77 | // Sizing
    78 | // --------------------------------------------------
    79 | 
    80 | // Large
    81 | .pagination-lg {
    82 |   .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @border-radius-large);
    83 | }
    84 | 
    85 | // Small
    86 | .pagination-sm {
    87 |   .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @border-radius-small);
    88 | }
    89 | 
    
    
    --------------------------------------------------------------------------------
    /www/lib/angular/README.md:
    --------------------------------------------------------------------------------
     1 | # packaged angular
     2 | 
     3 | This repo is for distribution on `npm` and `bower`. The source for this module is in the
     4 | [main AngularJS repo](https://github.com/angular/angular.js).
     5 | Please file issues and pull requests against that repo.
     6 | 
     7 | ## Install
     8 | 
     9 | You can install this package either with `npm` or with `bower`.
    10 | 
    11 | ### npm
    12 | 
    13 | ```shell
    14 | npm install angular
    15 | ```
    16 | 
    17 | Then add a `
    21 | ```
    22 | 
    23 | Note that this package is not in CommonJS format, so doing `require('angular')` will return `undefined`.
    24 | If you're using [Browserify](https://github.com/substack/node-browserify), you can use
    25 | [exposify](https://github.com/thlorenz/exposify) to have `require('angular')` return the `angular`
    26 | global.
    27 | 
    28 | ### bower
    29 | 
    30 | ```shell
    31 | bower install angular
    32 | ```
    33 | 
    34 | Then add a `
    38 | ```
    39 | 
    40 | ## Documentation
    41 | 
    42 | Documentation is available on the
    43 | [AngularJS docs site](http://docs.angularjs.org/).
    44 | 
    45 | ## License
    46 | 
    47 | The MIT License
    48 | 
    49 | Copyright (c) 2010-2012 Google, Inc. http://angularjs.org
    50 | 
    51 | Permission is hereby granted, free of charge, to any person obtaining a copy
    52 | of this software and associated documentation files (the "Software"), to deal
    53 | in the Software without restriction, including without limitation the rights
    54 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    55 | copies of the Software, and to permit persons to whom the Software is
    56 | furnished to do so, subject to the following conditions:
    57 | 
    58 | The above copyright notice and this permission notice shall be included in
    59 | all copies or substantial portions of the Software.
    60 | 
    61 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    62 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    63 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    64 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    65 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    66 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    67 | THE SOFTWARE.
    68 | 
    
    
    --------------------------------------------------------------------------------
    /www/lib/angular-ui-router/src/view.js:
    --------------------------------------------------------------------------------
     1 | 
     2 | $ViewProvider.$inject = [];
     3 | function $ViewProvider() {
     4 | 
     5 |   this.$get = $get;
     6 |   /**
     7 |    * @ngdoc object
     8 |    * @name ui.router.state.$view
     9 |    *
    10 |    * @requires ui.router.util.$templateFactory
    11 |    * @requires $rootScope
    12 |    *
    13 |    * @description
    14 |    *
    15 |    */
    16 |   $get.$inject = ['$rootScope', '$templateFactory'];
    17 |   function $get(   $rootScope,   $templateFactory) {
    18 |     return {
    19 |       // $view.load('full.viewName', { template: ..., controller: ..., resolve: ..., async: false, params: ... })
    20 |       /**
    21 |        * @ngdoc function
    22 |        * @name ui.router.state.$view#load
    23 |        * @methodOf ui.router.state.$view
    24 |        *
    25 |        * @description
    26 |        *
    27 |        * @param {string} name name
    28 |        * @param {object} options option object.
    29 |        */
    30 |       load: function load(name, options) {
    31 |         var result, defaults = {
    32 |           template: null, controller: null, view: null, locals: null, notify: true, async: true, params: {}
    33 |         };
    34 |         options = extend(defaults, options);
    35 | 
    36 |         if (options.view) {
    37 |           result = $templateFactory.fromConfig(options.view, options.params, options.locals);
    38 |         }
    39 |         if (result && options.notify) {
    40 |         /**
    41 |          * @ngdoc event
    42 |          * @name ui.router.state.$state#$viewContentLoading
    43 |          * @eventOf ui.router.state.$view
    44 |          * @eventType broadcast on root scope
    45 |          * @description
    46 |          *
    47 |          * Fired once the view **begins loading**, *before* the DOM is rendered.
    48 |          *
    49 |          * @param {Object} event Event object.
    50 |          * @param {Object} viewConfig The view config properties (template, controller, etc).
    51 |          *
    52 |          * @example
    53 |          *
    54 |          * 
    55 |          * $scope.$on('$viewContentLoading',
    56 |          * function(event, viewConfig){
    57 |          *     // Access to all the view config properties.
    58 |          *     // and one special property 'targetView'
    59 |          *     // viewConfig.targetView
    60 |          * });
    61 |          * 
    62 | */ 63 | $rootScope.$broadcast('$viewContentLoading', options); 64 | } 65 | return result; 66 | } 67 | }; 68 | } 69 | } 70 | 71 | angular.module('ui.router.state').provider('$view', $ViewProvider); 72 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/manifest.appcache: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | 4 | CACHE MANIFEST 5 | # rev {{ site.time }} 6 | 7 | CACHE: 8 | {% for page in site.pages %}{% if page.url != '/manifest.appcache' %}{{ page.url | replace:'index.html','' }}{% endif %} 9 | {% endfor %} 10 | {% for page in site.guides %}{{ page.url | replace:'index.html','' }} 11 | {% endfor %} 12 | {% for page in site.posts %}{{ page.url | replace:'index.html','' }} 13 | {% endfor %} 14 | 15 | /static/css/pouchdb.css 16 | /static/favicon.ico 17 | /static/js/code.min.js 18 | 19 | http://code.jquery.com/jquery.min.js 20 | http://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js 21 | http://cdn.jsdelivr.net/pouchdb/latest/pouchdb.min.js 22 | 23 | http://fonts.googleapis.com/css?family=Lato:400,700|Open+Sans:400,700 24 | http://fonts.gstatic.com/s/lato/v11/8qcEw_nrk_5HEcCpYdJu8BTbgVql8nDJpwnrE27mub0.woff2 25 | http://fonts.gstatic.com/s/lato/v11/MDadn8DQ_3oT6kvnUq_2rxTbgVql8nDJpwnrE27mub0.woff2 26 | http://fonts.gstatic.com/s/lato/v11/rZPI2gHXi8zxUjnybc2ZQFKPGs1ZzpMvnHX-7fPOuAc.woff2 27 | http://fonts.gstatic.com/s/lato/v11/MgNNr5y1C_tIEuLEmicLm1KPGs1ZzpMvnHX-7fPOuAc.woff2 28 | http://fonts.gstatic.com/s/opensans/v10/u-WUoqrET9fUeobQW7jkRZBw1xU1rKptJj_0jans920.woff2 29 | http://fonts.gstatic.com/s/opensans/v10/cJZKeOuBrn4kERxqtaUH3ZBw1xU1rKptJj_0jans920.woff2 30 | http://fonts.gstatic.com/s/opensans/v10/k3k702ZOKiLJc3WVjuplzCYtBUPDK3WL7KRKS_3q7OE.woff2 31 | http://fonts.gstatic.com/s/opensans/v10/k3k702ZOKiLJc3WVjuplzBampu5_7CjHW5spxoeN3Vs.woff2 32 | 33 | /static/img/apple-indexeddb.png 34 | /static/img/cors_in_couchdb.png 35 | /static/img/fauxton.png 36 | /static/img/kittens.jpg 37 | /static/img/logo.svg 38 | /static/img/safari_popup.png 39 | /static/img/dev_tools.png 40 | /static/img/icons.svg 41 | /static/img/kittens_small.jpg 42 | /static/img/mark.svg 43 | /static/img/screenshots/todo-1.png 44 | /static/img/travis-screenshot.png 45 | 46 | /static/img/browser-logos/android_32x32.png 47 | /static/img/browser-logos/chrome-android_32x32.png 48 | /static/img/browser-logos/firefox_32x32.png 49 | /static/img/browser-logos/internet-explorer_32x32.png 50 | /static/img/browser-logos/safari-ios_32x32.png 51 | /static/img/browser-logos/blackberry_32x32.png 52 | /static/img/browser-logos/chrome_32x32.png 53 | /static/img/browser-logos/internet-explorer-tile_32x32.png 54 | /static/img/browser-logos/opera_32x32.png 55 | /static/img/browser-logos/safari_32x32.png 56 | 57 | NETWORK: 58 | * 59 | http://* 60 | https://* 61 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/static/less/bootstrap/responsive-utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // IE10 in Windows (Phone) 8 7 | // 8 | // Support for responsive views via media queries is kind of borked in IE10, for 9 | // Surface/desktop in split view and for Windows Phone 8. This particular fix 10 | // must be accompanied by a snippet of JavaScript to sniff the user agent and 11 | // apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at 12 | // our Getting Started page for more information on this bug. 13 | // 14 | // For more information, see the following: 15 | // 16 | // Issue: https://github.com/twbs/bootstrap/issues/10497 17 | // Docs: http://getbootstrap.com/getting-started/#browsers 18 | // Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/ 19 | 20 | @-ms-viewport { 21 | width: device-width; 22 | } 23 | 24 | 25 | // Visibility utilities 26 | .visible-xs, 27 | .visible-sm, 28 | .visible-md, 29 | .visible-lg { 30 | .responsive-invisibility(); 31 | } 32 | 33 | .visible-xs { 34 | @media (max-width: @screen-xs-max) { 35 | .responsive-visibility(); 36 | } 37 | } 38 | .visible-sm { 39 | @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { 40 | .responsive-visibility(); 41 | } 42 | } 43 | .visible-md { 44 | @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { 45 | .responsive-visibility(); 46 | } 47 | } 48 | .visible-lg { 49 | @media (min-width: @screen-lg-min) { 50 | .responsive-visibility(); 51 | } 52 | } 53 | 54 | .hidden-xs { 55 | @media (max-width: @screen-xs-max) { 56 | .responsive-invisibility(); 57 | } 58 | } 59 | .hidden-sm { 60 | @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { 61 | .responsive-invisibility(); 62 | } 63 | } 64 | .hidden-md { 65 | @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { 66 | .responsive-invisibility(); 67 | } 68 | } 69 | .hidden-lg { 70 | @media (min-width: @screen-lg-min) { 71 | .responsive-invisibility(); 72 | } 73 | } 74 | 75 | 76 | // Print utilities 77 | // 78 | // Media queries are placed on the inside to be mixin-friendly. 79 | 80 | .visible-print { 81 | .responsive-invisibility(); 82 | 83 | @media print { 84 | .responsive-visibility(); 85 | } 86 | } 87 | 88 | .hidden-print { 89 | @media print { 90 | .responsive-invisibility(); 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /www/lib/pouchdb/bin/run-test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | : ${CLIENT:="node"} 4 | 5 | if [[ ! -z $SERVER ]]; then 6 | if [ "$SERVER" == "pouchdb-server" ]; then 7 | if [[ "$TRAVIS_REPO_SLUG" == "pouchdb/pouchdb" ]]; then 8 | # for pouchdb-server to link to pouchdb, only in travis 9 | rm -fr ./node_modules/pouchdb-server/node_modules/pouchdb 10 | ln -s ../../.. ./node_modules/pouchdb-server/node_modules/pouchdb 11 | fi 12 | export COUCH_HOST='http://127.0.0.1:6984' 13 | echo -e "Starting up pouchdb-server\n" 14 | TESTDIR=./tests/pouchdb_server 15 | rm -rf $TESTDIR && mkdir -p $TESTDIR 16 | if [[ "$SERVER_ADAPTER" == "memory" ]]; then 17 | FLAGS='--in-memory' 18 | else 19 | FLAGS="-d $TESTDIR" 20 | fi 21 | ./node_modules/.bin/pouchdb-server -p 6984 $FLAGS & 22 | export SERVER_PID=$! 23 | sleep 15 # give it a chance to start up 24 | elif [ "$SERVER" == "couchdb-master" ]; then 25 | if [[ "$TRAVIS_REPO_SLUG" == "pouchdb/pouchdb" ]]; then 26 | ./bin/run-couch-master-on-travis.sh 27 | fi 28 | export COUCH_HOST='http://127.0.0.1:15984' 29 | elif [ "$SERVER" == "pouchdb-express-router" ]; then 30 | node ./tests/misc/pouchdb-express-router.js & 31 | export SERVER_PID=$! 32 | sleep 5 33 | export COUCH_HOST='http://127.0.0.1:3000' 34 | elif [ "$SERVER" == "express-pouchdb-minimum" ]; then 35 | node ./tests/misc/express-pouchdb-minimum-for-pouchdb.js & 36 | export SERVER_PID=$! 37 | sleep 5 38 | export COUCH_HOST='http://127.0.0.1:3000' 39 | elif [ "$SERVER" == "sync-gateway" ]; then 40 | if [[ -z $COUCH_HOST ]]; then 41 | export COUCH_HOST='http://127.0.0.1:4985' 42 | fi 43 | if [[ "$TRAVIS_REPO_SLUG" == "pouchdb/pouchdb" ]]; then 44 | ./bin/run-csg-on-travis.sh 45 | fi 46 | node ./tests/misc/sync-gateway-config-server.js & 47 | # not the Sync Gateway pid, the config server pid 48 | export SERVER_PID=$! 49 | else 50 | # I mistype pouchdb-server a lot 51 | echo -e "Unknown SERVER $SERVER. Did you mean pouchdb-server?\n" 52 | exit 1 53 | fi 54 | fi 55 | 56 | if [ "$CLIENT" == "unit" ]; then 57 | npm run test-unit 58 | elif [ "$CLIENT" == "node" ]; then 59 | npm run test-node 60 | elif [ "$CLIENT" == "dev" ]; then 61 | npm run launch-dev-server 62 | else 63 | npm run test-browser 64 | fi 65 | 66 | EXIT_STATUS=$? 67 | if [[ ! -z $SERVER_PID ]]; then 68 | kill $SERVER_PID 69 | fi 70 | exit $EXIT_STATUS 71 | -------------------------------------------------------------------------------- /www/lib/pouchdb/lib/adapters/leveldb/leveldb-transaction.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // similar to an idb or websql transaction object 4 | // designed to be passed around. basically just caches 5 | // things in-memory and then does a big batch() operation 6 | // when you're done 7 | 8 | var utils = require('../../utils'); 9 | 10 | function getCacheFor(transaction, store) { 11 | var prefix = store.prefix(); 12 | var cache = transaction._cache; 13 | var subCache = cache.get(prefix); 14 | if (!subCache) { 15 | subCache = new utils.Map(); 16 | cache.set(prefix, subCache); 17 | } 18 | return subCache; 19 | } 20 | 21 | function LevelTransaction() { 22 | this._batch = []; 23 | this._cache = new utils.Map(); 24 | } 25 | 26 | LevelTransaction.prototype.get = function (store, key, callback) { 27 | var cache = getCacheFor(this, store); 28 | var exists = cache.get(key); 29 | if (exists) { 30 | return process.nextTick(function () { 31 | callback(null, exists); 32 | }); 33 | } else if (exists === null) { // deleted marker 34 | return process.nextTick(function () { 35 | callback({name: 'NotFoundError'}); 36 | }); 37 | } 38 | store.get(key, function (err, res) { 39 | if (err) { 40 | if (err.name === 'NotFoundError') { 41 | cache.set(key, null); 42 | } 43 | return callback(err); 44 | } 45 | cache.set(key, res); 46 | callback(null, res); 47 | }); 48 | }; 49 | 50 | LevelTransaction.prototype.batch = function (batch) { 51 | for (var i = 0, len = batch.length; i < len; i++) { 52 | var operation = batch[i]; 53 | 54 | var cache = getCacheFor(this, operation.prefix); 55 | 56 | if (operation.type === 'put') { 57 | cache.set(operation.key, operation.value); 58 | } else { 59 | cache.set(operation.key, null); 60 | } 61 | } 62 | this._batch = this._batch.concat(batch); 63 | }; 64 | 65 | LevelTransaction.prototype.execute = function (db, callback) { 66 | 67 | var keys = new utils.Set(); 68 | var uniqBatches = []; 69 | 70 | // remove duplicates; last one wins 71 | for (var i = this._batch.length - 1; i >= 0; i--) { 72 | var operation = this._batch[i]; 73 | var lookupKey = operation.prefix.prefix() + '\xff' + operation.key; 74 | if (keys.has(lookupKey)) { 75 | continue; 76 | } 77 | keys.add(lookupKey); 78 | uniqBatches.push(operation); 79 | } 80 | 81 | db.batch(uniqBatches, callback); 82 | }; 83 | 84 | module.exports = LevelTransaction; -------------------------------------------------------------------------------- /www/lib/pouchdb/lib/deps/md5.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var crypto = require('crypto'); 4 | var Md5 = require('spark-md5'); 5 | var setImmediateShim = global.setImmediate || global.setTimeout; 6 | var MD5_CHUNK_SIZE = 32768; 7 | 8 | // convert a 64-bit int to a binary string 9 | function intToString(int) { 10 | var bytes = [ 11 | (int & 0xff), 12 | ((int >>> 8) & 0xff), 13 | ((int >>> 16) & 0xff), 14 | ((int >>> 24) & 0xff) 15 | ]; 16 | return bytes.map(function (byte) { 17 | return String.fromCharCode(byte); 18 | }).join(''); 19 | } 20 | 21 | // convert an array of 64-bit ints into 22 | // a base64-encoded string 23 | function rawToBase64(raw) { 24 | var res = ''; 25 | for (var i = 0; i < raw.length; i++) { 26 | res += intToString(raw[i]); 27 | } 28 | return btoa(res); 29 | } 30 | 31 | function appendBuffer(buffer, data, start, end) { 32 | if (start > 0 || end < data.byteLength) { 33 | // only create a subarray if we really need to 34 | data = new Uint8Array(data, start, 35 | Math.min(end, data.byteLength) - start); 36 | } 37 | buffer.append(data); 38 | } 39 | 40 | function appendString(buffer, data, start, end) { 41 | if (start > 0 || end < data.length) { 42 | // only create a substring if we really need to 43 | data = data.substring(start, end); 44 | } 45 | buffer.appendBinary(data); 46 | } 47 | 48 | module.exports = function (data, callback) { 49 | if (!process.browser) { 50 | var base64 = crypto.createHash('md5').update(data).digest('base64'); 51 | callback(null, base64); 52 | return; 53 | } 54 | var inputIsString = typeof data === 'string'; 55 | var len = inputIsString ? data.length : data.byteLength; 56 | var chunkSize = Math.min(MD5_CHUNK_SIZE, len); 57 | var chunks = Math.ceil(len / chunkSize); 58 | var currentChunk = 0; 59 | var buffer = inputIsString ? new Md5() : new Md5.ArrayBuffer(); 60 | 61 | var append = inputIsString ? appendString : appendBuffer; 62 | 63 | function loadNextChunk() { 64 | var start = currentChunk * chunkSize; 65 | var end = start + chunkSize; 66 | currentChunk++; 67 | if (currentChunk < chunks) { 68 | append(buffer, data, start, end); 69 | setImmediateShim(loadNextChunk); 70 | } else { 71 | append(buffer, data, start, end); 72 | var raw = buffer.end(true); 73 | var base64 = rawToBase64(raw); 74 | callback(null, base64); 75 | buffer.destroy(); 76 | } 77 | } 78 | loadNextChunk(); 79 | }; 80 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_spinner.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Spinners 3 | * -------------------------------------------------- 4 | */ 5 | 6 | .spinner { 7 | svg { 8 | width: $spinner-width; 9 | height: $spinner-height; 10 | } 11 | 12 | stroke: $spinner-default-stroke; 13 | fill: $spinner-default-fill; 14 | 15 | &.spinner-light { 16 | stroke: $spinner-light-stroke; 17 | fill: $spinner-light-fill; 18 | } 19 | &.spinner-stable { 20 | stroke: $spinner-stable-stroke; 21 | fill: $spinner-stable-fill; 22 | } 23 | &.spinner-positive { 24 | stroke: $spinner-positive-stroke; 25 | fill: $spinner-positive-fill; 26 | } 27 | &.spinner-calm { 28 | stroke: $spinner-calm-stroke; 29 | fill: $spinner-calm-fill; 30 | } 31 | &.spinner-balanced { 32 | stroke: $spinner-balanced-stroke; 33 | fill: $spinner-balanced-fill; 34 | } 35 | &.spinner-assertive { 36 | stroke: $spinner-assertive-stroke; 37 | fill: $spinner-assertive-fill; 38 | } 39 | &.spinner-energized { 40 | stroke: $spinner-energized-stroke; 41 | fill: $spinner-energized-fill; 42 | } 43 | &.spinner-royal { 44 | stroke: $spinner-royal-stroke; 45 | fill: $spinner-royal-fill; 46 | } 47 | &.spinner-dark { 48 | stroke: $spinner-dark-stroke; 49 | fill: $spinner-dark-fill; 50 | } 51 | } 52 | 53 | .spinner-android { 54 | stroke: #4b8bf4; 55 | } 56 | 57 | .spinner-ios, 58 | .spinner-ios-small { 59 | stroke: #69717d; 60 | } 61 | 62 | .spinner-spiral { 63 | .stop1 { 64 | stop-color: $spinner-light-fill; 65 | stop-opacity: 0; 66 | } 67 | 68 | &.spinner-light { 69 | .stop1 { 70 | stop-color: $spinner-default-fill; 71 | } 72 | .stop2 { 73 | stop-color: $spinner-light-fill; 74 | } 75 | } 76 | &.spinner-stable .stop2 { 77 | stop-color: $spinner-stable-fill; 78 | } 79 | &.spinner-positive .stop2 { 80 | stop-color: $spinner-positive-fill; 81 | } 82 | &.spinner-calm .stop2 { 83 | stop-color: $spinner-calm-fill; 84 | } 85 | &.spinner-balanced .stop2 { 86 | stop-color: $spinner-balanced-fill; 87 | } 88 | &.spinner-assertive .stop2 { 89 | stop-color: $spinner-assertive-fill; 90 | } 91 | &.spinner-energized .stop2 { 92 | stop-color: $spinner-energized-fill; 93 | } 94 | &.spinner-royal .stop2 { 95 | stop-color: $spinner-royal-fill; 96 | } 97 | &.spinner-dark .stop2 { 98 | stop-color: $spinner-dark-fill; 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_posts/2015-04-07-better-late-than-never.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | 4 | title: PouchDB 3.4.0: Better late than never 5 | author: Dale Harvey 6 | 7 | --- 8 | 9 | Everyone needs a break, and for March PouchDB relaxed and enjoyed the arrival of spring. However, regularly scheduled programming has resumed, and today I am happy to announce PouchDB 3.4.0. 10 | 11 | ### Documentation, Documentation, Documentation 12 | 13 | Over the last 2 months a huge amount of work has gone into PouchDB's documentation, including [#3584](https://github.com/pouchdb/pouchdb/pull/3584), which allows you to switch between a Promises and a callback format for your code examples. 14 | 15 | We have hugely expanded the coverage of the documentation, so if there is anything missing please feel free to point it out. 16 | 17 | ### Changelog: 18 | 19 | * Fix incompatibilities with Couchbase Sync Gateway ([#3556](https://github.com/pouchdb/pouchdb/issues/3556), [#3552](https://github.com/pouchdb/pouchdb/issues/3552), [#3555](https://github.com/pouchdb/pouchdb/issues/3555), [#3561](https://github.com/pouchdb/pouchdb/issues/3561), [#3562](https://github.com/pouchdb/pouchdb/issues/3562), [#3562](https://github.com/pouchdb/pouchdb/issues/3562), [#3495](https://github.com/pouchdb/pouchdb/issues/3495), [#3493](https://github.com/pouchdb/pouchdb/issues/3493)) 20 | * Added a copy of PouchDB to PouchDB.com (check the inspector - [#2960](https://github.com/pouchdb/pouchdb/issues/2960)) 21 | * Fix replication using design documents ([#3543](https://github.com/pouchdb/pouchdb/issues/3543)) 22 | * Fix immediately cancelling live replication ([#3605](https://github.com/pouchdb/pouchdb/issues/3605)) 23 | * Fix replication with a view ([#3606](https://github.com/pouchdb/pouchdb/issues/3606)) 24 | * Add support for new SqlitePlugin parameters ([#3617](https://github.com/pouchdb/pouchdb/issues/3617)) 25 | * Fix for deleted conflicts ([#3646](https://github.com/pouchdb/pouchdb/issues/3646)) 26 | * Fix design documents that contain a slash ([#3680](https://github.com/pouchdb/pouchdb/issues/3680)) 27 | * Fix for setting ajax headers in GET requests ([#3689](https://github.com/pouchdb/pouchdb/issues/3689)) 28 | * Allow setting auth headers in replication ([#3543](https://github.com/pouchdb/pouchdb/issues/3543)) 29 | 30 | ### Get in touch 31 | 32 | Please [file issues](https://github.com/pouchdb/pouchdb/issues) or [tell us what you think](https://github.com/pouchdb/pouchdb/blob/master/CONTRIBUTING.md#get-in-touch). And as always, a big thanks to all of our [new and existing contributors](https://github.com/pouchdb/pouchdb/graphs/contributors)! 33 | -------------------------------------------------------------------------------- /www/lib/angular-animate/README.md: -------------------------------------------------------------------------------- 1 | # packaged angular-animate 2 | 3 | This repo is for distribution on `npm` and `bower`. The source for this module is in the 4 | [main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngAnimate). 5 | Please file issues and pull requests against that repo. 6 | 7 | ## Install 8 | 9 | You can install this package either with `npm` or with `bower`. 10 | 11 | ### npm 12 | 13 | ```shell 14 | npm install angular-animate 15 | ``` 16 | 17 | Add a ` 21 | ``` 22 | 23 | Then add `ngAnimate` as a dependency for your app: 24 | 25 | ```javascript 26 | angular.module('myApp', ['ngAnimate']); 27 | ``` 28 | 29 | Note that this package is not in CommonJS format, so doing `require('angular-animate')` will 30 | return `undefined`. 31 | 32 | ### bower 33 | 34 | ```shell 35 | bower install angular-animate 36 | ``` 37 | 38 | Then add a ` 42 | ``` 43 | 44 | Then add `ngAnimate` as a dependency for your app: 45 | 46 | ```javascript 47 | angular.module('myApp', ['ngAnimate']); 48 | ``` 49 | 50 | ## Documentation 51 | 52 | Documentation is available on the 53 | [AngularJS docs site](http://docs.angularjs.org/api/ngAnimate). 54 | 55 | ## License 56 | 57 | The MIT License 58 | 59 | Copyright (c) 2010-2012 Google, Inc. http://angularjs.org 60 | 61 | Permission is hereby granted, free of charge, to any person obtaining a copy 62 | of this software and associated documentation files (the "Software"), to deal 63 | in the Software without restriction, including without limitation the rights 64 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 65 | copies of the Software, and to permit persons to whom the Software is 66 | furnished to do so, subject to the following conditions: 67 | 68 | The above copyright notice and this permission notice shall be included in 69 | all copies or substantial portions of the Software. 70 | 71 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 72 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 73 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 74 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 75 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 76 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 77 | THE SOFTWARE. 78 | -------------------------------------------------------------------------------- /www/lib/angular-sanitize/README.md: -------------------------------------------------------------------------------- 1 | # packaged angular-sanitize 2 | 3 | This repo is for distribution on `npm` and `bower`. The source for this module is in the 4 | [main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngSanitize). 5 | Please file issues and pull requests against that repo. 6 | 7 | ## Install 8 | 9 | You can install this package either with `npm` or with `bower`. 10 | 11 | ### npm 12 | 13 | ```shell 14 | npm install angular-sanitize 15 | ``` 16 | 17 | Add a ` 21 | ``` 22 | 23 | Then add `ngSanitize` as a dependency for your app: 24 | 25 | ```javascript 26 | angular.module('myApp', ['ngSanitize']); 27 | ``` 28 | 29 | Note that this package is not in CommonJS format, so doing `require('angular-sanitize')` will 30 | return `undefined`. 31 | 32 | ### bower 33 | 34 | ```shell 35 | bower install angular-sanitize 36 | ``` 37 | 38 | Add a ` 42 | ``` 43 | 44 | Then add `ngSanitize` as a dependency for your app: 45 | 46 | ```javascript 47 | angular.module('myApp', ['ngSanitize']); 48 | ``` 49 | 50 | ## Documentation 51 | 52 | Documentation is available on the 53 | [AngularJS docs site](http://docs.angularjs.org/api/ngSanitize). 54 | 55 | ## License 56 | 57 | The MIT License 58 | 59 | Copyright (c) 2010-2012 Google, Inc. http://angularjs.org 60 | 61 | Permission is hereby granted, free of charge, to any person obtaining a copy 62 | of this software and associated documentation files (the "Software"), to deal 63 | in the Software without restriction, including without limitation the rights 64 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 65 | copies of the Software, and to permit persons to whom the Software is 66 | furnished to do so, subject to the following conditions: 67 | 68 | The above copyright notice and this permission notice shall be included in 69 | all copies or substantial portions of the Software. 70 | 71 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 72 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 73 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 74 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 75 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 76 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 77 | THE SOFTWARE. 78 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_popup.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Popups 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .popup-container { 8 | position: absolute; 9 | top: 0; 10 | left: 0; 11 | bottom: 0; 12 | right: 0; 13 | background: rgba(0,0,0,0); 14 | 15 | @include display-flex(); 16 | @include justify-content(center); 17 | @include align-items(center); 18 | 19 | z-index: $z-index-popup; 20 | 21 | // Start hidden 22 | visibility: hidden; 23 | &.popup-showing { 24 | visibility: visible; 25 | } 26 | 27 | &.popup-hidden .popup { 28 | @include animation-name(scaleOut); 29 | @include animation-duration($popup-leave-animation-duration); 30 | @include animation-timing-function(ease-in-out); 31 | @include animation-fill-mode(both); 32 | } 33 | 34 | &.active .popup { 35 | @include animation-name(superScaleIn); 36 | @include animation-duration($popup-enter-animation-duration); 37 | @include animation-timing-function(ease-in-out); 38 | @include animation-fill-mode(both); 39 | } 40 | 41 | .popup { 42 | width: $popup-width; 43 | max-width: 100%; 44 | max-height: 90%; 45 | 46 | border-radius: $popup-border-radius; 47 | background-color: $popup-background-color; 48 | 49 | @include display-flex(); 50 | @include flex-direction(column); 51 | } 52 | 53 | input, 54 | textarea { 55 | width: 100%; 56 | } 57 | } 58 | 59 | .popup-head { 60 | padding: 15px 10px; 61 | border-bottom: 1px solid #eee; 62 | text-align: center; 63 | } 64 | .popup-title { 65 | margin: 0; 66 | padding: 0; 67 | font-size: 15px; 68 | } 69 | .popup-sub-title { 70 | margin: 5px 0 0 0; 71 | padding: 0; 72 | font-weight: normal; 73 | font-size: 11px; 74 | } 75 | .popup-body { 76 | padding: 10px; 77 | overflow: auto; 78 | } 79 | 80 | .popup-buttons { 81 | @include display-flex(); 82 | @include flex-direction(row); 83 | padding: 10px; 84 | min-height: $popup-button-min-height + 20; 85 | 86 | .button { 87 | @include flex(1); 88 | display: block; 89 | min-height: $popup-button-min-height; 90 | border-radius: $popup-button-border-radius; 91 | line-height: $popup-button-line-height; 92 | 93 | margin-right: 5px; 94 | &:last-child { 95 | margin-right: 0px; 96 | } 97 | } 98 | } 99 | 100 | .popup-open { 101 | pointer-events: none; 102 | 103 | &.modal-open .modal { 104 | pointer-events: none; 105 | } 106 | 107 | .popup-backdrop, .popup { 108 | pointer-events: auto; 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /www/lib/pouchdb/lib/adapters/idb/idb-blob-support.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var utils = require('../../utils'); 4 | var idbConstants = require('./idb-constants'); 5 | var DETECT_BLOB_SUPPORT_STORE = idbConstants.DETECT_BLOB_SUPPORT_STORE; 6 | 7 | // 8 | // Detect blob support. Chrome didn't support it until version 38. 9 | // In version 37 they had a broken version where PNGs (and possibly 10 | // other binary types) aren't stored correctly, because when you fetch 11 | // them, the content type is always null. 12 | // 13 | // Furthermore, they have some outstanding bugs where blobs occasionally 14 | // are read by FileReader as null, or by ajax as 404s. 15 | // 16 | // Sadly we use the 404 bug to detect the FileReader bug, so if they 17 | // get fixed independently and released in different versions of Chrome, 18 | // then the bug could come back. So it's worthwhile to watch these issues: 19 | // 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916 20 | // FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836 21 | // 22 | function checkBlobSupport(txn, idb) { 23 | return new utils.Promise(function (resolve, reject) { 24 | var blob = utils.createBlob([''], {type: 'image/png'}); 25 | txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key'); 26 | txn.oncomplete = function () { 27 | // have to do it in a separate transaction, else the correct 28 | // content type is always returned 29 | var blobTxn = idb.transaction([DETECT_BLOB_SUPPORT_STORE], 30 | 'readwrite'); 31 | var getBlobReq = blobTxn.objectStore( 32 | DETECT_BLOB_SUPPORT_STORE).get('key'); 33 | getBlobReq.onerror = reject; 34 | getBlobReq.onsuccess = function (e) { 35 | 36 | var storedBlob = e.target.result; 37 | var url = URL.createObjectURL(storedBlob); 38 | 39 | utils.ajax({ 40 | url: url, 41 | cache: true, 42 | binary: true 43 | }, function (err, res) { 44 | if (err && err.status === 405) { 45 | // firefox won't let us do that. but firefox doesn't 46 | // have the blob type bug that Chrome does, so that's ok 47 | resolve(true); 48 | } else { 49 | resolve(!!(res && res.type === 'image/png')); 50 | if (err && err.status === 404) { 51 | utils.explain404('PouchDB is just detecting blob URL support.'); 52 | } 53 | } 54 | URL.revokeObjectURL(url); 55 | }); 56 | }; 57 | }; 58 | }).catch(function () { 59 | return false; // error, so assume unsupported 60 | }); 61 | } 62 | 63 | module.exports = checkBlobSupport; -------------------------------------------------------------------------------- /www/lib/ionic/scss/_modal.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Modals 4 | * -------------------------------------------------- 5 | * Modals are independent windows that slide in from off-screen. 6 | */ 7 | 8 | .modal-backdrop, 9 | .modal-backdrop-bg { 10 | position: fixed; 11 | top: 0; 12 | left: 0; 13 | z-index: $z-index-modal; 14 | width: 100%; 15 | height: 100%; 16 | } 17 | 18 | .modal-backdrop-bg { 19 | pointer-events: none; 20 | } 21 | 22 | .modal { 23 | display: block; 24 | position: absolute; 25 | top: 0; 26 | z-index: $z-index-modal; 27 | overflow: hidden; 28 | min-height: 100%; 29 | width: 100%; 30 | background-color: $modal-bg-color; 31 | } 32 | 33 | @media (min-width: $modal-inset-mode-break-point) { 34 | // inset mode is when the modal doesn't fill the entire 35 | // display but instead is centered within a large display 36 | .modal { 37 | top: $modal-inset-mode-top; 38 | right: $modal-inset-mode-right; 39 | bottom: $modal-inset-mode-bottom; 40 | left: $modal-inset-mode-left; 41 | min-height: $modal-inset-mode-min-height; 42 | width: (100% - $modal-inset-mode-left - $modal-inset-mode-right); 43 | } 44 | 45 | .modal.ng-leave-active { 46 | bottom: 0; 47 | } 48 | 49 | // remove ios header padding from inset header 50 | .platform-ios.platform-cordova .modal-wrapper .modal { 51 | .bar-header:not(.bar-subheader) { 52 | height: $bar-height; 53 | > * { 54 | margin-top: 0; 55 | } 56 | } 57 | .tabs-top > .tabs, 58 | .tabs.tabs-top { 59 | top: $bar-height; 60 | } 61 | .has-header, 62 | .bar-subheader { 63 | top: $bar-height; 64 | } 65 | .has-subheader { 66 | top: $bar-height + $bar-subheader-height; 67 | } 68 | .has-header.has-tabs-top { 69 | top: $bar-height + $tabs-height; 70 | } 71 | .has-header.has-subheader.has-tabs-top { 72 | top: $bar-height + $bar-subheader-height + $tabs-height; 73 | } 74 | } 75 | 76 | .modal-backdrop-bg { 77 | @include transition(opacity 300ms ease-in-out); 78 | background-color: $modal-backdrop-bg-active; 79 | opacity: 0; 80 | } 81 | 82 | .active .modal-backdrop-bg { 83 | opacity: 0.5; 84 | } 85 | } 86 | 87 | // disable clicks on all but the modal 88 | .modal-open { 89 | pointer-events: none; 90 | 91 | .modal, 92 | .modal-backdrop { 93 | pointer-events: auto; 94 | } 95 | // prevent clicks on modal when loading overlay is active though 96 | &.loading-active { 97 | .modal, 98 | .modal-backdrop { 99 | pointer-events: none; 100 | } 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /www/lib/pouchdb/docs/_posts/2014-08-29-pouchdb-3.0.3.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | 4 | title: PouchDB 3.0.3 5 | 6 | author: Nolan Lawson 7 | 8 | --- 9 | 10 | Another week, another PouchDB patch release! 11 | 12 | This week we present [PouchDB 3.0.3](https://github.com/pouchdb/pouchdb/releases/tag/3.0.3), which fixes some ornery issues with replication that were introduced by recent performance optimizations ([#2685](https://github.com/pouchdb/pouchdb/issues/2685)). 13 | 14 | In fact, those performance optimizations have been rolled back. The current implementation appears to be the fastest possible given CouchDB's replication protocol, and the clever tricks introduced in 3.0.0 actually pushed conflicts into CouchDB's revision history, which is bad news for apps that rely on custom conflict resolution. (If you just use the default "pick a random winner," you probably didn't notice anything.) 15 | 16 | And although "custom conflict resolution" may only describe a minority of apps, we felt it's better to be correct 100% of the time than to be speedy. 17 | 18 | ### Dealing with slow replication 19 | 20 | If you experience slow replications after upgrading to 3.0.3, here are some suggestions: 21 | 22 | 1. Avoid CORS if you can, because it uses twice as many HTTP requests. Some tips for doing this: 23 | * If you are using IrisCouch, you can [create a couchapp](https://github.com/couchapp/couchapp) (i.e. let CouchDB serve your HTML/CSS/JS). 24 | * If you are running your own CouchDB, you can set up a reverse proxy with Apache or Nginx that allows you to serve your app and CouchDB from the same domain. Or create a couchapp. 25 | 2. Try using the "every doc is a delta" pattern, as described in [this blog post](http://atypical.net/archive/2014/04/17/understanding-race-induced-conflicts-in-bigcouch) and exemplified in [the delta-pouch plugin](https://github.com/redgeoff/delta-pouch). Your replications will be much faster, because PouchDB is able to use an optimization for generation-1 documents, and in this setup, every document is a generation-1 document. 26 | 3. Otherwise, just minimize the number of documents you create. Or minimize the number of documents you sync to the client. Views can be helpful with this, although the low performance of the `query()` API relative to the `allDocs()` API should be balanced with that. 27 | 28 | ### Other fixes in 3.0.3 29 | 30 | * Auto-compaction is no longer experimental! It's fully supported. ([#2655](https://github.com/pouchdb/pouchdb/issues/2655)) 31 | * `'change'` listeners aren't called after replication is canceled. ([#2478](https://github.com/pouchdb/pouchdb/issues/2478)) 32 | * Bower package is smaller. ([#2659](https://github.com/pouchdb/pouchdb/issues/2659)) --------------------------------------------------------------------------------