├── .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 |
2 |
3 | 4 | 5 |
6 |
    7 |
  • {{ menuItem.label }}
  • 8 |
9 |
10 |
11 |
-------------------------------------------------------------------------------- /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 |
3 |
1
4 |
2
5 |
3
6 |
7 |
8 |
4
9 |
5
10 |
6
11 |
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 | 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 |
7 |
8 |
9 | 13 | 17 | 21 |
22 | All fields are mandatory 23 |
24 | 28 |
29 |
30 |
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 |
7 |
8 |
9 | 13 | PIN should be a 4 digit number 14 | Wrong Pin 15 | 19 | PIN should be a 4 digit number 20 | 24 |
25 | PIN's do not match 26 |
27 | 28 |
29 |
30 |
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 | - ![Not Actionable - Need Info](http://angular-ui.github.io/ui-router/images/notactionable.png): Your issue is not specific enough, or there is no clear action that we can take. Please clarify and refine your issue. 28 | - ![Plunkr Please](http://angular-ui.github.io/ui-router/images/plunkrplease.png): Please [create a plunkr](http://bit.ly/UIR-Plunk) 29 | - ![StackOverflow](http://angular-ui.github.io/ui-router/images/stackoverflow.png): 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(""));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=/^]*?)>/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 | --------------------------------------------------------------------------------