├── .bowerrc ├── .editorconfig ├── .gitignore ├── README.md ├── bower.json ├── config.xml ├── gulpfile.js ├── hooks ├── README.md ├── after_prepare │ ├── 010_add_platform_class.js │ └── 020_remove_sass_from_platforms.js └── before_platform_add │ └── init_directories.js ├── ionic.project ├── make.sh ├── package.json ├── resources ├── 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-land-xxhdpi-screen.png │ │ ├── drawable-land-xxxhdpi-screen.png │ │ ├── drawable-port-hdpi-screen.png │ │ ├── drawable-port-ldpi-screen.png │ │ ├── drawable-port-mdpi-screen.png │ │ ├── drawable-port-xhdpi-screen.png │ │ ├── drawable-port-xxhdpi-screen.png │ │ └── drawable-port-xxxhdpi-screen.png ├── icon.psd ├── ios │ ├── icon │ │ ├── icon-40.png │ │ ├── icon-40@2x.png │ │ ├── icon-50.png │ │ ├── icon-50@2x.png │ │ ├── icon-60.png │ │ ├── icon-60@2x.png │ │ ├── icon-60@3x.png │ │ ├── icon-72.png │ │ ├── icon-72@2x.png │ │ ├── icon-76.png │ │ ├── icon-76@2x.png │ │ ├── icon-small.png │ │ ├── icon-small@2x.png │ │ ├── icon-small@3x.png │ │ ├── icon.png │ │ └── icon@2x.png │ └── splash │ │ ├── Default-568h@2x~iphone.png │ │ ├── Default-667h.png │ │ ├── Default-736h.png │ │ ├── Default-Landscape-736h.png │ │ ├── Default-Landscape@2x~ipad.png │ │ ├── Default-Landscape~ipad.png │ │ ├── Default-Portrait@2x~ipad.png │ │ ├── Default-Portrait~ipad.png │ │ ├── Default@2x~iphone.png │ │ └── Default~iphone.png └── splash.png ├── scss └── ionic.app.scss └── www ├── css ├── Inconsolata.otf ├── ionic.app.css ├── ionic.app.min.css └── style.css ├── img ├── homepage.png └── ionic.png ├── index.html ├── js ├── app.js ├── controllers.js └── services.js ├── lib ├── angular-animate │ ├── .bower.json │ ├── README.md │ ├── angular-animate.js │ ├── angular-animate.min.js │ ├── angular-animate.min.js.map │ ├── bower.json │ └── package.json ├── angular-highlightjs │ ├── .bower.json │ ├── LICENSE │ ├── README.md │ ├── angular-highlightjs.js │ ├── angular-highlightjs.min.js │ ├── bower.json │ ├── build │ │ ├── angular-highlightjs.js │ │ └── angular-highlightjs.min.js │ └── src │ │ └── angular-highlightjs.js ├── angular-marked │ ├── .bower.json │ ├── README.md │ ├── angular-marked.js │ ├── angular-marked.min.js │ ├── bower.json │ ├── example │ │ └── index.html │ ├── gruntfile.js │ ├── karma.conf.js │ ├── package.json │ └── todo.md ├── angular-sanitize │ ├── .bower.json │ ├── README.md │ ├── angular-sanitize.js │ ├── angular-sanitize.min.js │ ├── angular-sanitize.min.js.map │ ├── bower.json │ └── package.json ├── angular-ui-router │ ├── .bower.json │ ├── CHANGELOG.md │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── README.md │ ├── api │ │ └── angular-ui-router.d.ts │ ├── bower.json │ ├── release │ │ ├── angular-ui-router.js │ │ └── angular-ui-router.min.js │ └── src │ │ ├── common.js │ │ ├── resolve.js │ │ ├── state.js │ │ ├── stateDirectives.js │ │ ├── stateFilters.js │ │ ├── templateFactory.js │ │ ├── urlMatcherFactory.js │ │ ├── urlRouter.js │ │ ├── view.js │ │ ├── viewDirective.js │ │ └── viewScroll.js ├── angular │ ├── .bower.json │ ├── README.md │ ├── angular-csp.css │ ├── angular.js │ ├── angular.min.js │ ├── angular.min.js.gzip │ ├── angular.min.js.map │ ├── bower.json │ └── package.json ├── hammer.min.js ├── highlightjs │ ├── .bower.json │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── bower.json │ ├── component.json │ ├── composer.json │ ├── highlight.pack.js │ └── styles │ │ ├── arta.css │ │ ├── ascetic.css │ │ ├── atelier-dune.dark.css │ │ ├── atelier-dune.light.css │ │ ├── atelier-forest.dark.css │ │ ├── atelier-forest.light.css │ │ ├── atelier-heath.dark.css │ │ ├── atelier-heath.light.css │ │ ├── atelier-lakeside.dark.css │ │ ├── atelier-lakeside.light.css │ │ ├── atelier-seaside.dark.css │ │ ├── atelier-seaside.light.css │ │ ├── brown_paper.css │ │ ├── brown_papersq.png │ │ ├── codepen-embed.css │ │ ├── color-brewer.css │ │ ├── dark.css │ │ ├── default.css │ │ ├── docco.css │ │ ├── far.css │ │ ├── foundation.css │ │ ├── github.css │ │ ├── googlecode.css │ │ ├── hybrid.css │ │ ├── idea.css │ │ ├── ir_black.css │ │ ├── kimbie.dark.css │ │ ├── kimbie.light.css │ │ ├── magula.css │ │ ├── mono-blue.css │ │ ├── monokai.css │ │ ├── monokai_sublime.css │ │ ├── obsidian.css │ │ ├── paraiso.dark.css │ │ ├── paraiso.light.css │ │ ├── pojoaque.css │ │ ├── pojoaque.jpg │ │ ├── railscasts.css │ │ ├── rainbow.css │ │ ├── school_book.css │ │ ├── school_book.png │ │ ├── solarized_dark.css │ │ ├── solarized_light.css │ │ ├── sunburst.css │ │ ├── tomorrow-night-blue.css │ │ ├── tomorrow-night-bright.css │ │ ├── tomorrow-night-eighties.css │ │ ├── tomorrow-night.css │ │ ├── tomorrow.css │ │ ├── vs.css │ │ ├── xcode.css │ │ └── zenburn.css ├── ionic │ ├── .bower.json │ ├── README.md │ ├── bower.json │ ├── css │ │ ├── ionic.css │ │ └── ionic.min.css │ ├── fonts │ │ ├── ionicons.eot │ │ ├── ionicons.svg │ │ ├── ionicons.ttf │ │ └── ionicons.woff │ ├── js │ │ ├── ionic-angular.js │ │ ├── ionic-angular.min.js │ │ ├── ionic.bundle.js │ │ ├── ionic.bundle.min.js │ │ ├── ionic.js │ │ └── ionic.min.js │ └── scss │ │ ├── _action-sheet.scss │ │ ├── _animations.scss │ │ ├── _backdrop.scss │ │ ├── _badge.scss │ │ ├── _bar.scss │ │ ├── _button-bar.scss │ │ ├── _button.scss │ │ ├── _checkbox.scss │ │ ├── _form.scss │ │ ├── _grid.scss │ │ ├── _items.scss │ │ ├── _list.scss │ │ ├── _loaders.scss │ │ ├── _loading.scss │ │ ├── _menu.scss │ │ ├── _mixins.scss │ │ ├── _modal.scss │ │ ├── _platform.scss │ │ ├── _popover.scss │ │ ├── _popup.scss │ │ ├── _progress.scss │ │ ├── _radio.scss │ │ ├── _range.scss │ │ ├── _refresher.scss │ │ ├── _reset.scss │ │ ├── _scaffolding.scss │ │ ├── _select.scss │ │ ├── _slide-box.scss │ │ ├── _spinner.scss │ │ ├── _split-pane.scss │ │ ├── _tabs.scss │ │ ├── _toggle.scss │ │ ├── _transitions.scss │ │ ├── _type.scss │ │ ├── _util.scss │ │ ├── _variables.scss │ │ ├── ionic.scss │ │ └── ionicons │ │ ├── _ionicons-animation.scss │ │ ├── _ionicons-font.scss │ │ ├── _ionicons-icons.scss │ │ ├── _ionicons-variables.scss │ │ └── ionicons.scss ├── marked │ ├── .bower.json │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── bin │ │ └── marked │ ├── bower.json │ ├── component.json │ ├── doc │ │ ├── broken.md │ │ └── todo.md │ ├── index.js │ ├── lib │ │ └── marked.js │ ├── man │ │ └── marked.1 │ ├── marked.min.js │ └── package.json └── ngCordova │ ├── .bower.json │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── dist │ ├── ng-cordova-mocks.js │ ├── ng-cordova-mocks.min.js │ ├── ng-cordova.js │ └── ng-cordova.min.js │ └── package.json ├── templates ├── blog-detail.html ├── tab-about.html ├── tab-blog.html ├── tab-flask.html ├── tab-homepage.html └── tabs.html └── www └── lib ├── angular-animate ├── .bower.json ├── README.md ├── angular-animate.js ├── angular-animate.min.js ├── angular-animate.min.js.map ├── bower.json ├── index.js └── package.json ├── angular-sanitize ├── .bower.json ├── README.md ├── angular-sanitize.js ├── angular-sanitize.min.js ├── angular-sanitize.min.js.map ├── bower.json ├── index.js └── package.json ├── angular-ui-router ├── .bower.json ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── api │ └── angular-ui-router.d.ts ├── bower.json ├── release │ ├── angular-ui-router.js │ └── angular-ui-router.min.js └── src │ ├── common.js │ ├── resolve.js │ ├── state.js │ ├── stateDirectives.js │ ├── stateFilters.js │ ├── templateFactory.js │ ├── urlMatcherFactory.js │ ├── urlRouter.js │ ├── view.js │ ├── viewDirective.js │ └── viewScroll.js ├── angular ├── .bower.json ├── README.md ├── angular-csp.css ├── angular.js ├── angular.min.js ├── angular.min.js.gzip ├── angular.min.js.map ├── bower.json ├── index.js └── package.json └── ionic ├── .bower.json ├── CHANGELOG.md ├── LICENSE ├── README.md ├── bower.json ├── circle.yml ├── demos ├── directive │ ├── checkbox │ │ └── simple │ │ │ ├── index.html │ │ │ ├── index.js │ │ │ └── test.scenario.js │ ├── collectionRepeat │ │ └── contacts │ │ │ ├── contacts.html │ │ │ ├── contacts.js │ │ │ └── test.scenario.js │ ├── footer │ │ └── simple │ │ │ ├── index.html │ │ │ ├── index.js │ │ │ └── test.scenario.js │ ├── header │ │ └── simple │ │ │ ├── index.html │ │ │ ├── index.js │ │ │ └── test.scenario.js │ ├── infiniteScroll │ │ └── forever │ │ │ ├── index.html │ │ │ ├── index.js │ │ │ └── test.scenario.js │ ├── list │ │ ├── animated │ │ │ ├── index.html │ │ │ ├── index.js │ │ │ ├── style.css │ │ │ └── test.scenario.js │ │ └── reorderDelete │ │ │ ├── index.html │ │ │ ├── index.js │ │ │ └── test.scenario.js │ ├── radio │ │ └── chooseOne │ │ │ ├── index.html │ │ │ ├── index.js │ │ │ └── test.scenario.js │ ├── refresher │ │ └── refreshList │ │ │ ├── index.html │ │ │ ├── index.js │ │ │ └── test.scenario.js │ ├── sideMenus │ │ ├── navWithMenu │ │ │ ├── index.html │ │ │ ├── index.js │ │ │ └── test.scenario.js │ │ └── simple │ │ │ ├── index.html │ │ │ ├── index.js │ │ │ ├── style.css │ │ │ └── test.scenario.js │ ├── slideBox │ │ └── appIntro │ │ │ ├── index.html │ │ │ ├── index.js │ │ │ ├── style.css │ │ │ └── test.scenario.js │ ├── tabs │ │ └── tabsAndNav │ │ │ ├── index.html │ │ │ ├── index.js │ │ │ └── test.scenario.js │ ├── textInput │ │ └── floatingLabel │ │ │ ├── index.html │ │ │ ├── index.js │ │ │ └── test.scenario.js │ └── toggle │ │ └── simple │ │ ├── index.html │ │ ├── index.js │ │ └── test.scenario.js ├── old │ ├── actionsheet │ │ ├── index.html │ │ ├── script.js │ │ └── style.css │ ├── app-intro-walkthrough │ │ ├── index.html │ │ ├── script.js │ │ └── style.css │ ├── checkbox │ │ ├── index.html │ │ ├── script.js │ │ └── style.css │ ├── collection-repeat │ │ ├── contacts.js │ │ ├── contacts.json │ │ ├── index.html │ │ ├── script.js │ │ └── style.css │ ├── flickr-search-example │ │ ├── index.html │ │ ├── script.js │ │ └── style.css │ ├── frosted-glass-effect │ │ ├── index.html │ │ ├── script.js │ │ └── style.css │ ├── google-maps │ │ ├── index.html │ │ ├── script.js │ │ └── style.css │ ├── lists │ │ ├── index.html │ │ ├── script.js │ │ └── style.css │ ├── loading-bar │ │ ├── index.html │ │ ├── script.js │ │ └── style.css │ ├── modal │ │ ├── index.html │ │ ├── script.js │ │ └── style.css │ ├── popup │ │ ├── index.html │ │ ├── script.js │ │ └── style.css │ ├── pull-to-refresh │ │ ├── index.html │ │ ├── script.js │ │ └── style.css │ ├── radio-buttons │ │ ├── index.html │ │ ├── script.js │ │ └── style.css │ ├── shrinking-header │ │ ├── index.html │ │ ├── script.js │ │ └── style.css │ ├── side-menu-and-navigation │ │ ├── index.html │ │ ├── script.js │ │ └── style.css │ ├── sign-in-then-tabs │ │ ├── index.html │ │ ├── script.js │ │ └── style.css │ ├── starter-template │ │ ├── index.html │ │ ├── script.js │ │ └── style.css │ ├── swipeable-cards │ │ ├── index.html │ │ ├── script.js │ │ └── style.css │ ├── tabs-and-navigation │ │ ├── index.html │ │ ├── script.js │ │ └── style.css │ ├── thumbnail-list │ │ ├── index.html │ │ ├── script.js │ │ └── style.css │ └── toggle │ │ ├── index.html │ │ ├── script.js │ │ └── style.css └── service │ ├── actionSheet │ ├── index.html │ ├── index.js │ └── test.scenario.js │ ├── loading │ ├── index.html │ ├── index.js │ └── test.scenario.js │ ├── popover │ ├── index.html │ ├── index.js │ └── test.scenario.js │ └── popup │ └── popping │ ├── index.html │ ├── index.js │ └── test.scenario.js ├── gulpfile.js ├── js └── angular │ ├── controller │ ├── headerBarController.js │ ├── infiniteScrollController.js │ ├── listController.js │ ├── navBarController.js │ ├── navViewController.js │ ├── refresherController.js │ ├── scrollController.js │ ├── sideMenuController.js │ ├── spinnerController.js │ ├── tabController.js │ ├── tabsController.js │ └── viewController.js │ ├── directive │ ├── actionSheet.js │ ├── checkbox.js │ ├── collectionRepeat.js │ ├── content.js │ ├── exposeAsideWhen.js │ ├── gesture.js │ ├── headerFooterBar.js │ ├── infiniteScroll.js │ ├── item.js │ ├── itemDeleteButton.js │ ├── itemFloatingLabel.js │ ├── itemOptionButton.js │ ├── itemReorderButton.js │ ├── keyboardAttach.js │ ├── list.js │ ├── menuClose.js │ ├── menuToggle.js │ ├── modal.js │ ├── modalView.js │ ├── navBackButton.js │ ├── navBar.js │ ├── navButtons.js │ ├── navDirection.js │ ├── navTitle.js │ ├── navTransition.js │ ├── navView.js │ ├── ngClick.js │ ├── pane.js │ ├── popover.js │ ├── popoverView.js │ ├── radio.js │ ├── refresher.js │ ├── scroll.js │ ├── sideMenu.js │ ├── sideMenuContent.js │ ├── sideMenus.js │ ├── slideBox.js │ ├── spinner.js │ ├── tab.js │ ├── tabNav.js │ ├── tabs.js │ ├── toggle.js │ └── view.js │ ├── main.js │ └── service │ ├── actionSheet.js │ ├── angularOverrides.js │ ├── backdrop.js │ ├── bind.js │ ├── body.js │ ├── clickBlock.js │ ├── decorators │ ├── angular-ios9-uiwebview.patch.js │ ├── compile.js │ └── location.js │ ├── gesture.js │ ├── history.js │ ├── ionicConfig.js │ ├── loading.js │ ├── modal.js │ ├── navBarDelegate.js │ ├── navViewDelegate.js │ ├── platform.js │ ├── popover.js │ ├── popup.js │ ├── position.js │ ├── scrollDelegate.js │ ├── sideMenuDelegate.js │ ├── slideBoxDelegate.js │ ├── tabsDelegate.js │ ├── templateCache.js │ ├── templateLoader.js │ ├── viewService.js │ └── viewSwitcher.js ├── package.js ├── release ├── css │ ├── ionic.css │ └── ionic.min.css ├── fonts │ ├── ionicons.eot │ ├── ionicons.svg │ ├── ionicons.ttf │ └── ionicons.woff ├── js │ ├── ionic-angular.js │ ├── ionic-angular.min.js │ ├── ionic.bundle.js │ ├── ionic.bundle.min.js │ ├── ionic.js │ └── ionic.min.js └── version.json └── scss ├── _action-sheet.scss ├── _animations.scss ├── _backdrop.scss ├── _badge.scss ├── _bar.scss ├── _button-bar.scss ├── _button.scss ├── _checkbox.scss ├── _form.scss ├── _grid.scss ├── _items.scss ├── _list.scss ├── _loading.scss ├── _menu.scss ├── _mixins.scss ├── _modal.scss ├── _platform.scss ├── _popover.scss ├── _popup.scss ├── _progress.scss ├── _radio.scss ├── _range.scss ├── _refresher.scss ├── _reset.scss ├── _scaffolding.scss ├── _select.scss ├── _slide-box.scss ├── _spinner.scss ├── _tabs.scss ├── _toggle.scss ├── _transitions.scss ├── _type.scss ├── _util.scss ├── _variables.scss ├── ionic.scss └── ionicons ├── _ionicons-font.scss ├── _ionicons-icons.scss ├── _ionicons-variables.scss └── ionicons.scss /.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "www/lib" 3 | } 4 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /.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 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ##教你设计物联网 2 | 3 | > 电子书《一步步搭建物联网系统》的APP版。 4 | 5 | 6 | Get it on Google Play 8 | 9 | 10 | 附加配置 11 | 12 | Add AndroidManifest.xml 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | ##Cordova Plugin Lists 31 | 32 | - cordova plugin add https://github.com/katzer/cordova-plugin-email-composer.git 33 | - cordova plugin add com.google.playservices@19.0.0 34 | - cordova plugin add https://github.com/floatinghotpot/cordova-plugin-admob.git 35 | - cordova plugin add https://github.com/pushandplay/cordova-plugin-apprate.git 36 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lovestory", 3 | "private": "true", 4 | "devDependencies": { 5 | "ionic": "driftyco/ionic-bower#1.0" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var gutil = require('gulp-util'); 3 | var bower = require('bower'); 4 | var concat = require('gulp-concat'); 5 | var sass = require('gulp-sass'); 6 | var minifyCss = require('gulp-minify-css'); 7 | var rename = require('gulp-rename'); 8 | var sh = require('shelljs'); 9 | 10 | var paths = { 11 | sass: ['./scss/**/*.scss'] 12 | }; 13 | 14 | gulp.task('default', ['sass']); 15 | 16 | gulp.task('sass', function(done) { 17 | gulp.src('./scss/ionic.app.scss') 18 | .pipe(sass()) 19 | .pipe(gulp.dest('./www/css/')) 20 | .pipe(minifyCss({ 21 | keepSpecialComments: 0 22 | })) 23 | .pipe(rename({ extname: '.min.css' })) 24 | .pipe(gulp.dest('./www/css/')) 25 | .on('end', done); 26 | }); 27 | 28 | gulp.task('watch', function() { 29 | gulp.watch(paths.sass, ['sass']); 30 | }); 31 | 32 | gulp.task('install', ['git-check'], function() { 33 | return bower.commands.install() 34 | .on('log', function(data) { 35 | gutil.log('bower', gutil.colors.cyan(data.id), data.message); 36 | }); 37 | }); 38 | 39 | gulp.task('git-check', function(done) { 40 | if (!sh.which('git')) { 41 | console.log( 42 | ' ' + gutil.colors.red('Git is not installed.'), 43 | '\n Git, the version control system, is required to download Ionic.', 44 | '\n Download git here:', gutil.colors.cyan('http://git-scm.com/downloads') + '.', 45 | '\n Once git is installed, run \'' + gutil.colors.cyan('gulp install') + '\' again.' 46 | ); 47 | process.exit(1); 48 | } 49 | done(); 50 | }); 51 | -------------------------------------------------------------------------------- /hooks/after_prepare/020_remove_sass_from_platforms.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | /** 4 | * After prepare, files are copied to the platforms/ios and platforms/android folders. 5 | * Lets clean up some of those files that arent needed with this hook. 6 | */ 7 | var fs = require('fs'); 8 | var path = require('path'); 9 | 10 | var deleteFolderRecursive = function(removePath) { 11 | if( fs.existsSync(removePath) ) { 12 | fs.readdirSync(removePath).forEach(function(file,index){ 13 | var curPath = path.join(removePath, file); 14 | if(fs.lstatSync(curPath).isDirectory()) { // recurse 15 | deleteFolderRecursive(curPath); 16 | } else { // delete file 17 | fs.unlinkSync(curPath); 18 | } 19 | }); 20 | fs.rmdirSync(removePath); 21 | } 22 | }; 23 | 24 | var iosPlatformsDir = path.resolve(__dirname, '../../platforms/ios/www/lib/ionic/scss'); 25 | var androidPlatformsDir = path.resolve(__dirname, '../../platforms/android/assets/www/lib/ionic/scss'); 26 | 27 | deleteFolderRecursive(iosPlatformsDir); 28 | deleteFolderRecursive(androidPlatformsDir); 29 | -------------------------------------------------------------------------------- /hooks/before_platform_add/init_directories.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | /** 4 | * On a fresh clone, the local platforms/ and plugins/ directories will be 5 | * missing, so ensure they get created before the first platform is added. 6 | */ 7 | var fs = require('fs'); 8 | var path = require('path'); 9 | 10 | var platformsDir = path.resolve(__dirname, '../../platforms'); 11 | var pluginsDir = path.resolve(__dirname, '../../plugins'); 12 | 13 | try { 14 | fs.mkdirSync(platformsDir, function (err) { 15 | if (err) { console.error(err); } 16 | }); 17 | } catch(ex) {} 18 | 19 | try { 20 | fs.mkdirSync(pluginsDir, function (err) { 21 | if (err) { console.error(err); } 22 | }); 23 | } catch(ex) {} 24 | -------------------------------------------------------------------------------- /ionic.project: -------------------------------------------------------------------------------- 1 | { 2 | "name": "designiot", 3 | "app_id": "437de5bc", 4 | "gulpStartupTasks": [ 5 | "sass", 6 | "watch" 7 | ], 8 | "watchPatterns": [ 9 | "www/**/*", 10 | "!www/lib/**/*" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /make.sh: -------------------------------------------------------------------------------- 1 | cordova build --release android 2 | rm ~/learing/designiot-app/platforms/android/ant-build/DesignIOT.apk 3 | jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~/my-release-key.keystore ~/learing/designiot-app/platforms/android/ant-build/MainActivity-release-unsigned.apk alias_name 4 | ~/android-sdk/build-tools/22.0.0/zipalign -v 4 platforms/android/ant-build/MainActivity-release-unsigned.apk DesignIOT.apk 5 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lovestory", 3 | "version": "1.0.0", 4 | "description": "lovestory: An Ionic project", 5 | "dependencies": { 6 | "gulp": "^3.5.6", 7 | "gulp-sass": "^0.7.1", 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 | "com.rjfun.cordova.plugin.admob", 19 | "com.google.playservices" 20 | ], 21 | "cordovaPlatforms": [ 22 | "android", 23 | "ios" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /resources/android/icon/drawable-hdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/android/icon/drawable-hdpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-ldpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/android/icon/drawable-ldpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-mdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/android/icon/drawable-mdpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-xhdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/android/icon/drawable-xhdpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-xxhdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/android/icon/drawable-xxhdpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-xxxhdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/android/icon/drawable-xxxhdpi-icon.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-hdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/android/splash/drawable-land-hdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-ldpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/android/splash/drawable-land-ldpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-mdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/android/splash/drawable-land-mdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-xhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/android/splash/drawable-land-xhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-xxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/android/splash/drawable-land-xxhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-xxxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/android/splash/drawable-land-xxxhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-hdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/android/splash/drawable-port-hdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-ldpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/android/splash/drawable-port-ldpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-mdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/android/splash/drawable-port-mdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-xhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/android/splash/drawable-port-xhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-xxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/android/splash/drawable-port-xxhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-xxxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/android/splash/drawable-port-xxxhdpi-screen.png -------------------------------------------------------------------------------- /resources/icon.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/icon.psd -------------------------------------------------------------------------------- /resources/ios/icon/icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/icon/icon-40.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/icon/icon-40@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/icon/icon-50.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/icon/icon-50@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/icon/icon-60.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/icon/icon-60@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/icon/icon-60@3x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/icon/icon-72.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/icon/icon-72@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/icon/icon-76.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/icon/icon-76@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/icon/icon-small.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/icon/icon-small@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/icon/icon-small@3x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/icon/icon.png -------------------------------------------------------------------------------- /resources/ios/icon/icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/icon/icon@2x.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-568h@2x~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/splash/Default-568h@2x~iphone.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-667h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/splash/Default-667h.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-736h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/splash/Default-736h.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape-736h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/splash/Default-Landscape-736h.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/splash/Default-Landscape@2x~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/splash/Default-Landscape~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Portrait@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/splash/Default-Portrait@2x~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Portrait~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/splash/Default-Portrait~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default@2x~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/splash/Default@2x~iphone.png -------------------------------------------------------------------------------- /resources/ios/splash/Default~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/ios/splash/Default~iphone.png -------------------------------------------------------------------------------- /resources/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/resources/splash.png -------------------------------------------------------------------------------- /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/css/Inconsolata.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/www/css/Inconsolata.otf -------------------------------------------------------------------------------- /www/css/style.css: -------------------------------------------------------------------------------- 1 | /* Empty. Add your own CSS if you like */ 2 | .detail img { 3 | width: 100%; 4 | } 5 | 6 | /* Hemisu Dark */ 7 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 8 | /* Original theme - http://noahfrederick.com/vim-color-scheme-hemisu/ */ 9 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 10 | .hemisu-comment, pre .comment, pre .xml .doctype, pre .html .doctype { 11 | color: #999999; 12 | } 13 | 14 | .hemisu-accent1, pre .number, pre .ruby .keyword { 15 | color: #538192; 16 | } 17 | 18 | .hemisu-accent2, pre .string, pre .regexp, pre .xml .value, pre .html .value { 19 | color: #739200; 20 | } 21 | 22 | .hemisu-accent3, pre .keyword, pre .title, pre .constant, pre .xml .tag, pre .html .tag, pre .css .rules .attribute { 23 | color: #ff0055; 24 | } 25 | 26 | .hemisu-accent4 { 27 | color: #503d15; 28 | } 29 | 30 | 31 | @font-face { 32 | font-family: InconsolataPower; 33 | src: url("Inconsolata.otf") format("opentype"); 34 | } 35 | 36 | pre code { 37 | display: block; 38 | background: white; 39 | color: #111111; 40 | font-family: Menlo, Monaco, Consolas, monospace; 41 | line-height: 1.5; 42 | border: 1px solid #ccc; 43 | padding: 10px; 44 | font-size: 12px; 45 | } 46 | .markdown-body pre code { 47 | font-family: InconsolataPower, Menlo, Monaco, Consolas, monospace; 48 | } 49 | pre .xml .tag .title { 50 | color: #111111; 51 | } 52 | pre .html .tag .title { 53 | color: #111111; 54 | } 55 | 56 | .markdown-body pre code, 57 | .markdown-body pre { 58 | word-wrap: break-word; 59 | } 60 | -------------------------------------------------------------------------------- /www/img/homepage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/www/img/homepage.png -------------------------------------------------------------------------------- /www/img/ionic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/www/img/ionic.png -------------------------------------------------------------------------------- /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 | 34 | 35 | 36 | 37 | 38 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /www/lib/angular-animate/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-animate", 3 | "version": "1.3.13", 4 | "main": "./angular-animate.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.3.13" 8 | }, 9 | "homepage": "https://github.com/angular/bower-angular-animate", 10 | "_release": "1.3.13", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "v1.3.13", 14 | "commit": "f18cb98590471ad9c1e5ae0e57178e9ecb8d384c" 15 | }, 16 | "_source": "git://github.com/angular/bower-angular-animate.git", 17 | "_target": "1.3.13", 18 | "_originalSource": "angular-animate" 19 | } -------------------------------------------------------------------------------- /www/lib/angular-animate/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-animate", 3 | "version": "1.3.13", 4 | "main": "./angular-animate.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.3.13" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /www/lib/angular-animate/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-animate", 3 | "version": "1.3.13", 4 | "description": "AngularJS module for animations", 5 | "main": "angular-animate.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/angular/angular.js.git" 12 | }, 13 | "keywords": [ 14 | "angular", 15 | "framework", 16 | "browser", 17 | "animation", 18 | "client-side" 19 | ], 20 | "author": "Angular Core Team ", 21 | "license": "MIT", 22 | "bugs": { 23 | "url": "https://github.com/angular/angular.js/issues" 24 | }, 25 | "homepage": "http://angularjs.org" 26 | } 27 | -------------------------------------------------------------------------------- /www/lib/angular-highlightjs/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-highlightjs", 3 | "version": "0.4.1", 4 | "description": "AngularJS directive for syntax highlighting with highlight.js.", 5 | "main": "./build/angular-highlightjs.js", 6 | "ignore": [ 7 | "**/.*", 8 | "node_modules", 9 | "bower_components", 10 | "example", 11 | "with-browserify", 12 | "plunk-source", 13 | "Gruntfile.js", 14 | "package.json", 15 | "test", 16 | "tests" 17 | ], 18 | "dependencies": { 19 | "highlightjs": "~8", 20 | "angular": ">1.0.8" 21 | }, 22 | "devDependencies": {}, 23 | "homepage": "https://github.com/pc035860/angular-highlightjs", 24 | "_release": "0.4.1", 25 | "_resolution": { 26 | "type": "version", 27 | "tag": "v0.4.1", 28 | "commit": "6a99c0bd6b88e7d760f6a314cb3301f8ca908900" 29 | }, 30 | "_source": "git://github.com/pc035860/angular-highlightjs.git", 31 | "_target": "~0.4.1", 32 | "_originalSource": "angular-highlightjs", 33 | "_direct": true 34 | } -------------------------------------------------------------------------------- /www/lib/angular-highlightjs/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 Robin Fan 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | 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, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /www/lib/angular-highlightjs/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-highlightjs", 3 | "version": "0.4.1", 4 | "description": "AngularJS directive for syntax highlighting with highlight.js.", 5 | "main": "./build/angular-highlightjs.js", 6 | "ignore": [ 7 | "**/.*", 8 | "node_modules", 9 | "bower_components", 10 | "example", 11 | "with-browserify", 12 | "plunk-source", 13 | "Gruntfile.js", 14 | "package.json", 15 | "test", 16 | "tests" 17 | ], 18 | "dependencies": { 19 | "highlightjs": "~8", 20 | "angular" : ">1.0.8" 21 | }, 22 | "devDependencies": {} 23 | } 24 | -------------------------------------------------------------------------------- /www/lib/angular-marked/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-marked", 3 | "version": "0.0.12", 4 | "authors": [ 5 | "J. Harshbarger" 6 | ], 7 | "description": "AngularJS Markdown using marked.", 8 | "main": "angular-marked.js", 9 | "keywords": [ 10 | "angularjs", 11 | "markdown", 12 | "marked", 13 | "directive", 14 | "filter" 15 | ], 16 | "license": "MIT", 17 | "ignore": [ 18 | "**/.*", 19 | "node_modules", 20 | "bower_components", 21 | "test", 22 | "tests" 23 | ], 24 | "dependencies": { 25 | "angular": ">= 1.2.5", 26 | "marked": "~0.3.1" 27 | }, 28 | "devDependencies": { 29 | "angular-mocks": ">= 1.2.5" 30 | }, 31 | "homepage": "https://github.com/Hypercubed/angular-marked", 32 | "_release": "0.0.12", 33 | "_resolution": { 34 | "type": "version", 35 | "tag": "v0.0.12", 36 | "commit": "acb0738d108ee5cd35f3812492d7590495cf9ecd" 37 | }, 38 | "_source": "git://github.com/Hypercubed/angular-marked.git", 39 | "_target": "~0.0.12", 40 | "_originalSource": "angular-marked", 41 | "_direct": true 42 | } -------------------------------------------------------------------------------- /www/lib/angular-marked/angular-marked.js: -------------------------------------------------------------------------------- 1 | /* 2 | * angular-marked 3 | * (c) 2014 J. Harshbarger 4 | * Licensed MIT 5 | */ 6 | 7 | /* jshint undef: true, unused: true */ 8 | /* global angular:true */ 9 | 10 | (function () { 11 | 'use strict'; 12 | 13 | var app = angular.module('hc.marked', []); 14 | 15 | //app.constant('marked', window.marked); 16 | 17 | app.provider('marked', function () { 18 | 19 | var self = this; 20 | 21 | self.setOptions = function(opts) { // Store options for later 22 | this.defaults = opts; 23 | }; 24 | 25 | self.$get = ['$window',function ($window) { 26 | var m = $window.marked; 27 | 28 | self.setOptions = m.setOptions; 29 | m.setOptions(self.defaults); 30 | 31 | return m; 32 | }]; 33 | 34 | }); 35 | 36 | // TODO: filter tests */ 37 | //app.filter('marked', ['marked', function(marked) { 38 | // return marked; 39 | //}]); 40 | 41 | app.directive('marked', ['marked', function (marked) { 42 | return { 43 | restrict: 'AE', 44 | replace: true, 45 | scope: { 46 | opts: '=', 47 | marked: '=' 48 | }, 49 | link: function (scope, element, attrs) { 50 | set(scope.marked || element.text() || ''); 51 | 52 | function set(val) { 53 | element.html(marked(val || '', scope.opts || null)); 54 | } 55 | 56 | if (attrs.marked) { 57 | scope.$watch('marked', set); 58 | } 59 | 60 | } 61 | }; 62 | }]); 63 | 64 | }()); -------------------------------------------------------------------------------- /www/lib/angular-marked/angular-marked.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | * angular-marked 0.0.11 3 | * (c) 2014 J. Harshbarger 4 | * Licensed MIT 5 | */ 6 | !function(){"use strict";var a=angular.module("hc.marked",[]);a.provider("marked",function(){var a=this;a.setOptions=function(a){this.defaults=a},a.$get=["$window",function(b){var c=b.marked;return a.setOptions=c.setOptions,c.setOptions(a.defaults),c}]}),a.directive("marked",["marked",function(a){return{restrict:"AE",replace:!0,scope:{opts:"=",marked:"="},link:function(b,c,d){function e(d){c.html(a(d||"",b.opts||null))}e(b.marked||c.text()||""),d.marked&&b.$watch("marked",e)}}}])}(); -------------------------------------------------------------------------------- /www/lib/angular-marked/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-marked", 3 | "version": "0.0.12", 4 | "authors": [ 5 | "J. Harshbarger" 6 | ], 7 | "description": "AngularJS Markdown using marked.", 8 | "main": "angular-marked.js", 9 | "keywords": [ 10 | "angularjs", 11 | "markdown", 12 | "marked", 13 | "directive", 14 | "filter" 15 | ], 16 | "license": "MIT", 17 | "ignore": [ 18 | "**/.*", 19 | "node_modules", 20 | "bower_components", 21 | "test", 22 | "tests" 23 | ], 24 | "dependencies": { 25 | "angular": ">= 1.2.5", 26 | "marked": "~0.3.1" 27 | }, 28 | "devDependencies": { 29 | "angular-mocks": ">= 1.2.5" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /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 | jshint: { 7 | options: { jshintrc: true }, 8 | all: ['gruntfile.js', '<%= pkg.name %>.js'] 9 | }, 10 | bump: { 11 | options: { 12 | files: ['bower.json','package.json'], 13 | commit: true, 14 | commitMessage: 'release %VERSION%', 15 | commitFiles: ['package.json','bower.json','<%= pkg.name %>.min.js'], // '-a' for all files 16 | pushTo: 'origin', 17 | } 18 | }, 19 | uglify: { 20 | options: { 21 | banner: '/*\n * <%= pkg.title || pkg.name %> <%= pkg.version %>\n' + 22 | ' * (c) <%= grunt.template.today("yyyy") %> <%= pkg.authors.join(" ") %>\n' + 23 | ' * Licensed <%= pkg.license %>\n */\n' 24 | }, 25 | src: { 26 | files: { 27 | '<%= pkg.name %>.min.js': '<%= pkg.name %>.js' 28 | } 29 | } 30 | }, 31 | karma: { 32 | unit: { 33 | configFile: 'karma.conf.js' 34 | }, 35 | once: { 36 | configFile: 'karma.conf.js', 37 | singleRun: true, 38 | browsers: ['PhantomJS'] 39 | } 40 | } 41 | }); 42 | 43 | require('load-grunt-tasks')(grunt); 44 | 45 | grunt.registerTask('default', ['build','test']); 46 | grunt.registerTask('build', ['jshint', 'uglify']); 47 | grunt.registerTask('test', ['karma:once']); 48 | grunt.registerTask('publish', ['test','bump-only','uglify','bump-commit']); 49 | 50 | }; -------------------------------------------------------------------------------- /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 | 'angular-marked.js', 19 | 'bower_components/marked/lib/marked.js', 20 | 'test/spec/**/*.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 | 36 | // enable / disable watching file and executing tests whenever any file changes 37 | autoWatch: false, 38 | 39 | 40 | // Start these browsers, currently available: 41 | // - Chrome 42 | // - ChromeCanary 43 | // - Firefox 44 | // - Opera 45 | // - Safari (only Mac) 46 | // - PhantomJS 47 | // - IE (only Windows) 48 | browsers: ['Chrome'], 49 | 50 | 51 | // Continuous Integration mode 52 | // if true, it capture browsers, run tests and exit 53 | singleRun: false 54 | }); 55 | }; -------------------------------------------------------------------------------- /www/lib/angular-marked/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-marked", 3 | "version": "0.0.12", 4 | "description": "AngularJS Markdown using marked.", 5 | "main": "angular-marked.js", 6 | "directories": { 7 | "test": "test" 8 | }, 9 | "dependencies": {}, 10 | "devDependencies": { 11 | "load-grunt-tasks": "^0.4.0", 12 | "grunt-contrib-jshint": "^0.10.0", 13 | "grunt": "^0.4.4", 14 | "karma": "^0.12.9", 15 | "karma-chrome-launcher": "^0.1.3", 16 | "karma-jasmine": "^0.1.5", 17 | "grunt-contrib-uglify": "^0.4.0", 18 | "grunt-karma": "^0.8.2", 19 | "karma-phantomjs-launcher": "^0.1.4", 20 | "grunt-bump": "0.0.13" 21 | }, 22 | "scripts": { 23 | "test": "grunt test" 24 | }, 25 | "repository": { 26 | "type": "git", 27 | "url": "git://github.com/Hypercubed/angular-marked.git" 28 | }, 29 | "keywords": [ 30 | "marked", 31 | "markdown" 32 | ], 33 | "author": "J. Harshbarger", 34 | "license": "MIT", 35 | "bugs": { 36 | "url": "https://github.com/Hypercubed/angular-marked/issues" 37 | }, 38 | "homepage": "https://github.com/Hypercubed/angular-marked" 39 | } 40 | -------------------------------------------------------------------------------- /www/lib/angular-marked/todo.md: -------------------------------------------------------------------------------- 1 | # Todo list 2 | 3 | _\( managed using [todo-md](https://github.com/Hypercubed/todo-md) \)_ 4 | 5 | - [ ] Compatibility with RequireJS #3 6 | - [ ] Add testing to gruntfile 7 | - [x] Minify? 8 | - [ ] ngmin? -------------------------------------------------------------------------------- /www/lib/angular-sanitize/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-sanitize", 3 | "version": "1.3.13", 4 | "main": "./angular-sanitize.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.3.13" 8 | }, 9 | "homepage": "https://github.com/angular/bower-angular-sanitize", 10 | "_release": "1.3.13", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "v1.3.13", 14 | "commit": "ee7a595d32ae566701da29873eb1dfb466e3cfef" 15 | }, 16 | "_source": "git://github.com/angular/bower-angular-sanitize.git", 17 | "_target": "1.3.13", 18 | "_originalSource": "angular-sanitize" 19 | } -------------------------------------------------------------------------------- /www/lib/angular-sanitize/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-sanitize", 3 | "version": "1.3.13", 4 | "main": "./angular-sanitize.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.3.13" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /www/lib/angular-sanitize/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-sanitize", 3 | "version": "1.3.13", 4 | "description": "AngularJS module for sanitizing HTML", 5 | "main": "angular-sanitize.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/angular/angular.js.git" 12 | }, 13 | "keywords": [ 14 | "angular", 15 | "framework", 16 | "browser", 17 | "html", 18 | "client-side" 19 | ], 20 | "author": "Angular Core Team ", 21 | "license": "MIT", 22 | "bugs": { 23 | "url": "https://github.com/angular/angular.js/issues" 24 | }, 25 | "homepage": "http://angularjs.org" 26 | } 27 | -------------------------------------------------------------------------------- /www/lib/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/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/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-ui-router", 3 | "version": "0.2.13", 4 | "main": "./release/angular-ui-router.js", 5 | "dependencies": { 6 | "angular": ">= 1.0.8" 7 | }, 8 | "ignore": [ 9 | "**/.*", 10 | "node_modules", 11 | "bower_components", 12 | "component.json", 13 | "package.json", 14 | "lib", 15 | "config", 16 | "sample", 17 | "test", 18 | "tests", 19 | "ngdoc_assets", 20 | "Gruntfile.js", 21 | "files.js" 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /www/lib/angular-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/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/angular/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.3.13", 4 | "main": "./angular.js", 5 | "ignore": [], 6 | "dependencies": {}, 7 | "homepage": "https://github.com/angular/bower-angular", 8 | "_release": "1.3.13", 9 | "_resolution": { 10 | "type": "version", 11 | "tag": "v1.3.13", 12 | "commit": "ad68cfecb69ff7cacb27813377ce9d95e072529b" 13 | }, 14 | "_source": "git://github.com/angular/bower-angular.git", 15 | "_target": "1.3.13", 16 | "_originalSource": "angular" 17 | } -------------------------------------------------------------------------------- /www/lib/angular/angular-csp.css: -------------------------------------------------------------------------------- 1 | /* Include this file in your html if you are using the CSP mode. */ 2 | 3 | @charset "UTF-8"; 4 | 5 | [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], 6 | .ng-cloak, .x-ng-cloak, 7 | .ng-hide:not(.ng-hide-animate) { 8 | display: none !important; 9 | } 10 | 11 | ng\:form { 12 | display: block; 13 | } 14 | -------------------------------------------------------------------------------- /www/lib/angular/angular.min.js.gzip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/www/lib/angular/angular.min.js.gzip -------------------------------------------------------------------------------- /www/lib/angular/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.3.13", 4 | "main": "./angular.js", 5 | "ignore": [], 6 | "dependencies": { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /www/lib/angular/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.3.13", 4 | "description": "HTML enhanced for web apps", 5 | "main": "angular.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/angular/angular.js.git" 12 | }, 13 | "keywords": [ 14 | "angular", 15 | "framework", 16 | "browser", 17 | "client-side" 18 | ], 19 | "author": "Angular Core Team ", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/angular/angular.js/issues" 23 | }, 24 | "homepage": "http://angularjs.org" 25 | } 26 | -------------------------------------------------------------------------------- /www/lib/highlightjs/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "highlightjs", 3 | "version": "8.4.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.4.0", 16 | "_resolution": { 17 | "type": "version", 18 | "tag": "8.4.0", 19 | "commit": "f27b85bc25d6c70c69347e77193688ec562ce2eb" 20 | }, 21 | "_source": "git://github.com/components/highlightjs.git", 22 | "_target": "~8", 23 | "_originalSource": "highlightjs" 24 | } -------------------------------------------------------------------------------- /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/highlightjs/Makefile: -------------------------------------------------------------------------------- 1 | VERSION=8.4 2 | 3 | default: highlight/build 4 | @cp -f highlight/build/highlight.* . 5 | @cp -f highlight/src/styles/* styles 6 | @du -hs highlight.* 7 | 8 | highlight/build: highlight 9 | @cd highlight && git fetch && git checkout $(VERSION) 10 | @cd highlight && npm install && node tools/build.js 11 | 12 | highlight: 13 | @git clone git://github.com/isagalaev/highlight.js.git $@ 14 | 15 | clean: 16 | @rm -rf highlight/build 17 | 18 | .PHONY: default 19 | -------------------------------------------------------------------------------- /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/highlightjs/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "highlightjs", 3 | "version": "8.4.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.4.0", 5 | "main": "highlight.pack.js", 6 | "scripts": [ 7 | "highlight.pack.js" 8 | ], 9 | "files": [ 10 | "styles/default.css" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /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.js" 17 | ], 18 | "files": [ 19 | "styles/*" 20 | ], 21 | "shim": { 22 | "exports": "hljs" 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /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 | .apache .hljs-tag, 22 | .apache .hljs-cbracket, 23 | .nginx .hljs-built_in, 24 | .tex .hljs-formula { 25 | color: #888; 26 | } 27 | 28 | .hljs-comment, 29 | .hljs-shebang, 30 | .hljs-doctype, 31 | .hljs-pi, 32 | .hljs-javadoc, 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/highlightjs/styles/brown_papersq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/www/lib/highlightjs/styles/brown_papersq.png -------------------------------------------------------------------------------- /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-javadoctag { 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 | color: #0048ab; 45 | } 46 | 47 | .hljs-decorator, 48 | .hljs-prompt, 49 | .hljs-yardoctag, 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-javadoc, 60 | .hljs-xmlDocTag, 61 | .hljs-deletion, 62 | .hljs-shebang, 63 | .hljs-string .hljs-variable, 64 | .hljs-link_url, 65 | .hljs-bullet, 66 | .hljs-sqbracket, 67 | .hljs-phony { 68 | color: #4c81c9; 69 | } 70 | -------------------------------------------------------------------------------- /www/lib/highlightjs/styles/pojoaque.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/www/lib/highlightjs/styles/pojoaque.jpg -------------------------------------------------------------------------------- /www/lib/highlightjs/styles/school_book.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/www/lib/highlightjs/styles/school_book.png -------------------------------------------------------------------------------- /www/lib/ionic/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ionic", 3 | "version": "1.0.0", 4 | "codename": "uranium-unicorn", 5 | "homepage": "https://github.com/driftyco/ionic", 6 | "authors": [ 7 | "Max Lynch ", 8 | "Adam Bradley ", 9 | "Ben Sperry " 10 | ], 11 | "description": "Advanced HTML5 hybrid mobile app development framework.", 12 | "main": [ 13 | "css/ionic.css", 14 | "fonts/*", 15 | "js/ionic.js", 16 | "js/ionic-angular.js" 17 | ], 18 | "keywords": [ 19 | "mobile", 20 | "html5", 21 | "ionic", 22 | "cordova", 23 | "phonegap", 24 | "trigger", 25 | "triggerio", 26 | "angularjs", 27 | "angular" 28 | ], 29 | "license": "MIT", 30 | "private": false, 31 | "dependencies": { 32 | "angular": "1.3.13", 33 | "angular-animate": "1.3.13", 34 | "angular-sanitize": "1.3.13", 35 | "angular-ui-router": "0.2.13" 36 | }, 37 | "_release": "1.0.0", 38 | "_resolution": { 39 | "type": "version", 40 | "tag": "v1.0.0", 41 | "commit": "3ea71d863e53b7a8d3d75a2757386fd7124b0653" 42 | }, 43 | "_source": "git://github.com/driftyco/ionic-bower.git", 44 | "_target": "1.0", 45 | "_originalSource": "driftyco/ionic-bower" 46 | } -------------------------------------------------------------------------------- /www/lib/ionic/README.md: -------------------------------------------------------------------------------- 1 | # ionic-bower 2 | 3 | Bower repository for [Ionic Framework](http://github.com/driftyco/ionic) 4 | 5 | ### Usage 6 | 7 | Include `js/ionic.bundle.js` to get ionic and all of its dependencies. 8 | 9 | Alternatively, include the individual ionic files with the dependencies separately. 10 | 11 | ### Versions 12 | 13 | To install the latest stable version, `bower install driftyco/ionic-bower#v1.0.0-beta.13` 14 | 15 | To install the latest nightly release, `bower install driftyco/ionic-bower#master` 16 | -------------------------------------------------------------------------------- /www/lib/ionic/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ionic", 3 | "version": "1.0.0", 4 | "codename": "uranium-unicorn", 5 | "homepage": "https://github.com/driftyco/ionic", 6 | "authors": [ 7 | "Max Lynch ", 8 | "Adam Bradley ", 9 | "Ben Sperry " 10 | ], 11 | "description": "Advanced HTML5 hybrid mobile app development framework.", 12 | "main": [ 13 | "css/ionic.css", 14 | "fonts/*", 15 | "js/ionic.js", 16 | "js/ionic-angular.js" 17 | ], 18 | "keywords": [ 19 | "mobile", 20 | "html5", 21 | "ionic", 22 | "cordova", 23 | "phonegap", 24 | "trigger", 25 | "triggerio", 26 | "angularjs", 27 | "angular" 28 | ], 29 | "license": "MIT", 30 | "private": false, 31 | "dependencies": { 32 | "angular": "1.3.13", 33 | "angular-animate": "1.3.13", 34 | "angular-sanitize": "1.3.13", 35 | "angular-ui-router": "0.2.13" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /www/lib/ionic/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/www/lib/ionic/fonts/ionicons.eot -------------------------------------------------------------------------------- /www/lib/ionic/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/www/lib/ionic/fonts/ionicons.ttf -------------------------------------------------------------------------------- /www/lib/ionic/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/www/lib/ionic/fonts/ionicons.woff -------------------------------------------------------------------------------- /www/lib/ionic/scss/_animations.scss: -------------------------------------------------------------------------------- 1 | 2 | // Slide up from the bottom, used for modals 3 | // ------------------------------- 4 | 5 | .slide-in-up { 6 | @include translate3d(0, 100%, 0); 7 | } 8 | .slide-in-up.ng-enter, 9 | .slide-in-up > .ng-enter { 10 | @include transition(all cubic-bezier(.1, .7, .1, 1) 400ms); 11 | } 12 | .slide-in-up.ng-enter-active, 13 | .slide-in-up > .ng-enter-active { 14 | @include translate3d(0, 0, 0); 15 | } 16 | 17 | .slide-in-up.ng-leave, 18 | .slide-in-up > .ng-leave { 19 | @include transition(all ease-in-out 250ms); 20 | } 21 | 22 | 23 | // Scale Out 24 | // Scale from hero (1 in this case) to zero 25 | // ------------------------------- 26 | 27 | @-webkit-keyframes scaleOut { 28 | from { -webkit-transform: scale(1); opacity: 1; } 29 | to { -webkit-transform: scale(0.8); opacity: 0; } 30 | } 31 | @keyframes scaleOut { 32 | from { transform: scale(1); opacity: 1; } 33 | to { transform: scale(0.8); opacity: 0; } 34 | } 35 | 36 | 37 | // Super Scale In 38 | // Scale from super (1.x) to duper (1 in this case) 39 | // ------------------------------- 40 | 41 | @-webkit-keyframes superScaleIn { 42 | from { -webkit-transform: scale(1.2); opacity: 0; } 43 | to { -webkit-transform: scale(1); opacity: 1 } 44 | } 45 | @keyframes superScaleIn { 46 | from { transform: scale(1.2); opacity: 0; } 47 | to { transform: scale(1); opacity: 1; } 48 | } 49 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_backdrop.scss: -------------------------------------------------------------------------------- 1 | 2 | .backdrop { 3 | position: fixed; 4 | top: 0; 5 | left: 0; 6 | z-index: $z-index-backdrop; 7 | 8 | width: 100%; 9 | height: 100%; 10 | 11 | background-color: $loading-backdrop-bg-color; 12 | 13 | visibility: hidden; 14 | opacity: 0; 15 | 16 | &.visible { 17 | visibility: visible; 18 | } 19 | &.active { 20 | opacity: 1; 21 | } 22 | 23 | @include transition($loading-backdrop-fadein-duration opacity linear); 24 | } 25 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_button-bar.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Button Bar 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .button-bar { 8 | @include display-flex(); 9 | @include flex(1); 10 | width: 100%; 11 | 12 | &.button-bar-inline { 13 | display: block; 14 | width: auto; 15 | 16 | @include clearfix(); 17 | 18 | > .button { 19 | width: auto; 20 | display: inline-block; 21 | float: left; 22 | } 23 | } 24 | } 25 | 26 | .button-bar > .button { 27 | @include flex(1); 28 | display: block; 29 | 30 | overflow: hidden; 31 | 32 | padding: 0 16px; 33 | 34 | width: 0; 35 | 36 | border-width: 1px 0px 1px 1px; 37 | border-radius: 0; 38 | text-align: center; 39 | text-overflow: ellipsis; 40 | white-space: nowrap; 41 | 42 | &:before, 43 | .icon:before { 44 | line-height: 44px; 45 | } 46 | 47 | &:first-child { 48 | border-radius: $button-border-radius 0px 0px $button-border-radius; 49 | } 50 | &:last-child { 51 | border-right-width: 1px; 52 | border-radius: 0px $button-border-radius $button-border-radius 0px; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_loaders.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Loaders (Spinners) 3 | * -------------------------------------------------- 4 | */ 5 | 6 | svg.loader { 7 | width: 28px; 8 | height: 28px; 9 | stroke: #333; 10 | fill: #333; 11 | } 12 | 13 | .loader-ios, 14 | .loader-ios-small { 15 | 16 | line { 17 | stroke: #69717d; 18 | } 19 | 20 | } 21 | 22 | .loader-android { 23 | 24 | circle { 25 | stroke: #4b8bf4; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_loading.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Loading 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .loading-container { 8 | position: absolute; 9 | left: 0; 10 | top: 0; 11 | right: 0; 12 | bottom: 0; 13 | 14 | z-index: $z-index-loading; 15 | 16 | @include display-flex(); 17 | @include justify-content(center); 18 | @include align-items(center); 19 | 20 | @include transition(0.2s opacity linear); 21 | visibility: hidden; 22 | opacity: 0; 23 | 24 | &:not(.visible) .icon { 25 | display: none; 26 | } 27 | &.visible { 28 | visibility: visible; 29 | } 30 | &.active { 31 | opacity: 1; 32 | } 33 | 34 | .loading { 35 | padding: $loading-padding; 36 | 37 | border-radius: $loading-border-radius; 38 | background-color: $loading-bg-color; 39 | 40 | color: $loading-text-color; 41 | 42 | text-align: center; 43 | text-overflow: ellipsis; 44 | font-size: $loading-font-size; 45 | 46 | h1, h2, h3, h4, h5, h6 { 47 | color: $loading-text-color; 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_menu.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Menus 4 | * -------------------------------------------------- 5 | * Side panel structure 6 | */ 7 | 8 | .menu { 9 | position: absolute; 10 | top: 0; 11 | bottom: 0; 12 | z-index: $z-index-menu; 13 | overflow: hidden; 14 | 15 | min-height: 100%; 16 | max-height: 100%; 17 | width: $menu-width; 18 | 19 | background-color: $menu-bg; 20 | 21 | .scroll-content { 22 | z-index: $z-index-menu-scroll-content; 23 | } 24 | 25 | .bar-header { 26 | z-index: $z-index-menu-bar-header; 27 | } 28 | } 29 | 30 | .menu-content { 31 | @include transform(none); 32 | box-shadow: $menu-side-shadow; 33 | } 34 | 35 | .menu-open .menu-content .pane, 36 | .menu-open .menu-content .scroll-content { 37 | pointer-events: none; 38 | } 39 | 40 | .grade-b .menu-content, 41 | .grade-c .menu-content { 42 | @include box-sizing(content-box); 43 | right: -1px; 44 | left: -1px; 45 | border-right: 1px solid #ccc; 46 | border-left: 1px solid #ccc; 47 | box-shadow: none; 48 | } 49 | 50 | .menu-left { 51 | left: 0; 52 | } 53 | 54 | .menu-right { 55 | right: 0; 56 | } 57 | 58 | .aside-open.aside-resizing .menu-right { 59 | display: none; 60 | } 61 | 62 | .menu-animated { 63 | @include transition-transform($menu-animation-speed ease); 64 | } 65 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_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/scss/_radio.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Radio Button Inputs 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .item-radio { 8 | padding: 0; 9 | 10 | &:hover { 11 | cursor: pointer; 12 | } 13 | } 14 | 15 | .item-radio .item-content { 16 | /* give some room to the right for the checkmark icon */ 17 | padding-right: $item-padding * 4; 18 | } 19 | 20 | .item-radio .radio-icon { 21 | /* checkmark icon will be hidden by default */ 22 | position: absolute; 23 | top: 0; 24 | right: 0; 25 | z-index: $z-index-item-radio; 26 | visibility: hidden; 27 | padding: $item-padding - 2; 28 | height: 100%; 29 | font-size: 24px; 30 | } 31 | 32 | .item-radio input { 33 | /* hide any radio button inputs elements (the ugly circles) */ 34 | position: absolute; 35 | left: -9999px; 36 | 37 | &:checked ~ .item-content { 38 | /* style the item content when its checked */ 39 | background: #f7f7f7; 40 | } 41 | 42 | &:checked ~ .radio-icon { 43 | /* show the checkmark icon when its checked */ 44 | visibility: visible; 45 | } 46 | } 47 | 48 | // Hack for Android to correctly display the checked item 49 | // http://timpietrusky.com/advanced-checkbox-hack 50 | .platform-android.grade-b .item-radio, 51 | .platform-android.grade-c .item-radio { 52 | -webkit-animation: androidCheckedbugfix infinite 1s; 53 | } 54 | @-webkit-keyframes androidCheckedbugfix { 55 | from { padding: 0; } 56 | to { padding: 0; } 57 | } 58 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_slide-box.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Slide Box 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .slider { 8 | position: relative; 9 | visibility: hidden; 10 | // Make sure items don't scroll over ever 11 | overflow: hidden; 12 | } 13 | 14 | .slider-slides { 15 | position: relative; 16 | height: 100%; 17 | } 18 | 19 | .slider-slide { 20 | position: relative; 21 | display: block; 22 | float: left; 23 | width: 100%; 24 | height: 100%; 25 | vertical-align: top; 26 | } 27 | 28 | .slider-slide-image { 29 | > img { 30 | width: 100%; 31 | } 32 | } 33 | 34 | .slider-pager { 35 | position: absolute; 36 | bottom: 20px; 37 | z-index: $z-index-slider-pager; 38 | width: 100%; 39 | height: 15px; 40 | text-align: center; 41 | 42 | .slider-pager-page { 43 | display: inline-block; 44 | margin: 0px 3px; 45 | width: 15px; 46 | color: #000; 47 | text-decoration: none; 48 | 49 | opacity: 0.3; 50 | 51 | &.active { 52 | @include transition(opacity 0.4s ease-in); 53 | opacity: 1; 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_split-pane.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Split Pane 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .split-pane { 8 | @include display-flex(); 9 | @include align-items(stretch); 10 | width: 100%; 11 | height: 100%; 12 | } 13 | 14 | .split-pane-menu { 15 | @include flex(0, 0, $split-pane-menu-width); 16 | 17 | overflow-y: auto; 18 | width: $split-pane-menu-width; 19 | height: 100%; 20 | border-right: 1px solid $split-pane-menu-border-color; 21 | 22 | @media all and (max-width: 568px) { 23 | border-right: none; 24 | } 25 | } 26 | 27 | .split-pane-content { 28 | @include flex(1, 0, auto); 29 | } 30 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/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/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/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/marked/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "marked", 3 | "version": "0.3.3", 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.3", 25 | "_resolution": { 26 | "type": "version", 27 | "tag": "v0.3.3", 28 | "commit": "2b5802f258c5e23e48366f2377fbb4c807f47658" 29 | }, 30 | "_source": "git://github.com/chjj/marked.git", 31 | "_target": "~0.3.1", 32 | "_originalSource": "marked" 33 | } -------------------------------------------------------------------------------- /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/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/marked/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "marked", 3 | "version": "0.3.2", 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/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "marked", 3 | "version": "0.3.2", 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/marked/doc/todo.md: -------------------------------------------------------------------------------- 1 | # Todo 2 | 3 | -------------------------------------------------------------------------------- /www/lib/marked/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/marked'); 2 | -------------------------------------------------------------------------------- /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.3", 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 | "robotskirt": "*" 20 | }, 21 | "scripts": { "test": "node test", "bench": "node test --bench" } 22 | } 23 | -------------------------------------------------------------------------------- /www/lib/ngCordova/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ngCordova", 3 | "version": "0.1.14-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 | ], 23 | "dependencies": { 24 | "angular": ">= 1.2.23" 25 | }, 26 | "keywords": [ 27 | "ngCordova", 28 | "ng-cordova", 29 | "ngcordova", 30 | "ng cordova", 31 | "cordova", 32 | "phonegap", 33 | "angular", 34 | "angularjs", 35 | "ionic", 36 | "cordova plugin" 37 | ], 38 | "license": "MIT", 39 | "private": false, 40 | "devDependencies": { 41 | "angular": ">= 1.2.23", 42 | "angular-mocks": ">= 1.2.23", 43 | "jquery": "~2.1.1" 44 | }, 45 | "_release": "0.1.14-alpha", 46 | "_resolution": { 47 | "type": "version", 48 | "tag": "v0.1.14-alpha", 49 | "commit": "b0a043dcab9aabf94c22d2e60e4c285c4457987d" 50 | }, 51 | "_source": "git://github.com/driftyco/ng-cordova.git", 52 | "_target": "~0.1.14-alpha", 53 | "_originalSource": "ngCordova", 54 | "_direct": true 55 | } -------------------------------------------------------------------------------- /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/ngCordova/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ngCordova", 3 | "version": "0.1.12-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 | ], 23 | "dependencies": { 24 | "angular": ">= 1.2.23" 25 | }, 26 | "keywords": [ 27 | "ngCordova", 28 | "ng-cordova", 29 | "ngcordova", 30 | "ng cordova", 31 | "cordova", 32 | "phonegap", 33 | "angular", 34 | "angularjs", 35 | "ionic", 36 | "cordova plugin" 37 | ], 38 | "license": "MIT", 39 | "private": false, 40 | "devDependencies": { 41 | "angular": ">= 1.2.23", 42 | "angular-mocks": ">= 1.2.23", 43 | "jquery": "~2.1.1" 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /www/lib/ngCordova/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ng-cordova", 3 | "private": false, 4 | "main": "dist/ng-cordova", 5 | "version": "0.1.12-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-jshint": "^1.6.1", 15 | "gulp-prettify": "^0.3.0", 16 | "gulp-rename": "^1.2.0", 17 | "gulp-shell": "^0.2.10", 18 | "gulp-uglify": "^0.2.1", 19 | "jshint-stylish": "^0.4.0", 20 | "karma": "^0.12.16", 21 | "karma-chrome-launcher": "~0.1.2", 22 | "karma-coverage": "~0.2.6", 23 | "karma-jasmine": "~0.1.5", 24 | "karma-phantomjs-launcher": "~0.1.2", 25 | "minimist": "^0.1.0" 26 | }, 27 | "licenses": [ 28 | { 29 | "type": "MIT" 30 | } 31 | ], 32 | "scripts": { 33 | "test": "gulp karma --browsers=PhantomJS --reporters=progress" 34 | }, 35 | "dependencies": { 36 | "conventional-changelog": "0.0.11", 37 | "fs": "0.0.2", 38 | "q": "^1.1.2" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /www/templates/blog-detail.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 |
10 |
11 |
12 |

