├── www ├── lib │ ├── marked │ │ ├── doc │ │ │ └── todo.md │ │ ├── index.js │ │ ├── Makefile │ │ ├── component.json │ │ ├── bower.json │ │ ├── Gulpfile.js │ │ ├── package.json │ │ ├── .bower.json │ │ └── LICENSE │ ├── angular │ │ ├── index.js │ │ ├── angular.min.js.gzip │ │ ├── bower.json │ │ ├── angular-csp.css │ │ ├── .bower.json │ │ └── package.json │ ├── angular-animate │ │ ├── index.js │ │ ├── bower.json │ │ ├── .bower.json │ │ └── package.json │ ├── angular-messages │ │ ├── index.js │ │ ├── bower.json │ │ ├── .bower.json │ │ └── package.json │ ├── angular-sanitize │ │ ├── index.js │ │ ├── bower.json │ │ ├── .bower.json │ │ └── package.json │ ├── ionic │ │ ├── demos │ │ │ ├── service │ │ │ │ ├── loading │ │ │ │ │ ├── test.scenario.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── index.html │ │ │ │ ├── actionSheet │ │ │ │ │ ├── test.scenario.js │ │ │ │ │ ├── index.html │ │ │ │ │ └── index.js │ │ │ │ ├── popover │ │ │ │ │ ├── index.js │ │ │ │ │ └── test.scenario.js │ │ │ │ └── popup │ │ │ │ │ └── popping │ │ │ │ │ ├── index.html │ │ │ │ │ └── test.scenario.js │ │ │ ├── old │ │ │ │ ├── checkbox │ │ │ │ │ ├── style.css │ │ │ │ │ ├── script.js │ │ │ │ │ └── index.html │ │ │ │ ├── lists │ │ │ │ │ ├── style.css │ │ │ │ │ ├── script.js │ │ │ │ │ └── index.html │ │ │ │ ├── modal │ │ │ │ │ ├── style.css │ │ │ │ │ └── script.js │ │ │ │ ├── popup │ │ │ │ │ ├── style.css │ │ │ │ │ └── index.html │ │ │ │ ├── toggle │ │ │ │ │ ├── style.css │ │ │ │ │ ├── script.js │ │ │ │ │ └── index.html │ │ │ │ ├── actionsheet │ │ │ │ │ ├── style.css │ │ │ │ │ ├── script.js │ │ │ │ │ └── index.html │ │ │ │ ├── radio-buttons │ │ │ │ │ ├── style.css │ │ │ │ │ ├── script.js │ │ │ │ │ └── index.html │ │ │ │ ├── pull-to-refresh │ │ │ │ │ ├── style.css │ │ │ │ │ ├── script.js │ │ │ │ │ └── index.html │ │ │ │ ├── sign-in-then-tabs │ │ │ │ │ └── style.css │ │ │ │ ├── starter-template │ │ │ │ │ ├── style.css │ │ │ │ │ ├── script.js │ │ │ │ │ └── index.html │ │ │ │ ├── thumbnail-list │ │ │ │ │ ├── style.css │ │ │ │ │ └── index.html │ │ │ │ ├── google-maps │ │ │ │ │ ├── style.css │ │ │ │ │ ├── index.html │ │ │ │ │ └── script.js │ │ │ │ ├── tabs-and-navigation │ │ │ │ │ ├── style.css │ │ │ │ │ └── script.js │ │ │ │ ├── side-menu-and-navigation │ │ │ │ │ └── style.css │ │ │ │ ├── loading-bar │ │ │ │ │ ├── script.js │ │ │ │ │ ├── style.css │ │ │ │ │ └── index.html │ │ │ │ ├── collection-repeat │ │ │ │ │ ├── style.css │ │ │ │ │ └── index.html │ │ │ │ ├── shrinking-header │ │ │ │ │ ├── style.css │ │ │ │ │ └── script.js │ │ │ │ ├── flickr-search-example │ │ │ │ │ ├── style.css │ │ │ │ │ └── index.html │ │ │ │ ├── app-intro-walkthrough │ │ │ │ │ ├── style.css │ │ │ │ │ └── script.js │ │ │ │ ├── frosted-glass-effect │ │ │ │ │ ├── style.css │ │ │ │ │ └── index.html │ │ │ │ └── swipeable-cards │ │ │ │ │ └── script.js │ │ │ └── directive │ │ │ │ ├── infiniteScroll │ │ │ │ └── forever │ │ │ │ │ ├── test.scenario.js │ │ │ │ │ ├── index.html │ │ │ │ │ └── index.js │ │ │ │ ├── refresher │ │ │ │ └── refreshList │ │ │ │ │ ├── test.scenario.js │ │ │ │ │ ├── index.html │ │ │ │ │ └── index.js │ │ │ │ ├── sideMenus │ │ │ │ ├── simple │ │ │ │ │ ├── style.css │ │ │ │ │ ├── index.js │ │ │ │ │ ├── test.scenario.js │ │ │ │ │ └── index.html │ │ │ │ └── navWithMenu │ │ │ │ │ ├── test.scenario.js │ │ │ │ │ └── index.js │ │ │ │ ├── radio │ │ │ │ └── chooseOne │ │ │ │ │ ├── index.js │ │ │ │ │ ├── test.scenario.js │ │ │ │ │ └── index.html │ │ │ │ ├── textInput │ │ │ │ └── floatingLabel │ │ │ │ │ ├── index.js │ │ │ │ │ ├── test.scenario.js │ │ │ │ │ └── index.html │ │ │ │ ├── list │ │ │ │ ├── animated │ │ │ │ │ ├── test.scenario.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── style.css │ │ │ │ │ └── index.html │ │ │ │ └── reorderDelete │ │ │ │ │ ├── test.scenario.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── index.html │ │ │ │ ├── collectionRepeat │ │ │ │ └── contacts │ │ │ │ │ ├── test.scenario.js │ │ │ │ │ └── contacts.html │ │ │ │ ├── header │ │ │ │ └── simple │ │ │ │ │ ├── index.js │ │ │ │ │ ├── test.scenario.js │ │ │ │ │ └── index.html │ │ │ │ ├── footer │ │ │ │ └── simple │ │ │ │ │ ├── index.js │ │ │ │ │ ├── test.scenario.js │ │ │ │ │ └── index.html │ │ │ │ ├── toggle │ │ │ │ └── simple │ │ │ │ │ ├── test.scenario.js │ │ │ │ │ ├── index.html │ │ │ │ │ └── index.js │ │ │ │ ├── checkbox │ │ │ │ └── simple │ │ │ │ │ ├── test.scenario.js │ │ │ │ │ ├── index.html │ │ │ │ │ └── index.js │ │ │ │ ├── slideBox │ │ │ │ └── appIntro │ │ │ │ │ ├── style.css │ │ │ │ │ ├── test.scenario.js │ │ │ │ │ └── index.js │ │ │ │ └── tabs │ │ │ │ └── tabsAndNav │ │ │ │ └── index.js │ │ ├── release │ │ │ ├── fonts │ │ │ │ ├── ionicons.eot │ │ │ │ ├── ionicons.ttf │ │ │ │ └── ionicons.woff │ │ │ └── version.json │ │ ├── js │ │ │ └── angular │ │ │ │ ├── service │ │ │ │ ├── navViewDelegate.js │ │ │ │ ├── decorators │ │ │ │ │ ├── compile.js │ │ │ │ │ └── location.js │ │ │ │ ├── viewService.js │ │ │ │ ├── clickBlock.js │ │ │ │ ├── gesture.js │ │ │ │ ├── templateLoader.js │ │ │ │ └── angularOverrides.js │ │ │ │ ├── directive │ │ │ │ ├── modalView.js │ │ │ │ ├── popoverView.js │ │ │ │ ├── pane.js │ │ │ │ ├── popover.js │ │ │ │ ├── modal.js │ │ │ │ ├── navDirection.js │ │ │ │ ├── navTransition.js │ │ │ │ ├── itemFloatingLabel.js │ │ │ │ ├── ngClick.js │ │ │ │ └── itemOptionButton.js │ │ │ │ ├── main.js │ │ │ │ └── controller │ │ │ │ └── tabController.js │ │ ├── scss │ │ │ ├── _progress.scss │ │ │ ├── _backdrop.scss │ │ │ ├── ionicons │ │ │ │ ├── ionicons.scss │ │ │ │ └── _ionicons-font.scss │ │ │ ├── ionic.scss │ │ │ ├── _loading.scss │ │ │ ├── _radio.scss │ │ │ ├── _button-bar.scss │ │ │ ├── _menu.scss │ │ │ ├── _animations.scss │ │ │ ├── _slide-box.scss │ │ │ └── _badge.scss │ │ ├── circle.yml │ │ ├── LICENSE │ │ ├── package.js │ │ ├── bower.json │ │ └── .bower.json │ ├── highlightjs │ │ ├── styles │ │ │ ├── pojoaque.jpg │ │ │ ├── school_book.png │ │ │ ├── brown_papersq.png │ │ │ ├── androidstudio.css │ │ │ ├── ascetic.css │ │ │ ├── mono-blue.css │ │ │ ├── codepen-embed.css │ │ │ ├── hopscotch.css │ │ │ └── tomorrow.css │ │ ├── bower.json │ │ ├── component.json │ │ ├── README.md │ │ ├── Makefile │ │ ├── .bower.json │ │ ├── composer.json │ │ └── LICENSE │ ├── ngCordova │ │ ├── CHANGELOG.md │ │ ├── bower.json │ │ ├── LICENSE │ │ ├── package.json │ │ └── .bower.json │ ├── angular-elastic │ │ ├── bower.json │ │ ├── .bower.json │ │ ├── package.json │ │ └── LICENCE.txt │ ├── angular-marked │ │ ├── todo.md │ │ ├── bower.json │ │ ├── .bower.json │ │ ├── gruntfile.js │ │ ├── karma.conf.js │ │ └── package.json │ ├── github-markdown-css │ │ ├── bower.json │ │ ├── .bower.json │ │ ├── license │ │ └── readme.md │ └── angular-ui-router │ │ ├── bower.json │ │ ├── .bower.json │ │ ├── LICENSE │ │ └── src │ │ ├── stateFilters.js │ │ └── viewScroll.js ├── img │ ├── ionic.png │ └── world.jpg ├── css │ ├── Inconsolata.otf │ └── style.css ├── templates │ ├── browse.html │ ├── blog-detail.html │ ├── blog-list.html │ ├── search.html │ ├── login.html │ ├── event_create.html │ └── menu.html ├── js │ └── services.js └── index.html ├── .bowerrc ├── 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-Landscape@2x~ipad.png │ │ └── Default-Portrait@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-land-xhdpi-screen.png │ ├── drawable-port-hdpi-screen.png │ ├── drawable-port-ldpi-screen.png │ ├── drawable-port-mdpi-screen.png │ ├── drawable-port-xhdpi-screen.png │ ├── drawable-land-xxhdpi-screen.png │ ├── drawable-land-xxxhdpi-screen.png │ ├── drawable-port-xxhdpi-screen.png │ └── drawable-port-xxxhdpi-screen.png ├── screenshots ├── 1.pic.jpg ├── 3.pic.jpg └── 6.pic.jpg ├── .gitignore ├── .editorconfig ├── ionic.project ├── bower.json ├── make.sh ├── README.md ├── package.json ├── scss └── ionic.app.scss ├── license.txt └── gulpfile.js /www/lib/marked/doc/todo.md: -------------------------------------------------------------------------------- 1 | # Todo 2 | 3 | -------------------------------------------------------------------------------- /.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "www/lib" 3 | } 4 | -------------------------------------------------------------------------------- /www/lib/marked/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/marked'); 2 | -------------------------------------------------------------------------------- /www/img/ionic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/www/img/ionic.png -------------------------------------------------------------------------------- /www/img/world.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/www/img/world.jpg -------------------------------------------------------------------------------- /www/lib/angular/index.js: -------------------------------------------------------------------------------- 1 | require('./angular'); 2 | module.exports = angular; 3 | -------------------------------------------------------------------------------- /resources/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/icon.png -------------------------------------------------------------------------------- /resources/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/splash.png -------------------------------------------------------------------------------- /screenshots/1.pic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/screenshots/1.pic.jpg -------------------------------------------------------------------------------- /screenshots/3.pic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/screenshots/3.pic.jpg -------------------------------------------------------------------------------- /screenshots/6.pic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/screenshots/6.pic.jpg -------------------------------------------------------------------------------- /www/css/Inconsolata.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/www/css/Inconsolata.otf -------------------------------------------------------------------------------- /resources/ios/icon/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/icon/icon.png -------------------------------------------------------------------------------- /www/lib/angular-animate/index.js: -------------------------------------------------------------------------------- 1 | require('./angular-animate'); 2 | module.exports = 'ngAnimate'; 3 | -------------------------------------------------------------------------------- /www/lib/angular-messages/index.js: -------------------------------------------------------------------------------- 1 | require('./angular-messages'); 2 | module.exports = 'ngMessages'; 3 | -------------------------------------------------------------------------------- /www/lib/angular-sanitize/index.js: -------------------------------------------------------------------------------- 1 | require('./angular-sanitize'); 2 | module.exports = 'ngSanitize'; 3 | -------------------------------------------------------------------------------- /resources/ios/icon/icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/icon/icon-40.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/icon/icon-50.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/icon/icon-60.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/icon/icon-72.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/icon/icon-76.png -------------------------------------------------------------------------------- /resources/ios/icon/icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/icon/icon@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/icon/icon-40@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/icon/icon-50@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/icon/icon-60@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/icon/icon-60@3x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/icon/icon-72@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/icon/icon-76@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/icon/icon-small.png -------------------------------------------------------------------------------- /www/lib/angular/angular.min.js.gzip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/www/lib/angular/angular.min.js.gzip -------------------------------------------------------------------------------- /www/lib/ionic/demos/service/loading/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: complete 3 | component: $ionicLoading 4 | --- 5 | -------------------------------------------------------------------------------- /resources/ios/icon/icon-small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/icon/icon-small@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/icon/icon-small@3x.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-667h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/splash/Default-667h.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-736h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/splash/Default-736h.png -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/checkbox/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/lists/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/modal/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/popup/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/toggle/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /resources/ios/splash/Default~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/splash/Default~iphone.png -------------------------------------------------------------------------------- /www/lib/highlightjs/styles/pojoaque.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/www/lib/highlightjs/styles/pojoaque.jpg -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/actionsheet/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/radio-buttons/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/lib/ionic/release/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/www/lib/ionic/release/fonts/ionicons.eot -------------------------------------------------------------------------------- /www/lib/ionic/release/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/www/lib/ionic/release/fonts/ionicons.ttf -------------------------------------------------------------------------------- /resources/ios/splash/Default@2x~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/splash/Default@2x~iphone.png -------------------------------------------------------------------------------- /www/lib/highlightjs/styles/school_book.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/www/lib/highlightjs/styles/school_book.png -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/pull-to-refresh/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/sign-in-then-tabs/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/starter-template/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/thumbnail-list/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/lib/ionic/release/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/www/lib/ionic/release/fonts/ionicons.woff -------------------------------------------------------------------------------- /resources/android/icon/drawable-hdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/android/icon/drawable-hdpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-ldpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/android/icon/drawable-ldpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-mdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/android/icon/drawable-mdpi-icon.png -------------------------------------------------------------------------------- /www/lib/highlightjs/styles/brown_papersq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/www/lib/highlightjs/styles/brown_papersq.png -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/infiniteScroll/forever/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: forever 3 | component: ionInfiniteScroll 4 | --- 5 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/refresher/refreshList/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: refreshList 3 | component: ionRefresher 4 | --- 5 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/google-maps/style.css: -------------------------------------------------------------------------------- 1 | #map { 2 | width: 100%; 3 | height: 100%; 4 | } 5 | .scroll { 6 | height: 100%; 7 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/tabs-and-navigation/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /resources/android/icon/drawable-xhdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/android/icon/drawable-xhdpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-xxhdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/android/icon/drawable-xxhdpi-icon.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-568h@2x~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/splash/Default-568h@2x~iphone.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape-736h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/splash/Default-Landscape-736h.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/splash/Default-Landscape~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Portrait~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/splash/Default-Portrait~ipad.png -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/side-menu-and-navigation/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/templates/browse.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Browse

