├── .idea
├── .name
├── vcs.xml
├── modules.xml
├── SimplePass.iml
└── misc.xml
├── .bowerrc
├── scss
├── _change_pin.scss
├── style.scss
├── _add_item.scss
├── ionic.app.scss
├── _bottom_menu.scss
├── _main_list.scss
└── _common.scss
├── passman.keystore
├── www
├── img
│ ├── icon.png
│ └── icon_black.png
├── fonts
│ ├── Lato-Light.ttf
│ └── Lato-Thin.ttf
├── lib
│ ├── 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
│ │ │ ├── _spinner.scss
│ │ │ ├── _badge.scss
│ │ │ ├── _platform.scss
│ │ │ ├── _popup.scss
│ │ │ ├── _modal.scss
│ │ │ ├── _list.scss
│ │ │ ├── _refresher.scss
│ │ │ ├── _select.scss
│ │ │ ├── _range.scss
│ │ │ ├── _grid.scss
│ │ │ ├── _type.scss
│ │ │ ├── _action-sheet.scss
│ │ │ ├── _popover.scss
│ │ │ ├── _transitions.scss
│ │ │ ├── _checkbox.scss
│ │ │ └── _toggle.scss
│ │ ├── README.md
│ │ ├── bower.json
│ │ └── .bower.json
│ ├── angular
│ │ ├── angular.min.js.gzip
│ │ ├── bower.json
│ │ ├── angular-csp.css
│ │ ├── .bower.json
│ │ ├── package.json
│ │ ├── browser_patch.js
│ │ └── README.md
│ ├── ngCordova
│ │ ├── CHANGELOG.md
│ │ ├── bower.json
│ │ ├── LICENSE
│ │ ├── package.json
│ │ └── .bower.json
│ ├── angular-animate
│ │ ├── bower.json
│ │ ├── .bower.json
│ │ ├── package.json
│ │ └── README.md
│ ├── angular-sanitize
│ │ ├── bower.json
│ │ ├── .bower.json
│ │ ├── package.json
│ │ ├── README.md
│ │ └── angular-sanitize.min.js
│ └── angular-ui-router
│ │ ├── bower.json
│ │ ├── .bower.json
│ │ ├── LICENSE
│ │ ├── src
│ │ ├── stateFilters.js
│ │ ├── viewScroll.js
│ │ ├── view.js
│ │ └── templateFactory.js
│ │ ├── CONTRIBUTING.md
│ │ └── api
│ │ └── angular-ui-router.d.ts
├── js
│ ├── config.js
│ ├── filters.js
│ ├── app.js
│ └── directives.js
├── templates
│ ├── directives
│ │ ├── key_indicator.html
│ │ ├── bottom_menu.html
│ │ └── keypad.html
│ └── pages
│ │ ├── unlock.html
│ │ ├── add_item.html
│ │ ├── change_pin.html
│ │ └── main_list.html
├── index.html
└── css
│ └── style.css.map
├── resources
├── icon.png
├── splash.png
├── ios
│ ├── icon
│ │ ├── icon.png
│ │ ├── icon-40.png
│ │ ├── icon-50.png
│ │ ├── icon-60.png
│ │ ├── icon-72.png
│ │ ├── icon-76.png
│ │ ├── icon@2x.png
│ │ ├── icon-40@2x.png
│ │ ├── icon-50@2x.png
│ │ ├── icon-60@2x.png
│ │ ├── icon-60@3x.png
│ │ ├── icon-72@2x.png
│ │ ├── icon-76@2x.png
│ │ ├── icon-small.png
│ │ ├── icon-small@2x.png
│ │ └── icon-small@3x.png
│ └── splash
│ │ ├── Default-667h.png
│ │ ├── Default-736h.png
│ │ ├── Default~iphone.png
│ │ ├── Default@2x~iphone.png
│ │ ├── Default-568h@2x~iphone.png
│ │ ├── Default-Landscape-736h.png
│ │ ├── Default-Landscape~ipad.png
│ │ ├── Default-Portrait~ipad.png
│ │ ├── Default-Portrait@2x~ipad.png
│ │ └── Default-Landscape@2x~ipad.png
└── android
│ ├── icon
│ ├── drawable-hdpi-icon.png
│ ├── drawable-ldpi-icon.png
│ ├── drawable-mdpi-icon.png
│ ├── drawable-xhdpi-icon.png
│ ├── drawable-xxhdpi-icon.png
│ └── drawable-xxxhdpi-icon.png
│ └── splash
│ ├── drawable-land-hdpi-screen.png
│ ├── drawable-land-ldpi-screen.png
│ ├── drawable-land-mdpi-screen.png
│ ├── drawable-port-hdpi-screen.png
│ ├── drawable-port-ldpi-screen.png
│ ├── drawable-port-mdpi-screen.png
│ ├── drawable-land-xhdpi-screen.png
│ ├── drawable-land-xxhdpi-screen.png
│ ├── drawable-land-xxxhdpi-screen.png
│ ├── drawable-port-xhdpi-screen.png
│ ├── drawable-port-xxhdpi-screen.png
│ └── drawable-port-xxxhdpi-screen.png
├── .sass-cache
├── e78d596e1354963b9d30847df54f78ef1803719a
│ ├── _bar.scssc
│ ├── _form.scssc
│ ├── _grid.scssc
│ ├── _list.scssc
│ ├── _menu.scssc
│ ├── _tabs.scssc
│ ├── _type.scssc
│ ├── _util.scssc
│ ├── _badge.scssc
│ ├── _button.scssc
│ ├── _items.scssc
│ ├── _loading.scssc
│ ├── _mixins.scssc
│ ├── _modal.scssc
│ ├── _popover.scssc
│ ├── _popup.scssc
│ ├── _radio.scssc
│ ├── _range.scssc
│ ├── _reset.scssc
│ ├── _select.scssc
│ ├── _spinner.scssc
│ ├── _toggle.scssc
│ ├── _backdrop.scssc
│ ├── _checkbox.scssc
│ ├── _platform.scssc
│ ├── _progress.scssc
│ ├── _refresher.scssc
│ ├── _slide-box.scssc
│ ├── _variables.scssc
│ ├── _action-sheet.scssc
│ ├── _animations.scssc
│ ├── _button-bar.scssc
│ ├── _scaffolding.scssc
│ ├── _transitions.scssc
│ └── ionic.scssc
├── 7a86fc531f343d826dfc6f9887171207492abd24
│ ├── _common.scssc
│ ├── _main_list.scssc
│ ├── _bottom_menu.scssc
│ ├── _change_pin.scssc
│ ├── style.scssc
│ ├── _add_item.scssc
│ └── ionic.app.scssc
└── b1739ad6c7f520809568c9bdfcac5c0e064c883c
│ ├── ionicons.scssc
│ ├── _ionicons-font.scssc
│ ├── _ionicons-icons.scssc
│ └── _ionicons-variables.scssc
├── bower.json
├── .gitignore
├── ionic.project
├── package.json
├── hooks
├── before_platform_add
│ └── init_directories.js
├── after_prepare
│ ├── 020_remove_sass_from_platforms.js
│ └── 010_add_platform_class.js
└── README.md
├── LICENSE
├── gulpfile.js
└── config.xml
/.idea/.name:
--------------------------------------------------------------------------------
1 | SimplePass
--------------------------------------------------------------------------------
/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "directory": "www/lib"
3 | }
4 |
--------------------------------------------------------------------------------
/scss/_change_pin.scss:
--------------------------------------------------------------------------------
1 | .change_pin_wrapper {
2 |
3 | }
--------------------------------------------------------------------------------
/passman.keystore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/passman.keystore
--------------------------------------------------------------------------------
/www/img/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/www/img/icon.png
--------------------------------------------------------------------------------
/resources/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/icon.png
--------------------------------------------------------------------------------
/resources/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/splash.png
--------------------------------------------------------------------------------
/www/img/icon_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/www/img/icon_black.png
--------------------------------------------------------------------------------
/www/fonts/Lato-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/www/fonts/Lato-Light.ttf
--------------------------------------------------------------------------------
/www/fonts/Lato-Thin.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/www/fonts/Lato-Thin.ttf
--------------------------------------------------------------------------------
/resources/ios/icon/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/icon/icon.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/icon/icon-40.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/icon/icon-50.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/icon/icon-60.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/icon/icon-72.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/icon/icon-76.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/icon/icon@2x.png
--------------------------------------------------------------------------------
/www/lib/ionic/fonts/ionicons.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/www/lib/ionic/fonts/ionicons.eot
--------------------------------------------------------------------------------
/www/lib/ionic/fonts/ionicons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/www/lib/ionic/fonts/ionicons.ttf
--------------------------------------------------------------------------------
/resources/ios/icon/icon-40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/icon/icon-40@2x.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-50@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/icon/icon-50@2x.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/icon/icon-60@2x.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/icon/icon-60@3x.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-72@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/icon/icon-72@2x.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/icon/icon-76@2x.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/icon/icon-small.png
--------------------------------------------------------------------------------
/www/js/config.js:
--------------------------------------------------------------------------------
1 | var PassMan = {
2 | DB : {
3 | dbName : 'PassMan.db'
4 | },
5 | TIME_OUT : 30,
6 | interval : null
7 | }
--------------------------------------------------------------------------------
/www/lib/ionic/fonts/ionicons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/www/lib/ionic/fonts/ionicons.woff
--------------------------------------------------------------------------------
/resources/ios/icon/icon-small@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/icon/icon-small@2x.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-small@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/icon/icon-small@3x.png
--------------------------------------------------------------------------------
/resources/ios/splash/Default-667h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/splash/Default-667h.png
--------------------------------------------------------------------------------
/resources/ios/splash/Default-736h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/splash/Default-736h.png
--------------------------------------------------------------------------------
/www/lib/angular/angular.min.js.gzip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/www/lib/angular/angular.min.js.gzip
--------------------------------------------------------------------------------
/resources/ios/splash/Default~iphone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/splash/Default~iphone.png
--------------------------------------------------------------------------------
/scss/style.scss:
--------------------------------------------------------------------------------
1 | @import 'common';
2 | @import 'main_list';
3 | @import 'add_item';
4 | @import 'change_pin';
5 | @import 'bottom_menu';
--------------------------------------------------------------------------------
/resources/ios/splash/Default@2x~iphone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/splash/Default@2x~iphone.png
--------------------------------------------------------------------------------
/resources/android/icon/drawable-hdpi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/android/icon/drawable-hdpi-icon.png
--------------------------------------------------------------------------------
/resources/android/icon/drawable-ldpi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/android/icon/drawable-ldpi-icon.png
--------------------------------------------------------------------------------
/resources/android/icon/drawable-mdpi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/android/icon/drawable-mdpi-icon.png
--------------------------------------------------------------------------------
/resources/android/icon/drawable-xhdpi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/android/icon/drawable-xhdpi-icon.png
--------------------------------------------------------------------------------
/resources/android/icon/drawable-xxhdpi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/android/icon/drawable-xxhdpi-icon.png
--------------------------------------------------------------------------------
/resources/ios/splash/Default-568h@2x~iphone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/splash/Default-568h@2x~iphone.png
--------------------------------------------------------------------------------
/resources/ios/splash/Default-Landscape-736h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/splash/Default-Landscape-736h.png
--------------------------------------------------------------------------------
/resources/ios/splash/Default-Landscape~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/splash/Default-Landscape~ipad.png
--------------------------------------------------------------------------------
/resources/ios/splash/Default-Portrait~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/splash/Default-Portrait~ipad.png
--------------------------------------------------------------------------------
/resources/android/icon/drawable-xxxhdpi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/android/icon/drawable-xxxhdpi-icon.png
--------------------------------------------------------------------------------
/resources/ios/splash/Default-Portrait@2x~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/splash/Default-Portrait@2x~ipad.png
--------------------------------------------------------------------------------
/resources/ios/splash/Default-Landscape@2x~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/ios/splash/Default-Landscape@2x~ipad.png
--------------------------------------------------------------------------------
/www/lib/ngCordova/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | Please refer to the [Github ngCordova Releases file](https://github.com/driftyco/ng-cordova/releases) for detailed information.
2 |
--------------------------------------------------------------------------------
/resources/android/splash/drawable-land-hdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/android/splash/drawable-land-hdpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-land-ldpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/android/splash/drawable-land-ldpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-land-mdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/android/splash/drawable-land-mdpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-port-hdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/android/splash/drawable-port-hdpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-port-ldpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/android/splash/drawable-port-ldpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-port-mdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/android/splash/drawable-port-mdpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-land-xhdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/android/splash/drawable-land-xhdpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-land-xxhdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/android/splash/drawable-land-xxhdpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-land-xxxhdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/android/splash/drawable-land-xxxhdpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-port-xhdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/android/splash/drawable-port-xhdpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-port-xxhdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/android/splash/drawable-port-xxhdpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-port-xxxhdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/resources/android/splash/drawable-port-xxxhdpi-screen.png
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/scss/_add_item.scss:
--------------------------------------------------------------------------------
1 | .add_item_wrapper {
2 | .list {
3 |
4 |
5 |
6 | .error_messages_wrapper {
7 | height: 40px;
8 | }
9 | button {
10 |
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_bar.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_bar.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_form.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_form.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_grid.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_grid.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_list.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_list.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_menu.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_menu.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_tabs.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_tabs.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_type.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_type.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_util.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_util.scssc
--------------------------------------------------------------------------------
/.sass-cache/7a86fc531f343d826dfc6f9887171207492abd24/_common.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/7a86fc531f343d826dfc6f9887171207492abd24/_common.scssc
--------------------------------------------------------------------------------
/.sass-cache/b1739ad6c7f520809568c9bdfcac5c0e064c883c/ionicons.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/b1739ad6c7f520809568c9bdfcac5c0e064c883c/ionicons.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_badge.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_badge.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_button.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_button.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_items.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_items.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_loading.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_loading.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_mixins.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_mixins.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_modal.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_modal.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_popover.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_popover.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_popup.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_popup.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_radio.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_radio.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_range.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_range.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_reset.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_reset.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_select.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_select.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_spinner.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_spinner.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_toggle.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_toggle.scssc
--------------------------------------------------------------------------------
/.sass-cache/7a86fc531f343d826dfc6f9887171207492abd24/_main_list.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/7a86fc531f343d826dfc6f9887171207492abd24/_main_list.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_backdrop.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_backdrop.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_checkbox.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_checkbox.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_platform.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_platform.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_progress.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_progress.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_refresher.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_refresher.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_slide-box.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_slide-box.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_variables.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_variables.scssc
--------------------------------------------------------------------------------
/.sass-cache/7a86fc531f343d826dfc6f9887171207492abd24/_bottom_menu.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/7a86fc531f343d826dfc6f9887171207492abd24/_bottom_menu.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_action-sheet.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_action-sheet.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_animations.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_animations.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_button-bar.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_button-bar.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_scaffolding.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_scaffolding.scssc
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_transitions.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/_transitions.scssc
--------------------------------------------------------------------------------
/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "SimplePass",
3 | "private": "true",
4 | "devDependencies": {
5 | "ionic": "driftyco/ionic-bower#1.0.0-rc.2",
6 | "ngCordova": "~0.1.20-alpha"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/.sass-cache/b1739ad6c7f520809568c9bdfcac5c0e064c883c/_ionicons-font.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/b1739ad6c7f520809568c9bdfcac5c0e064c883c/_ionicons-font.scssc
--------------------------------------------------------------------------------
/.sass-cache/b1739ad6c7f520809568c9bdfcac5c0e064c883c/_ionicons-icons.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/b1739ad6c7f520809568c9bdfcac5c0e064c883c/_ionicons-icons.scssc
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Specifies intentionally untracked files to ignore when using Git
2 | # http://git-scm.com/docs/gitignore
3 |
4 | node_modules/
5 | platforms/
6 | plugins/
7 | .sass-cache/
8 | www/css/style.css.map
9 |
--------------------------------------------------------------------------------
/.sass-cache/b1739ad6c7f520809568c9bdfcac5c0e064c883c/_ionicons-variables.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidthesloth92/PassMan/master/.sass-cache/b1739ad6c7f520809568c9bdfcac5c0e064c883c/_ionicons-variables.scssc
--------------------------------------------------------------------------------
/ionic.project:
--------------------------------------------------------------------------------
1 | {
2 | "name": "PassMan",
3 | "app_id": "47802720",
4 | "gulpStartupTasks": [
5 | "sass",
6 | "watch"
7 | ],
8 | "watchPatterns": [
9 | "www/**/*",
10 | "!www/lib/**/*"
11 | ]
12 | }
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/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/templates/directives/key_indicator.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "passman",
3 | "version": "1.0.0",
4 | "description": "SimplePass: 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 | "cordovaPlatforms": []
19 | }
--------------------------------------------------------------------------------
/.idea/SimplePass.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/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/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/templates/directives/bottom_menu.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/hooks/before_platform_add/init_directories.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | /**
4 | * On a fresh clone, the local platforms/ and plugins/ directories will be
5 | * missing, so ensure they get created before the first platform is added.
6 | */
7 | var fs = require('fs');
8 | var path = require('path');
9 |
10 | var platformsDir = path.resolve(__dirname, '../../platforms');
11 | var pluginsDir = path.resolve(__dirname, '../../plugins');
12 |
13 | try {
14 | fs.mkdirSync(platformsDir, function (err) {
15 | if (err) { console.error(err); }
16 | });
17 | } catch(ex) {}
18 |
19 | try {
20 | fs.mkdirSync(pluginsDir, function (err) {
21 | if (err) { console.error(err); }
22 | });
23 | } catch(ex) {}
24 |
--------------------------------------------------------------------------------
/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/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/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/js/filters.js:
--------------------------------------------------------------------------------
1 | angular.module('PassMan.filters', [])
2 | .filter('decrypt', ['$rootScope', '$utilityFunctions', function ($rootScope, $utilityFunctions) {
3 | return function(input) {
4 | return $utilityFunctions.CRYPT.decrypt(input, $rootScope.masterPIN);
5 | }
6 | }])
7 | .filter('customSearchFilter', ['$rootScope', '$utilityFunctions', function($rootScope, $utilityFunctions) {
8 | return function(entries, searchTerm) {
9 | var returnArray = [];
10 |
11 | for(var i = 0; i < entries.length; i++) {
12 | var decryptedTitle = $utilityFunctions.CRYPT.decrypt(entries[i].title, $rootScope.masterPIN);
13 |
14 | if(decryptedTitle.toLowerCase().indexOf(searchTerm.toLowerCase()) != -1) {
15 | returnArray.push(entries[i]);
16 | }
17 | }
18 |
19 | return returnArray;
20 | }
21 | }]);
--------------------------------------------------------------------------------
/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.scss";
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/www/lib/ionic/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ionic",
3 | "version": "1.0.0-rc.2",
4 | "codename": "palladium-platypus",
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/templates/directives/keypad.html:
--------------------------------------------------------------------------------
1 |
2 |
7 |
12 |
13 |
7
14 |
8
15 |
9
16 |
17 |
18 |
Del
19 |
0
20 |
Clear
21 |
22 |
23 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/hooks/after_prepare/020_remove_sass_from_platforms.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | /**
4 | * After prepare, files are copied to the platforms/ios and platforms/android folders.
5 | * Lets clean up some of those files that arent needed with this hook.
6 | */
7 | var fs = require('fs');
8 | var path = require('path');
9 |
10 | var deleteFolderRecursive = function(removePath) {
11 | if( fs.existsSync(removePath) ) {
12 | fs.readdirSync(removePath).forEach(function(file,index){
13 | var curPath = path.join(removePath, file);
14 | if(fs.lstatSync(curPath).isDirectory()) { // recurse
15 | deleteFolderRecursive(curPath);
16 | } else { // delete file
17 | fs.unlinkSync(curPath);
18 | }
19 | });
20 | fs.rmdirSync(removePath);
21 | }
22 | };
23 |
24 | var iosPlatformsDir = path.resolve(__dirname, '../../platforms/ios/www/lib/ionic/scss');
25 | var androidPlatformsDir = path.resolve(__dirname, '../../platforms/android/assets/www/lib/ionic/scss');
26 |
27 | deleteFolderRecursive(iosPlatformsDir);
28 | deleteFolderRecursive(androidPlatformsDir);
29 |
--------------------------------------------------------------------------------
/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/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/ngCordova/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ngCordova",
3 | "version": "0.1.20-alpha",
4 | "homepage": "http://ngCordova.com/",
5 | "authors": [
6 | "Max Lynch ",
7 | "Paolo Bernasconi ",
8 | "Chad Campbell "
9 | ],
10 | "description": "AngularJS Cordova wrappers for common Cordova plugins.",
11 | "main": [
12 | "./dist/ng-cordova.js"
13 | ],
14 | "ignore": [
15 | "**/.*",
16 | "gulpfile.js",
17 | "test",
18 | "src",
19 | "config",
20 | "demo",
21 | "CONTRIBUTING.md",
22 | "CODE_OF_CONDUCT.md"
23 | ],
24 | "dependencies": {
25 | "angular": ">= 1.2.23"
26 | },
27 | "keywords": [
28 | "ngCordova",
29 | "ng-cordova",
30 | "ngcordova",
31 | "ng cordova",
32 | "cordova",
33 | "phonegap",
34 | "angular",
35 | "angularjs",
36 | "ionic",
37 | "cordova plugin"
38 | ],
39 | "license": "MIT",
40 | "private": false,
41 | "devDependencies": {
42 | "angular": ">= 1.2.23",
43 | "angular-mocks": ">= 1.2.23",
44 | "jquery": "~2.1.1"
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/www/lib/ngCordova/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Drifty
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 all
13 | 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 THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 sidthesloth92
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 all
13 | 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 THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/.sass-cache/7a86fc531f343d826dfc6f9887171207492abd24/_change_pin.scssc:
--------------------------------------------------------------------------------
1 | 3.4.10 (Selective Steve)
2 | 4282b1a416ffd6e1bf0c251403517f7d7f57ee42
3 | o:Sass::Tree::RootNode:@children[o:Sass::Tree::RuleNode:
4 | @rule[I".change_pin_wrapper:ET:@parsed_ruleso:"Sass::Selector::CommaSequence:
@members[o:Sass::Selector::Sequence;[o:#Sass::Selector::SimpleSequence;[o:Sass::Selector::Class:
5 | @nameI"change_pin_wrapper; T:
6 | @linei:@filename0:
@subject0:
@sourceso:Set:
7 | @hash{ :@source_rangeo:Sass::Source::Range :@start_poso:Sass::Source::Position;i:@offseti:
@end_poso;;i;i:
8 | @file0:@importer0;i;0;i;0:@selector_source_rangeo; ;o;;i;i;o;;i;i;I"T/Users/916804/MyDisk/Programming/Projects/PassMan/PassMan/scss/_change_pin.scss; T;o: Sass::Importers::Filesystem:
9 | @rootI">/Users/916804/MyDisk/Programming/Projects/PassMan/PassMan; T:@real_rootI">/Users/916804/MyDisk/Programming/Projects/PassMan/PassMan; T:@same_name_warningso;;{ :
10 | @tabsi ;[ ;i;o; ;@;o;;i;i;@;@:@has_childrenT:
@options{ :@templateI".change_pin_wrapper {
11 |
12 | }; T;i;o; ;o;;i;i;o;;i;i;@;@;%T;&@#
--------------------------------------------------------------------------------
/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/ngCordova/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ng-cordova",
3 | "private": false,
4 | "main": "dist/ng-cordova",
5 | "version": "0.1.20-alpha",
6 | "repository": {
7 | "url": "git://github.com/driftyco/ng-cordova.git"
8 | },
9 | "devDependencies": {
10 | "gulp": "^3.7.0",
11 | "gulp-concat": "^2.2.0",
12 | "gulp-footer": "^1.0.4",
13 | "gulp-header": "^1.0.2",
14 | "gulp-jscs": "^1.6.0",
15 | "gulp-jshint": "^1.6.1",
16 | "gulp-prettify": "^0.3.0",
17 | "gulp-rename": "^1.2.0",
18 | "gulp-shell": "^0.2.10",
19 | "gulp-uglify": "^0.2.1",
20 | "jshint-stylish": "^0.4.0",
21 | "karma": "^0.12.16",
22 | "karma-chrome-launcher": "~0.1.2",
23 | "karma-coverage": "~0.2.6",
24 | "karma-jasmine": "~0.1.5",
25 | "karma-phantomjs-launcher": "~0.1.2",
26 | "minimist": "^0.1.0"
27 | },
28 | "licenses": [
29 | {
30 | "type": "MIT"
31 | }
32 | ],
33 | "scripts": {
34 | "test": "gulp lint && gulp karma --browsers=PhantomJS --reporters=progress"
35 | },
36 | "dependencies": {
37 | "conventional-changelog": "0.0.11",
38 | "fs": "0.0.2",
39 | "gulp-git": "^1.2.4",
40 | "q": "^1.1.2"
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/.sass-cache/7a86fc531f343d826dfc6f9887171207492abd24/style.scssc:
--------------------------------------------------------------------------------
1 | 3.4.10 (Selective Steve)
2 | c3ca37d988fa1cdb3d3fe080527defda691df996
3 | o:Sass::Tree::RootNode:@children[
4 | o:Sass::Tree::ImportNode:@imported_filenameI"common:ET;[ :@template0:
5 | @linei:@source_rangeo:Sass::Source::Range :@start_poso:Sass::Source::Position;i:@offseti:
@end_poso;;i;i:
6 | @fileI"scss/style.scss; T:@importero: Sass::Importers::Filesystem:
7 | @rootI">/Users/916804/MyDisk/Programming/Projects/PassMan/PassMan; T:@real_rootI">/Users/916804/MyDisk/Programming/Projects/PassMan/PassMan; T:@same_name_warningso:Set:
8 | @hash{ :
@options{ :@imported_file0o;;I"main_list; T;[ ;
9 | 0;i;o;
;o;;i;i;o;;i;i;@
;@;@;0o;;I"
add_item; T;[ ;
10 | 0;i;o;
;o;;i;i;o;;i;i;@
;@;@;0o;;I"change_pin; T;[ ;
11 | 0;i ;o;
;o;;i ;i;o;;i ;i;@
;@;@;0o;;I"bottom_menu; T;[ ;
12 | 0;i
13 | ;o;
;o;;i
14 | ;i;o;;i
15 | ;i;@
;@;@;0;
16 | I"l@import 'common';
17 | @import 'main_list';
18 | @import 'add_item';
19 | @import 'change_pin';
20 | @import 'bottom_menu';; T;i;o;
;o;;i;i;o;;i;i;@
;@:@has_childrenT;@
--------------------------------------------------------------------------------
/www/templates/pages/unlock.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Set Master PIN
7 |
8 |
9 | Re-Enter PIN
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
![]()
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/www/lib/ionic/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ionic",
3 | "version": "1.0.0-rc.2",
4 | "codename": "palladium-platypus",
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.2",
38 | "_resolution": {
39 | "type": "version",
40 | "tag": "v1.0.0-rc.2",
41 | "commit": "da37a4f9651b378ba5017e4792c2a37bdc6edc54"
42 | },
43 | "_source": "git://github.com/driftyco/ionic-bower.git",
44 | "_target": "1.0.0-rc.2",
45 | "_originalSource": "driftyco/ionic-bower"
46 | }
--------------------------------------------------------------------------------
/scss/_bottom_menu.scss:
--------------------------------------------------------------------------------
1 | /*.bottom_menu {
2 | overflow-x: hidden;
3 | }*/
4 |
5 | .custom_bottom_menu_overlay {
6 | position: absolute;
7 | z-index: 1000;
8 | bottom: 0px;
9 | left: 0px;
10 | .custom_bottom_menu_wrapper {
11 | position: absolute;
12 | bottom: 0px;
13 | left: 0px;
14 | width: 100%;
15 | overflow: hidden;
16 | .slide_up_button {
17 | display: block;
18 | opacity: 1 !important;
19 | background-color: $theme-background-color !important;
20 | }
21 | .custom_bottom_menu {
22 | transition: 0.1s all linear;
23 | line-height: 100%;
24 | &.ng-hide {
25 | line-height: 0px;
26 | }
27 | li {
28 | border-top: 1px solid $theme-primary-color;
29 | color: white;
30 | background: transparent;
31 | }
32 | & li:last-child {
33 | border-bottom: 0px;
34 | }
35 | }
36 | }
37 | }
38 |
39 | .custom_bottom_menu_overlay_stretch {
40 | top: 0px;
41 | left: 0px;
42 | background: rgba(0, 0, 0, 0.4);
43 | }
44 |
45 | .slide_up_button_display {
46 | background: rgba(255, 255, 255, 1) !important;
47 | }
48 |
--------------------------------------------------------------------------------
/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/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/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/ngCordova/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ngCordova",
3 | "version": "0.1.20-alpha",
4 | "homepage": "http://ngCordova.com/",
5 | "authors": [
6 | "Max Lynch ",
7 | "Paolo Bernasconi ",
8 | "Chad Campbell "
9 | ],
10 | "description": "AngularJS Cordova wrappers for common Cordova plugins.",
11 | "main": [
12 | "./dist/ng-cordova.js"
13 | ],
14 | "ignore": [
15 | "**/.*",
16 | "gulpfile.js",
17 | "test",
18 | "src",
19 | "config",
20 | "demo",
21 | "CONTRIBUTING.md",
22 | "CODE_OF_CONDUCT.md"
23 | ],
24 | "dependencies": {
25 | "angular": ">= 1.2.23"
26 | },
27 | "keywords": [
28 | "ngCordova",
29 | "ng-cordova",
30 | "ngcordova",
31 | "ng cordova",
32 | "cordova",
33 | "phonegap",
34 | "angular",
35 | "angularjs",
36 | "ionic",
37 | "cordova plugin"
38 | ],
39 | "license": "MIT",
40 | "private": false,
41 | "devDependencies": {
42 | "angular": ">= 1.2.23",
43 | "angular-mocks": ">= 1.2.23",
44 | "jquery": "~2.1.1"
45 | },
46 | "_release": "0.1.20-alpha",
47 | "_resolution": {
48 | "type": "version",
49 | "tag": "v0.1.20-alpha",
50 | "commit": "bb677e1848feaffbab8f93c0de216dc4cbea1f06"
51 | },
52 | "_source": "git://github.com/driftyco/ng-cordova.git",
53 | "_target": "~0.1.20-alpha",
54 | "_originalSource": "ngCordova",
55 | "_direct": true
56 | }
--------------------------------------------------------------------------------
/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 | .pipe(gulp.dest('./www/css/'))
20 | .pipe(minifyCss({
21 | keepSpecialComments: 0
22 | }))
23 | .pipe(rename({ extname: '.min.css' }))
24 | .pipe(gulp.dest('./www/css/'))
25 | .on('end', done);
26 | });
27 |
28 | gulp.task('watch', function() {
29 | gulp.watch(paths.sass, ['sass']);
30 | });
31 |
32 | gulp.task('install', ['git-check'], function() {
33 | return bower.commands.install()
34 | .on('log', function(data) {
35 | gutil.log('bower', gutil.colors.cyan(data.id), data.message);
36 | });
37 | });
38 |
39 | gulp.task('git-check', function(done) {
40 | if (!sh.which('git')) {
41 | console.log(
42 | ' ' + gutil.colors.red('Git is not installed.'),
43 | '\n Git, the version control system, is required to download Ionic.',
44 | '\n Download git here:', gutil.colors.cyan('http://git-scm.com/downloads') + '.',
45 | '\n Once git is installed, run \'' + gutil.colors.cyan('gulp install') + '\' again.'
46 | );
47 | process.exit(1);
48 | }
49 | done();
50 | });
51 |
--------------------------------------------------------------------------------
/www/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 | PassMan
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/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 | }
77 |
--------------------------------------------------------------------------------
/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/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/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 |
--------------------------------------------------------------------------------
/scss/_main_list.scss:
--------------------------------------------------------------------------------
1 | .main_list_wrapper {
2 | .search_item {
3 | background: $theme-background-color;
4 | border: 1px solid $theme-primary-color;
5 | color: $theme-font-color;
6 | }
7 | .main_list {
8 | .item-content,
9 | ion-item,
10 | .user_entry {
11 | background: $theme-background-color;
12 | color: $theme-font-color;
13 | }
14 | ion-item {
15 | margin-top: 1px;
16 | &.active .item-content {
17 | background: $theme-gradient !important;
18 | }
19 | &.active .swipe_icon {
20 | color: white !important;
21 | }
22 | }
23 | .user_entry {
24 | position: relative;
25 | div[class^="user_entry_"] > i {
26 | display: inline-block;
27 | width: 30px;
28 | margin: 0px 25px;
29 | font-size: 25px;
30 | text-align: center;
31 | }
32 | div[class^="user_entry_"] > span {
33 | vertical-align: top;
34 | }
35 | .eye_wrapper {
36 | position: absolute;
37 | bottom: 0px;
38 | right: 25px;
39 | font-size: 25px;
40 | }
41 | }
42 | .swipe_icon {
43 | position: absolute;
44 | right: 10px;
45 | font-size: 12px;
46 | top: 16px;
47 | }
48 | }
49 | .no_entry_message {
50 | padding: 10px;
51 | text-align: center;
52 | }
53 | .bottom_filler {
54 | height: 50px;
55 | }
56 | }
57 |
58 | .list .item.accordion-content {
59 | line-height: 38px;
60 | padding-top: 0;
61 | padding-bottom: 0;
62 | transition: 0.09s all linear;
63 | }
64 |
65 | .list .item.accordion-content.ng-hide {
66 | line-height: 0px;
67 | }
68 |
--------------------------------------------------------------------------------
/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/angular/browser_patch.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ================ angular-ios9-uiwebview.patch.js v1.1.0-rc.2 ================
3 | *
4 | * This patch works around iOS9 UIWebView regression that causes infinite digest
5 | * errors in Angular.
6 | *
7 | * The patch can be applied to Angular 1.2.0 – 1.4.5. Newer versions of Angular
8 | * have the workaround baked in.
9 | *
10 | * To apply this patch load/bundle this file with your application and add a
11 | * dependency on the "ngIOS9Patch" module to your main app module.
12 | *
13 | * For example:
14 | *
15 | * ```
16 | * angular.module('myApp', ['ngRoute'])`
17 | * ```
18 | *
19 | * becomes
20 | *
21 | * ```
22 | * angular.module('myApp', ['ngRoute', 'ngIOS9UIWebViewPatch'])
23 | * ```
24 | *
25 | *
26 | * More info:
27 | * - https://openradar.appspot.com/22186109
28 | * - https://github.com/angular/angular.js/issues/12241
29 | * - https://github.com/driftyco/ionic/issues/4082
30 | *
31 | *
32 | * @license AngularJS
33 | * (c) 2010-2015 Google, Inc. http://angularjs.org
34 | * License: MIT
35 | */
36 |
37 | angular.module('ngIOS9UIWebViewPatch', ['ng']).config(function($provide) {
38 | $provide.decorator('$browser', ['$delegate', '$window', function($delegate, $window) {
39 |
40 | if (isIOS9UIWebView($window.navigator.userAgent)) {
41 | return applyIOS9Shim($delegate);
42 | }
43 |
44 | return $delegate;
45 |
46 | function isIOS9UIWebView(userAgent) {
47 | return /(iPhone|iPad|iPod).* OS 9_\d/.test(userAgent) && !/Version\/9\./.test(userAgent);
48 | }
49 |
50 | function applyIOS9Shim(browser) {
51 | var pendingLocationUrl = null;
52 | var originalUrlFn= browser.url;
53 |
54 | browser.url = function() {
55 | if (arguments.length) {
56 | pendingLocationUrl = arguments[0];
57 | return originalUrlFn.apply(browser, arguments);
58 | }
59 |
60 | return pendingLocationUrl || originalUrlFn.apply(browser, arguments);
61 | };
62 |
63 | window.addEventListener('popstate', clearPendingLocationUrl, false);
64 | window.addEventListener('hashchange', clearPendingLocationUrl, false);
65 |
66 | function clearPendingLocationUrl() {
67 | pendingLocationUrl = null;
68 | }
69 |
70 | return browser;
71 | }
72 | }]);
73 | });
--------------------------------------------------------------------------------
/www/templates/pages/add_item.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/.sass-cache/7a86fc531f343d826dfc6f9887171207492abd24/_add_item.scssc:
--------------------------------------------------------------------------------
1 | 3.4.10 (Selective Steve)
2 | 0449d0f55a34c1810e085d0ccb63cfac7ca7727d
3 | o:Sass::Tree::RootNode:@children[o:Sass::Tree::RuleNode:
4 | @rule[I".add_item_wrapper:ET:@parsed_ruleso:"Sass::Selector::CommaSequence:
@members[o:Sass::Selector::Sequence;[o:#Sass::Selector::SimpleSequence;[o:Sass::Selector::Class:
5 | @nameI"add_item_wrapper; T:
6 | @linei:@filename0:
@subject0:
@sourceso:Set:
7 | @hash{ :@source_rangeo:Sass::Source::Range :@start_poso:Sass::Source::Position;i:@offseti:
@end_poso;;i;i:
8 | @file0:@importer0;i;0;i;0:@selector_source_rangeo; ;o;;i;i;o;;i;i;I"scss/_add_item.scss; T;o: Sass::Importers::Filesystem:
9 | @rootI">/Users/916804/MyDisk/Programming/Projects/PassMan/PassMan; T:@real_rootI">/Users/916804/MyDisk/Programming/Projects/PassMan/PassMan; T:@same_name_warningso;;{ :
10 | @tabsi ;[o;;[I"
11 | .list; T;
12 | o;;[o;
;[o;;[o;;I" list; T;i;0;0;o;;{ ;o; ;o;;i;i;o;;i;i;0;0;i;0;i;0;o; ;o;;i;i;o;;i;i
;@;@;$i ;[o;;[I".error_messages_wrapper; T;
13 | o;;[o;
;[o;;[o;;I"error_messages_wrapper; T;i;0;0;o;;{ ;o; ;o;;i;i;o;;i;i;0;0;i;0;i;0;o; ;o;;i;i;o;;i;i ;@;@;$i ;[o:Sass::Tree::PropNode;[I"height; T:@valueo: Sass::Script::Tree::Literal;&o: Sass::Script::Value::String;&I" 40px; T:
14 | @type:identifier:
@options{ ;i;o; ;o;;i;i;o;;i;i;@;@;$i :@prop_syntax:new;[ ;i;o; ;o;;i;i ;o;;i;i;@;@:@name_source_rangeo; ;@U;o;;i;i;@;@:@value_source_rangeo; ;o;;i;i;@V;@;@;+@O;i;o; ;@F;o;;i;i ;@;@:@has_childrenT;+@Oo;;[I"button; T;
15 | o;;[o;
;[o;;[o:Sass::Selector::Element ;I"button; T:@namespace0;i;0;0;o;;{ ;o; ;o;;i;i;o;;i;i;0;0;i;0;i;0;o; ;o;;i;i;o;;i;i;@;@;$i ;[ ;i;o; ;@n;o;;i;i;@;@;0T;+@O;i;o; ;@2;o;;i;i
;@;@;0T;+@O;i;o; ;@;o;;i;i;@;@;0T;+@O:@templateI"l.add_item_wrapper {
16 | .list {
17 |
18 |
19 |
20 | .error_messages_wrapper {
21 | height: 40px;
22 | }
23 | button {
24 |
25 | }
26 | }
27 | }; T;i;o; ;o;;i;i;o;;i;i;@;@;0T;+@O
--------------------------------------------------------------------------------
/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/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/templates/pages/change_pin.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/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 | overflow: visible;
42 | min-height: $modal-inset-mode-min-height;
43 | width: (100% - $modal-inset-mode-left - $modal-inset-mode-right);
44 | }
45 |
46 | .modal.ng-leave-active {
47 | bottom: 0;
48 | }
49 |
50 | // remove ios header padding from inset header
51 | .platform-ios.platform-cordova .modal-wrapper .modal {
52 | .bar-header:not(.bar-subheader) {
53 | height: $bar-height;
54 | > * {
55 | margin-top: 0;
56 | }
57 | }
58 | .tabs-top > .tabs,
59 | .tabs.tabs-top {
60 | top: $bar-height;
61 | }
62 | .has-header,
63 | .bar-subheader {
64 | top: $bar-height;
65 | }
66 | .has-subheader {
67 | top: $bar-height + $bar-subheader-height;
68 | }
69 | .has-tabs-top {
70 | top: $bar-height + $tabs-height;
71 | }
72 | .has-header.has-subheader.has-tabs-top {
73 | top: $bar-height + $bar-subheader-height + $tabs-height;
74 | }
75 | }
76 |
77 | .modal-backdrop-bg {
78 | @include transition(opacity 300ms ease-in-out);
79 | background-color: $modal-backdrop-bg-active;
80 | opacity: 0;
81 | }
82 |
83 | .active .modal-backdrop-bg {
84 | opacity: 0.5;
85 | }
86 | }
87 |
88 | // disable clicks on all but the modal
89 | .modal-open {
90 | pointer-events: none;
91 |
92 | .modal,
93 | .modal-backdrop {
94 | pointer-events: auto;
95 | }
96 | // prevent clicks on modal when loading overlay is active though
97 | &.loading-active {
98 | .modal,
99 | .modal-backdrop {
100 | pointer-events: none;
101 | }
102 | }
103 | }
104 |
--------------------------------------------------------------------------------
/www/templates/pages/main_list.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | {{ item.title | decrypt }}
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 | {{ item.username | decrypt }}
31 |
32 |
33 |
34 | {{ item.password | decrypt }}
35 |
36 |
37 |
38 |
39 |
40 | No entries have been made
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/.sass-cache/7a86fc531f343d826dfc6f9887171207492abd24/ionic.app.scssc:
--------------------------------------------------------------------------------
1 | 3.4.10 (Selective Steve)
2 | 69586706c148966f9d73fb61bc7e4235c0d76a6e
3 | o:Sass::Tree::RootNode:@children[
4 | o:Sass::Tree::CommentNode
5 | :@value[I"x/*
6 | To customize the look and feel of Ionic, you can override the variables
7 | in ionic's _variables.scss file.
8 |
9 | For example, you might change some of the default colors:
10 |
11 | $light: #fff !default;
12 | $stable: #f8f8f8 !default;
13 | $positive: #387ef5 !default;
14 | $calm: #11c1f3 !default;
15 | $balanced: #33cd5f !default;
16 | $energized: #ffc900 !default;
17 | $assertive: #ef473a !default;
18 | $royal: #886aea !default;
19 | $dark: #444 !default;
20 | */:ET:
21 | @type:normal;[ :
22 | @linei:
@options{ o;
23 | ;[I"U/* The path for our ionicons font files, relative to the built CSS in www/css */; T;
24 | :silent;[ ;i;
@o:Sass::Tree::VariableNode
:
25 | @nameI"ionicons-font-path; T:
26 | @expro: Sass::Script::Tree::Literal ;o: Sass::Script::Value::String;I"../lib/ionic/fonts; T;
27 | :string;
@;i:@source_rangeo:Sass::Source::Range :@start_poso:Sass::Source::Position;i:@offseti:
@end_poso;;i;i/:
28 | @fileI"scss/ionic.app.scss; T:@importero: Sass::Importers::Filesystem:
29 | @rootI">/Users/916804/MyDisk/Programming/Projects/PassMan/PassMan; T:@real_rootI">/Users/916804/MyDisk/Programming/Projects/PassMan/PassMan; T:@same_name_warningso:Set:
30 | @hash{ :@filename@:
@guardedT:@global0;[ ;i;o; ;o;;i;i;o;;i;i8;@;@;
@o;
31 | ;[I"/* Include all of Ionic */; T;
32 | ;;[ ;i;
@o:Sass::Tree::ImportNode:@imported_filenameI"%../www/lib/ionic/scss/ionic.scss; T;[ :@template0;i;o; ;o;;i;i;o;;i;i0;@;@;
@:@imported_file0;(I"D/*
33 | To customize the look and feel of Ionic, you can override the variables
34 | in ionic's _variables.scss file.
35 |
36 | For example, you might change some of the default colors:
37 |
38 | $light: #fff !default;
39 | $stable: #f8f8f8 !default;
40 | $positive: #387ef5 !default;
41 | $calm: #11c1f3 !default;
42 | $balanced: #33cd5f !default;
43 | $energized: #ffc900 !default;
44 | $assertive: #ef473a !default;
45 | $royal: #886aea !default;
46 | $dark: #444 !default;
47 | */
48 |
49 | // The path for our ionicons font files, relative to the built CSS in www/css
50 | $ionicons-font-path: "../lib/ionic/fonts" !default;
51 |
52 | // Include all of Ionic
53 | @import "../www/lib/ionic/scss/ionic.scss";
54 |
55 |
56 |
57 | ; T;i;o; ;o;;i;i;o;;i;i;@;@:@has_childrenT;
@
--------------------------------------------------------------------------------
/www/lib/ionic/scss/_list.scss:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Lists
4 | * --------------------------------------------------
5 | */
6 |
7 | .list {
8 | position: relative;
9 | padding-top: $item-border-width;
10 | padding-bottom: $item-border-width;
11 | padding-left: 0; // reset padding because ul and ol
12 | margin-bottom: 20px;
13 | }
14 | .list:last-child {
15 | margin-bottom: 0px;
16 | &.card{
17 | margin-bottom:40px;
18 | }
19 | }
20 |
21 |
22 | /**
23 | * List Header
24 | * --------------------------------------------------
25 | */
26 |
27 | .list-header {
28 | margin-top: $list-header-margin-top;
29 | padding: $list-header-padding;
30 | background-color: $list-header-bg;
31 | color: $list-header-color;
32 | font-weight: bold;
33 | }
34 |
35 | // when its a card make sure it doesn't duplicate top and bottom borders
36 | .card.list .list-item {
37 | padding-right: 1px;
38 | padding-left: 1px;
39 | }
40 |
41 |
42 | /**
43 | * Cards and Inset Lists
44 | * --------------------------------------------------
45 | * A card and list-inset are close to the same thing, except a card as a box shadow.
46 | */
47 |
48 | .card,
49 | .list-inset {
50 | overflow: hidden;
51 | margin: ($content-padding * 2) $content-padding;
52 | border-radius: $card-border-radius;
53 | background-color: $card-body-bg;
54 | }
55 |
56 | .card {
57 | padding-top: $item-border-width;
58 | padding-bottom: $item-border-width;
59 | box-shadow: $card-box-shadow;
60 |
61 | .item {
62 | border-left: 0;
63 | border-right: 0;
64 | }
65 | .item:first-child {
66 | border-top: 0;
67 | }
68 | .item:last-child {
69 | border-bottom: 0;
70 | }
71 | }
72 |
73 | .padding {
74 | .card, .list-inset {
75 | margin-left: 0;
76 | margin-right: 0;
77 | }
78 | }
79 |
80 | .card .item,
81 | .list-inset .item,
82 | .padding > .list .item
83 | {
84 | &:first-child {
85 | border-top-left-radius: $card-border-radius;
86 | border-top-right-radius: $card-border-radius;
87 |
88 | .item-content {
89 | border-top-left-radius: $card-border-radius;
90 | border-top-right-radius: $card-border-radius;
91 | }
92 | }
93 | &:last-child {
94 | border-bottom-right-radius: $card-border-radius;
95 | border-bottom-left-radius: $card-border-radius;
96 |
97 | .item-content {
98 | border-bottom-right-radius: $card-border-radius;
99 | border-bottom-left-radius: $card-border-radius;
100 | }
101 | }
102 | }
103 |
104 | .card .item:last-child,
105 | .list-inset .item:last-child {
106 | margin-bottom: $item-border-width * -1;
107 | }
108 |
109 | .card .item,
110 | .list-inset .item,
111 | .padding > .list .item,
112 | .padding-horizontal > .list .item {
113 | margin-right: 0;
114 | margin-left: 0;
115 |
116 | &.item-input input {
117 | padding-right: 44px;
118 | }
119 | }
120 | .padding-left > .list .item {
121 | margin-left: 0;
122 | }
123 | .padding-right > .list .item {
124 | margin-right: 0;
125 | }
126 |
--------------------------------------------------------------------------------
/hooks/after_prepare/010_add_platform_class.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | // Add Platform Class
4 | // v1.0
5 | // Automatically adds the platform class to the body tag
6 | // after the `prepare` command. By placing the platform CSS classes
7 | // directly in the HTML built for the platform, it speeds up
8 | // rendering the correct layout/style for the specific platform
9 | // instead of waiting for the JS to figure out the correct classes.
10 |
11 | var fs = require('fs');
12 | var path = require('path');
13 |
14 | var rootdir = process.argv[2];
15 |
16 | function addPlatformBodyTag(indexPath, platform) {
17 | // add the platform class to the body tag
18 | try {
19 | var platformClass = 'platform-' + platform;
20 | var cordovaClass = 'platform-cordova platform-webview';
21 |
22 | var html = fs.readFileSync(indexPath, 'utf8');
23 |
24 | var bodyTag = findBodyTag(html);
25 | if(!bodyTag) return; // no opening body tag, something's wrong
26 |
27 | if(bodyTag.indexOf(platformClass) > -1) return; // already added
28 |
29 | var newBodyTag = bodyTag;
30 |
31 | var classAttr = findClassAttr(bodyTag);
32 | if(classAttr) {
33 | // body tag has existing class attribute, add the classname
34 | var endingQuote = classAttr.substring(classAttr.length-1);
35 | var newClassAttr = classAttr.substring(0, classAttr.length-1);
36 | newClassAttr += ' ' + platformClass + ' ' + cordovaClass + endingQuote;
37 | newBodyTag = bodyTag.replace(classAttr, newClassAttr);
38 |
39 | } else {
40 | // add class attribute to the body tag
41 | newBodyTag = bodyTag.replace('>', ' class="' + platformClass + ' ' + cordovaClass + '">');
42 | }
43 |
44 | html = html.replace(bodyTag, newBodyTag);
45 |
46 | fs.writeFileSync(indexPath, html, 'utf8');
47 |
48 | process.stdout.write('add to body class: ' + platformClass + '\n');
49 | } catch(e) {
50 | process.stdout.write(e);
51 | }
52 | }
53 |
54 | function findBodyTag(html) {
55 | // get the body tag
56 | try{
57 | return html.match(/])(.*?)>/gi)[0];
58 | }catch(e){}
59 | }
60 |
61 | function findClassAttr(bodyTag) {
62 | // get the body tag's class attribute
63 | try{
64 | return bodyTag.match(/ class=["|'](.*?)["|']/gi)[0];
65 | }catch(e){}
66 | }
67 |
68 | if (rootdir) {
69 |
70 | // go through each of the platform directories that have been prepared
71 | var platforms = (process.env.CORDOVA_PLATFORMS ? process.env.CORDOVA_PLATFORMS.split(',') : []);
72 |
73 | for(var x=0; x .scroll{
83 | &.overscroll{
84 | position:fixed;
85 | }
86 | -webkit-overflow-scrolling:touch;
87 | width:100%;
88 | }
89 |
90 | @-webkit-keyframes refresh-spin {
91 | 0% { -webkit-transform: translate3d(0,0,0) rotate(0); }
92 | 100% { -webkit-transform: translate3d(0,0,0) rotate(180deg); }
93 | }
94 |
95 | @keyframes refresh-spin {
96 | 0% { transform: translate3d(0,0,0) rotate(0); }
97 | 100% { transform: translate3d(0,0,0) rotate(180deg); }
98 | }
99 |
100 | @-webkit-keyframes refresh-spin-back {
101 | 0% { -webkit-transform: translate3d(0,0,0) rotate(180deg); }
102 | 100% { -webkit-transform: translate3d(0,0,0) rotate(0); }
103 | }
104 |
105 | @keyframes refresh-spin-back {
106 | 0% { transform: translate3d(0,0,0) rotate(180deg); }
107 | 100% { transform: translate3d(0,0,0) rotate(0); }
108 | }
109 |
--------------------------------------------------------------------------------
/hooks/README.md:
--------------------------------------------------------------------------------
1 |
21 | # Cordova Hooks
22 |
23 | This directory may contain scripts used to customize cordova commands. This
24 | directory used to exist at `.cordova/hooks`, but has now been moved to the
25 | project root. Any scripts you add to these directories will be executed before
26 | and after the commands corresponding to the directory name. Useful for
27 | integrating your own build systems or integrating with version control systems.
28 |
29 | __Remember__: Make your scripts executable.
30 |
31 | ## Hook Directories
32 | The following subdirectories will be used for hooks:
33 |
34 | after_build/
35 | after_compile/
36 | after_docs/
37 | after_emulate/
38 | after_platform_add/
39 | after_platform_rm/
40 | after_platform_ls/
41 | after_plugin_add/
42 | after_plugin_ls/
43 | after_plugin_rm/
44 | after_plugin_search/
45 | after_prepare/
46 | after_run/
47 | after_serve/
48 | before_build/
49 | before_compile/
50 | before_docs/
51 | before_emulate/
52 | before_platform_add/
53 | before_platform_rm/
54 | before_platform_ls/
55 | before_plugin_add/
56 | before_plugin_ls/
57 | before_plugin_rm/
58 | before_plugin_search/
59 | before_prepare/
60 | before_run/
61 | before_serve/
62 | pre_package/ <-- Windows 8 and Windows Phone only.
63 |
64 | ## Script Interface
65 |
66 | All scripts are run from the project's root directory and have the root directory passes as the first argument. All other options are passed to the script using environment variables:
67 |
68 | * CORDOVA_VERSION - The version of the Cordova-CLI.
69 | * CORDOVA_PLATFORMS - Comma separated list of platforms that the command applies to (e.g.: android, ios).
70 | * CORDOVA_PLUGINS - Comma separated list of plugin IDs that the command applies to (e.g.: org.apache.cordova.file, org.apache.cordova.file-transfer)
71 | * CORDOVA_HOOK - Path to the hook that is being executed.
72 | * CORDOVA_CMDLINE - The exact command-line arguments passed to cordova (e.g.: cordova run ios --emulate)
73 |
74 | If a script returns a non-zero exit code, then the parent cordova command will be aborted.
75 |
76 |
77 | ## Writing hooks
78 |
79 | We highly recommend writting your hooks using Node.js so that they are
80 | cross-platform. Some good examples are shown here:
81 |
82 | [http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/](http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/)
83 |
84 |
--------------------------------------------------------------------------------
/www/lib/ionic/scss/_select.scss:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Select
4 | * --------------------------------------------------
5 | */
6 |
7 | .item-select {
8 | position: relative;
9 |
10 | select {
11 | @include appearance(none);
12 | position: absolute;
13 | top: 0;
14 | right: 0;
15 | padding: ($item-padding - 2) ($item-padding * 3) ($item-padding) $item-padding;
16 | max-width: 65%;
17 |
18 | border: none;
19 | background: $item-default-bg;
20 | color: #333;
21 |
22 | // hack to hide default dropdown arrow in FF
23 | text-indent: .01px;
24 | text-overflow: '';
25 |
26 | white-space: nowrap;
27 | font-size: $font-size-base;
28 |
29 | cursor: pointer;
30 | direction: rtl; // right align the select text
31 | }
32 |
33 | select::-ms-expand {
34 | // hide default dropdown arrow in IE
35 | display: none;
36 | }
37 |
38 | option {
39 | direction: ltr;
40 | }
41 |
42 | &:after {
43 | position: absolute;
44 | top: 50%;
45 | right: $item-padding;
46 | margin-top: -3px;
47 | width: 0;
48 | height: 0;
49 | border-top: 5px solid;
50 | border-right: 5px solid rgba(0, 0, 0, 0);
51 | border-left: 5px solid rgba(0, 0, 0, 0);
52 | color: #999;
53 | content: "";
54 | pointer-events: none;
55 | }
56 | &.item-light {
57 | select{
58 | background:$item-light-bg;
59 | color:$item-light-text;
60 | }
61 | }
62 | &.item-stable {
63 | select{
64 | background:$item-stable-bg;
65 | color:$item-stable-text;
66 | }
67 | &:after, .input-label{
68 | color:darken($item-stable-border,30%);
69 | }
70 | }
71 | &.item-positive {
72 | select{
73 | background:$item-positive-bg;
74 | color:$item-positive-text;
75 | }
76 | &:after, .input-label{
77 | color:$item-positive-text;
78 | }
79 | }
80 | &.item-calm {
81 | select{
82 | background:$item-calm-bg;
83 | color:$item-calm-text;
84 | }
85 | &:after, .input-label{
86 | color:$item-calm-text;
87 | }
88 | }
89 | &.item-assertive {
90 | select{
91 | background:$item-assertive-bg;
92 | color:$item-assertive-text;
93 | }
94 | &:after, .input-label{
95 | color:$item-assertive-text;
96 | }
97 | }
98 | &.item-balanced {
99 | select{
100 | background:$item-balanced-bg;
101 | color:$item-balanced-text;
102 | }
103 | &:after, .input-label{
104 | color:$item-balanced-text;
105 | }
106 | }
107 | &.item-energized {
108 | select{
109 | background:$item-energized-bg;
110 | color:$item-energized-text;
111 | }
112 | &:after, .input-label{
113 | color:$item-energized-text;
114 | }
115 | }
116 | &.item-royal {
117 | select{
118 | background:$item-royal-bg;
119 | color:$item-royal-text;
120 | }
121 | &:after, .input-label{
122 | color:$item-royal-text;
123 | }
124 | }
125 | &.item-dark {
126 | select{
127 | background:$item-dark-bg;
128 | color:$item-dark-text;
129 | }
130 | &:after, .input-label{
131 | color:$item-dark-text;
132 | }
133 | }
134 | }
135 |
136 | select {
137 | &[multiple],
138 | &[size] {
139 | height: auto;
140 | }
141 | }
142 |
--------------------------------------------------------------------------------
/www/lib/ionic/scss/_range.scss:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Range
4 | * --------------------------------------------------
5 | */
6 |
7 | .range input{
8 | display: inline-block;
9 | overflow: hidden;
10 | margin-top: 5px;
11 | margin-bottom: 5px;
12 | padding-right: 2px;
13 | padding-left: 1px;
14 | width: auto;
15 | height: $range-slider-height + 15;
16 | outline: none;
17 | background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, $range-default-track-bg), color-stop(100%, $range-default-track-bg));
18 | background: linear-gradient(to right, $range-default-track-bg 0%, $range-default-track-bg 100%);
19 | background-position: center;
20 | background-size: 99% $range-track-height;
21 | background-repeat: no-repeat;
22 | -webkit-appearance: none;
23 |
24 | &::-webkit-slider-thumb {
25 | position: relative;
26 | width: $range-slider-width;
27 | height: $range-slider-height;
28 | border-radius: $range-slider-border-radius;
29 | background-color: $toggle-handle-off-bg-color;
30 | box-shadow: $range-slider-box-shadow;
31 | cursor: pointer;
32 | -webkit-appearance: none;
33 | border: 0;
34 | }
35 |
36 | &::-webkit-slider-thumb:before {
37 | /* what creates the colorful line on the left side of the slider */
38 | position: absolute;
39 | top: ($range-slider-height / 2) - ($range-track-height / 2);
40 | left: -2001px;
41 | width: 2000px;
42 | height: $range-track-height;
43 | background: $dark;
44 | content: ' ';
45 | }
46 |
47 | &::-webkit-slider-thumb:after {
48 | /* create a larger (but hidden) hit area */
49 | position: absolute;
50 | top: -15px;
51 | left: -15px;
52 | padding: 30px;
53 | content: ' ';
54 | //background: red;
55 | //opacity: .5;
56 | }
57 |
58 | }
59 |
60 | .range {
61 | @include display-flex();
62 | @include align-items(center);
63 | padding: 2px 11px;
64 |
65 | &.range-light {
66 | input { @include range-style($range-light-track-bg); }
67 | }
68 | &.range-stable {
69 | input { @include range-style($range-stable-track-bg); }
70 | }
71 | &.range-positive {
72 | input { @include range-style($range-positive-track-bg); }
73 | }
74 | &.range-calm {
75 | input { @include range-style($range-calm-track-bg); }
76 | }
77 | &.range-balanced {
78 | input { @include range-style($range-balanced-track-bg); }
79 | }
80 | &.range-assertive {
81 | input { @include range-style($range-assertive-track-bg); }
82 | }
83 | &.range-energized {
84 | input { @include range-style($range-energized-track-bg); }
85 | }
86 | &.range-royal {
87 | input { @include range-style($range-royal-track-bg); }
88 | }
89 | &.range-dark {
90 | input { @include range-style($range-dark-track-bg); }
91 | }
92 | }
93 |
94 | .range .icon {
95 | @include flex(0);
96 | display: block;
97 | min-width: $range-icon-size;
98 | text-align: center;
99 | font-size: $range-icon-size;
100 | }
101 |
102 | .range input {
103 | @include flex(1);
104 | display: block;
105 | margin-right: 10px;
106 | margin-left: 10px;
107 | }
108 |
109 | .range-label {
110 | @include flex(0, 0, auto);
111 | display: block;
112 | white-space: nowrap;
113 | }
114 |
115 | .range-label:first-child {
116 | padding-left: 5px;
117 | }
118 | .range input + .range-label {
119 | padding-right: 5px;
120 | padding-left: 0;
121 | }
122 |
--------------------------------------------------------------------------------
/www/css/style.css.map:
--------------------------------------------------------------------------------
1 | {
2 | "version": 3,
3 | "mappings": ";;AASA,UAGC;EAFC,WAAW,EAAE,MAAM;EACnB,GAAG,EAAE,iDAAkD;AAGzD;;cAEe;EACX,UAAU,EAAE,kBAAkC;EAC9C,KAAK,EAfU,OAAO;EAgBtB,WAAW,EAAE,kBAAkB;;AAGnC,cAAe;EACX,aAAa,EAAE,4BAAyC;EAGpD,8CAAkB;IACd,OAAO,EAAE,mBAAmB;;AAKxC;eACgB;EACZ,KAAK,EAAE,kBAA4B;EACnC,UAAU,EAAE,WAAW;;AAG3B,0BAA2B;EACvB,KAAK,EAAE,kBAA4B;;AAGvC,KAAM;EACF,UAAU,EAAE,kBAAkC;EAC9C,OAAO,EAAE,QAAQ;EACjB,WAAM;IACF,YAAY,EA5CE,OAAO;IA6CrB,YAAY,EAAE,eAAe;IAC7B,wBAAa;MACT,KAAK,EA9CE,OAAO;EAiDtB,6BAAwB;IACpB,MAAM,EAAE,IAAI;;AAIpB,OAAQ;EACJ,UAAU,EArDK,mEAAqG;EAsDpH,MAAM,EAAE,GAAG;EACX,KAAK,EAzDU,OAAO;;AA4D1B;KACM;EACF,KAAK,EAAE,kBAA+B;;;AAM1C,WAAY;EACR,UAAU,EAAE,MAAM;;;AAMtB,2BAA4B;EACxB,gBAAgB,EAAE,WAAW;;AAGjC,WAAY;EACR,KAAK,EAAE,gBAAgB;;AAG3B,YAAa;EACT,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;;;AAMjB,aAAc;EACV,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,GAAG;EACZ,KAAK,EAAE,SAAS;;;AAMpB,OAAQ;EACJ,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,UAAU;EACtB,MAAM,EAAE,IAAI;EACZ,UAAU,EAvGK,mEAAqG;EAyGhH,iBAAK;IACD,KAAK,EAAE,MAAM;IACb,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,QAAQ;IACjB,YAAY,EAhHF,OAAO;IAiHjB,KAAK,EAhHE,OAAO;IAiHd,YAAY,EAAE,KAAK;IACnB,YAAY,EAAE,eAAe;IAC7B,WAAW,EAAE,kBAAkB;IAC/B,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,GAAG;IAChB,8BAAe;MACX,YAAY,EAAE,eAAe;IAGjC,wBAAS;MACL,UAAU,EAxHD,4FAAoG;EA4HjH,4BAAK;IACD,aAAa,EAAE,GAAG;;AAMlC,aAAc;EACV,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EAEX,oBAAO;IACH,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,kBAAkB;EAEnC,4BAAe;IACX,UAAU,EAAE,MAAM;IAClB,gCAAI;MACA,KAAK,EAAE,KAAK;MACZ,MAAM,EAAE,KAAK;MACb,UAAU,EAAE,IAAI;EAGxB,6BAAgB;IACZ,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,QAAQ;IAChB,qCAAQ;MACJ,OAAO,EAAE,YAAY;MACrB,MAAM,EAAE,IAAI;MACZ,KAAK,EAAE,IAAI;MACX,UAAU,EAAE,UAAU;MACtB,MAAM,EAAE,QAAQ;MAChB,aAAa,EAAE,GAAG;MAClB,MAAM,EAAE,eAA0B;MAClC,UAAU,EAAE,KAAK;IAErB,4CAAe;MACX,UAAU,EAtKA,OAAO;;AA2K7B,MAAO;EACH,sBAAsB,EAAE,eAAe;EACvC,0BAA0B,EAAE,GAAG;EAC/B,mBAAmB,EAAE,IAAI;;AAG7B,kCAUC;EATG,QAAS;IACL,iBAAiB,EAAE,aAAa;EAEpC,uBAAwB;IACpB,iBAAiB,EAAE,iBAAiB;EAExC,kBAAmB;IACf,iBAAiB,EAAE,gBAAgB;AC1LvC,+BAAa;EACT,UAAU,EDEO,OAAO;ECDxB,MAAM,EAAE,iBAA8B;EACtC,KAAK,EDDM,OAAO;ACIlB;;yCAEY;EACR,UAAU,EDNG,OAAO;ECOpB,KAAK,EDRE,OAAO;ACUlB,sCAAS;EACL,UAAU,EAAE,GAAG;EACf,2DAAuB;IACnB,UAAU,EAAE,8EAA0B;EAE1C,yDAAqB;IACjB,KAAK,EAAE,gBAAgB;AAG/B,yCAAY;EACR,QAAQ,EAAE,QAAQ;EAClB,uEAA8B;IAC1B,OAAO,EAAE,YAAY;IACrB,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,MAAM;EAEtB,0EAAiC;IAC7B,cAAc,EAAE,GAAG;EAEvB,sDAAa;IACT,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,IAAI;AAGvB,yCAAY;EACR,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,IAAI;EACf,GAAG,EAAE,IAAI;AAGjB,oCAAkB;EACd,OAAO,EAAE,IAAI;EACb,UAAU,EAAE,MAAM;AAEtB,iCAAe;EACX,MAAM,EAAE,IAAI;;AAIpB,6BAA8B;EAC1B,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,CAAC;EACd,cAAc,EAAE,CAAC;EACjB,UAAU,EAAE,gBAAgB;;AAGhC,qCAAsC;EAClC,WAAW,EAAE,GAAG;;AC5DlB,+CAAwB;EACvB,MAAM,EAAE,IAAI;;;;;ACFf,2BAA4B;EACxB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,IAAI;EACb,MAAM,EAAE,GAAG;EACX,IAAI,EAAE,GAAG;EACT,uDAA4B;IACxB,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,MAAM;IAChB,wEAAiB;MACb,OAAO,EAAE,KAAK;MACd,OAAO,EAAE,YAAY;MACrB,gBAAgB,EAAE,kBAAkC;IAExD,2EAAoB;MAChB,UAAU,EAAE,eAAe;MAC3B,WAAW,EAAE,IAAI;MACjB,mFAAU;QACN,WAAW,EAAE,GAAG;MAEpB,8EAAG;QACC,UAAU,EAAE,iBAA8B;QAC1C,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,WAAW;MAE3B,yFAAgB;QACZ,aAAa,EAAE,GAAG;;AAMlC,mCAAoC;EAChC,GAAG,EAAE,GAAG;EACR,IAAI,EAAE,GAAG;EACT,UAAU,EAAE,kBAAkB;;AAGlC,wBAAyB;EACrB,UAAU,EAAE,gBAAiC",
4 | "sources": ["../../scss/_common.scss","../../scss/_main_list.scss","../../scss/_add_item.scss","../../scss/_bottom_menu.scss"],
5 | "names": [],
6 | "file": "style.css"
7 | }
--------------------------------------------------------------------------------
/www/lib/ionic/scss/_grid.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Grid
3 | * --------------------------------------------------
4 | * Using flexbox for the grid, inspired by Philip Walton:
5 | * http://philipwalton.github.io/solved-by-flexbox/demos/grids/
6 | * By default each .col within a .row will evenly take up
7 | * available width, and the height of each .col with take
8 | * up the height of the tallest .col in the same .row.
9 | */
10 |
11 | .row {
12 | @include display-flex();
13 | padding: ($grid-padding-width / 2);
14 | width: 100%;
15 | }
16 |
17 | .row-wrap {
18 | @include flex-wrap(wrap);
19 | }
20 |
21 | .row-no-padding {
22 | padding: 0;
23 |
24 | > .col {
25 | padding: 0;
26 | }
27 | }
28 |
29 | .row + .row {
30 | margin-top: ($grid-padding-width / 2) * -1;
31 | padding-top: 0;
32 | }
33 |
34 | .col {
35 | @include flex(1);
36 | display: block;
37 | padding: ($grid-padding-width / 2);
38 | width: 100%;
39 | }
40 |
41 |
42 | /* Vertically Align Columns */
43 | /* .row-* vertically aligns every .col in the .row */
44 | .row-top {
45 | @include align-items(flex-start);
46 | }
47 | .row-bottom {
48 | @include align-items(flex-end);
49 | }
50 | .row-center {
51 | @include align-items(center);
52 | }
53 | .row-stretch {
54 | @include align-items(stretch);
55 | }
56 | .row-baseline {
57 | @include align-items(baseline);
58 | }
59 |
60 | /* .col-* vertically aligns an individual .col */
61 | .col-top {
62 | @include align-self(flex-start);
63 | }
64 | .col-bottom {
65 | @include align-self(flex-end);
66 | }
67 | .col-center {
68 | @include align-self(center);
69 | }
70 |
71 | /* Column Offsets */
72 | .col-offset-10 {
73 | margin-left: 10%;
74 | }
75 | .col-offset-20 {
76 | margin-left: 20%;
77 | }
78 | .col-offset-25 {
79 | margin-left: 25%;
80 | }
81 | .col-offset-33, .col-offset-34 {
82 | margin-left: 33.3333%;
83 | }
84 | .col-offset-50 {
85 | margin-left: 50%;
86 | }
87 | .col-offset-66, .col-offset-67 {
88 | margin-left: 66.6666%;
89 | }
90 | .col-offset-75 {
91 | margin-left: 75%;
92 | }
93 | .col-offset-80 {
94 | margin-left: 80%;
95 | }
96 | .col-offset-90 {
97 | margin-left: 90%;
98 | }
99 |
100 |
101 | /* Explicit Column Percent Sizes */
102 | /* By default each grid column will evenly distribute */
103 | /* across the grid. However, you can specify individual */
104 | /* columns to take up a certain size of the available area */
105 | .col-10 {
106 | @include flex(0, 0, 10%);
107 | max-width: 10%;
108 | }
109 | .col-20 {
110 | @include flex(0, 0, 20%);
111 | max-width: 20%;
112 | }
113 | .col-25 {
114 | @include flex(0, 0, 25%);
115 | max-width: 25%;
116 | }
117 | .col-33, .col-34 {
118 | @include flex(0, 0, 33.3333%);
119 | max-width: 33.3333%;
120 | }
121 | .col-50 {
122 | @include flex(0, 0, 50%);
123 | max-width: 50%;
124 | }
125 | .col-66, .col-67 {
126 | @include flex(0, 0, 66.6666%);
127 | max-width: 66.6666%;
128 | }
129 | .col-75 {
130 | @include flex(0, 0, 75%);
131 | max-width: 75%;
132 | }
133 | .col-80 {
134 | @include flex(0, 0, 80%);
135 | max-width: 80%;
136 | }
137 | .col-90 {
138 | @include flex(0, 0, 90%);
139 | max-width: 90%;
140 | }
141 |
142 |
143 | /* Responsive Grid Classes */
144 | /* Adding a class of responsive-X to a row */
145 | /* will trigger the flex-direction to */
146 | /* change to column and add some margin */
147 | /* to any columns in the row for clearity */
148 |
149 | @include responsive-grid-break('.responsive-sm', $grid-responsive-sm-break);
150 | @include responsive-grid-break('.responsive-md', $grid-responsive-md-break);
151 | @include responsive-grid-break('.responsive-lg', $grid-responsive-lg-break);
152 |
--------------------------------------------------------------------------------
/www/lib/ionic/scss/_type.scss:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Typography
4 | * --------------------------------------------------
5 | */
6 |
7 |
8 | // Body text
9 | // -------------------------
10 |
11 | p {
12 | margin: 0 0 ($line-height-computed / 2);
13 | }
14 |
15 |
16 | // Emphasis & misc
17 | // -------------------------
18 |
19 | small { font-size: 85%; }
20 | cite { font-style: normal; }
21 |
22 |
23 | // Alignment
24 | // -------------------------
25 |
26 | .text-left { text-align: left; }
27 | .text-right { text-align: right; }
28 | .text-center { text-align: center; }
29 |
30 |
31 | // Headings
32 | // -------------------------
33 |
34 | h1, h2, h3, h4, h5, h6,
35 | .h1, .h2, .h3, .h4, .h5, .h6 {
36 | color: $base-color;
37 | font-weight: $headings-font-weight;
38 | font-family: $headings-font-family;
39 | line-height: $headings-line-height;
40 |
41 | small {
42 | font-weight: normal;
43 | line-height: 1;
44 | }
45 | }
46 |
47 | h1, .h1,
48 | h2, .h2,
49 | h3, .h3 {
50 | margin-top: $line-height-computed;
51 | margin-bottom: ($line-height-computed / 2);
52 |
53 | &:first-child {
54 | margin-top: 0;
55 | }
56 |
57 | + h1, + .h1,
58 | + h2, + .h2,
59 | + h3, + .h3 {
60 | margin-top: ($line-height-computed / 2);
61 | }
62 | }
63 |
64 | h4, .h4,
65 | h5, .h5,
66 | h6, .h6 {
67 | margin-top: ($line-height-computed / 2);
68 | margin-bottom: ($line-height-computed / 2);
69 | }
70 |
71 | h1, .h1 { font-size: floor($font-size-base * 2.60); } // ~36px
72 | h2, .h2 { font-size: floor($font-size-base * 2.15); } // ~30px
73 | h3, .h3 { font-size: ceil($font-size-base * 1.70); } // ~24px
74 | h4, .h4 { font-size: ceil($font-size-base * 1.25); } // ~18px
75 | h5, .h5 { font-size: $font-size-base; }
76 | h6, .h6 { font-size: ceil($font-size-base * 0.85); } // ~12px
77 |
78 | h1 small, .h1 small { font-size: ceil($font-size-base * 1.70); } // ~24px
79 | h2 small, .h2 small { font-size: ceil($font-size-base * 1.25); } // ~18px
80 | h3 small, .h3 small,
81 | h4 small, .h4 small { font-size: $font-size-base; }
82 |
83 |
84 | // Description Lists
85 | // -------------------------
86 |
87 | dl {
88 | margin-bottom: $line-height-computed;
89 | }
90 | dt,
91 | dd {
92 | line-height: $line-height-base;
93 | }
94 | dt {
95 | font-weight: bold;
96 | }
97 |
98 |
99 | // Blockquotes
100 | // -------------------------
101 |
102 | blockquote {
103 | margin: 0 0 $line-height-computed;
104 | padding: ($line-height-computed / 2) $line-height-computed;
105 | border-left: 5px solid gray;
106 |
107 | p {
108 | font-weight: 300;
109 | font-size: ($font-size-base * 1.25);
110 | line-height: 1.25;
111 | }
112 |
113 | p:last-child {
114 | margin-bottom: 0;
115 | }
116 |
117 | small {
118 | display: block;
119 | line-height: $line-height-base;
120 | &:before {
121 | content: '\2014 \00A0';// EM DASH, NBSP;
122 | }
123 | }
124 | }
125 |
126 |
127 | // Quotes
128 | // -------------------------
129 |
130 | q:before,
131 | q:after,
132 | blockquote:before,
133 | blockquote:after {
134 | content: "";
135 | }
136 |
137 |
138 | // Addresses
139 | // -------------------------
140 |
141 | address {
142 | display: block;
143 | margin-bottom: $line-height-computed;
144 | font-style: normal;
145 | line-height: $line-height-base;
146 | }
147 |
148 |
149 | // Links
150 | // -------------------------
151 |
152 | a.subdued {
153 | padding-right: 10px;
154 | color: #888;
155 | text-decoration: none;
156 |
157 | &:hover {
158 | text-decoration: none;
159 | }
160 | &:last-child {
161 | padding-right: 0;
162 | }
163 | }
164 |
--------------------------------------------------------------------------------
/www/lib/ionic/scss/_action-sheet.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Action Sheets
3 | * --------------------------------------------------
4 | */
5 |
6 | .action-sheet-backdrop {
7 | @include transition(background-color 150ms ease-in-out);
8 | position: fixed;
9 | top: 0;
10 | left: 0;
11 | z-index: $z-index-action-sheet;
12 | width: 100%;
13 | height: 100%;
14 | background-color: rgba(0,0,0,0);
15 |
16 | &.active {
17 | background-color: rgba(0,0,0,0.4);
18 | }
19 | }
20 |
21 | .action-sheet-wrapper {
22 | @include translate3d(0, 100%, 0);
23 | @include transition(all cubic-bezier(.36, .66, .04, 1) 500ms);
24 | position: absolute;
25 | bottom: 0;
26 | left: 0;
27 | right: 0;
28 | width: 100%;
29 | max-width: 500px;
30 | margin: auto;
31 | }
32 |
33 | .action-sheet-up {
34 | @include translate3d(0, 0, 0);
35 | }
36 |
37 | .action-sheet {
38 | margin-left: $sheet-margin;
39 | margin-right: $sheet-margin;
40 | width: auto;
41 | z-index: $z-index-action-sheet;
42 | overflow: hidden;
43 |
44 | .button {
45 | display: block;
46 | padding: 1px;
47 | width: 100%;
48 | border-radius: 0;
49 | border-color: $sheet-options-border-color;
50 | background-color: transparent;
51 |
52 | color: $sheet-options-text-color;
53 | font-size: 21px;
54 |
55 | &:hover {
56 | color: $sheet-options-text-color;
57 | }
58 | &.destructive {
59 | color: #ff3b30;
60 | &:hover {
61 | color: #ff3b30;
62 | }
63 | }
64 | }
65 |
66 | .button.active, .button.activated {
67 | box-shadow: none;
68 | border-color: $sheet-options-border-color;
69 | color: $sheet-options-text-color;
70 | background: $sheet-options-bg-active-color;
71 | }
72 | }
73 |
74 | .action-sheet-has-icons .icon {
75 | position: absolute;
76 | left: 16px;
77 | }
78 |
79 | .action-sheet-title {
80 | padding: $sheet-margin * 2;
81 | color: #8f8f8f;
82 | text-align: center;
83 | font-size: 13px;
84 | }
85 |
86 | .action-sheet-group {
87 | margin-bottom: $sheet-margin;
88 | border-radius: $sheet-border-radius;
89 | background-color: #fff;
90 | overflow: hidden;
91 |
92 | .button {
93 | border-width: 1px 0px 0px 0px;
94 | }
95 | .button:first-child:last-child {
96 | border-width: 0;
97 | }
98 | }
99 |
100 | .action-sheet-options {
101 | background: $sheet-options-bg-color;
102 | }
103 |
104 | .action-sheet-cancel {
105 | .button {
106 | font-weight: 500;
107 | }
108 | }
109 |
110 | .action-sheet-open {
111 | pointer-events: none;
112 |
113 | &.modal-open .modal {
114 | pointer-events: none;
115 | }
116 |
117 | .action-sheet-backdrop {
118 | pointer-events: auto;
119 | }
120 | }
121 |
122 |
123 | .platform-android {
124 |
125 | .action-sheet-backdrop.active {
126 | background-color: rgba(0,0,0,0.2);
127 | }
128 |
129 | .action-sheet {
130 | margin: 0;
131 |
132 | .action-sheet-title,
133 | .button {
134 | text-align: left;
135 | border-color: transparent;
136 | font-size: 16px;
137 | color: inherit;
138 | }
139 |
140 | .action-sheet-title {
141 | font-size: 14px;
142 | padding: 16px;
143 | color: #666;
144 | }
145 |
146 | .button.active,
147 | .button.activated {
148 | background: #e8e8e8;
149 | }
150 | }
151 |
152 | .action-sheet-group {
153 | margin: 0;
154 | border-radius: 0;
155 | background-color: #fafafa;
156 | }
157 |
158 | .action-sheet-cancel {
159 | display: none;
160 | }
161 |
162 | .action-sheet-has-icons {
163 |
164 | .button {
165 | padding-left: 56px;
166 | }
167 |
168 | }
169 |
170 | }
171 |
--------------------------------------------------------------------------------
/www/lib/ionic/scss/_popover.scss:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Popovers
4 | * --------------------------------------------------
5 | * Popovers are independent views which float over content
6 | */
7 |
8 | .popover-backdrop {
9 | position: fixed;
10 | top: 0;
11 | left: 0;
12 | z-index: $z-index-popover;
13 | width: 100%;
14 | height: 100%;
15 | background-color: $popover-backdrop-bg-inactive;
16 |
17 | &.active {
18 | background-color: $popover-backdrop-bg-active;
19 | }
20 | }
21 |
22 | .popover {
23 | position: absolute;
24 | top: 25%;
25 | left: 50%;
26 | z-index: $z-index-popover;
27 | display: block;
28 | margin-top: 12px;
29 | margin-left: -$popover-width / 2;
30 | height: $popover-height;
31 | width: $popover-width;
32 | background-color: $popover-bg-color;
33 | box-shadow: $popover-box-shadow;
34 | opacity: 0;
35 |
36 | .item:first-child {
37 | border-top: 0;
38 | }
39 |
40 | .item:last-child {
41 | border-bottom: 0;
42 | }
43 |
44 | &.popover-bottom {
45 | margin-top: -12px;
46 | }
47 | }
48 |
49 |
50 | // Set popover border-radius
51 | .popover,
52 | .popover .bar-header {
53 | border-radius: $popover-border-radius;
54 | }
55 | .popover .scroll-content {
56 | z-index: 1;
57 | margin: 2px 0;
58 | }
59 | .popover .bar-header {
60 | border-bottom-right-radius: 0;
61 | border-bottom-left-radius: 0;
62 | }
63 | .popover .has-header {
64 | border-top-right-radius: 0;
65 | border-top-left-radius: 0;
66 | }
67 | .popover-arrow {
68 | display: none;
69 | }
70 |
71 |
72 | // iOS Popover
73 | .platform-ios {
74 |
75 | .popover {
76 | box-shadow: $popover-box-shadow-ios;
77 | border-radius: $popover-border-radius-ios;
78 | }
79 | .popover .bar-header {
80 | @include border-top-radius($popover-border-radius-ios);
81 | }
82 | .popover .scroll-content {
83 | margin: 8px 0;
84 | border-radius: $popover-border-radius-ios;
85 | }
86 | .popover .scroll-content.has-header {
87 | margin-top: 0;
88 | }
89 | .popover-arrow {
90 | position: absolute;
91 | display: block;
92 | top: -17px;
93 | width: 30px;
94 | height: 19px;
95 | overflow: hidden;
96 |
97 | &:after {
98 | position: absolute;
99 | top: 12px;
100 | left: 5px;
101 | width: 20px;
102 | height: 20px;
103 | background-color: $popover-bg-color;
104 | border-radius: 3px;
105 | content: '';
106 | @include rotate(-45deg);
107 | }
108 | }
109 | .popover-bottom .popover-arrow {
110 | top: auto;
111 | bottom: -10px;
112 | &:after {
113 | top: -6px;
114 | }
115 | }
116 | }
117 |
118 |
119 | // Android Popover
120 | .platform-android {
121 |
122 | .popover {
123 | margin-top: -32px;
124 | background-color: $popover-bg-color-android;
125 | box-shadow: $popover-box-shadow-android;
126 |
127 | .item {
128 | border-color: $popover-bg-color-android;
129 | background-color: $popover-bg-color-android;
130 | color: #4d4d4d;
131 | }
132 | &.popover-bottom {
133 | margin-top: 32px;
134 | }
135 | }
136 |
137 | .popover-backdrop,
138 | .popover-backdrop.active {
139 | background-color: transparent;
140 | }
141 | }
142 |
143 |
144 | // disable clicks on all but the popover
145 | .popover-open {
146 | pointer-events: none;
147 |
148 | .popover,
149 | .popover-backdrop {
150 | pointer-events: auto;
151 | }
152 | // prevent clicks on popover when loading overlay is active though
153 | &.loading-active {
154 | .popover,
155 | .popover-backdrop {
156 | pointer-events: none;
157 | }
158 | }
159 | }
160 |
161 |
162 | // wider popover on larger viewports
163 | @media (min-width: $popover-large-break-point) {
164 | .popover {
165 | width: $popover-large-width;
166 | }
167 | }
168 |
--------------------------------------------------------------------------------
/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('PassMan', ['ionic', 'PassMan.controllers', 'PassMan.services', 'PassMan.filters', 'PassMan.directives', 'PassMan.utils', 'ngCordova'])
7 |
8 | .run(['$ionicPlatform', '$utilityFunctions', '$rootScope', '$ionicConfig', '$log', function($ionicPlatform, $utilityFunctions, $rootScope, $ionicConfig, $log) {
9 | $ionicPlatform.ready(function() {
10 | $log.debug('run start');
11 | // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
12 | // for form inputs)
13 | if (window.cordova && window.cordova.plugins.Keyboard) {
14 | cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
15 | }
16 | if (window.StatusBar) {
17 | StatusBar.styleDefault();
18 | StatusBar.hide();
19 | }
20 |
21 | $log.debug('run end');
22 | });
23 |
24 |
25 | $ionicPlatform.onHardwareBackButton(function() {
26 | $utilityFunctions.backButtonHandler();
27 | });
28 |
29 | $ionicConfig.views.swipeBackEnabled(false);
30 |
31 | //creating the database
32 | $utilityFunctions.DB.create();
33 | $utilityFunctions.DB.createTables();
34 |
35 | //setting the initial PIN set value to false
36 | var isPINSet = $utilityFunctions.localStorage.getItem('isPINSet');
37 |
38 | if (isPINSet === null) {
39 | $log.debug("PIN not set. Setting to false");
40 | $utilityFunctions.localStorage.setItem('isPINSet', false);
41 | }
42 |
43 | $rootScope.masterPIN = '';
44 | $rootScope.itemList = [];
45 | $rootScope.time = 0;
46 |
47 | document.addEventListener('click', function() {
48 | $rootScope.time = 0;
49 | })
50 |
51 | document.addEventListener('touch', function() {
52 | $rootScope.time = 0;
53 | });
54 |
55 | document.addEventListener('keyup', function() {
56 | $rootScope.time = 0;
57 | });
58 | document.addEventListener('keypress', function() {
59 | $rootScope.time = 0;
60 | });
61 | document.addEventListener('keydown', function() {
62 | $rootScope.time = 0;
63 | });
64 |
65 | document.addEventListener("deviceready", $utilityFunctions.deviceReady, false);
66 | }])
67 | .config(['$stateProvider', '$urlRouterProvider', '$utilityFunctionsProvider', '$compileProvider', '$logProvider', function($stateProvider, $urlRouterProvider, $utilityFunctionsProvider, $compileProvider, $logProvider) {
68 | $stateProvider
69 | .state('unlock', {
70 | cache: false,
71 | url: '/unlock',
72 | templateUrl: 'templates/pages/unlock.html',
73 | controller: 'UnlockController'
74 | })
75 | .state('main_list', {
76 | cache: false,
77 | url: '/main_list',
78 | templateUrl: 'templates/pages/main_list.html',
79 | controller: 'MainListController'
80 | }).state('add_item', {
81 | cache: false,
82 | url: '/add_item:action:eid',
83 | templateUrl: 'templates/pages/add_item.html',
84 | controller: 'AddItemController'
85 | }).state('change_pin', {
86 | cache: false,
87 | url: '/change_pin',
88 | templateUrl: 'templates/pages/change_pin.html',
89 | controller: 'ChangePinController'
90 | });
91 | $urlRouterProvider.otherwise('/unlock');
92 |
93 | $compileProvider.debugInfoEnabled(false);
94 | $logProvider.debugEnabled(false);
95 |
96 | $utilityFunctionsProvider.DB.config('PassMan.db');
97 |
98 | }]);
99 |
--------------------------------------------------------------------------------
/www/lib/angular-ui-router/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 |
2 | # Report an Issue
3 |
4 | Help us make UI-Router better! If you think you might have found a bug, or some other weirdness, start by making sure
5 | it hasn't already been reported. You can [search through existing issues](https://github.com/angular-ui/ui-router/search?q=wat%3F&type=Issues)
6 | to see if someone's reported one similar to yours.
7 |
8 | If not, then [create a plunkr](http://bit.ly/UIR-Plunk) that demonstrates the problem (try to use as little code
9 | as possible: the more minimalist, the faster we can debug it).
10 |
11 | Next, [create a new issue](https://github.com/angular-ui/ui-router/issues/new) that briefly explains the problem,
12 | and provides a bit of background as to the circumstances that triggered it. Don't forget to include the link to
13 | that plunkr you created!
14 |
15 | **Note**: If you're unsure how a feature is used, or are encountering some unexpected behavior that you aren't sure
16 | is a bug, it's best to talk it out on
17 | [StackOverflow](http://stackoverflow.com/questions/ask?tags=angularjs,angular-ui-router) before reporting it. This
18 | keeps development streamlined, and helps us focus on building great software.
19 |
20 |
21 | Issues only! |
22 | -------------|
23 | Please keep in mind that the issue tracker is for *issues*. Please do *not* post an issue if you need help or support. Instead, see one of the above-mentioned forums or [IRC](irc://irc.freenode.net/#angularjs). |
24 |
25 | ####Purple Labels
26 | A purple label means that **you** need to take some further action.
27 | - : Your issue is not specific enough, or there is no clear action that we can take. Please clarify and refine your issue.
28 | - : Please [create a plunkr](http://bit.ly/UIR-Plunk)
29 | - : We suspect your issue is really a help request, or could be answered by the community. Please ask your question on [StackOverflow](http://stackoverflow.com/questions/ask?tags=angularjs,angular-ui-router). If you determine that is an actual issue, please explain why.
30 |
31 | If your issue gets labeled with purple label, no further action will be taken until you respond to the label appropriately.
32 |
33 | # Contribute
34 |
35 | **(1)** See the **[Developing](#developing)** section below, to get the development version of UI-Router up and running on your local machine.
36 |
37 | **(2)** Check out the [roadmap](https://github.com/angular-ui/ui-router/milestones) to see where the project is headed, and if your feature idea fits with where we're headed.
38 |
39 | **(3)** If you're not sure, [open an RFC](https://github.com/angular-ui/ui-router/issues/new?title=RFC:%20My%20idea) to get some feedback on your idea.
40 |
41 | **(4)** Finally, commit some code and open a pull request. Code & commits should abide by the following rules:
42 |
43 | - *Always* have test coverage for new features (or regression tests for bug fixes), and *never* break existing tests
44 | - Commits should represent one logical change each; if a feature goes through multiple iterations, squash your commits down to one
45 | - Make sure to follow the [Angular commit message format](https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#commit-message-format) so your change will appear in the changelog of the next release.
46 | - Changes should always respect the coding style of the project
47 |
48 |
49 |
50 | # Developing
51 |
52 | UI-Router uses grunt >= 0.4.x. Make sure to upgrade your environment and read the
53 | [Migration Guide](http://gruntjs.com/upgrading-from-0.3-to-0.4).
54 |
55 | Dependencies for building from source and running tests:
56 |
57 | * [grunt-cli](https://github.com/gruntjs/grunt-cli) - run: `$ npm install -g grunt-cli`
58 | * Then, install the development dependencies by running `$ npm install` from the project directory
59 |
60 | There are a number of targets in the gruntfile that are used to generating different builds:
61 |
62 | * `grunt`: Perform a normal build, runs jshint and karma tests
63 | * `grunt build`: Perform a normal build
64 | * `grunt dist`: Perform a clean build and generate documentation
65 | * `grunt dev`: Run dev server (sample app) and watch for changes, builds and runs karma tests on changes.
66 |
--------------------------------------------------------------------------------
/www/lib/angular-ui-router/src/templateFactory.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @ngdoc object
3 | * @name ui.router.util.$templateFactory
4 | *
5 | * @requires $http
6 | * @requires $templateCache
7 | * @requires $injector
8 | *
9 | * @description
10 | * Service. Manages loading of templates.
11 | */
12 | $TemplateFactory.$inject = ['$http', '$templateCache', '$injector'];
13 | function $TemplateFactory( $http, $templateCache, $injector) {
14 |
15 | /**
16 | * @ngdoc function
17 | * @name ui.router.util.$templateFactory#fromConfig
18 | * @methodOf ui.router.util.$templateFactory
19 | *
20 | * @description
21 | * Creates a template from a configuration object.
22 | *
23 | * @param {object} config Configuration object for which to load a template.
24 | * The following properties are search in the specified order, and the first one
25 | * that is defined is used to create the template:
26 | *
27 | * @param {string|object} config.template html string template or function to
28 | * load via {@link ui.router.util.$templateFactory#fromString fromString}.
29 | * @param {string|object} config.templateUrl url to load or a function returning
30 | * the url to load via {@link ui.router.util.$templateFactory#fromUrl fromUrl}.
31 | * @param {Function} config.templateProvider function to invoke via
32 | * {@link ui.router.util.$templateFactory#fromProvider fromProvider}.
33 | * @param {object} params Parameters to pass to the template function.
34 | * @param {object} locals Locals to pass to `invoke` if the template is loaded
35 | * via a `templateProvider`. Defaults to `{ params: params }`.
36 | *
37 | * @return {string|object} The template html as a string, or a promise for
38 | * that string,or `null` if no template is configured.
39 | */
40 | this.fromConfig = function (config, params, locals) {
41 | return (
42 | isDefined(config.template) ? this.fromString(config.template, params) :
43 | isDefined(config.templateUrl) ? this.fromUrl(config.templateUrl, params) :
44 | isDefined(config.templateProvider) ? this.fromProvider(config.templateProvider, params, locals) :
45 | null
46 | );
47 | };
48 |
49 | /**
50 | * @ngdoc function
51 | * @name ui.router.util.$templateFactory#fromString
52 | * @methodOf ui.router.util.$templateFactory
53 | *
54 | * @description
55 | * Creates a template from a string or a function returning a string.
56 | *
57 | * @param {string|object} template html template as a string or function that
58 | * returns an html template as a string.
59 | * @param {object} params Parameters to pass to the template function.
60 | *
61 | * @return {string|object} The template html as a string, or a promise for that
62 | * string.
63 | */
64 | this.fromString = function (template, params) {
65 | return isFunction(template) ? template(params) : template;
66 | };
67 |
68 | /**
69 | * @ngdoc function
70 | * @name ui.router.util.$templateFactory#fromUrl
71 | * @methodOf ui.router.util.$templateFactory
72 | *
73 | * @description
74 | * Loads a template from the a URL via `$http` and `$templateCache`.
75 | *
76 | * @param {string|Function} url url of the template to load, or a function
77 | * that returns a url.
78 | * @param {Object} params Parameters to pass to the url function.
79 | * @return {string|Promise.} The template html as a string, or a promise
80 | * for that string.
81 | */
82 | this.fromUrl = function (url, params) {
83 | if (isFunction(url)) url = url(params);
84 | if (url == null) return null;
85 | else return $http
86 | .get(url, { cache: $templateCache, headers: { Accept: 'text/html' }})
87 | .then(function(response) { return response.data; });
88 | };
89 |
90 | /**
91 | * @ngdoc function
92 | * @name ui.router.util.$templateFactory#fromProvider
93 | * @methodOf ui.router.util.$templateFactory
94 | *
95 | * @description
96 | * Creates a template by invoking an injectable provider function.
97 | *
98 | * @param {Function} provider Function to invoke via `$injector.invoke`
99 | * @param {Object} params Parameters for the template.
100 | * @param {Object} locals Locals to pass to `invoke`. Defaults to
101 | * `{ params: params }`.
102 | * @return {string|Promise.} The template html as a string, or a promise
103 | * for that string.
104 | */
105 | this.fromProvider = function (provider, params, locals) {
106 | return $injector.invoke(provider, null, locals || { params: params });
107 | };
108 | }
109 |
110 | angular.module('ui.router.util').service('$templateFactory', $TemplateFactory);
111 |
--------------------------------------------------------------------------------
/www/lib/ionic/scss/_transitions.scss:
--------------------------------------------------------------------------------
1 |
2 | // iOS View Transitions
3 | // -------------------------------
4 |
5 | $ios-transition-duration: 500ms !default;
6 | $ios-transition-timing-function: cubic-bezier(.36, .66, .04, 1) !default;
7 | $ios-transition-container-bg-color: #000 !default;
8 |
9 |
10 | [nav-view-transition="ios"] {
11 |
12 | [nav-view="entering"],
13 | [nav-view="leaving"] {
14 | @include transition-duration( $ios-transition-duration );
15 | @include transition-timing-function( $ios-transition-timing-function );
16 | -webkit-transition-property: opacity, -webkit-transform, box-shadow;
17 | transition-property: opacity, transform, box-shadow;
18 | }
19 |
20 | &[nav-view-direction="forward"],
21 | &[nav-view-direction="back"] {
22 | background-color: $ios-transition-container-bg-color;
23 | }
24 |
25 | [nav-view="active"],
26 | &[nav-view-direction="forward"] [nav-view="entering"],
27 | &[nav-view-direction="back"] [nav-view="leaving"] {
28 | z-index: $z-index-view-above;
29 | }
30 |
31 | &[nav-view-direction="back"] [nav-view="entering"],
32 | &[nav-view-direction="forward"] [nav-view="leaving"] {
33 | z-index: $z-index-view-below;
34 | }
35 |
36 | }
37 |
38 |
39 |
40 | // iOS Nav Bar Transitions
41 | // -------------------------------
42 |
43 | [nav-bar-transition="ios"] {
44 |
45 | .title,
46 | .buttons,
47 | .back-text {
48 | @include transition-duration( $ios-transition-duration );
49 | @include transition-timing-function( $ios-transition-timing-function );
50 | -webkit-transition-property: opacity, -webkit-transform;
51 | transition-property: opacity, transform;
52 | }
53 |
54 | [nav-bar="active"],
55 | [nav-bar="entering"] {
56 | z-index: $z-index-bar-above;
57 |
58 | .bar {
59 | background: transparent;
60 | }
61 | }
62 |
63 | [nav-bar="cached"] {
64 | display: block;
65 |
66 | .header-item {
67 | display: none;
68 | }
69 | }
70 |
71 | }
72 |
73 |
74 |
75 | // Android View Transitions
76 | // -------------------------------
77 |
78 | $android-transition-duration: 200ms !default;
79 | $android-transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1) !default;
80 |
81 |
82 | [nav-view-transition="android"] {
83 |
84 | [nav-view="entering"],
85 | [nav-view="leaving"] {
86 | @include transition-duration( $android-transition-duration );
87 | @include transition-timing-function( $android-transition-timing-function );
88 | -webkit-transition-property: -webkit-transform;
89 | transition-property: transform;
90 | }
91 |
92 | [nav-view="active"],
93 | &[nav-view-direction="forward"] [nav-view="entering"],
94 | &[nav-view-direction="back"] [nav-view="leaving"] {
95 | z-index: $z-index-view-above;
96 | }
97 |
98 | &[nav-view-direction="back"] [nav-view="entering"],
99 | &[nav-view-direction="forward"] [nav-view="leaving"] {
100 | z-index: $z-index-view-below;
101 | }
102 |
103 | }
104 |
105 |
106 |
107 | // Android Nav Bar Transitions
108 | // -------------------------------
109 |
110 | [nav-bar-transition="android"] {
111 |
112 | .title,
113 | .buttons {
114 | @include transition-duration( $android-transition-duration );
115 | @include transition-timing-function( $android-transition-timing-function );
116 | -webkit-transition-property: opacity;
117 | transition-property: opacity;
118 | }
119 |
120 | [nav-bar="active"],
121 | [nav-bar="entering"] {
122 | z-index: $z-index-bar-above;
123 |
124 | .bar {
125 | background: transparent;
126 | }
127 | }
128 |
129 | [nav-bar="cached"] {
130 | display: block;
131 |
132 | .header-item {
133 | display: none;
134 | }
135 | }
136 |
137 | }
138 |
139 |
140 |
141 | // Nav Swipe
142 | // -------------------------------
143 |
144 | [nav-swipe="fast"] {
145 | [nav-view],
146 | .title,
147 | .buttons,
148 | .back-text {
149 | @include transition-duration(50ms);
150 | @include transition-timing-function(linear);
151 | }
152 | }
153 |
154 | [nav-swipe="slow"] {
155 | [nav-view],
156 | .title,
157 | .buttons,
158 | .back-text {
159 | @include transition-duration(160ms);
160 | @include transition-timing-function(linear);
161 | }
162 | }
163 |
164 |
165 |
166 | // Transition Settings
167 | // -------------------------------
168 |
169 | [nav-view="cached"],
170 | [nav-bar="cached"] {
171 | display: none;
172 | }
173 |
174 | [nav-view="stage"] {
175 | opacity: 0;
176 | @include transition-duration( 0 );
177 | }
178 |
179 | [nav-bar="stage"] {
180 | .title,
181 | .buttons,
182 | .back-text {
183 | position: absolute;
184 | opacity: 0;
185 | @include transition-duration(0s);
186 | }
187 | }
188 |
189 |
--------------------------------------------------------------------------------
/www/lib/angular-ui-router/api/angular-ui-router.d.ts:
--------------------------------------------------------------------------------
1 | // Type definitions for Angular JS 1.1.5+ (ui.router module)
2 | // Project: https://github.com/angular-ui/ui-router
3 | // Definitions by: Michel Salib
4 | // Definitions: https://github.com/borisyankov/DefinitelyTyped
5 |
6 | declare module ng.ui {
7 |
8 | interface IState {
9 | name?: string;
10 | template?: string;
11 | templateUrl?: any; // string || () => string
12 | templateProvider?: any; // () => string || IPromise
13 | controller?: any;
14 | controllerAs?: string;
15 | controllerProvider?: any;
16 | resolve?: {};
17 | url?: string;
18 | params?: any;
19 | views?: {};
20 | abstract?: boolean;
21 | onEnter?: (...args: any[]) => void;
22 | onExit?: (...args: any[]) => void;
23 | data?: any;
24 | reloadOnSearch?: boolean;
25 | }
26 |
27 | interface ITypedState extends IState {
28 | data?: T;
29 | }
30 |
31 | interface IStateProvider extends IServiceProvider {
32 | state(name: string, config: IState): IStateProvider;
33 | state(config: IState): IStateProvider;
34 | decorator(name?: string, decorator?: (state: IState, parent: Function) => any): any;
35 | }
36 |
37 | interface IUrlMatcher {
38 | concat(pattern: string): IUrlMatcher;
39 | exec(path: string, searchParams: {}): {};
40 | parameters(): string[];
41 | format(values: {}): string;
42 | }
43 |
44 | interface IUrlMatcherFactory {
45 | compile(pattern: string): IUrlMatcher;
46 | isMatcher(o: any): boolean;
47 | }
48 |
49 | interface IUrlRouterProvider extends IServiceProvider {
50 | when(whenPath: RegExp, handler: Function): IUrlRouterProvider;
51 | when(whenPath: RegExp, handler: any[]): IUrlRouterProvider;
52 | when(whenPath: RegExp, toPath: string): IUrlRouterProvider;
53 | when(whenPath: IUrlMatcher, hanlder: Function): IUrlRouterProvider;
54 | when(whenPath: IUrlMatcher, handler: any[]): IUrlRouterProvider;
55 | when(whenPath: IUrlMatcher, toPath: string): IUrlRouterProvider;
56 | when(whenPath: string, handler: Function): IUrlRouterProvider;
57 | when(whenPath: string, handler: any[]): IUrlRouterProvider;
58 | when(whenPath: string, toPath: string): IUrlRouterProvider;
59 | otherwise(handler: Function): IUrlRouterProvider;
60 | otherwise(handler: any[]): IUrlRouterProvider;
61 | otherwise(path: string): IUrlRouterProvider;
62 | rule(handler: Function): IUrlRouterProvider;
63 | rule(handler: any[]): IUrlRouterProvider;
64 | }
65 |
66 | interface IStateOptions {
67 | location?: any;
68 | inherit?: boolean;
69 | relative?: IState;
70 | notify?: boolean;
71 | reload?: boolean;
72 | }
73 |
74 | interface IHrefOptions {
75 | lossy?: boolean;
76 | inherit?: boolean;
77 | relative?: IState;
78 | absolute?: boolean;
79 | }
80 |
81 | interface IStateService {
82 | go(to: string, params?: {}, options?: IStateOptions): IPromise;
83 | transitionTo(state: string, params?: {}, updateLocation?: boolean): void;
84 | transitionTo(state: string, params?: {}, options?: IStateOptions): void;
85 | includes(state: string, params?: {}): boolean;
86 | is(state:string, params?: {}): boolean;
87 | is(state: IState, params?: {}): boolean;
88 | href(state: IState, params?: {}, options?: IHrefOptions): string;
89 | href(state: string, params?: {}, options?: IHrefOptions): string;
90 | get(state: string): IState;
91 | get(): IState[];
92 | current: IState;
93 | params: any;
94 | reload(): void;
95 | }
96 |
97 | interface IStateParamsService {
98 | [key: string]: any;
99 | }
100 |
101 | interface IStateParams {
102 | [key: string]: any;
103 | }
104 |
105 | interface IUrlRouterService {
106 | /*
107 | * Triggers an update; the same update that happens when the address bar
108 | * url changes, aka $locationChangeSuccess.
109 | *
110 | * This method is useful when you need to use preventDefault() on the
111 | * $locationChangeSuccess event, perform some custom logic (route protection,
112 | * auth, config, redirection, etc) and then finally proceed with the transition
113 | * by calling $urlRouter.sync().
114 | *
115 | */
116 | sync(): void;
117 | }
118 |
119 | interface IUiViewScrollProvider {
120 | /*
121 | * Reverts back to using the core $anchorScroll service for scrolling
122 | * based on the url anchor.
123 | */
124 | useAnchorScroll(): void;
125 | }
126 | }
127 |
--------------------------------------------------------------------------------
/.sass-cache/e78d596e1354963b9d30847df54f78ef1803719a/ionic.scssc:
--------------------------------------------------------------------------------
1 | 3.4.10 (Selective Steve)
2 | d4da86fc149fc8d7e9d5585de77d3e6e5f3e379f
3 | o:Sass::Tree::RootNode:@children[)o:Sass::Tree::CharsetNode
4 | :
5 | @nameI"
6 | UTF-8:ET;[ :
7 | @linei:@source_rangeo:Sass::Source::Range :@start_poso:Sass::Source::Position;
8 | i:@offseti:
@end_poso;;
9 | i;i:
10 | @fileI""www/lib/ionic/scss/ionic.scss; T:@importero: Sass::Importers::Filesystem:
11 | @rootI">/Users/916804/MyDisk/Programming/Projects/PassMan/PassMan; T:@real_rootI">/Users/916804/MyDisk/Programming/Projects/PassMan/PassMan; T:@same_name_warningso:Set:
12 | @hash{ :
@options{ o:Sass::Tree::ImportNode:@imported_filenameI"ionicons/ionicons.scss; T;[ :@template0;
13 | i
14 | ;o; ;
o;;
15 | i
16 | ;i;o;;
17 | i
18 | ;i ;@
;@;@:@imported_file0o;;I"mixins; T;[ ;0;
19 | i
;o; ;
o;;
20 | i
;i;o;;
21 | i
;i;@
;@;@;0o;;I"variables; T;[ ;0;
22 | i;o; ;
o;;
23 | i;i;o;;
24 | i;i;@
;@;@;0o;;I"
25 | reset; T;[ ;0;
26 | i;o; ;
o;;
27 | i;i;o;;
28 | i;i;@
;@;@;0o;;I"scaffolding; T;[ ;0;
29 | i;o; ;
o;;
30 | i;i;o;;
31 | i;i;@
;@;@;0o;;I" type; T;[ ;0;
32 | i;o; ;
o;;
33 | i;i;o;;
34 | i;i;@
;@;@;0o;;I"action-sheet; T;[ ;0;
35 | i;o; ;
o;;
36 | i;i;o;;
37 | i;i;@
;@;@;0o;;I"
backdrop; T;[ ;0;
38 | i;o; ;
o;;
39 | i;i;o;;
40 | i;i;@
;@;@;0o;;I"bar; T;[ ;0;
41 | i;o; ;
o;;
42 | i;i;o;;
43 | i;i
;@
;@;@;0o;;I" tabs; T;[ ;0;
44 | i;o; ;
o;;
45 | i;i;o;;
46 | i;i;@
;@;@;0o;;I" menu; T;[ ;0;
47 | i;o; ;
o;;
48 | i;i;o;;
49 | i;i;@
;@;@;0o;;I"
50 | modal; T;[ ;0;
51 | i;o; ;
o;;
52 | i;i;o;;
53 | i;i;@
;@;@;0o;;I"popover; T;[ ;0;
54 | i;o; ;
o;;
55 | i;i;o;;
56 | i;i;@
;@;@;0o;;I"
57 | popup; T;[ ;0;
58 | i;o; ;
o;;
59 | i;i;o;;
60 | i;i;@
;@;@;0o;;I"loading; T;[ ;0;
61 | i;o; ;
o;;
62 | i;i;o;;
63 | i;i;@
;@;@;0o;;I"
64 | items; T;[ ;0;
65 | i;o; ;
o;;
66 | i;i;o;;
67 | i;i;@
;@;@;0o;;I" list; T;[ ;0;
68 | i ;o; ;
o;;
69 | i ;i;o;;
70 | i ;i;@
;@;@;0o;;I"
71 | badge; T;[ ;0;
72 | i!;o; ;
o;;
73 | i!;i;o;;
74 | i!;i;@
;@;@;0o;;I"slide-box; T;[ ;0;
75 | i";o; ;
o;;
76 | i";i;o;;
77 | i";i;@
;@;@;0o;;I"refresher; T;[ ;0;
78 | i#;o; ;
o;;
79 | i#;i;o;;
80 | i#;i;@
;@;@;0o;;I"spinner; T;[ ;0;
81 | i$;o; ;
o;;
82 | i$;i;o;;
83 | i$;i;@
;@;@;0o;;I" form; T;[ ;0;
84 | i';o; ;
o;;
85 | i';i;o;;
86 | i';i;@
;@;@;0o;;I"
checkbox; T;[ ;0;
87 | i(;o; ;
o;;
88 | i(;i;o;;
89 | i(;i;@
;@;@;0o;;I"toggle; T;[ ;0;
90 | i);o; ;
o;;
91 | i);i;o;;
92 | i);i;@
;@;@;0o;;I"
93 | radio; T;[ ;0;
94 | i*;o; ;
o;;
95 | i*;i;o;;
96 | i*;i;@
;@;@;0o;;I"
97 | range; T;[ ;0;
98 | i+;o; ;
o;;
99 | i+;i;o;;
100 | i+;i;@
;@;@;0o;;I"select; T;[ ;0;
101 | i,;o; ;
o;;
102 | i,;i;o;;
103 | i,;i;@
;@;@;0o;;I"
progress; T;[ ;0;
104 | i-;o; ;
o;;
105 | i-;i;o;;
106 | i-;i;@
;@;@;0o;;I"button; T;[ ;0;
107 | i0;o; ;
o;;
108 | i0;i;o;;
109 | i0;i;@
;@;@;0o;;I"button-bar; T;[ ;0;
110 | i1;o; ;
o;;
111 | i1;i;o;;
112 | i1;i;@
;@;@;0o;;I" grid; T;[ ;0;
113 | i4;o; ;
o;;
114 | i4;i;o;;
115 | i4;i;@
;@;@;0o;;I" util; T;[ ;0;
116 | i5;o; ;
o;;
117 | i5;i;o;;
118 | i5;i;@
;@;@;0o;;I"
platform; T;[ ;0;
119 | i6;o; ;
o;;
120 | i6;i;o;;
121 | i6;i;@
;@;@;0o;;I"animations; T;[ ;0;
122 | i9;o; ;
o;;
123 | i9;i;o;;
124 | i9;i;@
;@;@;0o;;I"transitions; T;[ ;0;
125 | i:;o; ;
o;;
126 | i:;i;o;;
127 | i:;i;@
;@;@;0;I"S@charset "UTF-8";
128 |
129 | @import
130 | // Ionicons
131 | "ionicons/ionicons.scss",
132 |
133 | // Variables
134 | "mixins",
135 | "variables",
136 |
137 | // Base
138 | "reset",
139 | "scaffolding",
140 | "type",
141 |
142 | // Components
143 | "action-sheet",
144 | "backdrop",
145 | "bar",
146 | "tabs",
147 | "menu",
148 | "modal",
149 | "popover",
150 | "popup",
151 | "loading",
152 | "items",
153 | "list",
154 | "badge",
155 | "slide-box",
156 | "refresher",
157 | "spinner",
158 |
159 | // Forms
160 | "form",
161 | "checkbox",
162 | "toggle",
163 | "radio",
164 | "range",
165 | "select",
166 | "progress",
167 |
168 | // Buttons
169 | "button",
170 | "button-bar",
171 |
172 | // Util
173 | "grid",
174 | "util",
175 | "platform",
176 |
177 | // Animations
178 | "animations",
179 | "transitions";
180 | ; T;
181 | i;o; ;
o;;
182 | i;i;o;;
183 | i;i;@
;@:@has_childrenT;@
--------------------------------------------------------------------------------
/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | PassMan
4 |
5 | A simple no Internet password manager.
6 |
7 |
8 | Someone who loves everything programming, Ice cream and Cats.
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
--------------------------------------------------------------------------------
/scss/_common.scss:
--------------------------------------------------------------------------------
1 | /*------------------------------------------------------- VARIABLES -----------------------------------------------*/
2 |
3 | $theme-primary-color: #659FFB;
4 | $theme-font-color: #FFFFFF;
5 | $theme-background-color: #2D2E3A;
6 | $theme-gradient : -webkit-linear-gradient(top, rgba(54,215,243,1) 0%, rgba(54,215,243,1) 12%, rgba(121,137,255,1) 100%);
7 | $keypad-button-gradient: -webkit-linear-gradient(top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 12%, rgba(121,137,255, 0.5) 100%);
8 |
9 | /*------------------------------------------------------- COMMON -----------------------------------------------*/
10 | @font-face {
11 | font-family: 'Lato';
12 | src: url('../fonts/Lato-Light.ttf') format('truetype');
13 | }
14 |
15 | ion-view,
16 | ion-content,
17 | ion-header-bar {
18 | background: $theme-background-color !important;
19 | color: $theme-font-color;
20 | font-family: 'Lato', sans-serif;
21 | }
22 |
23 | ion-header-bar {
24 | border-bottom: 1px solid $theme-primary-color !important;
25 |
26 | .left-buttons {
27 | .ion-chevron-left {
28 | padding: 0px 10px !important;
29 | }
30 | }
31 | }
32 |
33 | input,
34 | input[disabled] {
35 | color: $theme-font-color !important;
36 | background: transparent;
37 | }
38 |
39 | input::-webkit-placeholder {
40 | color: $theme-font-color !important;
41 | }
42 |
43 | .list {
44 | background: $theme-background-color !important;
45 | padding: 0px 10px;
46 | .item {
47 | border-color: $theme-primary-color;
48 | border-width: 0px 0px 1px 0px;
49 | .input-label {
50 | color: $theme-font-color;
51 | }
52 | }
53 | .error_messages_wrapper {
54 | height: 40px;
55 | }
56 | }
57 |
58 | .button {
59 | background: $theme-gradient;
60 | border: 0px;
61 | color: $theme-font-color;
62 | }
63 |
64 | .ion,
65 | .icon {
66 | color: $theme-primary-color !important;
67 | }
68 |
69 |
70 | /* Empty. Add your own CSS if you like */
71 |
72 | .popup-body {
73 | text-align: center;
74 | }
75 |
76 |
77 | /*------------------------------------------------------ LOADER STYLING--------------------------------------------*/
78 |
79 | .loading-container .loading {
80 | background-color: transparent;
81 | }
82 |
83 | .loading h3 {
84 | color: black !important;
85 | }
86 |
87 | .spinner svg {
88 | width: 100px;
89 | height: 100px;
90 | }
91 |
92 |
93 | /*-------------------------------------------------- GENERAL STYLING ------------------------------------------------*/
94 |
95 | .errorMessage {
96 | display: block;
97 | padding: 5px;
98 | color: orangered;
99 | }
100 |
101 |
102 | /*-------------------------------------------------- DIRECTIVES ------------------------------------------------*/
103 |
104 | .keypad {
105 | position: absolute;
106 | width: 100%;
107 | box-sizing: border-box;
108 | bottom: 45px;
109 | background: $theme-gradient;
110 | .row {
111 | .key {
112 | width: 33.33%;
113 | text-align: center;
114 | padding: 15px 0px;
115 | border-color: $theme-primary-color;
116 | color: $theme-font-color;
117 | border-style: solid;
118 | border-width: 0px 0px 1px 0px;
119 | font-family: 'Lato', sans-serif;
120 | font-size: 20px;
121 | font-weight: 200;
122 | &:nth-child(2) {
123 | border-width: 0px 1px 1px 1px;
124 | }
125 |
126 | &:active {
127 | background: $keypad-button-gradient;
128 | }
129 | }
130 | &:last-child {
131 | .key {
132 | border-bottom: 0px;
133 | }
134 | }
135 | }
136 | }
137 |
138 | key-indicator {
139 | display: block;
140 | width: 100%;
141 |
142 | .label {
143 | text-align: center;
144 | margin: 30px 0px;
145 | font-family: 'Lato', sans-serif;
146 | }
147 | .image_wrapper {
148 | text-align: center;
149 | img {
150 | width: 120px;
151 | height: 120px;
152 | margin-top: 20px;
153 | }
154 | }
155 | .bubble_wrapper {
156 | text-align: center;
157 | margin: 20px 0px;
158 | .bubble {
159 | display: inline-block;
160 | height: 30px;
161 | width: 30px;
162 | box-sizing: border-box;
163 | margin: 0px 20px;
164 | border-radius: 50%;
165 | border: 8px solid rgba(0, 0, 0, 1);
166 | background: black;
167 | }
168 | .bubble.filled {
169 | background: $theme-primary-color;
170 | }
171 | }
172 | }
173 |
174 | .shake {
175 | -webkit-animation-name: shake-animation;
176 | -webkit-animation-duration: .8s;
177 | animation-fill-mode: both;
178 | }
179 |
180 | @-webkit-keyframes shake-animation {
181 | 0%, 100% {
182 | -webkit-transform: translateX(0);
183 | }
184 | 10%, 30%, 50%, 70%, 90% {
185 | -webkit-transform: translateX(-10px);
186 | }
187 | 20%, 40%, 60%, 80% {
188 | -webkit-transform: translateX(10px);
189 | }
190 | }
191 |
--------------------------------------------------------------------------------
/www/lib/ionic/scss/_checkbox.scss:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Checkbox
4 | * --------------------------------------------------
5 | */
6 |
7 | .checkbox {
8 | // set the color defaults
9 | @include checkbox-style($checkbox-off-border-default, $checkbox-on-bg-default, $checkbox-on-border-default);
10 |
11 | position: relative;
12 | display: inline-block;
13 | padding: ($checkbox-height / 4) ($checkbox-width / 4);
14 | cursor: pointer;
15 | }
16 | .checkbox-light {
17 | @include checkbox-style($checkbox-off-border-light, $checkbox-on-bg-light, $checkbox-off-border-light);
18 | }
19 | .checkbox-stable {
20 | @include checkbox-style($checkbox-off-border-stable, $checkbox-on-bg-stable, $checkbox-off-border-stable);
21 | }
22 | .checkbox-positive {
23 | @include checkbox-style($checkbox-off-border-positive, $checkbox-on-bg-positive, $checkbox-off-border-positive);
24 | }
25 | .checkbox-calm {
26 | @include checkbox-style($checkbox-off-border-calm, $checkbox-on-bg-calm, $checkbox-off-border-calm);
27 | }
28 | .checkbox-assertive {
29 | @include checkbox-style($checkbox-off-border-assertive, $checkbox-on-bg-assertive, $checkbox-off-border-assertive);
30 | }
31 | .checkbox-balanced {
32 | @include checkbox-style($checkbox-off-border-balanced, $checkbox-on-bg-balanced, $checkbox-off-border-balanced);
33 | }
34 | .checkbox-energized{
35 | @include checkbox-style($checkbox-off-border-energized, $checkbox-on-bg-energized, $checkbox-off-border-energized);
36 | }
37 | .checkbox-royal {
38 | @include checkbox-style($checkbox-off-border-royal, $checkbox-on-bg-royal, $checkbox-off-border-royal);
39 | }
40 | .checkbox-dark {
41 | @include checkbox-style($checkbox-off-border-dark, $checkbox-on-bg-dark, $checkbox-off-border-dark);
42 | }
43 |
44 | .checkbox input:disabled:before,
45 | .checkbox input:disabled + .checkbox-icon:before {
46 | border-color: $checkbox-off-border-light;
47 | }
48 |
49 | .checkbox input:disabled:checked:before,
50 | .checkbox input:disabled:checked + .checkbox-icon:before {
51 | background: $checkbox-on-bg-light;
52 | }
53 |
54 |
55 | .checkbox.checkbox-input-hidden input {
56 | display: none !important;
57 | }
58 |
59 | .checkbox input,
60 | .checkbox-icon {
61 | position: relative;
62 | width: $checkbox-width;
63 | height: $checkbox-height;
64 | display: block;
65 | border: 0;
66 | background: transparent;
67 | cursor: pointer;
68 | -webkit-appearance: none;
69 |
70 | &:before {
71 | // what the checkbox looks like when its not checked
72 | display: table;
73 | width: 100%;
74 | height: 100%;
75 | border-width: $checkbox-border-width;
76 | border-style: solid;
77 | border-radius: $checkbox-border-radius;
78 | background: $checkbox-off-bg-color;
79 | content: ' ';
80 | @include transition(background-color 20ms ease-in-out);
81 | }
82 | }
83 |
84 | .checkbox input:checked:before,
85 | input:checked + .checkbox-icon:before {
86 | border-width: $checkbox-border-width + 1;
87 | }
88 |
89 | // the checkmark within the box
90 | .checkbox input:after,
91 | .checkbox-icon:after {
92 | @include transition(opacity .05s ease-in-out);
93 | @include rotate(-45deg);
94 | position: absolute;
95 | top: 33%;
96 | left: 25%;
97 | display: table;
98 | width: ($checkbox-width / 2);
99 | height: ($checkbox-width / 4) - 1;
100 | border: $checkbox-check-width solid $checkbox-check-color;
101 | border-top: 0;
102 | border-right: 0;
103 | content: ' ';
104 | opacity: 0;
105 | }
106 |
107 | .platform-android .checkbox-platform input:before,
108 | .platform-android .checkbox-platform .checkbox-icon:before,
109 | .checkbox-square input:before,
110 | .checkbox-square .checkbox-icon:before {
111 | border-radius: 2px;
112 | width: 72%;
113 | height: 72%;
114 | margin-top: 14%;
115 | margin-left: 14%;
116 | border-width: 2px;
117 | }
118 |
119 | .platform-android .checkbox-platform input:after,
120 | .platform-android .checkbox-platform .checkbox-icon:after,
121 | .checkbox-square input:after,
122 | .checkbox-square .checkbox-icon:after {
123 | border-width: 2px;
124 | top: 19%;
125 | left: 25%;
126 | width: ($checkbox-width / 2) - 1;
127 | height: 7px;
128 | }
129 |
130 | .grade-c .checkbox input:after,
131 | .grade-c .checkbox-icon:after {
132 | @include rotate(0);
133 | top: 3px;
134 | left: 4px;
135 | border: none;
136 | color: $checkbox-check-color;
137 | content: '\2713';
138 | font-weight: bold;
139 | font-size: 20px;
140 | }
141 |
142 | // what the checkmark looks like when its checked
143 | .checkbox input:checked:after,
144 | input:checked + .checkbox-icon:after {
145 | opacity: 1;
146 | }
147 |
148 | // make sure item content have enough padding on left to fit the checkbox
149 | .item-checkbox {
150 | padding-left: ($item-padding * 2) + $checkbox-width;
151 |
152 | &.active {
153 | box-shadow: none;
154 | }
155 | }
156 |
157 | // position the checkbox to the left within an item
158 | .item-checkbox .checkbox {
159 | position: absolute;
160 | top: 50%;
161 | right: $item-padding / 2;
162 | left: $item-padding / 2;
163 | z-index: $z-index-item-checkbox;
164 | margin-top: (($checkbox-height + ($checkbox-height / 2)) / 2) * -1;
165 | }
166 |
167 |
168 | .item-checkbox.item-checkbox-right {
169 | padding-right: ($item-padding * 2) + $checkbox-width;
170 | padding-left: $item-padding;
171 | }
172 |
173 | .item-checkbox-right .checkbox input,
174 | .item-checkbox-right .checkbox-icon {
175 | float: right;
176 | }
177 |
--------------------------------------------------------------------------------
/www/js/directives.js:
--------------------------------------------------------------------------------
1 | angular.module('PassMan.directives', []).directive('bottomMenu', ['$state', '$log', function($state, $log) {
2 | return {
3 | restrict: 'E',
4 | templateUrl: 'templates/directives/bottom_menu.html',
5 | scope: {},
6 | link: function(scope, element, attr) {
7 | scope.menuItems = [{
8 | label: 'Change Master PIN',
9 | click: function() {
10 | $state.go('change_pin');
11 | }
12 | }];
13 |
14 | scope.isShown = false;
15 |
16 | scope.toggleShow = function() {
17 | $log.debug('directives.bottomMenu.toggleShow: start');
18 |
19 | scope.isShown = !scope.isShown;
20 | document.querySelector('.slide_up_button').classList.toggle('slide_up_button_display');
21 | document.querySelector('.custom_bottom_menu_overlay').classList.toggle('custom_bottom_menu_overlay_stretch');
22 |
23 | $log.debug('directives.bottomMenu.toggleShow: end');
24 | };
25 |
26 | scope.handleMenuItemSelect = function(index) {
27 | $log.debug('directives.bottomMenu.handleMenuItemSelect: start');
28 |
29 | $log.debug('directives.bottomMenu.handleMenuItemSelect: Index: ' + index);
30 | scope.toggleShow();
31 | scope.menuItems[index].click();
32 |
33 | $log.debug('directives.bottomMenu.handleMenuItemSelect: end');
34 | };
35 | }
36 | };
37 | }])
38 | .directive('keypad', ['$timeout', '$cordovaVibration', function($timeout, $cordovaVibration) {
39 | return {
40 | restrict: 'E',
41 | templateUrl: 'templates/directives/keypad.html',
42 | scope: {
43 | pinElements: '=pinElements',
44 | active: '=active',
45 | setMasterPin: '&setMasterPin',
46 | checkPin: '&checkPin'
47 | },
48 | link: function(scope, element, attr) {
49 | scope.keyPressed = function(value) {
50 | if (value === "c") {
51 | if ((scope.active == "confirmPin") && (scope.pinElements[scope.active].length == 0)) {
52 | scope.active = "pin";
53 | }
54 | scope.pinElements[scope.active] = "";
55 | } else if (value === "d") {
56 | if ((scope.active == "confirmPin") && (scope.pinElements[scope.active].length == 0)) {
57 | scope.active = "pin";
58 | }
59 | scope.pinElements[scope.active] = scope.pinElements[scope.active].substr(0, (scope.pinElements[scope.active].length - 1));
60 | } else {
61 | if (scope.pinElements[scope.active].length < 4) {
62 | scope.pinElements[scope.active] += value;
63 | }
64 |
65 | if (scope.active == "pin") {
66 | if (scope.pinElements[scope.active].length == 4) {
67 | scope.active = "confirmPin";
68 | }
69 | }
70 | }
71 |
72 | if (scope.active == "loginPin") {
73 | if (scope.pinElements[scope.active].length == 4) {
74 | scope.checkPin();
75 | }
76 | } else {
77 | if ((scope.pinElements.pin.length == 4) && (scope.pinElements.confirmPin.length == 4)) {
78 | if(scope.pinElements.pin === scope.pinElements.confirmPin) {
79 | scope.setMasterPin();
80 | }
81 | else {
82 |
83 | document.querySelector('.pin_indicator .bubble_wrapper').classList.add('shake');
84 | document.querySelector('.confirm_pin_indicator .bubble_wrapper').classList.add('shake');
85 | $cordovaVibration.vibrate(100);
86 | $timeout(function() {
87 | scope.pinElements.pin = "";
88 | scope.pinElements.confirmPin = "";
89 | document.querySelector('.pin_indicator .bubble_wrapper').classList.remove('shake');
90 | document.querySelector('.confirm_pin_indicator .bubble_wrapper').classList.remove('shake');
91 | }, 1000)
92 | scope.active = "pin";
93 | }
94 | }
95 | }
96 | }
97 | }
98 | };
99 | }])
100 | .directive('keyIndicator', [function() {
101 | return {
102 | restrict: 'E',
103 | transclude: true,
104 | scope: {
105 | value: '=value'
106 | },
107 | templateUrl: 'templates/directives/key_indicator.html',
108 | link: function(scope, element, attr) {
109 |
110 | }
111 | }
112 | }]);
113 |
--------------------------------------------------------------------------------
/www/lib/angular-sanitize/angular-sanitize.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | AngularJS v1.3.13
3 | (c) 2010-2014 Google, Inc. http://angularjs.org
4 | License: MIT
5 | */
6 | (function(n,h,p){'use strict';function E(a){var d=[];s(d,h.noop).chars(a);return d.join("")}function g(a){var d={};a=a.split(",");var c;for(c=0;c=c;e--)d.end&&d.end(f[e]);f.length=c}}"string"!==typeof a&&(a=null===a||"undefined"===typeof a?"":""+a);var b,k,f=[],m=a,l;for(f.last=function(){return f[f.length-1]};a;){l="";k=!0;if(f.last()&&x[f.last()])a=a.replace(new RegExp("([\\W\\w]*)<\\s*\\/\\s*"+f.last()+"[^>]*>","i"),function(a,b){b=b.replace(H,"$1").replace(I,"$1");d.chars&&d.chars(r(b));return""}),e("",f.last());else{if(0===a.indexOf("\x3c!--"))b=a.indexOf("--",4),0<=b&&a.lastIndexOf("--\x3e",b)===b&&(d.comment&&
8 | d.comment(a.substring(4,b)),a=a.substring(b+3),k=!1);else if(y.test(a)){if(b=a.match(y))a=a.replace(b[0],""),k=!1}else if(J.test(a)){if(b=a.match(z))a=a.substring(b[0].length),b[0].replace(z,e),k=!1}else K.test(a)&&((b=a.match(A))?(b[4]&&(a=a.substring(b[0].length),b[0].replace(A,c)),k=!1):(l+="<",a=a.substring(1)));k&&(b=a.indexOf("<"),l+=0>b?a:a.substring(0,b),a=0>b?"":a.substring(b),d.chars&&d.chars(r(l)))}if(a==m)throw L("badparse",a);m=a}e()}function r(a){if(!a)return"";var d=M.exec(a);a=d[1];
9 | var c=d[3];if(d=d[2])q.innerHTML=d.replace(//g,">")}function s(a,d){var c=!1,e=h.bind(a,a.push);return{start:function(a,k,f){a=h.lowercase(a);!c&&x[a]&&(c=a);c||!0!==C[a]||(e("<"),e(a),
10 | h.forEach(k,function(c,f){var k=h.lowercase(f),g="img"===a&&"src"===k||"background"===k;!0!==P[k]||!0===D[k]&&!d(c,g)||(e(" "),e(f),e('="'),e(B(c)),e('"'))}),e(f?"/>":">"))},end:function(a){a=h.lowercase(a);c||!0!==C[a]||(e(""),e(a),e(">"));a==c&&(c=!1)},chars:function(a){c||e(B(a))}}}var L=h.$$minErr("$sanitize"),A=/^<((?:[a-zA-Z])[\w:-]*)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*(>?)/,z=/^<\/\s*([\w:-]+)[^>]*>/,G=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,
11 | K=/^,J=/^<\//,H=/\x3c!--(.*?)--\x3e/g,y=/]*?)>/i,I=/"\u201d\u2019]/,c=/^mailto:/;return function(e,b){function k(a){a&&g.push(E(a))}
15 | function f(a,c){g.push("');k(c);g.push("")}if(!e)return e;for(var m,l=e,g=[],n,p;m=l.match(d);)n=m[0],m[2]||m[4]||(n=(m[3]?"http://":"mailto:")+n),p=m.index,k(l.substr(0,p)),f(n,m[0].replace(c,"")),l=l.substring(p+m[0].length);k(l);return a(g.join(""))}}])})(window,window.angular);
16 | //# sourceMappingURL=angular-sanitize.min.js.map
17 |
--------------------------------------------------------------------------------
/www/lib/ionic/scss/_toggle.scss:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Toggle
4 | * --------------------------------------------------
5 | */
6 |
7 | .item-toggle {
8 | pointer-events: none;
9 | }
10 |
11 | .toggle {
12 | // set the color defaults
13 | @include toggle-style($toggle-on-default-border, $toggle-on-default-bg);
14 |
15 | position: relative;
16 | display: inline-block;
17 | pointer-events: auto;
18 | margin: -$toggle-hit-area-expansion;
19 | padding: $toggle-hit-area-expansion;
20 |
21 | &.dragging {
22 | .handle {
23 | background-color: $toggle-handle-dragging-bg-color !important;
24 | }
25 | }
26 |
27 | }
28 |
29 | .toggle {
30 | &.toggle-light {
31 | @include toggle-style($toggle-on-light-border, $toggle-on-light-bg);
32 | }
33 | &.toggle-stable {
34 | @include toggle-style($toggle-on-stable-border, $toggle-on-stable-bg);
35 | }
36 | &.toggle-positive {
37 | @include toggle-style($toggle-on-positive-border, $toggle-on-positive-bg);
38 | }
39 | &.toggle-calm {
40 | @include toggle-style($toggle-on-calm-border, $toggle-on-calm-bg);
41 | }
42 | &.toggle-assertive {
43 | @include toggle-style($toggle-on-assertive-border, $toggle-on-assertive-bg);
44 | }
45 | &.toggle-balanced {
46 | @include toggle-style($toggle-on-balanced-border, $toggle-on-balanced-bg);
47 | }
48 | &.toggle-energized {
49 | @include toggle-style($toggle-on-energized-border, $toggle-on-energized-bg);
50 | }
51 | &.toggle-royal {
52 | @include toggle-style($toggle-on-royal-border, $toggle-on-royal-bg);
53 | }
54 | &.toggle-dark {
55 | @include toggle-style($toggle-on-dark-border, $toggle-on-dark-bg);
56 | }
57 | }
58 |
59 | .toggle input {
60 | // hide the actual input checkbox
61 | display: none;
62 | }
63 |
64 | /* the track appearance when the toggle is "off" */
65 | .toggle .track {
66 | @include transition-timing-function(ease-in-out);
67 | @include transition-duration($toggle-transition-duration);
68 | @include transition-property((background-color, border));
69 |
70 | display: inline-block;
71 | box-sizing: border-box;
72 | width: $toggle-width;
73 | height: $toggle-height;
74 | border: solid $toggle-border-width $toggle-off-border-color;
75 | border-radius: $toggle-border-radius;
76 | background-color: $toggle-off-bg-color;
77 | content: ' ';
78 | cursor: pointer;
79 | pointer-events: none;
80 | }
81 |
82 | /* Fix to avoid background color bleeding */
83 | /* (occured on (at least) Android 4.2, Asus MeMO Pad HD7 ME173X) */
84 | .platform-android4_2 .toggle .track {
85 | -webkit-background-clip: padding-box;
86 | }
87 |
88 | /* the handle (circle) thats inside the toggle's track area */
89 | /* also the handle's appearance when it is "off" */
90 | .toggle .handle {
91 | @include transition($toggle-transition-duration cubic-bezier(0, 1.1, 1, 1.1));
92 | @include transition-property((background-color, transform));
93 | position: absolute;
94 | display: block;
95 | width: $toggle-handle-width;
96 | height: $toggle-handle-height;
97 | border-radius: $toggle-handle-radius;
98 | background-color: $toggle-handle-off-bg-color;
99 | top: $toggle-border-width + $toggle-hit-area-expansion;
100 | left: $toggle-border-width + $toggle-hit-area-expansion;
101 | box-shadow: 0 2px 7px rgba(0,0,0,.35), 0 1px 1px rgba(0,0,0,.15);
102 |
103 | &:before {
104 | // used to create a larger (but hidden) hit area to slide the handle
105 | position: absolute;
106 | top: -4px;
107 | left: ( ($toggle-handle-width / 2) * -1) - 8;
108 | padding: ($toggle-handle-height / 2) + 5 ($toggle-handle-width + 7);
109 | content: " ";
110 | }
111 | }
112 |
113 | .toggle input:checked + .track .handle {
114 | // the handle when the toggle is "on"
115 | @include translate3d($toggle-width - $toggle-handle-width - ($toggle-border-width * 2), 0, 0);
116 | background-color: $toggle-handle-on-bg-color;
117 | }
118 |
119 | .item-toggle.active {
120 | box-shadow: none;
121 | }
122 |
123 | .item-toggle,
124 | .item-toggle.item-complex .item-content {
125 | // make sure list item content have enough padding on right to fit the toggle
126 | padding-right: ($item-padding * 3) + $toggle-width;
127 | }
128 |
129 | .item-toggle.item-complex {
130 | padding-right: 0;
131 | }
132 |
133 | .item-toggle .toggle {
134 | // position the toggle to the right within a list item
135 | position: absolute;
136 | top: ($item-padding / 2) + 2;
137 | right: $item-padding;
138 | z-index: $z-index-item-toggle;
139 | }
140 |
141 | .toggle input:disabled + .track {
142 | opacity: .6;
143 | }
144 |
145 | .toggle-small {
146 |
147 | .track {
148 | border: 0;
149 | width: 34px;
150 | height: 15px;
151 | background: #9e9e9e;
152 | }
153 | input:checked + .track {
154 | background: rgba(0,150,137,.5);
155 | }
156 | .handle {
157 | top: 2px;
158 | left: 4px;
159 | width: 21px;
160 | height: 21px;
161 | box-shadow: 0 2px 5px rgba(0,0,0,.25);
162 | }
163 | input:checked + .track .handle {
164 | @include translate3d(16px, 0, 0);
165 | background: rgb(0,150,137);
166 | }
167 | &.item-toggle .toggle {
168 | top: 19px;
169 | }
170 |
171 | .toggle-light {
172 | @include toggle-small-style($toggle-on-light-bg);
173 | }
174 | .toggle-stable {
175 | @include toggle-small-style($toggle-on-stable-bg);
176 | }
177 | .toggle-positive {
178 | @include toggle-small-style($toggle-on-positive-bg);
179 | }
180 | .toggle-calm {
181 | @include toggle-small-style($toggle-on-calm-bg);
182 | }
183 | .toggle-assertive {
184 | @include toggle-small-style($toggle-on-assertive-bg);
185 | }
186 | .toggle-balanced {
187 | @include toggle-small-style($toggle-on-balanced-bg);
188 | }
189 | .toggle-energized {
190 | @include toggle-small-style($toggle-on-energized-bg);
191 | }
192 | .toggle-royal {
193 | @include toggle-small-style($toggle-on-royal-bg);
194 | }
195 | .toggle-dark {
196 | @include toggle-small-style($toggle-on-dark-bg);
197 | }
198 | }
199 |
--------------------------------------------------------------------------------