13 |

14 |

15 |
16 |
17 |
18 |
19 |
20 | -------------------------------------------------------------------------------- /www/templates/tab-about.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 |
6 |
7 |
8 | 9 | 10 | 评价 11 | 12 | 13 | 14 | 联系我:h@phodal.com 15 | 16 | 21 | 22 | 23 | 分享 24 | 25 |
26 |
27 | -------------------------------------------------------------------------------- /www/templates/tab-blog.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

{{blog.id}} {{blog.name}}

6 | 7 |
8 |
9 |
10 |
11 | -------------------------------------------------------------------------------- /www/templates/tab-flask.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 |
6 | 网址: http://mqtt.phodal.com 7 |
8 |
9 | 新一代: Lan 10 |
11 |
12 |
13 |
14 | 获取 15 |
16 |
17 | 18 | 19 |
20 |
21 | 发送 22 |
23 |
24 | 25 | 26 | 27 |
28 |
29 |
30 |
{{master}}
31 |
32 |
33 |
34 | -------------------------------------------------------------------------------- /www/templates/tab-homepage.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 | 下载 6 |
7 |
8 | EPUB版 10 | \ 11 | Mobi版 13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | -------------------------------------------------------------------------------- /www/templates/tabs.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /www/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/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/www/lib/angular-animate/index.js: -------------------------------------------------------------------------------- 1 | require('./angular-animate'); 2 | module.exports = 'ngAnimate'; 3 | -------------------------------------------------------------------------------- /www/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/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 | } -------------------------------------------------------------------------------- /www/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/www/lib/angular-sanitize/index.js: -------------------------------------------------------------------------------- 1 | require('./angular-sanitize'); 2 | module.exports = 'ngSanitize'; 3 | -------------------------------------------------------------------------------- /www/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/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/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/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/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/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/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/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 | -------------------------------------------------------------------------------- /www/www/lib/angular/angular.min.js.gzip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/www/www/lib/angular/angular.min.js.gzip -------------------------------------------------------------------------------- /www/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 | -------------------------------------------------------------------------------- /www/www/lib/angular/index.js: -------------------------------------------------------------------------------- 1 | require('./angular'); 2 | module.exports = angular; 3 | -------------------------------------------------------------------------------- /www/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/www/lib/ionic/demos/directive/infiniteScroll/forever/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: forever 3 | component: ionInfiniteScroll 4 | --- 5 | -------------------------------------------------------------------------------- /www/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/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/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/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/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/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/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 | -------------------------------------------------------------------------------- /www/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/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/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/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/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/www/lib/ionic/demos/directive/refresher/refreshList/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: refreshList 3 | component: ionRefresher 4 | --- 5 | -------------------------------------------------------------------------------- /www/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/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/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 | -------------------------------------------------------------------------------- /www/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/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/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/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/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 | -------------------------------------------------------------------------------- /www/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/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/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/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/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/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/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/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/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/www/lib/ionic/demos/old/actionsheet/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/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/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/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/www/lib/ionic/demos/old/checkbox/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/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/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/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/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/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/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/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/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/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/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/www/lib/ionic/demos/old/lists/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/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/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/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/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/www/lib/ionic/demos/old/modal/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/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/www/lib/ionic/demos/old/popup/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/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/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/www/lib/ionic/demos/old/pull-to-refresh/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/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/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/www/lib/ionic/demos/old/radio-buttons/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/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 | }); -------------------------------------------------------------------------------- /www/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/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/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/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/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/www/lib/ionic/demos/old/starter-template/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/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/www/lib/ionic/demos/old/tabs-and-navigation/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/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/www/lib/ionic/demos/old/thumbnail-list/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/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/www/lib/ionic/demos/old/toggle/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | cursor: url('http://ionicframework.com/img/finger.png'), auto; 3 | } -------------------------------------------------------------------------------- /www/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/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/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/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/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/www/lib/ionic/demos/service/loading/test.scenario.js: -------------------------------------------------------------------------------- 1 | --- 2 | name: complete 3 | component: $ionicLoading 4 | --- 5 | -------------------------------------------------------------------------------- /www/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/www/lib/ionic/js/angular/service/navViewDelegate.js: -------------------------------------------------------------------------------- 1 | 2 | IonicModule 3 | .service('$ionicNavViewDelegate', ionic.DelegateService([ 4 | 'clearCache' 5 | ])); 6 | 7 | -------------------------------------------------------------------------------- /www/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/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/www/lib/ionic/release/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/www/www/lib/ionic/release/fonts/ionicons.eot -------------------------------------------------------------------------------- /www/www/lib/ionic/release/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/www/www/lib/ionic/release/fonts/ionicons.ttf -------------------------------------------------------------------------------- /www/www/lib/ionic/release/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/designiot-app/6cd094b53c9927f101ca077b20d92e83a6eac688/www/www/lib/ionic/release/fonts/ionicons.woff -------------------------------------------------------------------------------- /www/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/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/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/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/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/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/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/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/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/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/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/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 | --------------------------------------------------------------------------------