4 |
5 |
6 | -------------------------------------------------------------------------------- /resources/android/icon/drawable-xxxhdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/android/icon/drawable-xxxhdpi-icon.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/splash/Default-Landscape@2x~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Portrait@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/ios/splash/Default-Portrait@2x~ipad.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-hdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/android/splash/drawable-land-hdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-ldpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/android/splash/drawable-land-ldpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-mdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/android/splash/drawable-land-mdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-xhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/android/splash/drawable-land-xhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-hdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/android/splash/drawable-port-hdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-ldpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/android/splash/drawable-port-ldpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-mdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/android/splash/drawable-port-mdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-xhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/android/splash/drawable-port-xhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-xxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/android/splash/drawable-land-xxhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-xxxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/android/splash/drawable-land-xxxhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-xxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/android/splash/drawable-port-xxhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-xxxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/app/master/resources/android/splash/drawable-port-xxxhdpi-screen.png -------------------------------------------------------------------------------- /www/lib/ionic/release/version.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.1.1", 3 | "codename": "yttrium-yeti", 4 | "date": "2015-11-05", 5 | "time": "21:31:24" 6 | } 7 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /www/lib/ionic/js/angular/service/navViewDelegate.js: -------------------------------------------------------------------------------- 1 | 2 | IonicModule 3 | .service('$ionicNavViewDelegate', ionic.DelegateService([ 4 | 'clearCache' 5 | ])); 6 | 7 | -------------------------------------------------------------------------------- /www/lib/angular/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.4.3", 4 | "main": "./angular.js", 5 | "ignore": [], 6 | "dependencies": { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /.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 | .idea 8 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/sideMenus/simple/style.css: -------------------------------------------------------------------------------- 1 | --- 2 | name: simple 3 | component: ionSideMenus 4 | --- 5 | .menu-left .scroll-content { 6 | background-color: #f4f4f4; 7 | } 8 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/loading-bar/script.js: -------------------------------------------------------------------------------- 1 | angular.module('ionicApp', ['ionic']) 2 | 3 | .controller('MainCtrl', ['$scope', 4 | function ($scope) { 5 | $scope.data = { 6 | isLoading: false 7 | }; 8 | }]); -------------------------------------------------------------------------------- /www/lib/angular-animate/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-animate", 3 | "version": "1.4.3", 4 | "main": "./angular-animate.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.4.3" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /www/lib/angular-messages/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-messages", 3 | "version": "1.4.3", 4 | "main": "./angular-messages.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.4.3" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /www/lib/angular-sanitize/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-sanitize", 3 | "version": "1.4.3", 4 | "main": "./angular-sanitize.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.4.3" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/radio/chooseOne/index.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: chooseOne 3 | component: ionRadio 4 | --- 5 | angular.module('chooseOne', ['ionic']) 6 | .controller('ChooseOneCtrl', function($scope) { 7 | $scope.choice = 'two'; 8 | }); 9 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_progress.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Progress 4 | * -------------------------------------------------- 5 | */ 6 | 7 | progress { 8 | display: block; 9 | margin: $progress-margin; 10 | width: $progress-width; 11 | } 12 | -------------------------------------------------------------------------------- /www/lib/ionic/js/angular/directive/modalView.js: -------------------------------------------------------------------------------- 1 | IonicModule 2 | .directive('ionModalView', function() { 3 | return { 4 | restrict: 'E', 5 | compile: function(element) { 6 | element.addClass('modal'); 7 | } 8 | }; 9 | }); 10 | -------------------------------------------------------------------------------- /www/lib/angular-elastic/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-elastic", 3 | "version": "2.5.1", 4 | "main": "elastic.js", 5 | "ignore": [ 6 | "**/.*", 7 | "node_modules", 8 | "components" 9 | ], 10 | "dependencies": { 11 | "angular": ">=1.0.6" 12 | } 13 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/starter-template/script.js: -------------------------------------------------------------------------------- 1 | angular.module('ionicApp', ['ionic']) 2 | 3 | .controller('MyCtrl', function($scope) { 4 | $scope.myTitle = 'Template'; 5 | 6 | $scope.doSomething = function() { 7 | $scope.myTitle = $scope.myTitle + ' something'; 8 | }; 9 | }); -------------------------------------------------------------------------------- /www/lib/marked/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | @cp lib/marked.js marked.js 3 | @uglifyjs --comments '/\*[^\0]+?Copyright[^\0]+?\*/' -o marked.min.js lib/marked.js 4 | 5 | clean: 6 | @rm marked.js 7 | @rm marked.min.js 8 | 9 | bench: 10 | @node test --bench 11 | 12 | .PHONY: clean all 13 | -------------------------------------------------------------------------------- /www/lib/highlightjs/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "highlightjs", 3 | "version": "8.7.0", 4 | "main": [ 5 | "highlight.pack.js", 6 | "styles/default.css" 7 | ], 8 | "ignore": [ 9 | "**/.*", 10 | "node_modules", 11 | "vendor", 12 | "components" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /www/lib/highlightjs/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "highlightjs", 3 | "repo": "components/highlightjs", 4 | "version": "8.7.0", 5 | "main": "highlight.pack.min.js", 6 | "scripts": [ 7 | "highlight.pack.min.js" 8 | ], 9 | "files": [ 10 | "styles/default.css" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | end_of_line = lf 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | 12 | [*.md] 13 | insert_final_newline = false 14 | trim_trailing_whitespace = false -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/textInput/floatingLabel/index.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: floatingLabel 3 | component: itemFloatingLabel 4 | --- 5 | 6 | var app = angular.module('floatingLabel', ['ionic']); 7 | 8 | app.controller('AppCtrl', function($scope) { 9 | 10 | $scope.favSong = "Tubthumping"; 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /www/lib/ionic/js/angular/directive/popoverView.js: -------------------------------------------------------------------------------- 1 | IonicModule 2 | .directive('ionPopoverView', function() { 3 | return { 4 | restrict: 'E', 5 | compile: function(element) { 6 | element.append(jqLite('
')); 7 | element.addClass('popover'); 8 | } 9 | }; 10 | }); 11 | -------------------------------------------------------------------------------- /www/lib/marked/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "marked", 3 | "version": "0.3.4", 4 | "repo": "chjj/marked", 5 | "description": "A markdown parser built for speed", 6 | "keywords": ["markdown", "markup", "html"], 7 | "scripts": ["lib/marked.js"], 8 | "main": "lib/marked.js", 9 | "license": "MIT" 10 | } 11 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/sideMenus/simple/index.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: simple 3 | component: ionSideMenus 4 | --- 5 | var app = angular.module('simple', ['ionic']); 6 | app.controller('SideMenusSimpleCtrl', function($scope, $ionicSideMenuDelegate) { 7 | 8 | $scope.toggleLeft = function() { 9 | $ionicSideMenuDelegate.toggleLeft(); 10 | }; 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /ionic.project: -------------------------------------------------------------------------------- 1 | { 2 | "name": "phodalapp", 3 | "app_id": "", 4 | "gulpStartupTasks": [ 5 | "sass", 6 | "watch" 7 | ], 8 | "watchPatterns": [ 9 | "www/**/*", 10 | "!www/lib/**/*" 11 | ], 12 | "browsers": [ 13 | { 14 | "platform": "android", 15 | "browser": "crosswalk-lite", 16 | "version": "12.41.296.5" 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /www/lib/angular-marked/todo.md: -------------------------------------------------------------------------------- 1 | # Todo list 2 | 3 | _\( managed using [todo-md](https://github.com/Hypercubed/todo-md) \)_ 4 | 5 | - [x] Compatibility with RequireJS #3 6 | - [-] Add testing to gruntfile 7 | - [x] Minify? 8 | - [ ] ngmin? 9 | - [x] Example for markedProvider in ngDocs 10 | - [x] Fix ng-include demo. 11 | - [ ] Tutorial? 12 | - [-] grunt-conventional-changelog? 13 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "HelloIonic", 3 | "private": "true", 4 | "devDependencies": {}, 5 | "dependencies": { 6 | "ngCordova": "~0.1.20-alpha", 7 | "highlightjs": "~8.7.0", 8 | "github-markdown-css": "~2.0.9", 9 | "angular-elastic": "~2.5.0", 10 | "angular-messages": "1.4.3", 11 | "angular-marked": "~1.0.1", 12 | "ionic": "~1.1.1" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /www/lib/highlightjs/README.md: -------------------------------------------------------------------------------- 1 | Highlight.js 2 | ============ 3 | 4 | Shim repository for [Highlight.js](http://highlightjs.org/). 5 | 6 | Package Managers 7 | ---------------- 8 | 9 | * [Bower](http://bower.io): `highlightjs` 10 | * [Composer](http://packagist.org/packages/components/highlightjs): `components/highlightjs` 11 | * [Component](http://component.io): `components/highlightjs` 12 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/list/animated/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: animated 3 | component: ionList 4 | --- 5 | 6 | it('should add item below Item 0', function(){ 7 | var ele = element.all(by.css('.list .button')); 8 | ele.get(0).click(); 9 | }); 10 | 11 | it('should remove Item 0', function(){ 12 | var ele = element.all(by.css('.list .button')); 13 | ele.get(1).click(); 14 | }); 15 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/collectionRepeat/contacts/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: contacts 3 | component: collectionRepeat 4 | --- 5 | 6 | it('should filter by juan', function(){ 7 | var ele = element(by.model('search')); 8 | ele.sendKeys('juan'); 9 | }); 10 | 11 | it('should clear search', function(){ 12 | var ele = element(by.css('.bar-header .button.clear')); 13 | ele.click(); 14 | }); 15 | -------------------------------------------------------------------------------- /www/lib/ionic/js/angular/main.js: -------------------------------------------------------------------------------- 1 | /* eslint no-unused-vars:0 */ 2 | var IonicModule = angular.module('ionic', ['ngAnimate', 'ngSanitize', 'ui.router', 'ngIOS9UIWebViewPatch']), 3 | extend = angular.extend, 4 | forEach = angular.forEach, 5 | isDefined = angular.isDefined, 6 | isNumber = angular.isNumber, 7 | isString = angular.isString, 8 | jqLite = angular.element, 9 | noop = angular.noop; 10 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/header/simple/index.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: simple 3 | component: ionHeaderBar 4 | --- 5 | angular.module('simple', ['ionic']) 6 | .controller('HeaderBarSimpleCtrl', function($scope) { 7 | $scope.data = { 8 | isSubheader: false, 9 | isShown: true 10 | }; 11 | $scope.items = []; 12 | for (var i = 0; i < 20; i++) { 13 | $scope.items.push('Item ' + i); 14 | } 15 | }); 16 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/footer/simple/index.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: simple 3 | component: ionFooterBar 4 | --- 5 | angular.module('simple', ['ionic']) 6 | .controller('FooterBarSimpleCtrl', function($scope) { 7 | $scope.data = { 8 | isSubfooter: false, 9 | isShown: true 10 | }; 11 | 12 | $scope.items = []; 13 | for (var i = 0; i < 20; i++) { 14 | $scope.items.push('Item ' + i); 15 | } 16 | }); 17 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/collection-repeat/style.css: -------------------------------------------------------------------------------- 1 | .button.button-icon.input-button { 2 | position: absolute; 3 | right: 0; 4 | top: 5px; 5 | color: #bbb; 6 | } 7 | .item img { 8 | height: 60px; 9 | width: 60px; 10 | float: left; 11 | margin-top: 20px; 12 | margin-right: 10px; 13 | } 14 | .list .my-item.item { 15 | left: 0; 16 | right: 0; 17 | padding-top: 0; 18 | padding-bottom: 0; 19 | } 20 | -------------------------------------------------------------------------------- /www/lib/github-markdown-css/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "github-markdown-css", 3 | "description": "The minimal amount of CSS to replicate the GitHub Markdown style", 4 | "license": "MIT", 5 | "main": "github-markdown.css", 6 | "keywords": [ 7 | "github", 8 | "markdown", 9 | "md", 10 | "css", 11 | "style", 12 | "stylesheet" 13 | ], 14 | "ignore": [ 15 | "**/.*", 16 | "package.json", 17 | "index.html" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/radio/chooseOne/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: chooseOne 3 | component: ionRadio 4 | --- 5 | 6 | it('should check 3rd radio by clicking its label', function(){ 7 | var ele = element.all(by.css('label.item-radio')); 8 | ele.get(2).click(); 9 | }); 10 | 11 | it('should check 4th radio by clicking its label', function(){ 12 | var ele = element.all(by.css('label.item-radio')); 13 | ele.get(3).click(); 14 | }); 15 | -------------------------------------------------------------------------------- /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 | 15 | .ng-animate-shim { 16 | visibility:hidden; 17 | } 18 | 19 | .ng-anchor { 20 | position:absolute; 21 | } 22 | -------------------------------------------------------------------------------- /make.sh: -------------------------------------------------------------------------------- 1 | cordova build --release android 2 | rm ~/learing/phodalapp/platforms/android/build/outputs/apk/blog.apk 3 | jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~/phodal.keystore ~/learing/phodalapp/platforms/android/build/outputs/apk/android-armv7-release-unsigned.apk phodal 4 | ~/android-sdk/build-tools/22.0.0/zipalign -v 4 platforms/android/build/outputs/apk/android-armv7-release-unsigned.apk ~/learing/phodalapp/platforms/android/build/outputs/apk/blog.apk 5 | -------------------------------------------------------------------------------- /www/lib/ionic/js/angular/directive/pane.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * @ngdoc directive 4 | * @name ionPane 5 | * @module ionic 6 | * @restrict E 7 | * 8 | * @description A simple container that fits content, with no side effects. Adds the 'pane' class to the element. 9 | */ 10 | IonicModule 11 | .directive('ionPane', function() { 12 | return { 13 | restrict: 'E', 14 | link: function(scope, element) { 15 | element.addClass('pane'); 16 | } 17 | }; 18 | }); 19 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_backdrop.scss: -------------------------------------------------------------------------------- 1 | 2 | .backdrop { 3 | position: fixed; 4 | top: 0; 5 | left: 0; 6 | z-index: $z-index-backdrop; 7 | 8 | width: 100%; 9 | height: 100%; 10 | 11 | background-color: $loading-backdrop-bg-color; 12 | 13 | visibility: hidden; 14 | opacity: 0; 15 | 16 | &.visible { 17 | visibility: visible; 18 | } 19 | &.active { 20 | opacity: 1; 21 | } 22 | 23 | @include transition($loading-backdrop-fadein-duration opacity linear); 24 | } 25 | -------------------------------------------------------------------------------- /www/templates/blog-detail.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

4 |

{{blog.title}}

5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/service/loading/index.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: complete 3 | component: $ionicLoading 4 | --- 5 | angular.module('complete', ['ionic']) 6 | .controller('LoadingCtrl', function($scope, $ionicLoading) { 7 | $scope.loadingOptions = { 8 | duration: 1000, 9 | delay: 0, 10 | template: '\n
\nLoading...', 11 | noBackdrop: false 12 | }; 13 | $scope.showLoading = function() { 14 | $ionicLoading.show($scope.loadingOptions); 15 | }; 16 | }); 17 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/list/animated/index.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: animated 3 | component: ionList 4 | --- 5 | angular.module('animated', ['ionic']) 6 | .controller('AnimatedListCtrl', function($scope, $timeout) { 7 | var nextItem = 0; 8 | $scope.items = []; 9 | for (var i=0; i < 5; i++) { 10 | $scope.items.push('Item ' + (nextItem++)); 11 | } 12 | 13 | $scope.addItem = function(atIndex) { 14 | $scope.items.splice(atIndex + 1, 0, 'Item ' + nextItem); 15 | nextItem++; 16 | }; 17 | }); 18 | 19 | -------------------------------------------------------------------------------- /www/lib/angular/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.4.3", 4 | "main": "./angular.js", 5 | "ignore": [], 6 | "dependencies": {}, 7 | "homepage": "https://github.com/angular/bower-angular", 8 | "_release": "1.4.3", 9 | "_resolution": { 10 | "type": "version", 11 | "tag": "v1.4.3", 12 | "commit": "dbd689e8103a6366e53e1f6786727f7c65ccfd75" 13 | }, 14 | "_source": "git://github.com/angular/bower-angular.git", 15 | "_target": "1.4.3", 16 | "_originalSource": "angular" 17 | } -------------------------------------------------------------------------------- /www/lib/ionic/js/angular/directive/popover.js: -------------------------------------------------------------------------------- 1 | /* 2 | * We don't document the ionPopover directive, we instead document 3 | * the $ionicPopover service 4 | */ 5 | IonicModule 6 | .directive('ionPopover', [function() { 7 | return { 8 | restrict: 'E', 9 | transclude: true, 10 | replace: true, 11 | controller: [function() {}], 12 | template: '
' + 13 | '
' + 14 | '
' 15 | }; 16 | }]); 17 | -------------------------------------------------------------------------------- /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/ionic/demos/directive/toggle/simple/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: simple 3 | component: ionToggle 4 | --- 5 | 6 | it('should uncheck 1st and check 2nd checkbox by clicking its label', function(){ 7 | var ele = element.all(by.css('label.toggle')); 8 | ele.get(0).click(); 9 | ele.get(1).click(); 10 | }); 11 | 12 | it('should check 1st and uncheck 2nd checkbox by clicking its label', function(){ 13 | var ele = element.all(by.css('label.toggle')); 14 | ele.get(0).click(); 15 | ele.get(1).click(); 16 | }); 17 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/infiniteScroll/forever/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | name: forever 3 | component: ionInfiniteScroll 4 | --- 5 | 6 |

Scroll Down to Load More

7 |
8 | 9 |
10 |
11 | {{item}} 12 |
13 |
14 | 15 | 16 | 17 |
18 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/checkbox/simple/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: simple 3 | component: ionCheckbox 4 | --- 5 | 6 | it('should uncheck 1st and check 2nd checkbox by clicking its label', function(){ 7 | var ele = element.all(by.css('label.item-checkbox')); 8 | ele.get(0).click(); 9 | ele.get(1).click(); 10 | }); 11 | 12 | it('should check 1st and uncheck 2nd checkbox by clicking its label', function(){ 13 | var ele = element.all(by.css('label.item-checkbox')); 14 | ele.get(0).click(); 15 | ele.get(1).click(); 16 | }); 17 | -------------------------------------------------------------------------------- /www/lib/ionic/js/angular/directive/modal.js: -------------------------------------------------------------------------------- 1 | /* 2 | * We don't document the ionModal directive, we instead document 3 | * the $ionicModal service 4 | */ 5 | IonicModule 6 | .directive('ionModal', [function() { 7 | return { 8 | restrict: 'E', 9 | transclude: true, 10 | replace: true, 11 | controller: [function() {}], 12 | template: '' 16 | }; 17 | }]); 18 | -------------------------------------------------------------------------------- /www/lib/marked/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "marked", 3 | "version": "0.3.4", 4 | "homepage": "https://github.com/chjj/marked", 5 | "authors": [ 6 | "Christopher Jeffrey " 7 | ], 8 | "description": "A markdown parser built for speed", 9 | "keywords": [ 10 | "markdown", 11 | "markup", 12 | "html" 13 | ], 14 | "main": "lib/marked.js", 15 | "license": "MIT", 16 | "ignore": [ 17 | "**/.*", 18 | "node_modules", 19 | "bower_components", 20 | "app/bower_components", 21 | "test", 22 | "tests" 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /www/lib/marked/Gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var uglify = require('gulp-uglify'); 3 | var concat = require('gulp-concat'); 4 | 5 | var preserveFirstComment = function() { 6 | var set = false; 7 | 8 | return function() { 9 | if (set) return false; 10 | set = true; 11 | return true; 12 | }; 13 | }; 14 | 15 | gulp.task('uglify', function() { 16 | gulp.src('lib/marked.js') 17 | .pipe(uglify({preserveComments: preserveFirstComment()})) 18 | .pipe(concat('marked.min.js')) 19 | .pipe(gulp.dest('.')); 20 | }); 21 | 22 | gulp.task('default', ['uglify']); 23 | -------------------------------------------------------------------------------- /www/lib/angular-animate/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-animate", 3 | "version": "1.4.3", 4 | "main": "./angular-animate.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.4.3" 8 | }, 9 | "homepage": "https://github.com/angular/bower-angular-animate", 10 | "_release": "1.4.3", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "v1.4.3", 14 | "commit": "4ce2a76359401102d2e0146ccf69e6c060799ff8" 15 | }, 16 | "_source": "git://github.com/angular/bower-angular-animate.git", 17 | "_target": "1.4.3", 18 | "_originalSource": "angular-animate" 19 | } -------------------------------------------------------------------------------- /www/lib/angular-sanitize/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-sanitize", 3 | "version": "1.4.3", 4 | "main": "./angular-sanitize.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.4.3" 8 | }, 9 | "homepage": "https://github.com/angular/bower-angular-sanitize", 10 | "_release": "1.4.3", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "v1.4.3", 14 | "commit": "0367ee4c3f9cb8af5d1da9ec35b71a8b523d9fc0" 15 | }, 16 | "_source": "git://github.com/angular/bower-angular-sanitize.git", 17 | "_target": "1.4.3", 18 | "_originalSource": "angular-sanitize" 19 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | #Phodal Blog APP 2 | 3 | > A Mobile App for [https://www.phodal.com/](https://www.phodal.com/). 4 | 5 | Tech Stack 6 | ---- 7 | 8 | 1. Django 9 | 2. Django REST Framework 10 | 3. Django REST Framework JWT 11 | 4. Ionic 12 | 13 | 14 | Get it on Google Play 16 | 17 | 18 | License 19 | ---- 20 | 21 | © 2015 [Phodal Huang][phodal]. This code is distributed under the MIT license. 22 | [phodal]:http://www.phodal.com/ 23 | -------------------------------------------------------------------------------- /www/templates/blog-list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

{{blog.title}}

8 | 9 |
10 |
11 | 14 | 15 |
16 |
17 | -------------------------------------------------------------------------------- /www/lib/angular-messages/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-messages", 3 | "version": "1.4.3", 4 | "main": "./angular-messages.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.4.3" 8 | }, 9 | "homepage": "https://github.com/angular/bower-angular-messages", 10 | "_release": "1.4.3", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "v1.4.3", 14 | "commit": "1b4d6e58e6dd1ce2e7d508fb2e09114980c3f557" 15 | }, 16 | "_source": "git://github.com/angular/bower-angular-messages.git", 17 | "_target": "1.4.3", 18 | "_originalSource": "angular-messages", 19 | "_direct": true 20 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/refresher/refreshList/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | name: refreshList 3 | component: ionRefresher 4 | --- 5 | 6 |

Pull to Refresh

7 |
8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | {{item}} 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/footer/simple/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: simple 3 | component: ionFooterBar 4 | --- 5 | 6 | it('should show subfooter', function(){ 7 | var ele = element.all(by.css('.toggle')); 8 | ele.get(0).click(); 9 | }); 10 | 11 | it('should hide subfooter', function(){ 12 | var ele = element.all(by.css('.toggle')); 13 | ele.get(0).click(); 14 | }); 15 | 16 | it('should hide footer', function(){ 17 | var ele = element.all(by.css('.toggle')); 18 | ele.get(1).click(); 19 | }); 20 | 21 | it('should show footer', function(){ 22 | var ele = element.all(by.css('.toggle')); 23 | ele.get(1).click(); 24 | }); 25 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/header/simple/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: simple 3 | component: ionHeaderBar 4 | --- 5 | 6 | it('should show subheader', function(){ 7 | var ele = element.all(by.css('.toggle')); 8 | ele.get(0).click(); 9 | }); 10 | 11 | it('should hide subheader', function(){ 12 | var ele = element.all(by.css('.toggle')); 13 | ele.get(0).click(); 14 | }); 15 | 16 | it('should hide header', function(){ 17 | var ele = element.all(by.css('.toggle')); 18 | ele.get(1).click(); 19 | }); 20 | 21 | it('should show header', function(){ 22 | var ele = element.all(by.css('.toggle')); 23 | ele.get(1).click(); 24 | }); 25 | -------------------------------------------------------------------------------- /www/lib/highlightjs/Makefile: -------------------------------------------------------------------------------- 1 | VERSION=8.7 2 | 3 | default: build 4 | @cp -f build/highlight.* . 5 | @cp -f highlight/src/styles/* styles 6 | @du -hs highlight.* 7 | 8 | build: highlight 9 | @cd highlight && git fetch && git checkout $(VERSION) 10 | @cd highlight && npm install 11 | @mkdir -p build 12 | @cd highlight && node tools/build.js && cp build/highlight.pack.js ../build/highlight.pack.min.js 13 | @cd highlight && node tools/build.js -n && cp build/highlight.pack.js ../build/highlight.pack.js 14 | 15 | highlight: 16 | @git clone git://github.com/isagalaev/highlight.js.git $@ 17 | 18 | clean: 19 | @rm -rf build 20 | 21 | .PHONY: default 22 | -------------------------------------------------------------------------------- /www/lib/angular-elastic/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-elastic", 3 | "version": "2.5.1", 4 | "main": "elastic.js", 5 | "ignore": [ 6 | "**/.*", 7 | "node_modules", 8 | "components" 9 | ], 10 | "dependencies": { 11 | "angular": ">=1.0.6" 12 | }, 13 | "homepage": "https://github.com/monospaced/angular-elastic", 14 | "_release": "2.5.1", 15 | "_resolution": { 16 | "type": "version", 17 | "tag": "v2.5.1", 18 | "commit": "4c2c75e413e668b4117bf2b3741272b2ab9e24c5" 19 | }, 20 | "_source": "git://github.com/monospaced/angular-elastic.git", 21 | "_target": "~2.5.0", 22 | "_originalSource": "angular-elastic" 23 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/infiniteScroll/forever/index.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: forever 3 | component: ionInfiniteScroll 4 | --- 5 | angular.module('forever', ['ionic']) 6 | .controller('ForeverCtrl', function($scope, $timeout) { 7 | $scope.items = []; 8 | for (var i = 0; i < 20; i++) { 9 | $scope.items.push(i); 10 | } 11 | 12 | //Load more after 1 second delay 13 | $scope.loadMoreItems = function() { 14 | var i = $scope.items.length; 15 | var j = $scope.items.length + 5; 16 | for (; i < j; i++) { 17 | $scope.items.push('Item ' + i); 18 | } 19 | $scope.$broadcast('scroll.infiniteScrollComplete'); 20 | }; 21 | }); 22 | -------------------------------------------------------------------------------- /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/ionic/demos/old/checkbox/script.js: -------------------------------------------------------------------------------- 1 | angular.module('ionicApp', ['ionic']) 2 | 3 | .controller('MainCtrl', function ($scope) { 4 | 5 | $scope.devList = [ 6 | { 7 | text: "HTML5", 8 | checked: true 9 | }, 10 | { 11 | text: "CSS3", 12 | checked: false 13 | }, 14 | { 15 | text: "JavaScript", 16 | checked: false 17 | } 18 | ]; 19 | 20 | $scope.pushNotificationChange = function () { 21 | console.log('Push Notification Change', $scope.pushNotification.checked); 22 | }; 23 | 24 | $scope.pushNotification = { 25 | checked: true 26 | }; 27 | $scope.emailNotification = 'Subscribed'; 28 | 29 | }); -------------------------------------------------------------------------------- /www/lib/highlightjs/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "highlightjs", 3 | "version": "8.7.0", 4 | "main": [ 5 | "highlight.pack.js", 6 | "styles/default.css" 7 | ], 8 | "ignore": [ 9 | "**/.*", 10 | "node_modules", 11 | "vendor", 12 | "components" 13 | ], 14 | "homepage": "https://github.com/components/highlightjs", 15 | "_release": "8.7.0", 16 | "_resolution": { 17 | "type": "version", 18 | "tag": "8.7.0", 19 | "commit": "71636b69413d8deb32766091b969bc0a21085d8a" 20 | }, 21 | "_source": "git://github.com/components/highlightjs.git", 22 | "_target": "~8.7.0", 23 | "_originalSource": "highlightjs", 24 | "_direct": true 25 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/list/animated/style.css: -------------------------------------------------------------------------------- 1 | --- 2 | name: animated 3 | component: ionList 4 | --- 5 | .animated-item .item-note .button { 6 | margin-top: 10px; 7 | } 8 | .animated-item { 9 | line-height: 52px; 10 | max-height: 52px; 11 | padding-top: 0; 12 | padding-bottom: 0; 13 | -webkit-transition: all 0.15s linear; 14 | -moz-transition: all 0.15s linear; 15 | transition: all 0.15s linear; 16 | } 17 | .animated-item.ng-leave.ng-leave-active, 18 | .animated-item.ng-enter { 19 | opacity: 0; 20 | max-height: 0; 21 | } 22 | .animated-item.ng-leave, 23 | .animated-item.ng-enter.ng-enter-active { 24 | opacity: 1; 25 | max-height: 52px; 26 | } 27 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/toggle/script.js: -------------------------------------------------------------------------------- 1 | angular.module('ionicApp', ['ionic']) 2 | 3 | .controller('MainCtrl', function ($scope) { 4 | 5 | $scope.settingsList = [ 6 | { 7 | text: "Wireless", 8 | checked: true 9 | }, 10 | { 11 | text: "GPS", 12 | checked: false 13 | }, 14 | { 15 | text: "Bluetooth", 16 | checked: false 17 | } 18 | ]; 19 | 20 | $scope.pushNotificationChange = function () { 21 | console.log('Push Notification Change', $scope.pushNotification.checked); 22 | }; 23 | 24 | $scope.pushNotification = { 25 | checked: true 26 | }; 27 | $scope.emailNotification = 'Subscribed'; 28 | 29 | }); -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/shrinking-header/style.css: -------------------------------------------------------------------------------- 1 | .fake-statusbar { 2 | position: fixed; 3 | top: 0; 4 | left: 0; 5 | z-index: 4; 6 | box-sizing: border-box; 7 | padding: 2px 3px 3px 3px; 8 | max-height: 20px; 9 | width: 100%; 10 | height: 20px; 11 | color: #fff; 12 | font-size: 12px; 13 | } 14 | .fake-statusbar .time { 15 | position: absolute; 16 | width: 100%; 17 | height: 100%; 18 | text-align: center; 19 | } 20 | .fake-statusbar .pull-left { 21 | float: left; 22 | } 23 | .fake-statusbar .pull-right { 24 | float: right; 25 | } 26 | .bar-header { 27 | height: 64px !important; 28 | } 29 | .bar-header > * { 30 | margin-top: 20px !important; 31 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/service/actionSheet/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: takeAction 3 | component: $ionicActionSheet 4 | --- 5 | 6 | it('should open up actionsheet', function(){ 7 | var ele = element(by.css('.button')); 8 | ele.click(); 9 | }); 10 | 11 | it('should close when clicking backdrop', function(){ 12 | var ele = element(by.css('.action-sheet-backdrop')); 13 | ele.click(); 14 | }); 15 | 16 | it('should open up actionsheet again', function(){ 17 | var ele = element(by.css('.button')); 18 | ele.click(); 19 | }); 20 | 21 | it('should click the share button', function(){ 22 | var ele = element.all(by.css('.action-sheet-group .button')); 23 | ele.get(0).click(); 24 | }); 25 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/radio/chooseOne/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | name: chooseOne 3 | component: ionRadio 4 | --- 5 | 6 |

Radios

7 |
8 | 9 |

10 | Your Choice: {{choice}} 11 |

12 | One 13 | Two 14 | Three 15 | Four 16 | Five 17 |
18 | -------------------------------------------------------------------------------- /www/lib/angular/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.4.3", 4 | "description": "HTML enhanced for web apps", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/angular/angular.js.git" 12 | }, 13 | "keywords": [ 14 | "angular", 15 | "framework", 16 | "browser", 17 | "client-side" 18 | ], 19 | "author": "Angular Core Team ", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/angular/angular.js/issues" 23 | }, 24 | "homepage": "http://angularjs.org" 25 | } 26 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/service/actionSheet/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | name: takeAction 3 | component: $ionicActionSheet 4 | --- 5 | 6 |

Action

7 |
8 | 9 |
10 | Take Action! 11 |
12 |
13 |
14 | User Log 15 |
16 |
17 |
18 | {{message.text}} 19 |
20 |
21 |
22 |
23 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/list/reorderDelete/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: reorderDelete 3 | component: ionList 4 | --- 5 | 6 | it('should show reorder icons', function(){ 7 | var ele = element.all(by.css('.bar-header .button')); 8 | ele.get(1).click(); 9 | }); 10 | 11 | it('should hide reorder icons', function(){ 12 | var ele = element.all(by.css('.bar-header .button')); 13 | ele.get(1).click(); 14 | }); 15 | 16 | it('should show delete icons', function(){ 17 | var ele = element.all(by.css('.bar-header .button')); 18 | ele.get(0).click(); 19 | }); 20 | 21 | it('should hide delete icons', function(){ 22 | var ele = element.all(by.css('.bar-header .button')); 23 | ele.get(0).click(); 24 | }); 25 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "phodalapp", 3 | "version": "1.0.0", 4 | "description": "phodalapp: 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 | "cordova-plugin-device", 19 | "cordova-plugin-console", 20 | "cordova-plugin-whitelist", 21 | "cordova-plugin-splashscreen", 22 | "com.ionic.keyboard" 23 | ], 24 | "cordovaPlatforms": [ 25 | "ios", 26 | "android" 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/slideBox/appIntro/style.css: -------------------------------------------------------------------------------- 1 | --- 2 | name: appIntro 3 | component: ionSlideBox 4 | --- 5 | .slider { 6 | height: 100%; 7 | } 8 | .slider-slide { 9 | padding-top: 80px; 10 | background-color: #fff; 11 | color: #000; 12 | text-align: center; 13 | font-weight: 300; 14 | font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; 15 | } 16 | #logo { 17 | margin: 30px 0px; 18 | } 19 | #list { 20 | margin: 30px auto; 21 | width: 170px; 22 | font-size: 20px; 23 | } 24 | #list ol { 25 | margin-top: 30px; 26 | } 27 | #list ol li { 28 | margin: 10px 0px; 29 | list-style: decimal; 30 | text-align: left; 31 | } 32 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/flickr-search-example/style.css: -------------------------------------------------------------------------------- 1 | #search-input { 2 | text-align: center; 3 | } 4 | 5 | #photos { 6 | margin: auto; 7 | } 8 | 9 | .photo { 10 | float: left; 11 | overflow: hidden; 12 | margin: 1px; 13 | width: 100px; 14 | height: 100px; 15 | } 16 | .photo img { 17 | min-width: 100%; 18 | min-height: 100%; 19 | max-width: 150%; 20 | max-height: 150%; 21 | } 22 | 23 | #search-bar { 24 | position: absolute; 25 | top: 44px; 26 | z-index: 3; 27 | width: 100%; 28 | height: 40px; 29 | background: none; 30 | } 31 | #search-bar .item { 32 | border: none; 33 | background: none; 34 | } 35 | #content { 36 | top: 44px; 37 | padding-top: 45px; 38 | padding-bottom: 20px; 39 | } -------------------------------------------------------------------------------- /www/lib/ionic/js/angular/service/decorators/compile.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @private 3 | * Parts of Ionic requires that $scope data is attached to the element. 4 | * We do not want to disable adding $scope data to the $element when 5 | * $compileProvider.debugInfoEnabled(false) is used. 6 | */ 7 | IonicModule.config(['$provide', function($provide) { 8 | $provide.decorator('$compile', ['$delegate', function($compile) { 9 | $compile.$$addScopeInfo = function $$addScopeInfo($element, scope, isolated, noTemplate) { 10 | var dataName = isolated ? (noTemplate ? '$isolateScopeNoTemplate' : '$isolateScope') : '$scope'; 11 | $element.data(dataName, scope); 12 | }; 13 | return $compile; 14 | }]); 15 | }]); 16 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/footer/simple/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | name: simple 3 | component: ionFooterBar 4 | --- 5 |
6 | 9 |

Footer

10 |
11 | 12 | 13 | Make it a Subfooter? 14 | 15 | 16 | Show it? 17 | 18 |
19 |
20 | {{item}} 21 |
22 |
23 |
24 |
25 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/app-intro-walkthrough/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } 4 | .slider { 5 | height: 100%; 6 | } 7 | .slider-slide { 8 | padding-top: 80px; 9 | background-color: #fff; 10 | color: #000; 11 | text-align: center; 12 | font-weight: 300; 13 | font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; 14 | } 15 | #logo { 16 | margin: 30px 0px; 17 | } 18 | #list { 19 | margin: 30px auto; 20 | width: 170px; 21 | font-size: 20px; 22 | } 23 | #list ol { 24 | margin-top: 30px; 25 | } 26 | #list ol li { 27 | margin: 10px 0px; 28 | list-style: decimal; 29 | text-align: left; 30 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/checkbox/simple/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | name: simple 3 | component: ionCheckbox 4 | --- 5 | 6 | 7 |

8 | Checkbox: Simple Usage 9 |

10 |
11 | 12 |

Your pizza has {{toppings()}}!

13 | 14 | Pepperoni? 15 | 16 | 17 | Sausage? 18 | 19 | 20 | Jalapeno? 21 | 22 | 23 | Anchovies? 24 | 25 |
26 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/header/simple/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | name: simple 3 | component: ionHeaderBar 4 | --- 5 |
6 | 9 |

Tap Me to Scroll Top

10 |
11 | 12 | 13 | Make it a Subheader? 14 | 15 | 16 | Show it? 17 | 18 |
19 |
20 | {{item}} 21 |
22 |
23 |
24 |
25 | -------------------------------------------------------------------------------- /www/lib/angular-animate/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-animate", 3 | "version": "1.4.3", 4 | "description": "AngularJS module for animations", 5 | "main": "index.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.4.3", 4 | "description": "AngularJS module for sanitizing HTML", 5 | "main": "index.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/demos/directive/sideMenus/simple/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: simple 3 | component: ionSideMenus 4 | --- 5 | it('should show left menu', function(){ 6 | var ele = element.all(by.css('.bar-header .button')); 7 | ele.get(0).click(); 8 | }); 9 | 10 | it('should hide left menu by clicking header button', function(){ 11 | var ele = element.all(by.css('.bar-header .button')); 12 | ele.get(0).click(); 13 | }); 14 | 15 | it('should show left menu', function(){ 16 | var ele = element.all(by.css('.bar-header .button')); 17 | ele.get(0).click(); 18 | }); 19 | 20 | it('should hide left menu by close menu item', function(){ 21 | var ele = element.all(by.css('ion-side-menu[side="left"] a')); 22 | ele.get(0).click(); 23 | }); 24 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/refresher/refreshList/index.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: refreshList 3 | component: ionRefresher 4 | --- 5 | angular.module('refreshList', ['ionic']) 6 | .controller('RefresherCtrl', function($scope, $timeout) { 7 | $scope.items = ['Item 1', 'Item 2', 'Item 3']; 8 | 9 | $scope.doRefresh = function() { 10 | $timeout(function() { 11 | $scope.items.push('New Item ' + Math.floor(Math.random() * 1000) + 4); 12 | $scope.items.push('New Item ' + Math.floor(Math.random() * 1000) + 4); 13 | $scope.items.push('New Item ' + Math.floor(Math.random() * 1000) + 4); 14 | $scope.items.push('New Item ' + Math.floor(Math.random() * 1000) + 4); 15 | $scope.$broadcast('scroll.refreshComplete'); 16 | }, 1000); 17 | }; 18 | }); 19 | -------------------------------------------------------------------------------- /www/lib/ionic/circle.yml: -------------------------------------------------------------------------------- 1 | machine: 2 | node: 3 | version: 4.1.0 4 | ruby: 5 | version: 2.1.2 6 | checkout: 7 | post: 8 | # Make sure that the git repo that circleCI clones is not cloned shallow 9 | # (by default, it only clones the last 25 commits - aka shallow) 10 | # copy/pasted from circleCI support) 11 | - "[[ ! -s \"$(git rev-parse --git-dir)/shallow\" ]] || git fetch --unshallow" 12 | dependencies: 13 | post: 14 | - bower install 15 | test: 16 | override: 17 | - ./scripts/circle/test.sh --index=$CIRCLE_NODE_INDEX --total=$CIRCLE_NODE_TOTAL 18 | deployment: 19 | tasks: 20 | branch: master 21 | commands: 22 | - ./scripts/circle/deploy.sh --sha1=$CIRCLE_SHA1 --index=$CIRCLE_NODE_INDEX --build-number=$CIRCLE_BUILD_NUM 23 | -------------------------------------------------------------------------------- /www/lib/angular-messages/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-messages", 3 | "version": "1.4.3", 4 | "description": "AngularJS module that provides enhanced support for displaying messages within templates", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/angular/angular.js.git" 12 | }, 13 | "keywords": [ 14 | "angular", 15 | "framework", 16 | "browser", 17 | "client-side" 18 | ], 19 | "author": "Angular Core Team ", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/angular/angular.js/issues" 23 | }, 24 | "homepage": "http://angularjs.org" 25 | } 26 | -------------------------------------------------------------------------------- /www/lib/angular-marked/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-marked", 3 | "authors": [ 4 | "J. Harshbarger" 5 | ], 6 | "description": "AngularJS Markdown using marked.", 7 | "main": "dist/angular-marked.js", 8 | "keywords": [ 9 | "angularjs", 10 | "markdown", 11 | "marked", 12 | "directive", 13 | "filter" 14 | ], 15 | "license": "MIT", 16 | "ignore": [ 17 | "**/.*", 18 | "node_modules", 19 | "bower_components", 20 | ".grunt", 21 | "test", 22 | "tests", 23 | "docs", 24 | "docs-template", 25 | "example" 26 | ], 27 | "dependencies": { 28 | "angular": ">= 1.3.0", 29 | "marked": "~0.3.1" 30 | }, 31 | "devDependencies": { 32 | "angular-mocks": ">= 1.3.0", 33 | "angular-animate": "~1.4.3" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/sideMenus/navWithMenu/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: navWithMenu 3 | component: ionSideMenus 4 | --- 5 | 6 | it('should nav to Search from left menu', function(){ 7 | var ele = element.all(by.css('button[menu-toggle="left"]')); 8 | ele.get(0).click(); 9 | 10 | browser.sleep(500).then(function(){ 11 | var itemEle = element.all(by.css('ion-side-menu[side="left"] a')); 12 | itemEle.get(0).click(); 13 | }); 14 | }); 15 | 16 | it('should nav to Browse from left menu', function(){ 17 | var ele = element.all(by.css('button[menu-toggle="left"]')); 18 | ele.get(0).click(); 19 | 20 | browser.sleep(500).then(function(){ 21 | var itemEle = element.all(by.css('ion-side-menu[side="left"] a')); 22 | itemEle.get(1).click(); 23 | }); 24 | }); 25 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/modal/script.js: -------------------------------------------------------------------------------- 1 | angular.module('ionicApp', ['ionic']) 2 | 3 | .controller('AppCtrl', function ($scope, $ionicModal) { 4 | 5 | $scope.contacts = [ 6 | { 7 | name: 'Gordon Freeman' 8 | }, 9 | { 10 | name: 'Barney Calhoun' 11 | }, 12 | { 13 | name: 'Lamarr the Headcrab' 14 | }, 15 | ]; 16 | $ionicModal.fromTemplateUrl('modal.html', function (modal) { 17 | $scope.modal = modal; 18 | }, { 19 | animation: 'slide-in-up', 20 | focusFirstInput: true 21 | }); 22 | 23 | }) 24 | 25 | .controller('ModalCtrl', function ($scope) { 26 | 27 | $scope.newUser = {}; 28 | 29 | $scope.createContact = function () { 30 | console.log('Create Contact', $scope.newUser); 31 | $scope.modal.hide(); 32 | }; 33 | 34 | }); -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/toggle/simple/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | name: simple 3 | component: ionToggle 4 | --- 5 | 6 | 7 |

8 | Toggle: Simple Usage 9 |

10 |
11 | 12 |

Your pizza has {{toppings()}}!

13 | 14 | Pepperoni? 15 | 16 | 17 | Sausage? 18 | 19 | 20 | Jalapeno? 21 | 22 | 23 | Anchovies? 24 | 25 |
26 | -------------------------------------------------------------------------------- /www/lib/highlightjs/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "components/highlightjs", 3 | "description": "Highlight.js highlights syntax in code examples on blogs, forums and in fact on any web pages.", 4 | "type": "component", 5 | "license": "BSD-3-Clause", 6 | "authors": [ 7 | { 8 | "name": "Ivan Sagalaev", 9 | "email": "maniac@softwaremaniacs.org", 10 | "homepage": "http://softwaremaniacs.org" 11 | } 12 | ], 13 | "extra": { 14 | "component": { 15 | "scripts": [ 16 | "highlight.pack.min.js" 17 | ], 18 | "files": [ 19 | "styles/*" 20 | ], 21 | "shim": { 22 | "exports": "hljs" 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /www/lib/ionic/js/angular/directive/navDirection.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @ngdoc directive 3 | * @name navDirection 4 | * @module ionic 5 | * @restrict A 6 | * 7 | * @description 8 | * The direction which the nav view transition should animate. Available options 9 | * are: `forward`, `back`, `enter`, `exit`, `swap`. 10 | * 11 | * @usage 12 | * 13 | * ```html 14 | * Home 15 | * ``` 16 | */ 17 | IonicModule 18 | .directive('navDirection', ['$ionicViewSwitcher', function($ionicViewSwitcher) { 19 | return { 20 | restrict: 'A', 21 | priority: 1000, 22 | link: function($scope, $element, $attr) { 23 | $element.bind('click', function() { 24 | $ionicViewSwitcher.nextDirection($attr.navDirection); 25 | }); 26 | } 27 | }; 28 | }]); 29 | -------------------------------------------------------------------------------- /www/lib/ionic/js/angular/directive/navTransition.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @ngdoc directive 3 | * @name navTransition 4 | * @module ionic 5 | * @restrict A 6 | * 7 | * @description 8 | * The transition type which the nav view transition should use when it animates. 9 | * Current, options are `ios`, `android`, and `none`. More options coming soon. 10 | * 11 | * @usage 12 | * 13 | * ```html 14 | * Home 15 | * ``` 16 | */ 17 | IonicModule 18 | .directive('navTransition', ['$ionicViewSwitcher', function($ionicViewSwitcher) { 19 | return { 20 | restrict: 'A', 21 | priority: 1000, 22 | link: function($scope, $element, $attr) { 23 | $element.bind('click', function() { 24 | $ionicViewSwitcher.nextTransition($attr.navTransition); 25 | }); 26 | } 27 | }; 28 | }]); 29 | -------------------------------------------------------------------------------- /www/lib/marked/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "marked", 3 | "description": "A markdown parser built for speed", 4 | "author": "Christopher Jeffrey", 5 | "version": "0.3.5", 6 | "main": "./lib/marked.js", 7 | "bin": "./bin/marked", 8 | "man": "./man/marked.1", 9 | "preferGlobal": true, 10 | "repository": "git://github.com/chjj/marked.git", 11 | "homepage": "https://github.com/chjj/marked", 12 | "bugs": { "url": "http://github.com/chjj/marked/issues" }, 13 | "license": "MIT", 14 | "keywords": ["markdown", "markup", "html"], 15 | "tags": ["markdown", "markup", "html"], 16 | "devDependencies": { 17 | "markdown": "*", 18 | "showdown": "*", 19 | "gulp": "^3.8.11", 20 | "gulp-uglify": "^1.1.0", 21 | "gulp-concat": "^2.5.2" 22 | }, 23 | "scripts": { "test": "node test", "bench": "node test --bench" } 24 | } 25 | -------------------------------------------------------------------------------- /www/templates/search.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | 13 |

{{blog.title}}

14 |

简介: {{blog.description}}

15 | 16 |
17 |
18 |
19 |
20 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/list/animated/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | name: animated 3 | component: ionList 4 | --- 5 |
6 | 7 |

Animated List

8 |
9 | 10 | 11 | 12 | 14 | {{item}} 15 | 25 | 26 | 27 | 28 | 29 |
30 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/toggle/simple/index.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: simple 3 | component: ionToggle 4 | --- 5 | 6 | var app = angular.module('simple', ['ionic']); 7 | app.controller('MainCtrl', function($scope) { 8 | $scope.pizza = { 9 | pepperoni: true, 10 | sausage: false, 11 | anchovies: true, 12 | jalapenos: false 13 | }; 14 | 15 | $scope.toppings = function() { 16 | var toppings = Object.keys($scope.pizza).filter(function(flavor) { 17 | return $scope.pizza[flavor]; 18 | }); 19 | if (toppings.length > 1) { 20 | toppings[toppings.length - 1] = 'and ' + toppings[toppings.length - 1]; 21 | } 22 | if (toppings.length > 2) { 23 | return toppings.join(', '); 24 | } else if (toppings.length) { 25 | return toppings.join(' '); 26 | } else { 27 | return 'nothing'; 28 | } 29 | }; 30 | }); 31 | -------------------------------------------------------------------------------- /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/marked/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "marked", 3 | "version": "0.3.5", 4 | "homepage": "https://github.com/chjj/marked", 5 | "authors": [ 6 | "Christopher Jeffrey " 7 | ], 8 | "description": "A markdown parser built for speed", 9 | "keywords": [ 10 | "markdown", 11 | "markup", 12 | "html" 13 | ], 14 | "main": "lib/marked.js", 15 | "license": "MIT", 16 | "ignore": [ 17 | "**/.*", 18 | "node_modules", 19 | "bower_components", 20 | "app/bower_components", 21 | "test", 22 | "tests" 23 | ], 24 | "_release": "0.3.5", 25 | "_resolution": { 26 | "type": "version", 27 | "tag": "v0.3.5", 28 | "commit": "88ce4df47c4d994dc1b1df1477a21fb893e11ddc" 29 | }, 30 | "_source": "git://github.com/chjj/marked.git", 31 | "_target": "~0.3.1", 32 | "_originalSource": "marked" 33 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/frosted-glass-effect/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } 4 | .messages { 5 | margin: 0; 6 | padding: 0; 7 | list-style-type: none; 8 | } 9 | .messages li { 10 | display: block; 11 | float: left; 12 | clear: both; 13 | margin: 0 0 1rem 0; 14 | padding: 0; 15 | max-width: 65%; 16 | } 17 | .messages li:nth-child(even) { 18 | float: right; 19 | } 20 | .messages li:nth-child(even) img { 21 | float: right; 22 | } 23 | .messages p { 24 | margin: 0; 25 | padding: .6875rem; 26 | border-radius: .75rem; 27 | background: #e6e5eb; 28 | color: #383641; 29 | font-size: .875rem; 30 | } 31 | .messages li:nth-child(even) p { 32 | background: #158ffe; 33 | color: #fff; 34 | } 35 | .messages img { 36 | display: block; 37 | max-width: 65%; 38 | border-radius: .75rem; 39 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/checkbox/simple/index.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: simple 3 | component: ionCheckbox 4 | --- 5 | 6 | var app = angular.module('simple', ['ionic']); 7 | app.controller('CheckboxSimpleCtrl', function($scope) { 8 | $scope.pizza = { 9 | pepperoni: true, 10 | sausage: false, 11 | anchovies: true, 12 | jalapenos: false 13 | }; 14 | 15 | $scope.toppings = function() { 16 | var toppings = Object.keys($scope.pizza).filter(function(flavor) { 17 | return $scope.pizza[flavor]; 18 | }); 19 | if (toppings.length > 1) { 20 | toppings[toppings.length - 1] = 'and ' + toppings[toppings.length - 1]; 21 | } 22 | if (toppings.length > 2) { 23 | return toppings.join(', '); 24 | } else if (toppings.length) { 25 | return toppings.join(' '); 26 | } else { 27 | return 'nothing'; 28 | } 29 | }; 30 | }); 31 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/actionsheet/script.js: -------------------------------------------------------------------------------- 1 | angular.module('ionicApp', ['ionic']) 2 | 3 | .controller('AppCtrl', function ($scope, $ionicActionSheet) { 4 | 5 | $scope.showActionsheet = function () { 6 | 7 | $ionicActionSheet.show({ 8 | titleText: 'ActionSheet Example', 9 | buttons: [ 10 | { 11 | text: 'Share' 12 | }, 13 | { 14 | text: 'Move' 15 | }, 16 | ], 17 | destructiveText: 'Delete', 18 | cancelText: 'Cancel', 19 | cancel: function () { 20 | console.log('CANCELLED'); 21 | }, 22 | buttonClicked: function (index) { 23 | console.log('BUTTON CLICKED', index); 24 | return true; 25 | }, 26 | destructiveButtonClicked: function () { 27 | console.log('DESTRUCT'); 28 | return true; 29 | } 30 | }); 31 | }; 32 | 33 | 34 | }); -------------------------------------------------------------------------------- /www/lib/angular-ui-router/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-ui-router", 3 | "version": "0.2.13", 4 | "main": "./release/angular-ui-router.js", 5 | "dependencies": { 6 | "angular": ">= 1.0.8" 7 | }, 8 | "ignore": [ 9 | "**/.*", 10 | "node_modules", 11 | "bower_components", 12 | "component.json", 13 | "package.json", 14 | "lib", 15 | "config", 16 | "sample", 17 | "test", 18 | "tests", 19 | "ngdoc_assets", 20 | "Gruntfile.js", 21 | "files.js" 22 | ], 23 | "homepage": "https://github.com/angular-ui/ui-router", 24 | "_release": "0.2.13", 25 | "_resolution": { 26 | "type": "version", 27 | "tag": "0.2.13", 28 | "commit": "c3d543aae43d4600512520a0d70723ac31f2cb62" 29 | }, 30 | "_source": "git://github.com/angular-ui/ui-router.git", 31 | "_target": "0.2.13", 32 | "_originalSource": "angular-ui-router" 33 | } -------------------------------------------------------------------------------- /www/lib/github-markdown-css/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "github-markdown-css", 3 | "description": "The minimal amount of CSS to replicate the GitHub Markdown style", 4 | "license": "MIT", 5 | "main": "github-markdown.css", 6 | "keywords": [ 7 | "github", 8 | "markdown", 9 | "md", 10 | "css", 11 | "style", 12 | "stylesheet" 13 | ], 14 | "ignore": [ 15 | "**/.*", 16 | "package.json", 17 | "index.html" 18 | ], 19 | "homepage": "https://github.com/sindresorhus/github-markdown-css", 20 | "version": "2.0.9", 21 | "_release": "2.0.9", 22 | "_resolution": { 23 | "type": "version", 24 | "tag": "2.0.9", 25 | "commit": "0d3c28edca0b172140af74c191f7a0c15703c10a" 26 | }, 27 | "_source": "git://github.com/sindresorhus/github-markdown-css.git", 28 | "_target": "~2.0.9", 29 | "_originalSource": "github-markdown-css", 30 | "_direct": true 31 | } -------------------------------------------------------------------------------- /www/lib/angular-elastic/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-elastic", 3 | "version": "2.5.1", 4 | "description": "Elastic (autosize) textareas for AngularJS, without jQuery dependency.", 5 | "keywords": [ 6 | "angular", 7 | "angularjs", 8 | "textarea", 9 | "elastic", 10 | "autosize" 11 | ], 12 | "homepage": "http://monospaced.github.io/angular-elastic/", 13 | "main": "elastic", 14 | "bugs": "http://github.com/monospaced/angular-elastic/issues", 15 | "license" : "MIT", 16 | "repository" : { 17 | "type" : "git", 18 | "url" : "http://github.com/monospaced/angular-elastic" 19 | }, 20 | "author": { 21 | "name" : "Scott Boyle", 22 | "email" : "scott@monospaced.com", 23 | "url" : "http://scottboyle.co.uk/about" 24 | }, 25 | "files": [ 26 | "elastic.js", 27 | "package.json" 28 | ], 29 | "dependencies": { 30 | "angular": ">=1.0.6" 31 | } 32 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/textInput/floatingLabel/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: floatingLabel 3 | component: itemFloatingLabel 4 | --- 5 | 6 | it('should enter text into floating label inputs', function(){ 7 | var ele = element.all(by.css('label.item-floating-label input, label.item-floating-label textarea')); 8 | ele.get(0).sendKeys('Dr. Pumpernickel'); 9 | ele.get(1).sendKeys('Round House Kicks'); 10 | }); 11 | 12 | it('should add and remove text from floating label inputs', function(){ 13 | var ele = element.all(by.css('label.item-floating-label input, label.item-floating-label textarea')); 14 | 15 | for(var x=0; x<'Dr. Pumpernickel'.length; x++) { 16 | ele.get(0).sendKeys(protractor.Key.BACK_SPACE); 17 | } 18 | 19 | ele.get(1).sendKeys(" To The Face"); 20 | 21 | for(var x=0; x<'Tubthumping'.length; x++) { 22 | ele.get(2).sendKeys(protractor.Key.BACK_SPACE); 23 | } 24 | 25 | }); 26 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/pull-to-refresh/script.js: -------------------------------------------------------------------------------- 1 | angular.module('ionicApp', ['ionic']) 2 | 3 | .controller('MyCtrl', function($scope, $timeout) { 4 | $scope.myTitle = 'Template'; 5 | 6 | $scope.items = ['Item 1', 'Item 2', 'Item 3']; 7 | 8 | 9 | $scope.doRefresh = function() { 10 | 11 | console.log('Refreshing!'); 12 | $timeout( function() { 13 | 14 | $scope.items.push('New Item ' + Math.floor(Math.random() * 1000) + 4); 15 | $scope.items.push('New Item ' + Math.floor(Math.random() * 1000) + 4); 16 | $scope.items.push('New Item ' + Math.floor(Math.random() * 1000) + 4); 17 | $scope.items.push('New Item ' + Math.floor(Math.random() * 1000) + 4); 18 | 19 | //Stop the ion-refresher from spinning 20 | $scope.$broadcast('scroll.refreshComplete'); 21 | 22 | }, 1000); 23 | 24 | }; 25 | 26 | }); -------------------------------------------------------------------------------- /www/templates/login.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

登录

4 |
5 | 6 |
7 |
8 | 9 |
10 |
11 | 15 | 19 | 22 |
23 |
24 |
25 |
26 | -------------------------------------------------------------------------------- /www/lib/highlightjs/styles/androidstudio.css: -------------------------------------------------------------------------------- 1 | /* 2 | Date: 24 Fev 2015 3 | Author: Pedro Oliveira 4 | */ 5 | 6 | .hljs { 7 | color: #a9b7c6; 8 | background: #282b2e; 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | -webkit-text-size-adjust: none; 13 | } 14 | 15 | .hljs-number { 16 | color: #6897BB; 17 | } 18 | 19 | .hljs-keyword, 20 | .hljs-deletion { 21 | color: #cc7832; 22 | } 23 | 24 | .hljs-comment { 25 | color: #808080; 26 | } 27 | 28 | .hljs-annotation { 29 | color: #bbb529; 30 | } 31 | 32 | .hljs-string, 33 | .hljs-addition { 34 | color: #6A8759; 35 | } 36 | 37 | .hljs-function .hljs-title, 38 | .hljs-change { 39 | color: #ffc66d; 40 | } 41 | 42 | .hljs-tag .hljs-title, 43 | .hljs-doctype { 44 | color: #e8bf6a; 45 | } 46 | 47 | .hljs-tag .hljs-attribute { 48 | color: #bababa; 49 | } 50 | 51 | .hljs-tag .hljs-value { 52 | color: #a5c261; 53 | } 54 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/slideBox/appIntro/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: appIntro 3 | component: ionSlideBox 4 | --- 5 | it('should go to slide 2', function(){ 6 | var ele = element(by.css('.right-buttons .button')); 7 | ele.click(); 8 | }); 9 | 10 | it('should go to slide 1', function(){ 11 | var ele = element(by.css('.left-buttons .button')); 12 | ele.click(); 13 | }); 14 | 15 | it('should go to slide 2', function(){ 16 | var ele = element(by.css('.right-buttons .button')); 17 | ele.click(); 18 | }); 19 | 20 | it('should go to slide 3', function(){ 21 | var ele = element(by.css('.right-buttons .button')); 22 | ele.click(); 23 | }); 24 | 25 | it('should go to main app', function(){ 26 | var ele = element(by.css('.right-buttons .button')); 27 | ele.click(); 28 | }); 29 | 30 | it('should start over', function(){ 31 | var ele = element(by.css('ion-nav-view .button')); 32 | ele.click(); 33 | }); 34 | -------------------------------------------------------------------------------- /scss/ionic.app.scss: -------------------------------------------------------------------------------- 1 | /* 2 | To customize the look and feel of Ionic, you can override the variables 3 | in ionic's _variables.scss file. 4 | 5 | For example, you might change some of the default colors: 6 | 7 | $light: #fff !default; 8 | $stable: #f8f8f8 !default; 9 | $positive: #387ef5 !default; 10 | $calm: #11c1f3 !default; 11 | $balanced: #33cd5f !default; 12 | $energized: #ffc900 !default; 13 | $assertive: #ef473a !default; 14 | $royal: #886aea !default; 15 | $dark: #444 !default; 16 | */ 17 | 18 | // The path for our ionicons font files, relative to the built CSS in www/css 19 | $ionicons-font-path: "../lib/ionic/fonts" !default; 20 | 21 | // Include all of Ionic 22 | @import "www/lib/ionic/scss/ionic"; 23 | 24 | -------------------------------------------------------------------------------- /www/lib/ionic/js/angular/service/decorators/location.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @private 3 | */ 4 | IonicModule.config([ 5 | '$provide', 6 | function($provide) { 7 | function $LocationDecorator($location, $timeout) { 8 | 9 | $location.__hash = $location.hash; 10 | //Fix: when window.location.hash is set, the scrollable area 11 | //found nearest to body's scrollTop is set to scroll to an element 12 | //with that ID. 13 | $location.hash = function(value) { 14 | if (isDefined(value) && value.length > 0) { 15 | $timeout(function() { 16 | var scroll = document.querySelector('.scroll-content'); 17 | if (scroll) { 18 | scroll.scrollTop = 0; 19 | } 20 | }, 0, false); 21 | } 22 | return $location.__hash(value); 23 | }; 24 | 25 | return $location; 26 | } 27 | 28 | $provide.decorator('$location', ['$delegate', '$timeout', $LocationDecorator]); 29 | }]); 30 | -------------------------------------------------------------------------------- /www/lib/ionic/js/angular/controller/tabController.js: -------------------------------------------------------------------------------- 1 | IonicModule 2 | .controller('$ionicTab', [ 3 | '$scope', 4 | '$ionicHistory', 5 | '$attrs', 6 | '$location', 7 | '$state', 8 | function($scope, $ionicHistory, $attrs, $location, $state) { 9 | this.$scope = $scope; 10 | 11 | //All of these exposed for testing 12 | this.hrefMatchesState = function() { 13 | return $attrs.href && $location.path().indexOf( 14 | $attrs.href.replace(/^#/, '').replace(/\/$/, '') 15 | ) === 0; 16 | }; 17 | this.srefMatchesState = function() { 18 | return $attrs.uiSref && $state.includes($attrs.uiSref.split('(')[0]); 19 | }; 20 | this.navNameMatchesState = function() { 21 | return this.navViewName && $ionicHistory.isCurrentStateNavView(this.navViewName); 22 | }; 23 | 24 | this.tabMatchesState = function() { 25 | return this.hrefMatchesState() || this.srefMatchesState() || this.navNameMatchesState(); 26 | }; 27 | }]); 28 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/textInput/floatingLabel/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | name: floatingLabel 3 | component: itemFloatingLabel 4 | --- 5 | 6 | 7 |

8 | Text Input: Floating Label 9 |

10 |
11 | 12 | 13 | 14 |
15 | 19 | 23 | 27 |
28 | 29 |
30 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/service/popover/index.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: popover 3 | component: $ionicPopover 4 | --- 5 | 6 | angular.module('popover', ['ionic']) 7 | 8 | .controller('HeaderCtrl', function($scope, $ionicPopover) { 9 | 10 | $scope.openPopover = function($event) { 11 | $scope.popover.show($event); 12 | }; 13 | $ionicPopover.fromTemplateUrl('popover.html', function(popover) { 14 | $scope.popover = popover; 15 | }); 16 | 17 | $scope.openPopover2 = function($event) { 18 | $scope.popover2.show($event); 19 | }; 20 | $ionicPopover.fromTemplateUrl('popover2.html', function(popover) { 21 | $scope.popover2 = popover; 22 | }); 23 | }) 24 | 25 | .controller('PlatformCtrl', function($scope, $ionicPopover) { 26 | 27 | $scope.setPlatform = function(p) { 28 | document.body.classList.remove('platform-ios'); 29 | document.body.classList.remove('platform-android'); 30 | document.body.classList.add('platform-' + p); 31 | }; 32 | 33 | }); 34 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/starter-template/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Ionic Starter Template 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 24 |

{{myTitle}}

25 |
26 | 27 | 28 |

Content

29 |
30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/loading-bar/style.css: -------------------------------------------------------------------------------- 1 | .bar.bar-loading { 2 | display: block; 3 | height: 24px; 4 | /* starts right below a normal header */ 5 | top: 44px; 6 | /* make the text centered vertically and horizontally */ 7 | text-align: center; 8 | padding: 0; 9 | line-height: 24px; 10 | /* transition 'sliding down' (check below)*/ 11 | -webkit-transition: 200ms all; 12 | } 13 | /* 14 | * make the content's top changes animate. 15 | * might not always look good, but looks 16 | * good when our loader is added & removed 17 | */ 18 | 19 | .has-header { 20 | -webkit-transition: 200ms top; 21 | } 22 | .has-header.has-loading { 23 | /* 44px (header) + 24px */ 24 | top: 68px; 25 | } 26 | /* make loading bar slide up/down */ 27 | 28 | .bar-loading.ng-enter, 29 | .bar-loading.ng-leave.ng-leave-active { 30 | height: 0; 31 | border-width: 0px; 32 | } 33 | .bar-loading.ng-enter.ng-enter-active, 34 | .bar-loading.ng-leave { 35 | height: 24px; 36 | border-width: 1px; 37 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/actionsheet/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Ionic Actionsheet 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |

Action Sheet

22 |
23 | 24 | 25 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/sideMenus/simple/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | name: simple 3 | component: ionSideMenus 4 | --- 5 | 6 | 7 | 8 | 9 |
10 |
11 | 12 |
13 |
14 |

15 | Side 16 |

17 |
18 | 19 |

Slide the content or press the button on the header to open a side menu.

20 |
21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 | Close Menu 29 | 30 | 31 | 32 | 33 |
34 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/radio-buttons/script.js: -------------------------------------------------------------------------------- 1 | angular.module('ionicApp', ['ionic']) 2 | 3 | .controller('MainCtrl', function ($scope) { 4 | 5 | $scope.clientSideList = [ 6 | { 7 | text: "Backbone", 8 | value: "bb" 9 | }, 10 | { 11 | text: "Angular", 12 | value: "ng" 13 | }, 14 | { 15 | text: "Ember", 16 | value: "em" 17 | }, 18 | { 19 | text: "Knockout", 20 | value: "ko" 21 | } 22 | ]; 23 | 24 | $scope.serverSideList = [ 25 | { 26 | text: "Go", 27 | value: "go" 28 | }, 29 | { 30 | text: "Python", 31 | value: "py" 32 | }, 33 | { 34 | text: "Ruby", 35 | value: "rb" 36 | }, 37 | { 38 | text: "Java", 39 | value: "jv" 40 | } 41 | ]; 42 | 43 | $scope.data = { 44 | clientSide: 'ng' 45 | }; 46 | 47 | $scope.serverSideChange = function (item) { 48 | console.log("Selected Serverside, text:", item.text, "value:", item.value); 49 | }; 50 | 51 | }); -------------------------------------------------------------------------------- /www/lib/ionic/demos/service/popup/popping/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | name: popping 3 | component: $ionicPopup 4 | --- 5 | 6 | 7 |

Popups

8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 | 21 | 22 | 23 | 26 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/loading-bar/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Ionic Loading Bar 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |

Hello!

22 |
23 | 24 |
25 | Loading... 26 |
27 | 28 | 29 | Toggle me to toggle loading! 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/list/reorderDelete/index.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: reorderDelete 3 | component: ionList 4 | --- 5 | angular.module('reorderDelete', ['ionic']) 6 | .controller('ListCtrl', function($scope, $ionicPopup) { 7 | $scope.data = { 8 | showReorder: false, 9 | showDelete: false 10 | }; 11 | 12 | $scope.items = []; 13 | for (var i = 0; i < 20; i++) { 14 | $scope.items.push(i); 15 | } 16 | 17 | $scope.toggleDelete = function() { 18 | $scope.data.showReorder = false; 19 | $scope.data.showDelete = !$scope.data.showDelete; 20 | }; 21 | $scope.toggleReorder = function() { 22 | $scope.data.showDelete = false; 23 | $scope.data.showReorder = !$scope.data.showReorder; 24 | }; 25 | 26 | $scope.share = function(item) { 27 | alert('Sharing ' + item); 28 | }; 29 | $scope.edit = function(item) { 30 | alert('Editing ' + item); 31 | }; 32 | 33 | $scope.reorderItem = function(item, fromIndex, toIndex) { 34 | $scope.items.splice(fromIndex, 1) 35 | $scope.items.splice(toIndex, 0, item) 36 | }; 37 | }); 38 | -------------------------------------------------------------------------------- /www/lib/ionic/js/angular/service/viewService.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @private 3 | * DEPRECATED, as of v1.0.0-beta14 ------- 4 | */ 5 | IonicModule 6 | .factory('$ionicViewService', ['$ionicHistory', '$log', function($ionicHistory, $log) { 7 | 8 | function warn(oldMethod, newMethod) { 9 | $log.warn('$ionicViewService' + oldMethod + ' is deprecated, please use $ionicHistory' + newMethod + ' instead: http://ionicframework.com/docs/nightly/api/service/$ionicHistory/'); 10 | } 11 | 12 | warn('', ''); 13 | 14 | var methodsMap = { 15 | getCurrentView: 'currentView', 16 | getBackView: 'backView', 17 | getForwardView: 'forwardView', 18 | getCurrentStateName: 'currentStateName', 19 | nextViewOptions: 'nextViewOptions', 20 | clearHistory: 'clearHistory' 21 | }; 22 | 23 | forEach(methodsMap, function(newMethod, oldMethod) { 24 | methodsMap[oldMethod] = function() { 25 | warn('.' + oldMethod, '.' + newMethod); 26 | return $ionicHistory[newMethod].apply(this, arguments); 27 | }; 28 | }); 29 | 30 | return methodsMap; 31 | 32 | }]); 33 | -------------------------------------------------------------------------------- /www/lib/highlightjs/styles/ascetic.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Original style from softwaremaniacs.org (c) Ivan Sagalaev 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: white; 12 | color: black; 13 | -webkit-text-size-adjust: none; 14 | } 15 | 16 | .hljs-string, 17 | .hljs-tag .hljs-value, 18 | .hljs-filter .hljs-argument, 19 | .hljs-addition, 20 | .hljs-change, 21 | .hljs-name, 22 | .apache .hljs-tag, 23 | .apache .hljs-cbracket, 24 | .nginx .hljs-built_in, 25 | .tex .hljs-formula { 26 | color: #888; 27 | } 28 | 29 | .hljs-comment, 30 | .hljs-shebang, 31 | .hljs-doctype, 32 | .hljs-pi, 33 | .hljs-deletion, 34 | .apache .hljs-sqbracket { 35 | color: #ccc; 36 | } 37 | 38 | .hljs-keyword, 39 | .hljs-tag .hljs-title, 40 | .ini .hljs-title, 41 | .lisp .hljs-title, 42 | .http .hljs-title, 43 | .nginx .hljs-title, 44 | .css .hljs-tag, 45 | .hljs-winutils, 46 | .hljs-flow, 47 | .apache .hljs-tag, 48 | .tex .hljs-command, 49 | .hljs-request, 50 | .hljs-status { 51 | font-weight: bold; 52 | } 53 | -------------------------------------------------------------------------------- /www/lib/ionic/js/angular/directive/itemFloatingLabel.js: -------------------------------------------------------------------------------- 1 | 2 | IonicModule 3 | .directive('itemFloatingLabel', function() { 4 | return { 5 | restrict: 'C', 6 | link: function(scope, element) { 7 | var el = element[0]; 8 | var input = el.querySelector('input, textarea'); 9 | var inputLabel = el.querySelector('.input-label'); 10 | 11 | if (!input || !inputLabel) return; 12 | 13 | var onInput = function() { 14 | if (input.value) { 15 | inputLabel.classList.add('has-input'); 16 | } else { 17 | inputLabel.classList.remove('has-input'); 18 | } 19 | }; 20 | 21 | input.addEventListener('input', onInput); 22 | 23 | var ngModelCtrl = jqLite(input).controller('ngModel'); 24 | if (ngModelCtrl) { 25 | ngModelCtrl.$render = function() { 26 | input.value = ngModelCtrl.$viewValue || ''; 27 | onInput(); 28 | }; 29 | } 30 | 31 | scope.$on('$destroy', function() { 32 | input.removeEventListener('input', onInput); 33 | }); 34 | } 35 | }; 36 | }); 37 | -------------------------------------------------------------------------------- /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 | &:not(.visible) .spinner{ 26 | display: none; 27 | } 28 | &.visible { 29 | visibility: visible; 30 | } 31 | &.active { 32 | opacity: 1; 33 | } 34 | 35 | .loading { 36 | padding: $loading-padding; 37 | 38 | border-radius: $loading-border-radius; 39 | background-color: $loading-bg-color; 40 | 41 | color: $loading-text-color; 42 | 43 | text-align: center; 44 | text-overflow: ellipsis; 45 | font-size: $loading-font-size; 46 | 47 | h1, h2, h3, h4, h5, h6 { 48 | color: $loading-text-color; 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/pull-to-refresh/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Ionic Template 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |

Refresher

22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | {{item}} 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /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.woff") format("woff"), /* for WP8 */ 11 | url("#{$ionicons-font-path}/ionicons.svg?v=#{$ionicons-version}#Ionicons") format("svg"); 12 | font-weight: normal; 13 | font-style: normal; 14 | } 15 | 16 | .ion { 17 | display: inline-block; 18 | font-family: $ionicons-font-family; 19 | speak: none; 20 | font-style: normal; 21 | font-weight: normal; 22 | font-variant: normal; 23 | text-transform: none; 24 | text-rendering: auto; 25 | line-height: 1; 26 | -webkit-font-smoothing: antialiased; 27 | -moz-osx-font-smoothing: grayscale; 28 | } 29 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/collectionRepeat/contacts/contacts.html: -------------------------------------------------------------------------------- 1 | --- 2 | name: contacts 3 | component: collectionRepeat 4 | --- 5 | 6 |
7 | 8 |

3000 Contacts B

9 | 10 |
11 | 12 | 15 | 16 | 17 | 18 |
21 | 22 |

{{item.first_name+' '+item.last_name}}

23 |

{{$index}}

24 |
25 | 26 |
27 |
28 |
29 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/thumbnail-list/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Ionic Simple List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |

Canadian Music

22 |
23 | 24 | 25 | 26 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /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 + .radio-content .item-content { 38 | /* style the item content when its checked */ 39 | background: #f7f7f7; 40 | } 41 | 42 | &:checked + .radio-content .radio-icon { 43 | /* show the checkmark icon when its checked */ 44 | visibility: visible; 45 | } 46 | } 47 | 48 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/service/popup/popping/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: popping 3 | component: $ionicPopup 4 | --- 5 | 6 | it('should open confirm popup', function(){ 7 | var ele = element.all(by.css('[ng-click="showConfirm()"]')); 8 | ele.get(0).click(); 9 | }); 10 | 11 | it('should cancel confirm popup', function(){ 12 | var ele = element.all(by.css('.popup-buttons .button')); 13 | ele.get(0).click(); 14 | }); 15 | 16 | it('should open prompt popup and enter input', function(){ 17 | var ele = element.all(by.css('[ng-click="showPrompt()"]')); 18 | ele.get(0).click(); 19 | ele = element(by.model('data.response')); 20 | ele.sendKeys('Waffles'); 21 | }); 22 | 23 | it('should close prompt popup by clicking OK', function(){ 24 | var ele = element.all(by.css('.popup-buttons .button')); 25 | ele.get(1).click(); 26 | }); 27 | 28 | it('should open alert popup', function(){ 29 | var ele = element.all(by.css('[ng-click="showAlert()"]')); 30 | ele.get(0).click(); 31 | }); 32 | 33 | it('should close alert popup', function(){ 34 | var ele = element.all(by.css('.popup-buttons .button')); 35 | ele.get(0).click(); 36 | }); 37 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/google-maps/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Ionic Google Map 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |

Map

23 |
24 | 25 | 26 |
27 |
28 | 29 | 30 | Find Me 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/lists/script.js: -------------------------------------------------------------------------------- 1 | angular.module('ionicApp', ['ionic']) 2 | 3 | .controller('MyCtrl', function ($scope) { 4 | 5 | $scope.data = { 6 | showDelete: false 7 | }; 8 | 9 | $scope.itemButtons = [ 10 | { 11 | text: 'Edit', 12 | type: 'button-assertive', 13 | onTap: function (item) { 14 | alert('Edit Item: ' + item.id); 15 | } 16 | }, 17 | { 18 | text: 'Share', 19 | type: 'button-calm', 20 | onTap: function (item) { 21 | alert('Share Item: ' + item.id); 22 | } 23 | } 24 | ]; 25 | 26 | $scope.onItemDelete = function (item) { 27 | $scope.items.splice($scope.items.indexOf(item), 1); 28 | }; 29 | 30 | $scope.items = [ 31 | { 32 | id: 1 33 | }, 34 | { 35 | id: 2 36 | }, 37 | { 38 | id: 3 39 | }, 40 | { 41 | id: 4 42 | }, 43 | { 44 | id: 5 45 | }, 46 | { 47 | id: 6 48 | }, 49 | { 50 | id: 7 51 | }, 52 | { 53 | id: 8 54 | }, 55 | { 56 | id: 9 57 | }, 58 | { 59 | id: 10 60 | } 61 | ]; 62 | 63 | }); -------------------------------------------------------------------------------- /www/lib/ngCordova/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ngCordova", 3 | "version": "0.1.23-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 | -------------------------------------------------------------------------------- /license.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 Phodal Huang, http://www.phodal.com 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/service/actionSheet/index.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: takeAction 3 | component: $ionicActionSheet 4 | --- 5 | angular.module('takeAction', ['ionic']) 6 | .controller('ActionSheetCtrl', function($scope, $ionicActionSheet) { 7 | $scope.messages = []; 8 | $scope.takeAction = function() { 9 | $ionicActionSheet.show({ 10 | buttons: [ 11 | { text: 'Share ' }, 12 | { text: 'Edit ' } 13 | ], 14 | destructiveText: 'Delete ', 15 | titleText: 'Modify your album', 16 | cancelText: 'Cancel', 17 | cancel: function() { 18 | $scope.message('Cancel'); 19 | return true; 20 | }, 21 | buttonClicked: function(index) { 22 | $scope.message(index === 0 ? 'Share' : 'Edit'); 23 | return true; 24 | }, 25 | destructiveButtonClicked: function() { 26 | $scope.message('Delete'); 27 | return true; 28 | } 29 | }); 30 | }; 31 | $scope.message = function(msg) { 32 | $scope.messages.unshift({ 33 | text: 'User pressed ' + msg 34 | }); 35 | }; 36 | }); 37 | -------------------------------------------------------------------------------- /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. -------------------------------------------------------------------------------- /www/lib/angular-elastic/LICENCE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Monospaced 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. -------------------------------------------------------------------------------- /www/templates/event_create.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 | 8 | 12 |
13 | 14 | 15 | 19 | 20 | 24 | 25 | 28 |
29 |
30 |
31 | -------------------------------------------------------------------------------- /www/lib/marked/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-2014, Christopher Jeffrey (https://github.com/chjj/) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /www/lib/ionic/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2015-present Drifty Co. 2 | http://drifty.com/ 3 | 4 | MIT License 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining 7 | a copy of this software and associated documentation files (the 8 | "Software"), to deal in the Software without restriction, including 9 | without limitation the rights to use, copy, modify, merge, publish, 10 | distribute, sublicense, and/or sell copies of the Software, and to 11 | permit persons to whom the Software is furnished to do so, subject to 12 | the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 19 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 21 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 22 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 23 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /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.23-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 | -------------------------------------------------------------------------------- /www/lib/angular-marked/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-marked", 3 | "authors": [ 4 | "J. Harshbarger" 5 | ], 6 | "description": "AngularJS Markdown using marked.", 7 | "main": "dist/angular-marked.js", 8 | "keywords": [ 9 | "angularjs", 10 | "markdown", 11 | "marked", 12 | "directive", 13 | "filter" 14 | ], 15 | "license": "MIT", 16 | "ignore": [ 17 | "**/.*", 18 | "node_modules", 19 | "bower_components", 20 | ".grunt", 21 | "test", 22 | "tests", 23 | "docs", 24 | "docs-template", 25 | "example" 26 | ], 27 | "dependencies": { 28 | "angular": ">= 1.3.0", 29 | "marked": "~0.3.1" 30 | }, 31 | "devDependencies": { 32 | "angular-mocks": ">= 1.3.0", 33 | "angular-animate": "~1.4.3" 34 | }, 35 | "homepage": "https://github.com/Hypercubed/angular-marked", 36 | "version": "1.0.1", 37 | "_release": "1.0.1", 38 | "_resolution": { 39 | "type": "version", 40 | "tag": "v1.0.1", 41 | "commit": "f16e65befe4592c914218d5a5313299d673dd610" 42 | }, 43 | "_source": "git://github.com/Hypercubed/angular-marked.git", 44 | "_target": "~1.0.1", 45 | "_originalSource": "angular-marked", 46 | "_direct": true 47 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/app-intro-walkthrough/script.js: -------------------------------------------------------------------------------- 1 | angular.module('ionicApp', ['ionic']) 2 | 3 | .config(function ($stateProvider, $urlRouterProvider) { 4 | 5 | $stateProvider 6 | .state('intro', { 7 | url: '/', 8 | templateUrl: 'intro.html', 9 | controller: 'IntroCtrl' 10 | }) 11 | .state('main', { 12 | url: '/main', 13 | templateUrl: 'main.html', 14 | controller: 'MainCtrl' 15 | }); 16 | 17 | $urlRouterProvider.otherwise("/"); 18 | 19 | }) 20 | 21 | .controller('IntroCtrl', function ($scope, $state, $ionicSlideBoxDelegate) { 22 | 23 | // Called to navigate to the main app 24 | $scope.startApp = function () { 25 | $state.go('main'); 26 | }; 27 | $scope.next = function () { 28 | $ionicSlideBoxDelegate.next(); 29 | }; 30 | $scope.previous = function () { 31 | $ionicSlideBoxDelegate.previous(); 32 | }; 33 | 34 | // Called each time the slide changes 35 | $scope.slideChanged = function (index) { 36 | $scope.slideIndex = index; 37 | }; 38 | }) 39 | 40 | .controller('MainCtrl', function ($scope, $state) { 41 | console.log('MainCtrl'); 42 | 43 | $scope.toIntro = function () { 44 | $state.go('intro'); 45 | }; 46 | }); 47 | -------------------------------------------------------------------------------- /www/lib/angular-marked/gruntfile.js: -------------------------------------------------------------------------------- 1 | module.exports = function (grunt) { 2 | 'use strict'; 3 | 4 | grunt.initConfig({ 5 | pkg: grunt.file.readJSON('bower.json'), 6 | 7 | 'gh-pages': { 8 | options: { 9 | base: 'docs' 10 | }, 11 | src: ['**'] 12 | }, 13 | 14 | ngdocs: { 15 | options: { 16 | html5Mode: false, 17 | titleLink: '#/api', 18 | navTemplate: './docs-template/nav.html', 19 | scripts: [ 20 | './bower_components/angular/angular.js', 21 | './bower_components/angular-animate/angular-animate.js', 22 | './bower_components/marked/lib/marked.js', 23 | './dist/<%= pkg.name %>.js', 24 | './docs-template/script.js' 25 | ], 26 | discussions: { 27 | shortName: 'hypercubedgithub', 28 | url: 'http://hypercubed.github.io/<%= pkg.name %>/', 29 | dev: false 30 | } 31 | }, 32 | all: ['lib/<%= pkg.name %>.js'] 33 | } 34 | 35 | }); 36 | 37 | require('load-grunt-tasks')(grunt); 38 | 39 | grunt.registerTask('build', ['ngdocs']); 40 | grunt.registerTask('deploy', ['build', 'gh-pages']); 41 | }; 42 | -------------------------------------------------------------------------------- /www/lib/github-markdown-css/license: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 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/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 | 56 | .button-bar > .button-small { 57 | &:before, 58 | .icon:before { 59 | line-height: 28px; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/service/loading/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | name: complete 3 | component: $ionicLoading 4 | --- 5 |
6 | 7 |

Loading Demo

8 | 9 | Load 10 | 11 |
12 | 13 |
14 | 18 | 22 | 26 | 28 | Hide Backdrop? 29 | 30 |
31 |
32 |
33 | -------------------------------------------------------------------------------- /www/lib/ionic/package.js: -------------------------------------------------------------------------------- 1 | // package metadata file for Meteor.js 2 | var packageName = 'driftyco:ionic'; // https://atmospherejs.com/driftyco/ionic 3 | var where = 'client'; // where to install: 'client' or 'server'. For both, pass nothing. 4 | var version = '1.1.0'; 5 | 6 | Package.describe({ 7 | name: packageName, 8 | version: version, 9 | summary: 'Ionic Framework official Meteor package', 10 | git: 'git@github.com:driftyco/ionic.git' 11 | }); 12 | 13 | Package.onUse(function(api) { 14 | api.versionsFrom(['METEOR@0.9.0', 'METEOR@1.0']); 15 | 16 | api.use('angular:angular@1.4.3', where); 17 | api.use('angular:angular-animate@1.4.3', where); 18 | api.use('angular:angular-sanitize@1.4.3', where); 19 | api.use('angularui:angular-ui-router@0.2.13_3', where); 20 | 21 | // In case the Meteor project has the `fastclick` package, 22 | // Load it first and cancel it (to use Ionic's one) 23 | api.use('urigo:cancel-fastclick@0.0.2', where); 24 | 25 | api.addFiles([ 26 | 'release/css/ionic.css', 27 | 'release/fonts/ionicons.eot', 28 | 'release/fonts/ionicons.svg', 29 | 'release/fonts/ionicons.ttf', 30 | 'release/fonts/ionicons.woff', 31 | 'release/js/ionic.js', 32 | 'release/js/ionic-angular.js' 33 | ], where); 34 | }); 35 | -------------------------------------------------------------------------------- /www/lib/highlightjs/styles/mono-blue.css: -------------------------------------------------------------------------------- 1 | /* 2 | Five-color theme from a single blue hue. 3 | */ 4 | .hljs { 5 | display: block; 6 | overflow-x: auto; 7 | padding: 0.5em; 8 | background: #eaeef3; 9 | -webkit-text-size-adjust: none; 10 | } 11 | 12 | .hljs, 13 | .hljs-list .hljs-built_in { 14 | color: #00193a; 15 | } 16 | 17 | .hljs-keyword, 18 | .hljs-title, 19 | .hljs-important, 20 | .hljs-request, 21 | .hljs-header, 22 | .hljs-doctag { 23 | font-weight: bold; 24 | } 25 | 26 | .hljs-comment, 27 | .hljs-chunk { 28 | color: #738191; 29 | } 30 | 31 | .hljs-string, 32 | .hljs-title, 33 | .hljs-parent, 34 | .hljs-built_in, 35 | .hljs-literal, 36 | .hljs-filename, 37 | .hljs-value, 38 | .hljs-addition, 39 | .hljs-tag, 40 | .hljs-argument, 41 | .hljs-link_label, 42 | .hljs-blockquote, 43 | .hljs-header, 44 | .hljs-name { 45 | color: #0048ab; 46 | } 47 | 48 | .hljs-decorator, 49 | .hljs-prompt, 50 | .hljs-subst, 51 | .hljs-symbol, 52 | .hljs-doctype, 53 | .hljs-regexp, 54 | .hljs-preprocessor, 55 | .hljs-pragma, 56 | .hljs-pi, 57 | .hljs-attribute, 58 | .hljs-attr_selector, 59 | .hljs-xmlDocTag, 60 | .hljs-deletion, 61 | .hljs-shebang, 62 | .hljs-string .hljs-variable, 63 | .hljs-link_url, 64 | .hljs-bullet, 65 | .hljs-sqbracket, 66 | .hljs-phony { 67 | color: #4c81c9; 68 | } 69 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/lists/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Ionic List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 |
24 |

Ionic Delete/Option Buttons

25 |
26 | 27 | 28 | 29 | 30 | 31 | 32 | Item {{ item.id }} 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/popup/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Ionic Popup 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /www/js/services.js: -------------------------------------------------------------------------------- 1 | angular.module('starter.services', []) 2 | 3 | .factory('$localstorage', ['$window', function($window) { 4 | return { 5 | set: function(key, value) { 6 | $window.localStorage[key] = value; 7 | }, 8 | get: function(key, defaultValue) { 9 | return $window.localStorage[key] || defaultValue; 10 | }, 11 | remove: function(key, defaultValue) { 12 | return $window.localStorage.removeItem([key]) || defaultValue; 13 | }, 14 | setObject: function(key, value) { 15 | $window.localStorage[key] = JSON.stringify(value); 16 | }, 17 | getObject: function(key) { 18 | return JSON.parse($window.localStorage[key] || '{}'); 19 | } 20 | } 21 | }]) 22 | 23 | .factory('Blog', function($http, $q) { 24 | return { 25 | async: function(api) { 26 | var def = $q.defer(); 27 | //$http.get(api) 28 | $http({ 29 | method: 'GET', 30 | url: api, 31 | headers: { 32 | 'User-Agent' : 'phodal/2.0 (iOS 8.1, Android 4.4) secret=75456d89c8a654' 33 | } 34 | }) 35 | .success(function (response) { 36 | def.resolve(response); 37 | }).error(function (data, status) { 38 | def.reject("Failed to get albums"); 39 | }); 40 | return def.promise; 41 | } 42 | }; 43 | }); 44 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/slideBox/appIntro/index.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: appIntro 3 | component: ionSlideBox 4 | --- 5 | angular.module('appIntro', ['ionic']) 6 | 7 | .config(function ($stateProvider, $urlRouterProvider) { 8 | 9 | $stateProvider 10 | .state('intro', { 11 | url: '/', 12 | templateUrl: 'intro.html', 13 | controller: 'IntroCtrl' 14 | }) 15 | .state('main', { 16 | url: '/main', 17 | templateUrl: 'main.html', 18 | controller: 'MainCtrl' 19 | }); 20 | 21 | $urlRouterProvider.otherwise("/"); 22 | 23 | }) 24 | 25 | .controller('IntroCtrl', function ($scope, $state, $ionicSlideBoxDelegate) { 26 | 27 | // Called to navigate to the main app 28 | $scope.startApp = function () { 29 | $state.go('main'); 30 | }; 31 | $scope.next = function () { 32 | $ionicSlideBoxDelegate.select($ionicSlideBoxDelegate.next()); 33 | }; 34 | $scope.previous = function () { 35 | $ionicSlideBoxDelegate.select($ionicSlideBoxDelegate.previous()); 36 | }; 37 | 38 | // Called each time the slide changes 39 | $scope.slideChanged = function (index) { 40 | $scope.slideIndex = index; 41 | }; 42 | }) 43 | 44 | .controller('MainCtrl', function ($scope, $state) { 45 | $scope.toIntro = function () { 46 | $state.go('intro'); 47 | }; 48 | }); 49 | -------------------------------------------------------------------------------- /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 | overflow: hidden; 39 | } 40 | 41 | .grade-b .menu-content, 42 | .grade-c .menu-content { 43 | @include box-sizing(content-box); 44 | right: -1px; 45 | left: -1px; 46 | border-right: 1px solid #ccc; 47 | border-left: 1px solid #ccc; 48 | box-shadow: none; 49 | } 50 | 51 | .menu-left { 52 | left: 0; 53 | } 54 | 55 | .menu-right { 56 | right: 0; 57 | } 58 | 59 | .aside-open.aside-resizing .menu-right { 60 | display: none; 61 | } 62 | 63 | .menu-animated { 64 | @include transition-transform($menu-animation-speed ease); 65 | } 66 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/service/popover/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: popover 3 | component: $ionicPopover 4 | --- 5 | 6 | it('should open left side ios popover', function(){ 7 | element(by.css('#ios')).click(); 8 | element(by.css('#icon-btn')).click(); 9 | }); 10 | 11 | it('should close ios popover when clicking backdrop', function(){ 12 | element(by.css('.popover-backdrop.active')).click(); 13 | }); 14 | 15 | it('should open middle ios popover', function(){ 16 | element(by.css('#mid-btn')).click(); 17 | }); 18 | 19 | it('should open right ios popover', function(){ 20 | element(by.css('.popover-backdrop.active')).click(); 21 | element(by.css('#right-btn')).click(); 22 | }); 23 | 24 | it('should open left side android popover', function(){ 25 | element(by.css('.popover-backdrop.active')).click(); 26 | element(by.css('#android')).click(); 27 | element(by.css('#icon-btn')).click(); 28 | }); 29 | 30 | it('should close android popover when clicking backdrop', function(){ 31 | element(by.css('.popover-backdrop.active')).click(); 32 | }); 33 | 34 | it('should open middle android popover', function(){ 35 | element(by.css('#mid-btn')).click(); 36 | }); 37 | 38 | it('should open right android popover', function(){ 39 | element(by.css('.popover-backdrop.active')).click(); 40 | element(by.css('#right-btn')).click(); 41 | }); 42 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/google-maps/script.js: -------------------------------------------------------------------------------- 1 | angular.module('ionicApp', ['ionic']) 2 | 3 | .controller('MapCtrl', function ($scope, $ionicLoading) { 4 | function initialize() { 5 | var mapOptions = { 6 | center: new google.maps.LatLng(43.07493, -89.381388), 7 | zoom: 16, 8 | mapTypeId: google.maps.MapTypeId.ROADMAP 9 | }; 10 | var map = new google.maps.Map(document.getElementById("map"), 11 | mapOptions); 12 | 13 | // Stop the side bar from dragging when mousedown/tapdown on the map 14 | google.maps.event.addDomListener(document.getElementById('map'), 'mousedown', function (e) { 15 | e.preventDefault(); 16 | return false; 17 | }); 18 | 19 | $scope.map = map; 20 | } 21 | google.maps.event.addDomListener(window, 'load', initialize); 22 | 23 | $scope.centerOnMe = function () { 24 | if (!$scope.map) { 25 | return; 26 | } 27 | 28 | $scope.loading = $ionicLoading.show({ 29 | content: 'Getting current location...', 30 | showBackdrop: false 31 | }); 32 | 33 | navigator.geolocation.getCurrentPosition(function (pos) { 34 | $scope.map.setCenter(new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude)); 35 | $scope.loading.hide(); 36 | }, function (error) { 37 | alert('Unable to get location: ' + error.message); 38 | }); 39 | }; 40 | }); -------------------------------------------------------------------------------- /www/lib/ionic/js/angular/service/clickBlock.js: -------------------------------------------------------------------------------- 1 | IonicModule 2 | .factory('$ionicClickBlock', [ 3 | '$document', 4 | '$ionicBody', 5 | '$timeout', 6 | function($document, $ionicBody, $timeout) { 7 | var CSS_HIDE = 'click-block-hide'; 8 | var cbEle, fallbackTimer, pendingShow; 9 | 10 | function preventClick(ev) { 11 | ev.preventDefault(); 12 | ev.stopPropagation(); 13 | } 14 | 15 | function addClickBlock() { 16 | if (pendingShow) { 17 | if (cbEle) { 18 | cbEle.classList.remove(CSS_HIDE); 19 | } else { 20 | cbEle = $document[0].createElement('div'); 21 | cbEle.className = 'click-block'; 22 | $ionicBody.append(cbEle); 23 | cbEle.addEventListener('touchstart', preventClick); 24 | cbEle.addEventListener('mousedown', preventClick); 25 | } 26 | pendingShow = false; 27 | } 28 | } 29 | 30 | function removeClickBlock() { 31 | cbEle && cbEle.classList.add(CSS_HIDE); 32 | } 33 | 34 | return { 35 | show: function(autoExpire) { 36 | pendingShow = true; 37 | $timeout.cancel(fallbackTimer); 38 | fallbackTimer = $timeout(this.hide, autoExpire || 310, false); 39 | addClickBlock(); 40 | }, 41 | hide: function() { 42 | pendingShow = false; 43 | $timeout.cancel(fallbackTimer); 44 | removeClickBlock(); 45 | } 46 | }; 47 | }]); 48 | -------------------------------------------------------------------------------- /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/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ionic", 3 | "version": "1.1.1", 4 | "codename": "yttrium-yeti", 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 | "release/css/ionic.css", 14 | "release/fonts/*", 15 | "release/js/ionic.js", 16 | "release/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 | "ignore": [ 32 | "**/.*", 33 | "CONTRIBUTING.md", 34 | "Gruntfile.js", 35 | "component.json", 36 | "config", 37 | "examples", 38 | "package.json", 39 | "release/js/angular", 40 | "release/js/angular-ui", 41 | "scripts", 42 | "test", 43 | "js/controllers", 44 | "js/ext", 45 | "js/utils", 46 | "js/views", 47 | "js/_license.js", 48 | "js/ionic.js" 49 | ], 50 | "dependencies": { 51 | "angular": "1.4.3", 52 | "angular-animate": "1.4.3", 53 | "angular-sanitize": "1.4.3", 54 | "angular-ui-router": "0.2.13" 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /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 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /www/lib/ionic/js/angular/directive/ngClick.js: -------------------------------------------------------------------------------- 1 | IonicModule 2 | 3 | .config(['$provide', function($provide) { 4 | $provide.decorator('ngClickDirective', ['$delegate', function($delegate) { 5 | // drop the default ngClick directive 6 | $delegate.shift(); 7 | return $delegate; 8 | }]); 9 | }]) 10 | 11 | /** 12 | * @private 13 | */ 14 | .factory('$ionicNgClick', ['$parse', function($parse) { 15 | return function(scope, element, clickExpr) { 16 | var clickHandler = angular.isFunction(clickExpr) ? 17 | clickExpr : 18 | $parse(clickExpr); 19 | 20 | element.on('click', function(event) { 21 | scope.$apply(function() { 22 | clickHandler(scope, {$event: (event)}); 23 | }); 24 | }); 25 | 26 | // Hack for iOS Safari's benefit. It goes searching for onclick handlers and is liable to click 27 | // something else nearby. 28 | element.onclick = noop; 29 | }; 30 | }]) 31 | 32 | .directive('ngClick', ['$ionicNgClick', function($ionicNgClick) { 33 | return function(scope, element, attr) { 34 | $ionicNgClick(scope, element, attr.ngClick); 35 | }; 36 | }]) 37 | 38 | .directive('ionStopEvent', function() { 39 | return { 40 | restrict: 'A', 41 | link: function(scope, element, attr) { 42 | element.bind(attr.ionStopEvent, eventStopPropagation); 43 | } 44 | }; 45 | }); 46 | function eventStopPropagation(e) { 47 | e.stopPropagation(); 48 | } 49 | -------------------------------------------------------------------------------- /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 | 58 | //Disable animate service animations 59 | .slider-slide, 60 | .slider-pager-page { 61 | &.ng-enter, 62 | &.ng-leave, 63 | &.ng-animate { 64 | -webkit-transition: none !important; 65 | transition: none !important; 66 | } 67 | &.ng-animate { 68 | -webkit-animation: none 0s; 69 | animation: none 0s; 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/flickr-search-example/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Ionic Flickr 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |

Flickr Search

23 |
24 | 25 | 33 | 34 | 35 |
36 |
37 | 38 |
39 |
40 |
41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /www/lib/ngCordova/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ngCordova", 3 | "version": "0.1.23-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.23-alpha", 47 | "_resolution": { 48 | "type": "version", 49 | "tag": "v0.1.23-alpha", 50 | "commit": "c4afa3dbbb80b15eded760e039cd2d69da891502" 51 | }, 52 | "_source": "git://github.com/driftyco/ng-cordova.git", 53 | "_target": "~0.1.23-alpha", 54 | "_originalSource": "ngCordova", 55 | "_direct": true 56 | } -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/frosted-glass-effect/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Ionic Frosted Glass 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |

Blurred!

25 |
26 | 27 |
    28 |
  1. 29 |
30 |
31 | 32 | 33 | 34 |
35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/radio-buttons/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Ionic Radio Buttons 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |

Radio Buttons

22 |
23 | 24 | 25 | 26 |
27 | 28 |
29 | Clientside, Selected Value: {{ data.clientSide }} 30 |
31 | 32 | 33 | {{ item.text }} 34 | 35 | 36 |
37 | Serverside, Selected Value: {{ data.serverSide }} 38 |
39 | 40 | 41 | {{ item.text }} 42 | 43 | 44 |
45 | 46 |
47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/list/reorderDelete/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | name: reorderDelete 3 | component: ionList 4 | --- 5 |
6 | 7 | 8 | Delete 9 | 10 |

List

11 | 12 | Reorder 13 | 14 |
15 | 16 | 18 | 20 | 21 | 22 |

Item {{item}}

23 |

Here's an item description.

24 | 26 | Share 27 | 28 | 30 | Edit 31 | 32 | 34 | 35 | 37 | 38 | 39 |
40 |
41 |
42 |
43 | -------------------------------------------------------------------------------- /www/lib/github-markdown-css/readme.md: -------------------------------------------------------------------------------- 1 | # github-markdown-css 2 | 3 | > The minimal amount of CSS to replicate the GitHub Markdown style 4 | 5 | [](http://sindresorhus.com/github-markdown-css) 6 | 7 | ## [Demo](http://sindresorhus.com/github-markdown-css) 8 | 9 | 10 | ## Install 11 | 12 | Download [manually](https://raw.githubusercontent.com/sindresorhus/github-markdown-css/gh-pages/github-markdown.css) or with a package-manager. 13 | 14 | ```sh 15 | $ npm install --save github-markdown-css 16 | ``` 17 | 18 | ```sh 19 | $ bower install --save github-markdown-css 20 | ``` 21 | 22 | 23 | ## Usage 24 | 25 | Import the `github-markdown.css` file and add a `markdown-body` class to the container of your rendered Markdown and set a width for it. GitHub uses `790px` width and `30px` padding. 26 | 27 | ```html 28 | 29 | 37 |
38 |

Unicorns

39 |

All the things

40 |
41 | ``` 42 | 43 | 44 | ## How 45 | 46 | See [`generate-github-markdown-css`](https://github.com/sindresorhus/generate-github-markdown-css) for how it's generated and ability to generate your own. 47 | 48 | 49 | ## Dev 50 | 51 | Run `npm run generate` to update the CSS. 52 | 53 | 54 | ## License 55 | 56 | MIT © [Sindre Sorhus](http://sindresorhus.com) 57 | -------------------------------------------------------------------------------- /www/lib/highlightjs/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2006, Ivan Sagalaev 2 | All rights reserved. 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are met: 5 | 6 | * Redistributions of source code must retain the above copyright 7 | notice, this list of conditions and the following disclaimer. 8 | * Redistributions in binary form must reproduce the above copyright 9 | notice, this list of conditions and the following disclaimer in the 10 | documentation and/or other materials provided with the distribution. 11 | * Neither the name of highlight.js nor the names of its contributors 12 | may be used to endorse or promote products derived from this software 13 | without specific prior written permission. 14 | 15 | THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY 16 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 | DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY 19 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/shrinking-header/script.js: -------------------------------------------------------------------------------- 1 | angular.module('ionicApp', ['ionic']) 2 | 3 | .directive('fakeStatusbar', function () { 4 | return { 5 | restrict: 'E', 6 | replace: true, 7 | template: '
Carrier
3:30 PM
50%
' 8 | }; 9 | }) 10 | 11 | .directive('headerShrink', function ($document) { 12 | var fadeAmt; 13 | 14 | var shrink = function (header, content, amt, max) { 15 | amt = Math.min(44, amt); 16 | fadeAmt = 1 - amt / 44; 17 | ionic.requestAnimationFrame(function () { 18 | header.style[ionic.CSS.TRANSFORM] = 'translate3d(0, -' + amt + 'px, 0)'; 19 | for (var i = 0, j = header.children.length; i < j; i++) { 20 | header.children[i].style.opacity = fadeAmt; 21 | } 22 | }); 23 | }; 24 | 25 | return { 26 | restrict: 'A', 27 | link: function ($scope, $element, $attr) { 28 | var starty = $scope.$eval($attr.headerShrink) || 0; 29 | var shrinkAmt; 30 | 31 | var header = $document[0].body.querySelector('.bar-header'); 32 | var headerHeight = header.offsetHeight; 33 | 34 | $element.bind('scroll', function (e) { 35 | if (e.detail.scrollTop > starty) { 36 | // Start shrinking 37 | shrinkAmt = headerHeight - Math.max(0, (starty + headerHeight) - e.detail.scrollTop); 38 | shrink(header, $element[0], shrinkAmt, headerHeight); 39 | } else { 40 | shrink(header, $element[0], 0, headerHeight); 41 | } 42 | }); 43 | } 44 | }; 45 | }); -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var gutil = require('gulp-util'); 3 | var bower = require('bower'); 4 | var concat = require('gulp-concat'); 5 | var sass = require('gulp-sass'); 6 | var minifyCss = require('gulp-minify-css'); 7 | var rename = require('gulp-rename'); 8 | var sh = require('shelljs'); 9 | 10 | var paths = { 11 | sass: ['./scss/**/*.scss'] 12 | }; 13 | 14 | gulp.task('default', ['sass']); 15 | 16 | gulp.task('sass', function(done) { 17 | gulp.src('./scss/ionic.app.scss') 18 | .pipe(sass({ 19 | errLogToConsole: true 20 | })) 21 | .pipe(gulp.dest('./www/css/')) 22 | .pipe(minifyCss({ 23 | keepSpecialComments: 0 24 | })) 25 | .pipe(rename({ extname: '.min.css' })) 26 | .pipe(gulp.dest('./www/css/')) 27 | .on('end', done); 28 | }); 29 | 30 | gulp.task('watch', function() { 31 | gulp.watch(paths.sass, ['sass']); 32 | }); 33 | 34 | gulp.task('install', ['git-check'], function() { 35 | return bower.commands.install() 36 | .on('log', function(data) { 37 | gutil.log('bower', gutil.colors.cyan(data.id), data.message); 38 | }); 39 | }); 40 | 41 | gulp.task('git-check', function(done) { 42 | if (!sh.which('git')) { 43 | console.log( 44 | ' ' + gutil.colors.red('Git is not installed.'), 45 | '\n Git, the version control system, is required to download Ionic.', 46 | '\n Download git here:', gutil.colors.cyan('http://git-scm.com/downloads') + '.', 47 | '\n Once git is installed, run \'' + gutil.colors.cyan('gulp install') + '\' again.' 48 | ); 49 | process.exit(1); 50 | } 51 | done(); 52 | }); 53 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/tabs-and-navigation/script.js: -------------------------------------------------------------------------------- 1 | angular.module('ionicApp', ['ionic']) 2 | 3 | .config(function ($stateProvider, $urlRouterProvider) { 4 | 5 | $stateProvider 6 | .state('tabs', { 7 | url: "/tab", 8 | abstract: true, 9 | templateUrl: "tabs.html" 10 | }) 11 | .state('tabs.home', { 12 | url: "/home", 13 | views: { 14 | 'home-tab': { 15 | templateUrl: "home.html", 16 | controller: 'HomeTabCtrl' 17 | } 18 | } 19 | }) 20 | .state('tabs.facts', { 21 | url: "/facts", 22 | views: { 23 | 'home-tab': { 24 | templateUrl: "facts.html" 25 | } 26 | } 27 | }) 28 | .state('tabs.facts2', { 29 | url: "/facts2", 30 | views: { 31 | 'home-tab': { 32 | templateUrl: "facts2.html" 33 | } 34 | } 35 | }) 36 | .state('tabs.about', { 37 | url: "/about", 38 | views: { 39 | 'about-tab': { 40 | templateUrl: "about.html" 41 | } 42 | } 43 | }) 44 | .state('tabs.navstack', { 45 | url: "/navstack", 46 | views: { 47 | 'about-tab': { 48 | templateUrl: "nav-stack.html" 49 | } 50 | } 51 | }) 52 | .state('tabs.contact', { 53 | url: "/contact", 54 | views: { 55 | 'contact-tab': { 56 | templateUrl: "contact.html" 57 | } 58 | } 59 | }); 60 | 61 | 62 | $urlRouterProvider.otherwise("/tab/home"); 63 | 64 | }) 65 | 66 | .controller('HomeTabCtrl', function ($scope) { 67 | console.log('HomeTabCtrl'); 68 | }); 69 | -------------------------------------------------------------------------------- /www/lib/ionic/js/angular/service/gesture.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @ngdoc service 3 | * @name $ionicGesture 4 | * @module ionic 5 | * @description An angular service exposing ionic 6 | * {@link ionic.utility:ionic.EventController}'s gestures. 7 | */ 8 | IonicModule 9 | .factory('$ionicGesture', [function() { 10 | return { 11 | /** 12 | * @ngdoc method 13 | * @name $ionicGesture#on 14 | * @description Add an event listener for a gesture on an element. See {@link ionic.utility:ionic.EventController#onGesture}. 15 | * @param {string} eventType The gesture event to listen for. 16 | * @param {function(e)} callback The function to call when the gesture 17 | * happens. 18 | * @param {element} $element The angular element to listen for the event on. 19 | * @param {object} options object. 20 | * @returns {ionic.Gesture} The gesture object (use this to remove the gesture later on). 21 | */ 22 | on: function(eventType, cb, $element, options) { 23 | return window.ionic.onGesture(eventType, cb, $element[0], options); 24 | }, 25 | /** 26 | * @ngdoc method 27 | * @name $ionicGesture#off 28 | * @description Remove an event listener for a gesture on an element. See {@link ionic.utility:ionic.EventController#offGesture}. 29 | * @param {ionic.Gesture} gesture The gesture that should be removed. 30 | * @param {string} eventType The gesture event to remove the listener for. 31 | * @param {function(e)} callback The listener to remove. 32 | */ 33 | off: function(gesture, eventType, cb) { 34 | return window.ionic.offGesture(gesture, eventType, cb); 35 | } 36 | }; 37 | }]); 38 | -------------------------------------------------------------------------------- /www/lib/angular-marked/karma.conf.js: -------------------------------------------------------------------------------- 1 | // Karma configuration 2 | // http://karma-runner.github.io/0.10/config/configuration-file.html 3 | 4 | module.exports = function (config) { 5 | config.set({ 6 | // base path, that will be used to resolve files and exclude 7 | basePath: '', 8 | 9 | // testing framework to use (jasmine/mocha/qunit/...) 10 | frameworks: ['jasmine'], 11 | 12 | preprocessors: { '*/.html': [] }, 13 | 14 | // list of files / patterns to load in the browser 15 | files: [ 16 | 'bower_components/angular/angular.js', 17 | 'bower_components/angular-mocks/angular-mocks.js', 18 | 'dist/angular-marked.min.js', 19 | 'bower_components/marked/lib/marked.js', 20 | 'test/**/*.js' 21 | ], 22 | 23 | // list of files / patterns to exclude 24 | exclude: [], 25 | 26 | progress: ['dots'], 27 | 28 | // web server port 29 | port: 8080, 30 | 31 | // level of logging 32 | // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG 33 | logLevel: config.LOG_INFO, 34 | 35 | // enable / disable watching file and executing tests whenever any file changes 36 | autoWatch: false, 37 | 38 | // Start these browsers, currently available: 39 | // - Chrome 40 | // - ChromeCanary 41 | // - Firefox 42 | // - Opera 43 | // - Safari (only Mac) 44 | // - PhantomJS 45 | // - IE (only Windows) 46 | browsers: ['PhantomJS', 'Chrome'], 47 | 48 | // Continuous Integration mode 49 | // if true, it capture browsers, run tests and exit 50 | singleRun: true 51 | }); 52 | }; 53 | -------------------------------------------------------------------------------- /www/css/style.css: -------------------------------------------------------------------------------- 1 | /* Empty. Add your own CSS if you like */ 2 | .blogDetail img { 3 | width: 100%; 4 | } 5 | 6 | .blogDetail h2 { 7 | font-size: 1.5em; 8 | } 9 | 10 | .blogDetail h3 { 11 | font-size: 1.2em; 12 | } 13 | /* Hemisu Dark */ 14 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 15 | /* Original theme - http://noahfrederick.com/vim-color-scheme-hemisu/ */ 16 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 17 | .hemisu-comment, pre .comment, pre .xml .doctype, pre .html .doctype { 18 | color: #999999; 19 | } 20 | 21 | .hemisu-accent1, pre .number, pre .ruby .keyword { 22 | color: #538192; 23 | } 24 | 25 | .hemisu-accent2, pre .string, pre .regexp, pre .xml .value, pre .html .value { 26 | color: #739200; 27 | } 28 | 29 | .hemisu-accent3, pre .keyword, pre .title, pre .constant, pre .xml .tag, pre .html .tag, pre .css .rules .attribute { 30 | color: #ff0055; 31 | } 32 | 33 | .hemisu-accent4 { 34 | color: #503d15; 35 | } 36 | 37 | 38 | @font-face { 39 | font-family: InconsolataPower; 40 | src: url("Inconsolata.otf") format("opentype"); 41 | } 42 | 43 | pre code { 44 | display: block; 45 | background: white; 46 | color: #111111; 47 | font-family: Menlo, Monaco, Consolas, monospace; 48 | line-height: 1.5; 49 | border: 1px solid #ccc; 50 | padding: 10px; 51 | font-size: 12px; 52 | } 53 | .markdown-body pre code { 54 | font-family: InconsolataPower, Menlo, Monaco, Consolas, monospace; 55 | } 56 | pre .xml .tag .title { 57 | color: #111111; 58 | } 59 | pre .html .tag .title { 60 | color: #111111; 61 | } 62 | 63 | .markdown-body pre code, 64 | .markdown-body pre { 65 | word-wrap: break-word; 66 | } 67 | -------------------------------------------------------------------------------- /www/lib/angular-marked/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-marked", 3 | "version": "1.0.1", 4 | "description": "AngularJS Markdown using marked.", 5 | "main": "lib/angular-marked.js", 6 | "directories": { 7 | "test": "test" 8 | }, 9 | "dependencies": { 10 | "marked": "^0.3.3" 11 | }, 12 | "devDependencies": { 13 | "browserify": "^12.0.1", 14 | "grunt": "^0.4.4", 15 | "grunt-gh-pages": "^0.9.1", 16 | "grunt-ngdocs": "^0.2.5", 17 | "karma": "^0.13.15", 18 | "karma-chrome-launcher": "^0.1.3", 19 | "karma-jasmine": "^0.1.5", 20 | "karma-phantomjs-launcher": "^0.1.4", 21 | "load-grunt-tasks": "^0.4.0", 22 | "semistandard": "^7.0.2", 23 | "uglifyjs": "^2.4.10" 24 | }, 25 | "scripts": { 26 | "browserify": "browserify lib/angular-marked.js -s angular-marked -o dist/angular-marked.js -x marked", 27 | "uglify": "uglifyjs dist/angular-marked.js -o dist/angular-marked.min.js", 28 | "compile": "npm run browserify && npm run uglify", 29 | "ngdocs": "grunt ngdocs", 30 | "build": "npm run compile && npm run ngdocs", 31 | "lint": "semistandard lib/*.js test/**/*.js", 32 | "test": "npm run compile && karma start --single-run --browsers PhantomJS", 33 | "check": "npm run lint && npm run test" 34 | }, 35 | "repository": { 36 | "type": "git", 37 | "url": "git://github.com/Hypercubed/angular-marked.git" 38 | }, 39 | "keywords": [ 40 | "marked", 41 | "markdown" 42 | ], 43 | "author": "J. Harshbarger", 44 | "license": "MIT", 45 | "bugs": { 46 | "url": "https://github.com/Hypercubed/angular-marked/issues" 47 | }, 48 | "homepage": "https://github.com/Hypercubed/angular-marked" 49 | } 50 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/tabs/tabsAndNav/index.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: tabsAndNav 3 | component: ionTabs 4 | --- 5 | angular.module('tabsAndNav', ['ionic']) 6 | .config(function ($stateProvider, $urlRouterProvider) { 7 | 8 | $stateProvider 9 | .state('tabs', { 10 | url: "/tab", 11 | abstract: true, 12 | templateUrl: "tabs.html" 13 | }) 14 | .state('tabs.home', { 15 | url: "/home", 16 | views: { 17 | 'home-tab': { 18 | templateUrl: "home.html", 19 | controller: 'HomeTabCtrl' 20 | } 21 | } 22 | }) 23 | .state('tabs.facts', { 24 | url: "/facts", 25 | views: { 26 | 'home-tab': { 27 | templateUrl: "facts.html" 28 | } 29 | } 30 | }) 31 | .state('tabs.facts2', { 32 | url: "/facts2", 33 | views: { 34 | 'home-tab': { 35 | templateUrl: "facts2.html" 36 | } 37 | } 38 | }) 39 | .state('tabs.about', { 40 | url: "/about", 41 | views: { 42 | 'about-tab': { 43 | templateUrl: "about.html" 44 | } 45 | } 46 | }) 47 | .state('tabs.navstack', { 48 | url: "/navstack", 49 | views: { 50 | 'about-tab': { 51 | templateUrl: "nav-stack.html" 52 | } 53 | } 54 | }) 55 | .state('tabs.contact', { 56 | url: "/contact", 57 | views: { 58 | 'contact-tab': { 59 | templateUrl: "contact.html" 60 | } 61 | } 62 | }); 63 | 64 | 65 | $urlRouterProvider.otherwise("/tab/home"); 66 | 67 | }) 68 | 69 | .controller('HomeTabCtrl', function ($scope) { 70 | console.log('We have arrived at HomeTabCtrl.'); 71 | }); 72 | -------------------------------------------------------------------------------- /www/lib/ionic/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ionic", 3 | "version": "1.1.1", 4 | "codename": "yttrium-yeti", 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 | "release/css/ionic.css", 14 | "release/fonts/*", 15 | "release/js/ionic.js", 16 | "release/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 | "ignore": [ 32 | "**/.*", 33 | "CONTRIBUTING.md", 34 | "Gruntfile.js", 35 | "component.json", 36 | "config", 37 | "examples", 38 | "package.json", 39 | "release/js/angular", 40 | "release/js/angular-ui", 41 | "scripts", 42 | "test", 43 | "js/controllers", 44 | "js/ext", 45 | "js/utils", 46 | "js/views", 47 | "js/_license.js", 48 | "js/ionic.js" 49 | ], 50 | "dependencies": { 51 | "angular": "1.4.3", 52 | "angular-animate": "1.4.3", 53 | "angular-sanitize": "1.4.3", 54 | "angular-ui-router": "0.2.13" 55 | }, 56 | "_release": "1.1.1", 57 | "_resolution": { 58 | "type": "version", 59 | "tag": "v1.1.1", 60 | "commit": "3adb7fc73ff32ce3db3102286efd58f722fa8c60" 61 | }, 62 | "_source": "git://github.com/driftyco/ionic.git", 63 | "_target": "~1.1.1", 64 | "_originalSource": "ionic", 65 | "_direct": true 66 | } -------------------------------------------------------------------------------- /www/templates/menu.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |

PHODAL

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 | -------------------------------------------------------------------------------- /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/demos/old/checkbox/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Ionic Checkboxes 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |

Checkboxes

22 |
23 | 24 | 25 | 26 |
27 | 28 | 29 | {{ item.text }} 30 | 31 | 32 |
33 |

34 |       
35 | 36 |
37 | Notifications 38 |
39 | 40 | 41 | Push Notifications 42 | 43 | 44 |
45 |

46 |       
47 | 48 | 49 | Newsletter 50 | 51 | 52 |
53 |

54 |       
55 | 56 |
57 | 58 |
59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /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/js/angular/service/templateLoader.js: -------------------------------------------------------------------------------- 1 | IonicModule 2 | .factory('$ionicTemplateLoader', [ 3 | '$compile', 4 | '$controller', 5 | '$http', 6 | '$q', 7 | '$rootScope', 8 | '$templateCache', 9 | function($compile, $controller, $http, $q, $rootScope, $templateCache) { 10 | 11 | return { 12 | load: fetchTemplate, 13 | compile: loadAndCompile 14 | }; 15 | 16 | function fetchTemplate(url) { 17 | return $http.get(url, {cache: $templateCache}) 18 | .then(function(response) { 19 | return response.data && response.data.trim(); 20 | }); 21 | } 22 | 23 | function loadAndCompile(options) { 24 | options = extend({ 25 | template: '', 26 | templateUrl: '', 27 | scope: null, 28 | controller: null, 29 | locals: {}, 30 | appendTo: null 31 | }, options || {}); 32 | 33 | var templatePromise = options.templateUrl ? 34 | this.load(options.templateUrl) : 35 | $q.when(options.template); 36 | 37 | return templatePromise.then(function(template) { 38 | var controller; 39 | var scope = options.scope || $rootScope.$new(); 40 | 41 | //Incase template doesn't have just one root element, do this 42 | var element = jqLite('
').html(template).contents(); 43 | 44 | if (options.controller) { 45 | controller = $controller( 46 | options.controller, 47 | extend(options.locals, { 48 | $scope: scope 49 | }) 50 | ); 51 | element.children().data('$ngControllerController', controller); 52 | } 53 | if (options.appendTo) { 54 | jqLite(options.appendTo).append(element); 55 | } 56 | 57 | $compile(element)(scope); 58 | 59 | return { 60 | element: element, 61 | scope: scope 62 | }; 63 | }); 64 | } 65 | 66 | }]); 67 | -------------------------------------------------------------------------------- /www/lib/highlightjs/styles/codepen-embed.css: -------------------------------------------------------------------------------- 1 | /* 2 | codepen.io Embed Theme 3 | Author: Justin Perry 4 | Original theme - https://github.com/chriskempson/tomorrow-theme 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #222; 12 | color: #fff; 13 | font-family: Menlo, Monaco, 'Andale Mono', 'Lucida Console', 'Courier New', monospace; 14 | -webkit-text-size-adjust: none; 15 | } 16 | 17 | .hljs-comment, 18 | .hljs-title { 19 | color: #777; 20 | } 21 | 22 | .hljs-variable, 23 | .hljs-attribute, 24 | .hljs-tag, 25 | .hljs-regexp, 26 | .hljs-name, 27 | .ruby .constant, 28 | .xml .tag .title, 29 | .xml .pi, 30 | .xml .doctype, 31 | .html .doctype { 32 | color: #ab875d; 33 | } 34 | 35 | .css .value { 36 | color: #cd6a51; 37 | } 38 | 39 | .css .value .function, 40 | .css .value .string { 41 | color: #a67f59; 42 | } 43 | 44 | .css .value .number { 45 | color: #9b869c; 46 | } 47 | 48 | .css .id, 49 | .css .class, 50 | .css-pseudo, 51 | .css .selector, 52 | .css .tag { 53 | color: #dfc48c; 54 | } 55 | 56 | .hljs-number, 57 | .hljs-preprocessor, 58 | .hljs-built_in, 59 | .hljs-literal, 60 | .hljs-params, 61 | .hljs-constant { 62 | color: #ab875d; 63 | } 64 | 65 | .ruby .class .title, 66 | .css .rules .attribute { 67 | color: #9b869b; 68 | } 69 | 70 | .hljs-string, 71 | .hljs-value, 72 | .hljs-inheritance, 73 | .hljs-header, 74 | .ruby .symbol, 75 | .xml .cdata { 76 | color: #8f9c6c; 77 | } 78 | 79 | .css .hexcolor { 80 | color: #cd6a51; 81 | } 82 | 83 | .function, 84 | .python .decorator, 85 | .python .title, 86 | .ruby .function .title, 87 | .ruby .title .keyword, 88 | .perl .sub, 89 | .javascript .title, 90 | .coffeescript .title { 91 | color: #fff; 92 | } 93 | 94 | .hljs-keyword, 95 | .javascript .function { 96 | color: #8f9c6c; 97 | } 98 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/toggle/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Ionic Toggles 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |

Toggles

22 |
23 | 24 | 25 | 26 |
27 | 28 |
29 | Settings 30 |
31 | 32 | 33 | {{ item.text }} 34 | 35 | 36 |
37 |

38 |       
39 | 40 |
41 | Notifications 42 |
43 | 44 | 45 | Push Notifications 46 | 47 | 48 |
49 |

50 |       
51 | 52 | 53 | Newsletter 54 | 55 | 56 |
57 |

58 |       
59 | 60 |
61 | 62 |
63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /www/lib/highlightjs/styles/hopscotch.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Hopscotch 3 | * by Jan T. Sott 4 | * https://github.com/idleberg/Hopscotch 5 | * 6 | * This work is licensed under the Creative Commons CC0 1.0 Universal License 7 | */ 8 | 9 | /* Comment */ 10 | .hljs-comment, 11 | .hljs-title { 12 | color: #989498; 13 | } 14 | 15 | /* Red */ 16 | .hljs-variable, 17 | .hljs-attribute, 18 | .hljs-tag, 19 | .hljs-regexp, 20 | .ruby .hljs-constant, 21 | .xml .hljs-tag .hljs-title, 22 | .xml .hljs-pi, 23 | .xml .hljs-doctype, 24 | .html .hljs-doctype, 25 | .css .hljs-id, 26 | .css .hljs-class, 27 | .css .hljs-pseudo { 28 | color: #dd464c; 29 | } 30 | 31 | /* Orange */ 32 | .hljs-number, 33 | .hljs-preprocessor, 34 | .hljs-built_in, 35 | .hljs-literal, 36 | .hljs-params, 37 | .hljs-constant { 38 | color: #fd8b19; 39 | } 40 | 41 | /* Yellow */ 42 | .ruby .hljs-class .hljs-title, 43 | .css .hljs-rules .hljs-attribute { 44 | color: #fdcc59; 45 | } 46 | 47 | /* Green */ 48 | .hljs-string, 49 | .hljs-value, 50 | .hljs-inheritance, 51 | .hljs-header, 52 | .ruby .hljs-symbol, 53 | .xml .hljs-cdata { 54 | color: #8fc13e; 55 | } 56 | 57 | /* Aqua */ 58 | .css .hljs-hexcolor { 59 | color: #149b93; 60 | } 61 | 62 | /* Blue */ 63 | .hljs-function, 64 | .python .hljs-decorator, 65 | .python .hljs-title, 66 | .ruby .hljs-function .hljs-title, 67 | .ruby .hljs-title .hljs-keyword, 68 | .perl .hljs-sub, 69 | .javascript .hljs-title, 70 | .coffeescript .hljs-title { 71 | color: #1290bf; 72 | } 73 | 74 | /* Purple */ 75 | .hljs-keyword, 76 | .javascript .hljs-function { 77 | color: #c85e7c; 78 | } 79 | 80 | .hljs { 81 | display: block; 82 | background: #322931; 83 | color: #b9b5b8; 84 | padding: 0.5em; 85 | } 86 | 87 | .coffeescript .javascript, 88 | .javascript .xml, 89 | .tex .hljs-formula, 90 | .xml .javascript, 91 | .xml .vbscript, 92 | .xml .css, 93 | .xml .hljs-cdata { 94 | opacity: 0.5; 95 | } 96 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/swipeable-cards/script.js: -------------------------------------------------------------------------------- 1 | 2 | angular.module('cardsApp', ['ionic', 'ionic.contrib.ui.cards']) 3 | 4 | .directive('noScroll', function($document) { 5 | 6 | return { 7 | restrict: 'A', 8 | link: function($scope, $element, $attr) { 9 | 10 | $document.on('touchmove', function(e) { 11 | e.preventDefault(); 12 | }); 13 | } 14 | }; 15 | }) 16 | 17 | .controller('CardsCtrl', function($scope, $ionicSwipeCardDelegate) { 18 | var cardTypes = [ 19 | { title: 'Swipe down to clear the card', image: 'http://ionicframework.com.s3.amazonaws.com/demos/ionic-contrib-swipecards/pic.png' }, 20 | { title: 'Where is this?', image: 'http://ionicframework.com.s3.amazonaws.com/demos/ionic-contrib-swipecards/pic.png' }, 21 | { title: 'What kind of grass is this?', image: 'http://ionicframework.com.s3.amazonaws.com/demos/ionic-contrib-swipecards/pic2.png' }, 22 | { title: 'What beach is this?', image: 'http://ionicframework.com.s3.amazonaws.com/demos/ionic-contrib-swipecards/pic3.png' }, 23 | { title: 'What kind of clouds are these?', image: 'http://ionicframework.com.s3.amazonaws.com/demos/ionic-contrib-swipecards/pic4.png' } 24 | ]; 25 | 26 | $scope.cards = Array.prototype.slice.call(cardTypes, 0, 0); 27 | 28 | $scope.cardSwiped = function(index) { 29 | $scope.addCard(); 30 | }; 31 | 32 | $scope.cardDestroyed = function(index) { 33 | $scope.cards.splice(index, 1); 34 | }; 35 | 36 | $scope.addCard = function() { 37 | var newCard = cardTypes[Math.floor(Math.random() * cardTypes.length)]; 38 | newCard.id = Math.random(); 39 | $scope.cards.push(angular.extend({}, newCard)); 40 | }; 41 | }) 42 | 43 | .controller('CardCtrl', function($scope, $ionicSwipeCardDelegate) { 44 | $scope.goAway = function() { 45 | var card = $ionicSwipeCardDelegate.getSwipebleCard($scope); 46 | card.swipe(); 47 | }; 48 | }); 49 | 50 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/directive/sideMenus/navWithMenu/index.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: navWithMenu 3 | component: ionSideMenus 4 | --- 5 | angular.module('navWithMenu', ['ionic']) 6 | .config(function($stateProvider, $urlRouterProvider) { 7 | $stateProvider 8 | 9 | .state('app', { 10 | url: "/app", 11 | abstract: true, 12 | templateUrl: "templates/menu.html", 13 | controller: 'AppCtrl' 14 | }) 15 | 16 | .state('app.search', { 17 | url: "/search", 18 | views: { 19 | 'menuContent' :{ 20 | templateUrl: "templates/search.html" 21 | } 22 | } 23 | }) 24 | 25 | .state('app.browse', { 26 | url: "/browse", 27 | views: { 28 | 'menuContent' :{ 29 | templateUrl: "templates/browse.html" 30 | } 31 | } 32 | }) 33 | .state('app.playlists', { 34 | url: "/playlists", 35 | views: { 36 | 'menuContent' :{ 37 | templateUrl: "templates/playlists.html", 38 | controller: 'PlaylistsCtrl' 39 | } 40 | } 41 | }) 42 | 43 | .state('app.single', { 44 | url: "/playlists/:playlistId", 45 | views: { 46 | 'menuContent' :{ 47 | templateUrl: "templates/playlist.html", 48 | controller: 'PlaylistCtrl' 49 | } 50 | } 51 | }); 52 | // if none of the above states are matched, use this as the fallback 53 | $urlRouterProvider.otherwise('/app/playlists'); 54 | }) 55 | 56 | .controller('AppCtrl', function($scope) { 57 | }) 58 | 59 | .controller('PlaylistsCtrl', function($scope) { 60 | $scope.playlists = [ 61 | { title: 'Reggae', id: 1 }, 62 | { title: 'Chill', id: 2 }, 63 | { title: 'Dubstep', id: 3 }, 64 | { title: 'Indie', id: 4 }, 65 | { title: 'Rap', id: 5 }, 66 | { title: 'Cowbell', id: 6 } 67 | ]; 68 | }) 69 | 70 | .controller('PlaylistCtrl', function($scope, $stateParams) { 71 | }) 72 | -------------------------------------------------------------------------------- /www/lib/ionic/js/angular/directive/itemOptionButton.js: -------------------------------------------------------------------------------- 1 | var ITEM_TPL_OPTION_BUTTONS = 2 | ''; 4 | /** 5 | * @ngdoc directive 6 | * @name ionOptionButton 7 | * @parent ionic.directive:ionItem 8 | * @module ionic 9 | * @restrict E 10 | * @description 11 | * Creates an option button inside a list item, that is visible when the item is swiped 12 | * to the left by the user. Swiped open option buttons can be hidden with 13 | * {@link ionic.service:$ionicListDelegate#closeOptionButtons $ionicListDelegate.closeOptionButtons}. 14 | * 15 | * Can be assigned any button class. 16 | * 17 | * See {@link ionic.directive:ionList} for a complete example & explanation. 18 | * 19 | * @usage 20 | * 21 | * ```html 22 | * 23 | * 24 | * I love kittens! 25 | * Share 26 | * Edit 27 | * 28 | * 29 | * ``` 30 | */ 31 | IonicModule.directive('ionOptionButton', [function() { 32 | function stopPropagation(e) { 33 | e.stopPropagation(); 34 | } 35 | return { 36 | restrict: 'E', 37 | require: '^ionItem', 38 | priority: Number.MAX_VALUE, 39 | compile: function($element, $attr) { 40 | $attr.$set('class', ($attr['class'] || '') + ' button', true); 41 | return function($scope, $element, $attr, itemCtrl) { 42 | if (!itemCtrl.optionsContainer) { 43 | itemCtrl.optionsContainer = jqLite(ITEM_TPL_OPTION_BUTTONS); 44 | itemCtrl.$element.append(itemCtrl.optionsContainer); 45 | } 46 | itemCtrl.optionsContainer.append($element); 47 | 48 | itemCtrl.$element.addClass('item-right-editable'); 49 | 50 | //Don't bubble click up to main .item 51 | $element.on('click', stopPropagation); 52 | }; 53 | } 54 | }; 55 | }]); 56 | -------------------------------------------------------------------------------- /www/lib/ionic/demos/old/collection-repeat/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Collection-Repeat: Early Preview 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |

3000 Contacts

18 |
19 | Scroll Bottom 20 |
21 |
22 | 23 | 27 | 31 | 32 | 33 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /www/lib/ionic/js/angular/service/angularOverrides.js: -------------------------------------------------------------------------------- 1 | 2 | jqLite.prototype.addClass = function(cssClasses) { 3 | var x, y, cssClass, el, splitClasses, existingClasses; 4 | if (cssClasses && cssClasses != 'ng-scope' && cssClasses != 'ng-isolate-scope') { 5 | for (x = 0; x < this.length; x++) { 6 | el = this[x]; 7 | if (el.setAttribute) { 8 | 9 | if (cssClasses.indexOf(' ') < 0 && el.classList.add) { 10 | el.classList.add(cssClasses); 11 | } else { 12 | existingClasses = (' ' + (el.getAttribute('class') || '') + ' ') 13 | .replace(/[\n\t]/g, " "); 14 | splitClasses = cssClasses.split(' '); 15 | 16 | for (y = 0; y < splitClasses.length; y++) { 17 | cssClass = splitClasses[y].trim(); 18 | if (existingClasses.indexOf(' ' + cssClass + ' ') === -1) { 19 | existingClasses += cssClass + ' '; 20 | } 21 | } 22 | el.setAttribute('class', existingClasses.trim()); 23 | } 24 | } 25 | } 26 | } 27 | return this; 28 | }; 29 | 30 | jqLite.prototype.removeClass = function(cssClasses) { 31 | var x, y, splitClasses, cssClass, el; 32 | if (cssClasses) { 33 | for (x = 0; x < this.length; x++) { 34 | el = this[x]; 35 | if (el.getAttribute) { 36 | if (cssClasses.indexOf(' ') < 0 && el.classList.remove) { 37 | el.classList.remove(cssClasses); 38 | } else { 39 | splitClasses = cssClasses.split(' '); 40 | 41 | for (y = 0; y < splitClasses.length; y++) { 42 | cssClass = splitClasses[y]; 43 | el.setAttribute('class', ( 44 | (" " + (el.getAttribute('class') || '') + " ") 45 | .replace(/[\n\t]/g, " ") 46 | .replace(" " + cssClass.trim() + " ", " ")).trim() 47 | ); 48 | } 49 | } 50 | } 51 | } 52 | } 53 | return this; 54 | }; 55 | -------------------------------------------------------------------------------- /www/lib/highlightjs/styles/tomorrow.css: -------------------------------------------------------------------------------- 1 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 2 | 3 | /* Tomorrow Comment */ 4 | .hljs-comment { 5 | color: #8e908c; 6 | } 7 | 8 | /* Tomorrow Red */ 9 | .hljs-variable, 10 | .hljs-attribute, 11 | .hljs-tag, 12 | .hljs-regexp, 13 | .ruby .hljs-constant, 14 | .xml .hljs-tag .hljs-title, 15 | .xml .hljs-pi, 16 | .xml .hljs-doctype, 17 | .html .hljs-doctype, 18 | .css .hljs-id, 19 | .css .hljs-class, 20 | .css .hljs-pseudo { 21 | color: #c82829; 22 | } 23 | 24 | /* Tomorrow Orange */ 25 | .hljs-number, 26 | .hljs-preprocessor, 27 | .hljs-pragma, 28 | .hljs-built_in, 29 | .hljs-literal, 30 | .hljs-params, 31 | .hljs-constant { 32 | color: #f5871f; 33 | } 34 | 35 | /* Tomorrow Yellow */ 36 | .ruby .hljs-class .hljs-title, 37 | .css .hljs-rule .hljs-attribute { 38 | color: #eab700; 39 | } 40 | 41 | /* Tomorrow Green */ 42 | .hljs-string, 43 | .hljs-value, 44 | .hljs-inheritance, 45 | .hljs-header, 46 | .hljs-name, 47 | .ruby .hljs-symbol, 48 | .xml .hljs-cdata { 49 | color: #718c00; 50 | } 51 | 52 | /* Tomorrow Aqua */ 53 | .hljs-title, 54 | .css .hljs-hexcolor { 55 | color: #3e999f; 56 | } 57 | 58 | /* Tomorrow Blue */ 59 | .hljs-function, 60 | .python .hljs-decorator, 61 | .python .hljs-title, 62 | .ruby .hljs-function .hljs-title, 63 | .ruby .hljs-title .hljs-keyword, 64 | .perl .hljs-sub, 65 | .javascript .hljs-title, 66 | .coffeescript .hljs-title { 67 | color: #4271ae; 68 | } 69 | 70 | /* Tomorrow Purple */ 71 | .hljs-keyword, 72 | .javascript .hljs-function { 73 | color: #8959a8; 74 | } 75 | 76 | .hljs { 77 | display: block; 78 | overflow-x: auto; 79 | background: white; 80 | color: #4d4d4c; 81 | padding: 0.5em; 82 | -webkit-text-size-adjust: none; 83 | } 84 | 85 | .coffeescript .javascript, 86 | .javascript .xml, 87 | .tex .hljs-formula, 88 | .xml .javascript, 89 | .xml .vbscript, 90 | .xml .css, 91 | .xml .hljs-cdata { 92 | opacity: 0.5; 93 | } 94 | --------------------------------------------------------------------------------