├── Gruntfile.js ├── README.md ├── buildall.bat ├── buildcss.bat ├── buildhtml.bat ├── buildimage.bat ├── buildjs.bat ├── firstbuild.bat ├── package.json └── www ├── css └── ChatsStyle.css ├── dest ├── css │ └── ChatsStyle.css ├── img │ ├── adam.jpg │ ├── ben.png │ ├── ionic.png │ ├── max.png │ ├── mike.png │ └── perry.png ├── index.html ├── js │ ├── App.js │ ├── Config.js │ ├── controllers │ │ ├── AccountCtrl.js │ │ ├── ChatDetailCtrl.js │ │ ├── ChatsCtrl.js │ │ └── DashCtrl.js │ ├── directives │ │ └── OniBarDirective.js │ ├── services │ │ └── ChatsService.js │ └── util │ │ └── LbwanUtil.js ├── lib │ ├── ionic │ │ ├── css │ │ │ ├── ionic.css │ │ │ ├── ionic.min.css │ │ │ ├── ionic_action_sheets.css │ │ │ ├── ionic_action_sheets.min.css │ │ │ ├── ionic_animations.css │ │ │ ├── ionic_animations.min.css │ │ │ ├── ionic_badges.css │ │ │ ├── ionic_badges.min.css │ │ │ ├── ionic_bar.css │ │ │ ├── ionic_bar.min.css │ │ │ ├── ionic_button_bar.css │ │ │ ├── ionic_button_bar.min.css │ │ │ ├── ionic_buttons.css │ │ │ ├── ionic_buttons.min.css │ │ │ ├── ionic_checkbox.css │ │ │ ├── ionic_checkbox.min.css │ │ │ ├── ionic_complex_items.css │ │ │ ├── ionic_complex_items.min.css │ │ │ ├── ionic_forms.css │ │ │ ├── ionic_forms.min.css │ │ │ ├── ionic_grid.css │ │ │ ├── ionic_grid.min.css │ │ │ ├── ionic_icon.css │ │ │ ├── ionic_icon.min.css │ │ │ ├── ionic_item_button.css │ │ │ ├── ionic_item_button.min.css │ │ │ ├── ionic_item_icons.css │ │ │ ├── ionic_item_icons.min.css │ │ │ ├── ionic_items.css │ │ │ ├── ionic_items.min.css │ │ │ ├── ionic_lists_and_card.css │ │ │ ├── ionic_lists_and_card.min.css │ │ │ ├── ionic_loading.css │ │ │ ├── ionic_loading.min.css │ │ │ ├── ionic_menu.css │ │ │ ├── ionic_menu.min.css │ │ │ ├── ionic_modals.css │ │ │ ├── ionic_modals.min.css │ │ │ ├── ionic_platform.css │ │ │ ├── ionic_platform.min.css │ │ │ ├── ionic_popovers.css │ │ │ ├── ionic_popovers.min.css │ │ │ ├── ionic_popups.css │ │ │ ├── ionic_popups.min.css │ │ │ ├── ionic_progress.css │ │ │ ├── ionic_progress.min.css │ │ │ ├── ionic_radio.css │ │ │ ├── ionic_radio.min.css │ │ │ ├── ionic_range.css │ │ │ ├── ionic_range.min.css │ │ │ ├── ionic_select.css │ │ │ ├── ionic_select.min.css │ │ │ ├── ionic_slidebox.css │ │ │ ├── ionic_slidebox.min.css │ │ │ ├── ionic_spinners.css │ │ │ ├── ionic_spinners.min.css │ │ │ ├── ionic_swiper.css │ │ │ ├── ionic_swiper.min.css │ │ │ ├── ionic_tabs.css │ │ │ ├── ionic_tabs.min.css │ │ │ ├── ionic_toggle.css │ │ │ ├── ionic_toggle.min.css │ │ │ ├── ionic_utility.css │ │ │ └── ionic_utility.min.css │ │ ├── fonts │ │ │ ├── ionicons.eot │ │ │ ├── ionicons.svg │ │ │ ├── ionicons.ttf │ │ │ └── ionicons.woff │ │ ├── js │ │ │ ├── angular-ui │ │ │ │ ├── angular-ui-router.js │ │ │ │ └── angular-ui-router.min.js │ │ │ ├── angular │ │ │ │ ├── angular-animate.js │ │ │ │ ├── angular-animate.min.js │ │ │ │ ├── angular-resource.js │ │ │ │ ├── angular-resource.min.js │ │ │ │ ├── angular-sanitize.js │ │ │ │ ├── angular-sanitize.min.js │ │ │ │ ├── angular.js │ │ │ │ └── angular.min.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 │ │ │ ├── _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 │ │ │ ├── _slides.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 │ │ └── version.json │ └── oclazyload │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── bower.json │ │ ├── dist │ │ ├── ocLazyLoad.js │ │ └── ocLazyLoad.min.js │ │ └── examples │ │ ├── complexExample │ │ ├── README.md │ │ ├── bower.json │ │ ├── index.html │ │ ├── js │ │ │ ├── AppCtrl.js │ │ │ ├── app.js │ │ │ └── gridModule.js │ │ └── partials │ │ │ ├── main.html │ │ │ └── modal.html │ │ ├── requireJSExample │ │ ├── css │ │ │ └── ng-grid.css │ │ ├── index.html │ │ ├── js │ │ │ ├── angular.min.js │ │ │ ├── jquery.js │ │ │ ├── lazymodule.js │ │ │ ├── main.js │ │ │ ├── ng-grid-2.0.11.debug.js │ │ │ ├── require.js │ │ │ └── testmodule.js │ │ └── partials │ │ │ └── grid.html │ │ └── simpleExample │ │ ├── index.html │ │ └── js │ │ └── testApp.js └── templates │ ├── chat-detail.html │ ├── tab-account.html │ ├── tab-chats.html │ ├── tab-dash.html │ └── tabs.html ├── img ├── adam.jpg ├── ben.png ├── ionic.png ├── max.png ├── mike.png └── perry.png ├── index.html ├── js ├── App.js ├── Config.js ├── controllers │ ├── AccountCtrl.js │ ├── ChatDetailCtrl.js │ ├── ChatsCtrl.js │ └── DashCtrl.js ├── directives │ └── OniBarDirective.js ├── services │ └── ChatsService.js └── util │ └── LbwanUtil.js ├── lib ├── ionic │ ├── css │ │ ├── ionic.css │ │ ├── ionic.min.css │ │ ├── ionic_action_sheets.css │ │ ├── ionic_action_sheets.min.css │ │ ├── ionic_animations.css │ │ ├── ionic_animations.min.css │ │ ├── ionic_badges.css │ │ ├── ionic_badges.min.css │ │ ├── ionic_bar.css │ │ ├── ionic_bar.min.css │ │ ├── ionic_button_bar.css │ │ ├── ionic_button_bar.min.css │ │ ├── ionic_buttons.css │ │ ├── ionic_buttons.min.css │ │ ├── ionic_checkbox.css │ │ ├── ionic_checkbox.min.css │ │ ├── ionic_complex_items.css │ │ ├── ionic_complex_items.min.css │ │ ├── ionic_forms.css │ │ ├── ionic_forms.min.css │ │ ├── ionic_grid.css │ │ ├── ionic_grid.min.css │ │ ├── ionic_icon.css │ │ ├── ionic_icon.min.css │ │ ├── ionic_item_button.css │ │ ├── ionic_item_button.min.css │ │ ├── ionic_item_icons.css │ │ ├── ionic_item_icons.min.css │ │ ├── ionic_items.css │ │ ├── ionic_items.min.css │ │ ├── ionic_lists_and_card.css │ │ ├── ionic_lists_and_card.min.css │ │ ├── ionic_loading.css │ │ ├── ionic_loading.min.css │ │ ├── ionic_menu.css │ │ ├── ionic_menu.min.css │ │ ├── ionic_modals.css │ │ ├── ionic_modals.min.css │ │ ├── ionic_platform.css │ │ ├── ionic_platform.min.css │ │ ├── ionic_popovers.css │ │ ├── ionic_popovers.min.css │ │ ├── ionic_popups.css │ │ ├── ionic_popups.min.css │ │ ├── ionic_progress.css │ │ ├── ionic_progress.min.css │ │ ├── ionic_radio.css │ │ ├── ionic_radio.min.css │ │ ├── ionic_range.css │ │ ├── ionic_range.min.css │ │ ├── ionic_select.css │ │ ├── ionic_select.min.css │ │ ├── ionic_slidebox.css │ │ ├── ionic_slidebox.min.css │ │ ├── ionic_spinners.css │ │ ├── ionic_spinners.min.css │ │ ├── ionic_swiper.css │ │ ├── ionic_swiper.min.css │ │ ├── ionic_tabs.css │ │ ├── ionic_tabs.min.css │ │ ├── ionic_toggle.css │ │ ├── ionic_toggle.min.css │ │ ├── ionic_utility.css │ │ └── ionic_utility.min.css │ ├── fonts │ │ ├── ionicons.eot │ │ ├── ionicons.svg │ │ ├── ionicons.ttf │ │ └── ionicons.woff │ ├── js │ │ ├── angular-ui │ │ │ ├── angular-ui-router.js │ │ │ └── angular-ui-router.min.js │ │ ├── angular │ │ │ ├── angular-animate.js │ │ │ ├── angular-animate.min.js │ │ │ ├── angular-resource.js │ │ │ ├── angular-resource.min.js │ │ │ ├── angular-sanitize.js │ │ │ ├── angular-sanitize.min.js │ │ │ ├── angular.js │ │ │ └── angular.min.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 │ │ ├── _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 │ │ ├── _slides.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 │ └── version.json └── oclazyload │ ├── .bower.json │ ├── CHANGELOG.md │ ├── LICENSE.md │ ├── README.md │ ├── bower.json │ ├── dist │ ├── ocLazyLoad.js │ └── ocLazyLoad.min.js │ └── examples │ ├── complexExample │ ├── README.md │ ├── bower.json │ ├── index.html │ ├── js │ │ ├── AppCtrl.js │ │ ├── app.js │ │ └── gridModule.js │ └── partials │ │ ├── main.html │ │ └── modal.html │ ├── requireJSExample │ ├── css │ │ └── ng-grid.css │ ├── index.html │ ├── js │ │ ├── angular.min.js │ │ ├── jquery.js │ │ ├── lazymodule.js │ │ ├── main.js │ │ ├── ng-grid-2.0.11.debug.js │ │ ├── require.js │ │ └── testmodule.js │ └── partials │ │ └── grid.html │ └── simpleExample │ ├── index.html │ └── js │ └── testApp.js └── templates ├── chat-detail.html ├── tab-account.html ├── tab-chats.html ├── tab-dash.html └── tabs.html /README.md: -------------------------------------------------------------------------------- 1 | # OniPlatform 2 | ## 这个项目只适用于ionic1,如果可以选择使用ionic2的话,这些特性官方都自带 3 | 在ionic的基础上配置ocLazyLoad,使得项目满足微信应用-单页面表现的需求,使得单页面访问,不会因为项目的庞大而造成读取缓慢,加快启动项目的速度。 4 | 拆分ionic视图控制器的绑定,使之底层的服务能够用于pc端,pc端的页面使用bootstrap编写,用ionic的控制器和服务支持。 5 | 使用此框架要遵循一下规定(以下以移动端路径说明,pc端在最前面加上ionicforpc): 6 | ## 1、命名规则 7 | * ①文件夹命名全部小写 8 | * ②文件命名以首字母大写的驼峰式命名 9 | * ③服务以Service结尾 10 | * ④控制器以Ctrl结尾 11 | * ⑤指令以Directive结尾 12 | ## 2、文件存放路径 13 | * ①所有服务放于js/services 14 | * ②所有控制器放于js/controllers 15 | * ③所有指令放于js/directives 16 | * ④所有工具类放于js/util 17 | * ⑤所有的html文件放于templates 18 | * ⑥路由在App.js中定义 19 | * ⑦所有的文件都要在Config.js文件中写明路径 20 | ## 3、发布(发布文件路径为www/dest,相对路径不变,可以直接拷贝里面的文件发布) 21 | * ①首次使用运行firstbuild.bat,安装相关插件 22 | * ②首次发布运行buildall.bat,压缩js、css、html、image,拷贝lib里面的文件和index.html 23 | * ③只修改js,再次发布,运行buildjs.bat 24 | * ④只修改css,再次发布,运行buildcss.bat 25 | * ⑤只修改html,再次发布,运行buildhtml.bat 26 | * ⑥只修改image,再次发布,运行buildimage.bat 27 | * ⑦增加lib里面的文件,最好重新buildall 28 | ## 4、按需加载的实现 29 | * ①按需加载html,在路由中配置属性templateUrl: 'templates/xx.html',prefetchTemplate:false,不会提前加载html 30 | * ②按需加载js,在路由中配置resolve: loadSequence('DashArgs'),resolve: loadSequence('DashCtrl'),resolve: loadSequence(['DashCtrl','DashService','MainService']) 31 | 32 | >resolve:预载入 33 | 使用预载入功能,可以预先载入一系列依赖或者数据,然后注入到控制器中。 34 | 在路由中的resolve,能够保证在路由到达前载入数据保证(promises). 35 | 预载入对象需要一个对象,这个对象的key纪要注入到控制器的依赖,这个对象的值为需要被载入的服务。 36 | 如果传入的是字符串,路由会视图匹配已经注册的服务。 37 | 如果传入的是函数,该函数会被注入,并且该函数返回的值便是控制器的依赖之一。 38 | 如果该函数返回一个数据保证(promise),这个数据保证将在控制器被实例化前被预先载入并且数据会被注入到控制器中。 39 | loadSequence:自定义的加载js文件的方法,返回的是一个数据保证(promise)。resolve会保证在控制器被实例化之前载入相关数据。 40 | loadSequence接受三种格式的参数。 41 | 第一种单个文件名称(该名称需要在Config.js中配置真实的文件路径)。 42 | 第二种一个文件名称的数据对象(要求同上)。 43 | 第三种单个的数组对象名称(该名称需要在Config.js中配置相应的文件名称的数组对象) 44 | 建议使用第三种格式的参数,提供一个数组对象的名称,在Config.js中匹配对应的数组对象,再通过遍历数组对象,匹配单个文件真实的文件路径,实现加载。 45 | * ③按需加载css文件,在对应的服务中调用 $ocLazyLoad.load( [{type: 'css', path: 'css/ChatsStyle.css'}]),需要注入服务$ocLazyLoad。 46 | 注意需要写在它特有的服务中,不要写在多个界面通用的服务里面。也可以使用按需加载js文件的方式,在配置表中配置。 47 | ## 5、相关规范 48 | * ①服务是按照界面区分的,不是按照功能区分的。 49 | * ②在index.html中使用的服务和指令需要在index中使用script标签加载相关文件。 50 | 在index编译完成启动app之后才会触发路由 51 | 52 | ## 6、关于自由复制 53 | ```js 54 | 在ion-content中设置 overflow-scroll="true" 55 | 在需要的复制的对象增加样式selectable 56 | .selectable{ 57 | -webkit-user-select: auto; 58 | -moz-user-select: all; 59 | -ms-user-select: all; 60 | user-select: all; 61 | } 62 | ``` 63 | -------------------------------------------------------------------------------- /buildall.bat: -------------------------------------------------------------------------------- 1 | grunt -------------------------------------------------------------------------------- /buildcss.bat: -------------------------------------------------------------------------------- 1 | grunt cssmin -------------------------------------------------------------------------------- /buildhtml.bat: -------------------------------------------------------------------------------- 1 | grunt htmlmin -------------------------------------------------------------------------------- /buildimage.bat: -------------------------------------------------------------------------------- 1 | grunt imagemin -------------------------------------------------------------------------------- /buildjs.bat: -------------------------------------------------------------------------------- 1 | grunt uglify -------------------------------------------------------------------------------- /firstbuild.bat: -------------------------------------------------------------------------------- 1 | npm install -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lbwan", 3 | "version": "0.0.1", 4 | "description": "lbwan: An Ionic project", 5 | "author": "小虎Oni", 6 | "devDependencies": { 7 | "grunt": "~1.0.1", 8 | "grunt-contrib-copy": "^1.0.0", 9 | "grunt-contrib-cssmin": "~1.0.1", 10 | "grunt-contrib-imagemin": "^1.0.0", 11 | "grunt-contrib-htmlmin": "^1.4.0", 12 | "grunt-contrib-uglify": "~1.0.1", 13 | "grunt-jsdoc": "^2.1.0", 14 | "load-grunt-tasks": "~3.5.0" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /www/css/ChatsStyle.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaohuoni/ionic-for-wechat/b9b0a4dfd920d3225f50e7b22728001b9dc0104e/www/css/ChatsStyle.css -------------------------------------------------------------------------------- /www/dest/css/ChatsStyle.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaohuoni/ionic-for-wechat/b9b0a4dfd920d3225f50e7b22728001b9dc0104e/www/dest/css/ChatsStyle.css -------------------------------------------------------------------------------- /www/dest/img/adam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaohuoni/ionic-for-wechat/b9b0a4dfd920d3225f50e7b22728001b9dc0104e/www/dest/img/adam.jpg -------------------------------------------------------------------------------- /www/dest/img/ben.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaohuoni/ionic-for-wechat/b9b0a4dfd920d3225f50e7b22728001b9dc0104e/www/dest/img/ben.png -------------------------------------------------------------------------------- /www/dest/img/ionic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaohuoni/ionic-for-wechat/b9b0a4dfd920d3225f50e7b22728001b9dc0104e/www/dest/img/ionic.png -------------------------------------------------------------------------------- /www/dest/img/max.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaohuoni/ionic-for-wechat/b9b0a4dfd920d3225f50e7b22728001b9dc0104e/www/dest/img/max.png -------------------------------------------------------------------------------- /www/dest/img/mike.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaohuoni/ionic-for-wechat/b9b0a4dfd920d3225f50e7b22728001b9dc0104e/www/dest/img/mike.png -------------------------------------------------------------------------------- /www/dest/img/perry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaohuoni/ionic-for-wechat/b9b0a4dfd920d3225f50e7b22728001b9dc0104e/www/dest/img/perry.png -------------------------------------------------------------------------------- /www/dest/js/App.js: -------------------------------------------------------------------------------- 1 | var app=angular.module("starter",["ionic","oc.lazyLoad"]).run(["$rootScope",function(a){a.onibaritems=[{title:"首页",href:"#/tab/dash"},{title:"聊天",href:"#/tab/chats"}]}]).config(["$stateProvider","$ionicConfigProvider","$urlRouterProvider","$controllerProvider","$compileProvider","$filterProvider","$provide","$ocLazyLoadProvider","JS_REQUIRES",function(a,b,c,d,e,f,g,h,i){function j(){function a(a){return i.ViewArgs[a]}var b=arguments,c=a(b[0]);return c&&(b=c),{deps:["$ocLazyLoad","$q",function(a,c){function d(b){return"function"==typeof b?f.then(b):f.then(function(){var c=e(b);return c?a.load(c):console.log("Route resolve: Bad resource name ["+b+"]")})}function e(a){return i.scripts&&i.scripts[a]?i.scripts[a]:i.IonicCss&&i.IonicCss[a]?i.IonicCss[a]:i.CssArg&&i.CssArg[a]?i.CssArg[a]:void 0}for(var f=c.when(1),g=0,h=b.length;h>g;g++)f=d(b[g]);return f}]}}app.controller=d.register,app.directive=e.directive,app.filter=f.register,app.factory=g.factory,app.service=g.service,app.constant=g.constant,app.value=g.value,b.platform.ios.tabs.style("standard"),b.platform.ios.tabs.position("bottom"),b.platform.android.tabs.style("standard"),b.platform.android.tabs.position("bottom"),b.platform.ios.navBar.alignTitle("center"),b.platform.android.navBar.alignTitle("center"),b.platform.ios.backButton.previousTitleText("").icon("ion-ios-arrow-thin-left"),b.platform.android.backButton.previousTitleText("").icon("ion-android-arrow-back"),b.platform.ios.views.transition("ios"),b.platform.android.views.transition("android"),h.config({debug:!0,events:!0}),a.state("tab",{url:"/tab","abstract":!0,templateUrl:"templates/tabs.html"}).state("tab.dash",{url:"/dash",views:{"tab-dash":{templateUrl:"templates/tab-dash.html",prefetchTemplate:!1,controller:"DashCtrl"}},resolve:j("DashArgs")}).state("tab.chats",{url:"/chats",views:{"tab-chats":{templateUrl:"templates/tab-chats.html",prefetchTemplate:!1,controller:"ChatsCtrl"}},resolve:j("ChatsArgs")}).state("tab.chat-detail",{url:"/chats/:chatId",views:{"tab-chats":{templateUrl:"templates/chat-detail.html",prefetchTemplate:!1,controller:"ChatDetailCtrl"}},resolve:j("ChatDetailArgs")}).state("tab.account",{url:"/account",views:{"tab-account":{templateUrl:"templates/tab-account.html",prefetchTemplate:!1,controller:"AccountCtrl"}},resolve:j("AccountArgs")}),c.otherwise("/tab/dash")}]); -------------------------------------------------------------------------------- /www/dest/js/Config.js: -------------------------------------------------------------------------------- 1 | "use strict";app.constant("JS_REQUIRES",{scripts:{ChatDetailCtrl:"js/controllers/ChatDetailCtrl.js",ChatsCtrl:"js/controllers/ChatsCtrl.js",DashCtrl:"js/controllers/DashCtrl.js",AccountCtrl:"js/controllers/AccountCtrl.js",ChatsService:"js/services/ChatsService.js",LbwanUtil:"js/util/LbwanUtil.js",OniBarDirective:"js/directives/OniBarDirective.js"},CssArg:{ChatsStyle:"css/ChatsStyle.css"},IonicCss:{ActionSheets:"lib/ionic/css/ionic_action_sheets.min.css",Animations:"lib/ionic/css/ionic_animations.min.css",Badges:"lib/ionic/css/ionic_badges.min.css",Bar:"lib/ionic/css/ionic_bar.min.css",ButtonBar:"lib/ionic/css/ionic_button_bar.min.css",Buttons:"lib/ionic/css/ionic_buttons.min.css",Checkbox:"lib/ionic/css/ionic_checkbox.min.css",ComplexItems:"lib/ionic/css/ionic_complex_items.min.css",Forms:"lib/ionic/css/ionic_forms.min.css",Grid:"lib/ionic/css/ionic_grid.min.css",Icon:"lib/ionic/css/ionic_icon.min.css",ItemButton:"lib/ionic/css/ionic_item_button.min.css",ItemIcons:"lib/ionic/css/ionic_item_icons.min.css",Items:"lib/ionic/css/ionic_items.min.css",ListsAndCard:"lib/ionic/css/ionic_lists_and_card.min.css",Loading:"lib/ionic/css/ionic_loading.min.css",Menu:"lib/ionic/css/ionic_menu.min.css",Modals:"lib/ionic/css/ionic_modals.min.css",Platform:"lib/ionic/css/ionic_platform.min.css",Popovers:"lib/ionic/css/ionic_popovers.min.css",Popups:"lib/ionic/css/ionic_popups.min.css",Progress:"lib/ionic/css/ionic_progress.min.css",Radio:"lib/ionic/css/ionic_radio.min.css",Range:"lib/ionic/css/ionic_range.min.css",Select:"lib/ionic/css/ionic_select.min.css",Slidebox:"lib/ionic/css/ionic_slidebox.min.css",Spinners:"lib/ionic/css/ionic_spinners.min.css",Swiper:"lib/ionic/css/ionic_swiper.min.css",Tabs:"lib/ionic/css/ionic_tabs.min.css",Toggle:"lib/ionic/css/ionic_toggle.min.css",Utility:"lib/ionic/css/ionic_utility.min.css"},ViewArgs:{DashArgs:["DashCtrl","ActionSheets"],ChatsArgs:["ChatsCtrl","ChatsService","Items","ListsAndCard","ComplexItems","ItemButton","ItemIcons"],ChatDetailArgs:["ChatDetailCtrl","ChatsService"],AccountArgs:["AccountCtrl","ActionSheets"]}}),app.constant("VERSION",1),app.constant("LOCALSTORAGEKEY","LBWUSERINFOSTORAGE"),app.constant("LOCALSTORAGEAUTHKEY","LOCALSTORAGEAUTHKEY"); -------------------------------------------------------------------------------- /www/dest/js/controllers/AccountCtrl.js: -------------------------------------------------------------------------------- 1 | "use strict";app.controller("AccountCtrl",["$scope",function(a){a.settings={enableFriends:!0}}]); -------------------------------------------------------------------------------- /www/dest/js/controllers/ChatDetailCtrl.js: -------------------------------------------------------------------------------- 1 | "use strict";app.controller("ChatDetailCtrl",["$scope","$stateParams","ChatsService",function(a,b,c){a.chat=c.get(b.chatId)}]); -------------------------------------------------------------------------------- /www/dest/js/controllers/ChatsCtrl.js: -------------------------------------------------------------------------------- 1 | "use strict";app.controller("ChatsCtrl",["$scope","ChatsService",function(a,b){a.chats=b.all(),a.remove=function(a){b.remove(a)}}]); -------------------------------------------------------------------------------- /www/dest/js/controllers/DashCtrl.js: -------------------------------------------------------------------------------- 1 | "use strict";app.controller("DashCtrl",["$scope",function(a){a.share=function(){window.sharetitle="啊啊啊啊大大",window.shareUrl="http://test.lbwan.com/res/upload/images/ad/p1ac6g12391r27dg42knu6ej65.jpg",function(a,b,c){function d(){window.open([e,g].join(""),"mb",["toolbar=0,status=0,resizable=1,width=620,height=450,left=",(a.width-620)/2,",top=",(a.height-450)/2].join(""))||(f.href=[e,g].join(""))}try{}catch(c){}var e="http://v.t.sina.com.cn/share/share.php?",f=b.location.href,g=["url=",c(f),"&title=",c(window.sharetitle),"&appkey=2924220432","&pic=",c(window.shareUrl)].join("");/Firefox/.test(navigator.userAgent)?setTimeout(d,0):d()}(screen,document,encodeURIComponent)},a.shareQQ=function(){wx&&(wx.checkJsApi({jsApiList:["getLocation","onMenuShareTimeline","onMenuShareAppMessage"],success:function(a){alert(JSON.stringify(a))}}),wx.onMenuShareAppMessage({title:"什么鬼",desc:"aaaaa",link:"http://www.baidu.com",success:function(){alert("分享成功")},cancel:function(){alert("分享取消")}}))}}]); -------------------------------------------------------------------------------- /www/dest/js/directives/OniBarDirective.js: -------------------------------------------------------------------------------- 1 | "use strict";app.directive("oniBar",[function(){return{restrict:"E",template:'
',replace:!0,controller:function(){var a=window.document.createElement("style");a.type="text/css",a.innerHTML+='.tabs .tab-title{font-family:"微软雅黑" !important;}',a.innerHTML+=".tabs-striped .tab-item.tab-item-active, .tabs-striped .tab-item.active, .tabs-striped .tab-item.activated {margin-top: 0px;border-style: solid;border-width: 0 0 3px 0;border-color: #FF7A01; }",a.innerHTML+=".tabs-striped .tabs{border-bottom: 0px solid #ddd !important;}",a.innerHTML+=".tab-item{font-size: 17px;}",a.innerHTML+=".bar .title{margin: 1px 37px;}",window.document.getElementsByTagName("head")[0].appendChild(a)},link:function(a,b,c){a.items=JSON.parse(c.items)}}}]); -------------------------------------------------------------------------------- /www/dest/js/services/ChatsService.js: -------------------------------------------------------------------------------- 1 | "use strict";app.factory("ChatsService",["$ocLazyLoad",function(a){var b=[{id:0,name:"Ben Sparrow",lastText:"You on your way?",face:"img/ben.png"},{id:1,name:"Max Lynx",lastText:"Hey, it's me",face:"img/max.png"},{id:2,name:"Adam Bradleyson",lastText:"I should buy a boat",face:"img/adam.jpg"},{id:3,name:"Perry Governor",lastText:"Look at my mukluks!",face:"img/perry.png"},{id:4,name:"Mike Harrington",lastText:"This is wicked good ice cream.",face:"img/mike.png"}];return{all:function(){return b},remove:function(a){b.splice(b.indexOf(a),1)},get:function(a){for(var c=0;c .ng-enter { 8 | -webkit-transition: all cubic-bezier(0.1, 0.7, 0.1, 1) 400ms; 9 | transition: all cubic-bezier(0.1, 0.7, 0.1, 1) 400ms; } 10 | 11 | .slide-in-up.ng-enter-active, 12 | .slide-in-up > .ng-enter-active { 13 | -webkit-transform: translate3d(0, 0, 0); 14 | transform: translate3d(0, 0, 0); } 15 | 16 | .slide-in-up.ng-leave, 17 | .slide-in-up > .ng-leave { 18 | -webkit-transition: all ease-in-out 250ms; 19 | transition: all ease-in-out 250ms; } 20 | 21 | @-webkit-keyframes scaleOut { 22 | from { 23 | -webkit-transform: scale(1); 24 | opacity: 1; } 25 | to { 26 | -webkit-transform: scale(0.8); 27 | opacity: 0; } } 28 | 29 | @keyframes scaleOut { 30 | from { 31 | transform: scale(1); 32 | opacity: 1; } 33 | to { 34 | transform: scale(0.8); 35 | opacity: 0; } } 36 | 37 | @-webkit-keyframes superScaleIn { 38 | from { 39 | -webkit-transform: scale(1.2); 40 | opacity: 0; } 41 | to { 42 | -webkit-transform: scale(1); 43 | opacity: 1; } } 44 | 45 | @keyframes superScaleIn { 46 | from { 47 | transform: scale(1.2); 48 | opacity: 0; } 49 | to { 50 | transform: scale(1); 51 | opacity: 1; } } -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_animations.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.slide-in-up{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.slide-in-up.ng-enter,.slide-in-up>.ng-enter{-webkit-transition:all cubic-bezier(.1,.7,.1,1) .4s;transition:all cubic-bezier(.1,.7,.1,1) .4s}.slide-in-up.ng-enter-active,.slide-in-up>.ng-enter-active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-in-up.ng-leave,.slide-in-up>.ng-leave{-webkit-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms}@-webkit-keyframes scaleOut{from{-webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(.8);opacity:0}}@keyframes scaleOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}@-webkit-keyframes superScaleIn{from{-webkit-transform:scale(1.2);opacity:0}to{-webkit-transform:scale(1);opacity:1}}@keyframes superScaleIn{from{transform:scale(1.2);opacity:0}to{transform:scale(1);opacity:1}} -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_badges.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Badges 4 | * -------------------------------------------------- 5 | */ 6 | .badge { 7 | background-color: transparent; 8 | color: #AAAAAA; 9 | z-index: 1; 10 | display: inline-block; 11 | padding: 3px 8px; 12 | min-width: 10px; 13 | border-radius: 10px; 14 | vertical-align: baseline; 15 | text-align: center; 16 | white-space: nowrap; 17 | font-weight: bold; 18 | font-size: 14px; 19 | line-height: 16px; } 20 | .badge:empty { 21 | display: none; } 22 | 23 | .tabs .tab-item .badge.badge-light, 24 | .badge.badge-light { 25 | background-color: #fff; 26 | color: #444; } 27 | 28 | .tabs .tab-item .badge.badge-stable, 29 | .badge.badge-stable { 30 | background-color: #f8f8f8; 31 | color: #444; } 32 | 33 | .tabs .tab-item .badge.badge-positive, 34 | .badge.badge-positive { 35 | background-color: #387ef5; 36 | color: #fff; } 37 | 38 | .tabs .tab-item .badge.badge-calm, 39 | .badge.badge-calm { 40 | background-color: #11c1f3; 41 | color: #fff; } 42 | 43 | .tabs .tab-item .badge.badge-assertive, 44 | .badge.badge-assertive { 45 | background-color: #ef473a; 46 | color: #fff; } 47 | 48 | .tabs .tab-item .badge.badge-balanced, 49 | .badge.badge-balanced { 50 | background-color: #33cd5f; 51 | color: #fff; } 52 | 53 | .tabs .tab-item .badge.badge-energized, 54 | .badge.badge-energized { 55 | background-color: #ffc900; 56 | color: #fff; } 57 | 58 | .tabs .tab-item .badge.badge-royal, 59 | .badge.badge-royal { 60 | background-color: #886aea; 61 | color: #fff; } 62 | 63 | .tabs .tab-item .badge.badge-dark, 64 | .badge.badge-dark { 65 | background-color: #444; 66 | color: #fff; } 67 | 68 | .button .badge { 69 | position: relative; 70 | top: -1px; } 71 | -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_badges.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.badge{background-color:transparent;color:#AAA;z-index:1;display:inline-block;padding:3px 8px;min-width:10px;border-radius:10px;vertical-align:baseline;text-align:center;white-space:nowrap;font-weight:700;font-size:14px;line-height:16px}.badge:empty{display:none}.badge.badge-light,.tabs .tab-item .badge.badge-light{background-color:#fff;color:#444}.badge.badge-stable,.tabs .tab-item .badge.badge-stable{background-color:#f8f8f8;color:#444}.badge.badge-positive,.tabs .tab-item .badge.badge-positive{background-color:#387ef5;color:#fff}.badge.badge-calm,.tabs .tab-item .badge.badge-calm{background-color:#11c1f3;color:#fff}.badge.badge-assertive,.tabs .tab-item .badge.badge-assertive{background-color:#ef473a;color:#fff}.badge.badge-balanced,.tabs .tab-item .badge.badge-balanced{background-color:#33cd5f;color:#fff}.badge.badge-energized,.tabs .tab-item .badge.badge-energized{background-color:#ffc900;color:#fff}.badge.badge-royal,.tabs .tab-item .badge.badge-royal{background-color:#886aea;color:#fff}.badge.badge-dark,.tabs .tab-item .badge.badge-dark{background-color:#444;color:#fff}.button .badge{position:relative;top:-1px} -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_button_bar.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Button Bar 4 | * -------------------------------------------------- 5 | */ 6 | .button-bar { 7 | display: -webkit-box; 8 | display: -webkit-flex; 9 | display: -moz-box; 10 | display: -moz-flex; 11 | display: -ms-flexbox; 12 | display: flex; 13 | -webkit-box-flex: 1; 14 | -webkit-flex: 1; 15 | -moz-box-flex: 1; 16 | -moz-flex: 1; 17 | -ms-flex: 1; 18 | flex: 1; 19 | width: 100%; } 20 | .button-bar.button-bar-inline { 21 | display: block; 22 | width: auto; 23 | *zoom: 1; } 24 | .button-bar.button-bar-inline:before, .button-bar.button-bar-inline:after { 25 | display: table; 26 | content: ""; 27 | line-height: 0; } 28 | .button-bar.button-bar-inline:after { 29 | clear: both; } 30 | .button-bar.button-bar-inline > .button { 31 | width: auto; 32 | display: inline-block; 33 | float: left; } 34 | .button-bar.bar-light > .button { 35 | border-color: #ddd; } 36 | .button-bar.bar-stable > .button { 37 | border-color: #b2b2b2; } 38 | .button-bar.bar-positive > .button { 39 | border-color: #0c60ee; } 40 | .button-bar.bar-calm > .button { 41 | border-color: #0a9dc7; } 42 | .button-bar.bar-assertive > .button { 43 | border-color: #e42112; } 44 | .button-bar.bar-balanced > .button { 45 | border-color: #28a54c; } 46 | .button-bar.bar-energized > .button { 47 | border-color: #e6b500; } 48 | .button-bar.bar-royal > .button { 49 | border-color: #6b46e5; } 50 | .button-bar.bar-dark > .button { 51 | border-color: #111; } 52 | 53 | .button-bar > .button { 54 | -webkit-box-flex: 1; 55 | -webkit-flex: 1; 56 | -moz-box-flex: 1; 57 | -moz-flex: 1; 58 | -ms-flex: 1; 59 | flex: 1; 60 | display: block; 61 | overflow: hidden; 62 | padding: 0 16px; 63 | width: 0; 64 | border-width: 1px 0px 1px 1px; 65 | border-radius: 0; 66 | text-align: center; 67 | text-overflow: ellipsis; 68 | white-space: nowrap; } 69 | .button-bar > .button:before, 70 | .button-bar > .button .icon:before { 71 | line-height: 44px; } 72 | .button-bar > .button:first-child { 73 | border-radius: 4px 0px 0px 4px; } 74 | .button-bar > .button:last-child { 75 | border-right-width: 1px; 76 | border-radius: 0px 4px 4px 0px; } 77 | .button-bar > .button:only-child { 78 | border-radius: 4px; } 79 | 80 | .button-bar > .button-small:before, 81 | .button-bar > .button-small .icon:before { 82 | line-height: 28px; } 83 | -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_button_bar.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.button-bar{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;width:100%}.button-bar.button-bar-inline{display:block;width:auto}.button-bar.button-bar-inline:after,.button-bar.button-bar-inline:before{display:table;content:"";line-height:0}.button-bar.button-bar-inline:after{clear:both}.button-bar.button-bar-inline>.button{width:auto;display:inline-block;float:left}.button-bar.bar-light>.button{border-color:#ddd}.button-bar.bar-stable>.button{border-color:#b2b2b2}.button-bar.bar-positive>.button{border-color:#0c60ee}.button-bar.bar-calm>.button{border-color:#0a9dc7}.button-bar.bar-assertive>.button{border-color:#e42112}.button-bar.bar-balanced>.button{border-color:#28a54c}.button-bar.bar-energized>.button{border-color:#e6b500}.button-bar.bar-royal>.button{border-color:#6b46e5}.button-bar.bar-dark>.button{border-color:#111}.button-bar>.button{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;overflow:hidden;padding:0 16px;width:0;border-width:1px 0 1px 1px;border-radius:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.button-bar>.button .icon:before,.button-bar>.button:before{line-height:44px}.button-bar>.button:first-child{border-radius:4px 0 0 4px}.button-bar>.button:last-child{border-right-width:1px;border-radius:0 4px 4px 0}.button-bar>.button:only-child{border-radius:4px}.button-bar>.button-small .icon:before,.button-bar>.button-small:before{line-height:28px} -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_item_icons.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Item Icons 4 | * -------------------------------------------------- 5 | */ 6 | .item-icon-left .icon, 7 | .item-icon-right .icon { 8 | display: -webkit-box; 9 | display: -webkit-flex; 10 | display: -moz-box; 11 | display: -moz-flex; 12 | display: -ms-flexbox; 13 | display: flex; 14 | -webkit-box-align: center; 15 | -ms-flex-align: center; 16 | -webkit-align-items: center; 17 | -moz-align-items: center; 18 | align-items: center; 19 | position: absolute; 20 | top: 0; 21 | height: 100%; 22 | font-size: 32px; } 23 | .item-icon-left .icon:before, 24 | .item-icon-right .icon:before { 25 | display: block; 26 | width: 32px; 27 | text-align: center; } 28 | 29 | .item .fill-icon { 30 | min-width: 30px; 31 | min-height: 30px; 32 | font-size: 28px; } 33 | 34 | .item-icon-left { 35 | padding-left: 54px; } 36 | .item-icon-left .icon { 37 | left: 11px; } 38 | 39 | .item-complex.item-icon-left { 40 | padding-left: 0; } 41 | .item-complex.item-icon-left .item-content { 42 | padding-left: 54px; } 43 | 44 | .item-icon-right { 45 | padding-right: 54px; } 46 | .item-icon-right .icon { 47 | right: 11px; } 48 | 49 | .item-complex.item-icon-right { 50 | padding-right: 0; } 51 | .item-complex.item-icon-right .item-content { 52 | padding-right: 54px; } 53 | 54 | .item-icon-left.item-icon-right .icon:first-child { 55 | right: auto; } 56 | 57 | .item-icon-left.item-icon-right .icon:last-child, 58 | .item-icon-left .item-delete .icon { 59 | left: auto; } 60 | 61 | .item-icon-left .icon-accessory, 62 | .item-icon-right .icon-accessory { 63 | color: #ccc; 64 | font-size: 16px; } 65 | 66 | .item-icon-left .icon-accessory { 67 | left: 3px; } 68 | 69 | .item-icon-right .icon-accessory { 70 | right: 3px; } 71 | -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_item_icons.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.item-icon-left .icon,.item-icon-right .icon{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%;font-size:32px}.item-icon-left .icon:before,.item-icon-right .icon:before{display:block;width:32px;text-align:center}.item .fill-icon{min-width:30px;min-height:30px;font-size:28px}.item-icon-left{padding-left:54px}.item-icon-left .icon{left:11px}.item-complex.item-icon-left{padding-left:0}.item-complex.item-icon-left .item-content{padding-left:54px}.item-icon-right{padding-right:54px}.item-icon-right .icon{right:11px}.item-complex.item-icon-right{padding-right:0}.item-complex.item-icon-right .item-content{padding-right:54px}.item-icon-left.item-icon-right .icon:first-child{right:auto}.item-icon-left .item-delete .icon,.item-icon-left.item-icon-right .icon:last-child{left:auto}.item-icon-left .icon-accessory,.item-icon-right .icon-accessory{color:#ccc;font-size:16px}.item-icon-left .icon-accessory{left:3px}.item-icon-right .icon-accessory{right:3px} -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_lists_and_card.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Lists 4 | * -------------------------------------------------- 5 | */ 6 | .list { 7 | position: relative; 8 | padding-top: 1px; 9 | padding-bottom: 1px; 10 | padding-left: 0; 11 | margin-bottom: 20px; } 12 | 13 | .list:last-child { 14 | margin-bottom: 0px; } 15 | .list:last-child.card { 16 | margin-bottom: 40px; } 17 | 18 | /** 19 | * List Header 20 | * -------------------------------------------------- 21 | */ 22 | .list-header { 23 | margin-top: 20px; 24 | padding: 5px 15px; 25 | background-color: transparent; 26 | color: #222; 27 | font-weight: bold; } 28 | 29 | .card.list .list-item { 30 | padding-right: 1px; 31 | padding-left: 1px; } 32 | 33 | /** 34 | * Cards and Inset Lists 35 | * -------------------------------------------------- 36 | * A card and list-inset are close to the same thing, except a card as a box shadow. 37 | */ 38 | .card, 39 | .list-inset { 40 | overflow: hidden; 41 | margin: 20px 10px; 42 | border-radius: 2px; 43 | background-color: #fff; } 44 | 45 | .card { 46 | padding-top: 1px; 47 | padding-bottom: 1px; 48 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); } 49 | .card .item { 50 | border-left: 0; 51 | border-right: 0; } 52 | .card .item:first-child { 53 | border-top: 0; } 54 | .card .item:last-child { 55 | border-bottom: 0; } 56 | 57 | .padding .card, .padding .list-inset { 58 | margin-left: 0; 59 | margin-right: 0; } 60 | 61 | .card .item:first-child, 62 | .list-inset .item:first-child, 63 | .padding > .list .item:first-child { 64 | border-top-left-radius: 2px; 65 | border-top-right-radius: 2px; } 66 | .card .item:first-child .item-content, 67 | .list-inset .item:first-child .item-content, 68 | .padding > .list .item:first-child .item-content { 69 | border-top-left-radius: 2px; 70 | border-top-right-radius: 2px; } 71 | 72 | .card .item:last-child, 73 | .list-inset .item:last-child, 74 | .padding > .list .item:last-child { 75 | border-bottom-right-radius: 2px; 76 | border-bottom-left-radius: 2px; } 77 | .card .item:last-child .item-content, 78 | .list-inset .item:last-child .item-content, 79 | .padding > .list .item:last-child .item-content { 80 | border-bottom-right-radius: 2px; 81 | border-bottom-left-radius: 2px; } 82 | 83 | .card .item:last-child, 84 | .list-inset .item:last-child { 85 | margin-bottom: -1px; } 86 | 87 | .card .item, 88 | .list-inset .item, 89 | .padding > .list .item, 90 | .padding-horizontal > .list .item { 91 | margin-right: 0; 92 | margin-left: 0; } 93 | .card .item.item-input input, 94 | .list-inset .item.item-input input, 95 | .padding > .list .item.item-input input, 96 | .padding-horizontal > .list .item.item-input input { 97 | padding-right: 44px; } 98 | 99 | .padding-left > .list .item { 100 | margin-left: 0; } 101 | 102 | .padding-right > .list .item { 103 | margin-right: 0; } 104 | -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_lists_and_card.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.card .item,.list-inset .item,.padding-horizontal>.list .item,.padding>.list .item{margin-left:0}.list{position:relative;padding-top:1px;padding-bottom:1px;padding-left:0;margin-bottom:20px}.list:last-child{margin-bottom:0}.list:last-child.card{margin-bottom:40px}.list-header{margin-top:20px;padding:5px 15px;background-color:transparent;color:#222;font-weight:700}.card.list .list-item{padding-right:1px;padding-left:1px}.card,.list-inset{overflow:hidden;margin:20px 10px;border-radius:2px;background-color:#fff}.card .item,.list-inset .item,.padding .card,.padding .list-inset,.padding-horizontal>.list .item,.padding>.list .item{margin-left:0;margin-right:0}.card{padding-top:1px;padding-bottom:1px;box-shadow:0 1px 3px rgba(0,0,0,.3)}.card .item{border-left:0;border-right:0}.card .item:first-child{border-top:0}.card .item:last-child{border-bottom:0}.card .item:first-child,.card .item:first-child .item-content,.list-inset .item:first-child,.list-inset .item:first-child .item-content,.padding>.list .item:first-child,.padding>.list .item:first-child .item-content{border-top-left-radius:2px;border-top-right-radius:2px}.card .item:last-child,.card .item:last-child .item-content,.list-inset .item:last-child,.list-inset .item:last-child .item-content,.padding>.list .item:last-child,.padding>.list .item:last-child .item-content{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.card .item:last-child,.list-inset .item:last-child{margin-bottom:-1px}.card .item.item-input input,.list-inset .item.item-input input,.padding-horizontal>.list .item.item-input input,.padding>.list .item.item-input input{padding-right:44px}.padding-left>.list .item{margin-left:0}.padding-right>.list .item{margin-right:0} -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_loading.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Loading 4 | * -------------------------------------------------- 5 | */ 6 | .loading-container { 7 | position: absolute; 8 | left: 0; 9 | top: 0; 10 | right: 0; 11 | bottom: 0; 12 | z-index: 13; 13 | display: -webkit-box; 14 | display: -webkit-flex; 15 | display: -moz-box; 16 | display: -moz-flex; 17 | display: -ms-flexbox; 18 | display: flex; 19 | -webkit-box-pack: center; 20 | -ms-flex-pack: center; 21 | -webkit-justify-content: center; 22 | -moz-justify-content: center; 23 | justify-content: center; 24 | -webkit-box-align: center; 25 | -ms-flex-align: center; 26 | -webkit-align-items: center; 27 | -moz-align-items: center; 28 | align-items: center; 29 | -webkit-transition: 0.2s opacity linear; 30 | transition: 0.2s opacity linear; 31 | visibility: hidden; 32 | opacity: 0; } 33 | .loading-container:not(.visible) .icon, 34 | .loading-container:not(.visible) .spinner { 35 | display: none; } 36 | .loading-container.visible { 37 | visibility: visible; } 38 | .loading-container.active { 39 | opacity: 1; } 40 | .loading-container .loading { 41 | padding: 20px; 42 | border-radius: 5px; 43 | background-color: rgba(0, 0, 0, 0.7); 44 | color: #fff; 45 | text-align: center; 46 | text-overflow: ellipsis; 47 | font-size: 15px; } 48 | .loading-container .loading h1, .loading-container .loading h2, .loading-container .loading h3, .loading-container .loading h4, .loading-container .loading h5, .loading-container .loading h6 { 49 | color: #fff; } 50 | -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_loading.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.loading-container{position:absolute;left:0;top:0;right:0;bottom:0;z-index:13;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;-webkit-transition:.2s opacity linear;transition:.2s opacity linear;visibility:hidden;opacity:0}.loading-container:not(.visible) .icon,.loading-container:not(.visible) .spinner{display:none}.loading-container.visible{visibility:visible}.loading-container.active{opacity:1}.loading-container .loading{padding:20px;border-radius:5px;background-color:rgba(0,0,0,.7);color:#fff;text-align:center;text-overflow:ellipsis;font-size:15px}.loading-container .loading h1,.loading-container .loading h2,.loading-container .loading h3,.loading-container .loading h4,.loading-container .loading h5,.loading-container .loading h6{color:#fff} -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_menu.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Menus 4 | * -------------------------------------------------- 5 | * Side panel structure 6 | */ 7 | .menu { 8 | position: absolute; 9 | top: 0; 10 | bottom: 0; 11 | z-index: 0; 12 | overflow: hidden; 13 | min-height: 100%; 14 | max-height: 100%; 15 | width: 275px; 16 | background-color: #fff; } 17 | .menu .scroll-content { 18 | z-index: 10; } 19 | .menu .bar-header { 20 | z-index: 11; } 21 | 22 | .menu-content { 23 | -webkit-transform: none; 24 | transform: none; 25 | box-shadow: -1px 0px 2px rgba(0, 0, 0, 0.2), 1px 0px 2px rgba(0, 0, 0, 0.2); } 26 | 27 | .menu-open .menu-content .pane, 28 | .menu-open .menu-content .scroll-content { 29 | pointer-events: none; } 30 | 31 | .menu-open .menu-content .scroll-content .scroll { 32 | pointer-events: none; } 33 | 34 | .menu-open .menu-content .scroll-content:not(.overflow-scroll) { 35 | overflow: hidden; } 36 | 37 | .grade-b .menu-content, 38 | .grade-c .menu-content { 39 | -webkit-box-sizing: content-box; 40 | -moz-box-sizing: content-box; 41 | box-sizing: content-box; 42 | right: -1px; 43 | left: -1px; 44 | border-right: 1px solid #ccc; 45 | border-left: 1px solid #ccc; 46 | box-shadow: none; } 47 | 48 | .menu-left { 49 | left: 0; } 50 | 51 | .menu-right { 52 | right: 0; } 53 | 54 | .aside-open.aside-resizing .menu-right { 55 | display: none; } 56 | 57 | .menu-animated { 58 | -webkit-transition: -webkit-transform 200ms ease; 59 | transition: transform 200ms ease; } 60 | -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_menu.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.menu,.menu-open .menu-content .scroll-content:not(.overflow-scroll){overflow:hidden}.menu-open .menu-content .pane,.menu-open .menu-content .scroll-content,.menu-open .menu-content .scroll-content .scroll{pointer-events:none}.menu{position:absolute;top:0;bottom:0;z-index:0;min-height:100%;max-height:100%;width:275px;background-color:#fff}.menu .scroll-content{z-index:10}.menu .bar-header{z-index:11}.menu-content{-webkit-transform:none;transform:none;box-shadow:-1px 0 2px rgba(0,0,0,.2),1px 0 2px rgba(0,0,0,.2)}.grade-b .menu-content,.grade-c .menu-content{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;right:-1px;left:-1px;border-right:1px solid #ccc;border-left:1px solid #ccc;box-shadow:none}.menu-left{left:0}.menu-right{right:0}.aside-open.aside-resizing .menu-right{display:none}.menu-animated{-webkit-transition:-webkit-transform .2s ease;transition:transform .2s ease} -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_modals.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Modals 4 | * -------------------------------------------------- 5 | * Modals are independent windows that slide in from off-screen. 6 | */ 7 | .modal-backdrop, 8 | .modal-backdrop-bg { 9 | position: fixed; 10 | top: 0; 11 | left: 0; 12 | z-index: 10; 13 | width: 100%; 14 | height: 100%; } 15 | 16 | .modal-backdrop-bg { 17 | pointer-events: none; } 18 | 19 | .modal { 20 | display: block; 21 | position: absolute; 22 | top: 0; 23 | z-index: 10; 24 | overflow: hidden; 25 | min-height: 100%; 26 | width: 100%; 27 | background-color: #fff; } 28 | 29 | @media (min-width: 680px) { 30 | .modal { 31 | top: 20%; 32 | right: 20%; 33 | bottom: 20%; 34 | left: 20%; 35 | min-height: 240px; 36 | width: 60%; } 37 | .modal.ng-leave-active { 38 | bottom: 0; } 39 | .platform-ios.platform-cordova .modal-wrapper .modal .bar-header:not(.bar-subheader) { 40 | height: 44px; } 41 | .platform-ios.platform-cordova .modal-wrapper .modal .bar-header:not(.bar-subheader) > * { 42 | margin-top: 0; } 43 | .platform-ios.platform-cordova .modal-wrapper .modal .tabs-top > .tabs, 44 | .platform-ios.platform-cordova .modal-wrapper .modal .tabs.tabs-top { 45 | top: 44px; } 46 | .platform-ios.platform-cordova .modal-wrapper .modal .has-header, 47 | .platform-ios.platform-cordova .modal-wrapper .modal .bar-subheader { 48 | top: 44px; } 49 | .platform-ios.platform-cordova .modal-wrapper .modal .has-subheader { 50 | top: 88px; } 51 | .platform-ios.platform-cordova .modal-wrapper .modal .has-header.has-tabs-top { 52 | top: 93px; } 53 | .platform-ios.platform-cordova .modal-wrapper .modal .has-header.has-subheader.has-tabs-top { 54 | top: 137px; } 55 | .modal-backdrop-bg { 56 | -webkit-transition: opacity 300ms ease-in-out; 57 | transition: opacity 300ms ease-in-out; 58 | background-color: #000; 59 | opacity: 0; } 60 | .active .modal-backdrop-bg { 61 | opacity: 0.5; } } 62 | 63 | .modal-open { 64 | pointer-events: none; } 65 | .modal-open .modal, 66 | .modal-open .modal-backdrop { 67 | pointer-events: auto; } 68 | .modal-open.loading-active .modal, 69 | .modal-open.loading-active .modal-backdrop { 70 | pointer-events: none; } 71 | -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_modals.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.modal-backdrop-bg,.modal-open{pointer-events:none}.modal-backdrop,.modal-backdrop-bg{position:fixed;top:0;left:0;z-index:10;width:100%;height:100%}.modal{display:block;position:absolute;top:0;z-index:10;overflow:hidden;min-height:100%;width:100%;background-color:#fff}@media (min-width:680px){.modal{top:20%;right:20%;bottom:20%;left:20%;min-height:240px;width:60%}.modal.ng-leave-active{bottom:0}.platform-ios.platform-cordova .modal-wrapper .modal .bar-header:not(.bar-subheader){height:44px}.platform-ios.platform-cordova .modal-wrapper .modal .bar-header:not(.bar-subheader)>*{margin-top:0}.platform-ios.platform-cordova .modal-wrapper .modal .bar-subheader,.platform-ios.platform-cordova .modal-wrapper .modal .has-header,.platform-ios.platform-cordova .modal-wrapper .modal .tabs-top>.tabs,.platform-ios.platform-cordova .modal-wrapper .modal .tabs.tabs-top{top:44px}.platform-ios.platform-cordova .modal-wrapper .modal .has-subheader{top:88px}.platform-ios.platform-cordova .modal-wrapper .modal .has-header.has-tabs-top{top:93px}.platform-ios.platform-cordova .modal-wrapper .modal .has-header.has-subheader.has-tabs-top{top:137px}.modal-backdrop-bg{-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;background-color:#000;opacity:0}.active .modal-backdrop-bg{opacity:.5}}.modal-open .modal,.modal-open .modal-backdrop{pointer-events:auto}.modal-open.loading-active .modal,.modal-open.loading-active .modal-backdrop{pointer-events:none} -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_popovers.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.popover-backdrop{position:fixed;top:0;left:0;z-index:10;width:100%;height:100%;background-color:transparent}.popover-backdrop.active{background-color:rgba(0,0,0,.1)}.popover{position:absolute;top:25%;left:50%;z-index:10;display:block;margin-top:12px;margin-left:-110px;height:280px;width:220px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4);opacity:0}.popover .item:first-child{border-top:0}.popover .item:last-child{border-bottom:0}.popover.popover-bottom{margin-top:-12px}.popover,.popover .bar-header{border-radius:2px}.popover .scroll-content{z-index:1;margin:2px 0}.popover .bar-header{border-bottom-right-radius:0;border-bottom-left-radius:0}.popover .has-header{border-top-right-radius:0;border-top-left-radius:0}.popover-arrow{display:none}.platform-ios .popover{box-shadow:0 0 40px rgba(0,0,0,.08);border-radius:10px}.platform-ios .popover .bar-header{-webkit-border-top-right-radius:10px;border-top-right-radius:10px;-webkit-border-top-left-radius:10px;border-top-left-radius:10px}.platform-ios .popover .scroll-content{margin:8px 0;border-radius:10px}.platform-ios .popover .scroll-content.has-header{margin-top:0}.platform-ios .popover-arrow{position:absolute;display:block;top:-17px;width:30px;height:19px;overflow:hidden}.platform-ios .popover-arrow:after{position:absolute;top:12px;left:5px;width:20px;height:20px;background-color:#fff;border-radius:3px;content:'';-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.platform-ios .popover-bottom .popover-arrow{top:auto;bottom:-10px}.platform-ios .popover-bottom .popover-arrow:after{top:-6px}.platform-android .popover{margin-top:-32px;background-color:#fafafa;box-shadow:0 2px 6px rgba(0,0,0,.35)}.platform-android .popover .item{border-color:#fafafa;background-color:#fafafa;color:#4d4d4d}.platform-android .popover.popover-bottom{margin-top:32px}.platform-android .popover-backdrop,.platform-android .popover-backdrop.active{background-color:transparent}.popover-open{pointer-events:none}.popover-open .popover,.popover-open .popover-backdrop{pointer-events:auto}.popover-open.loading-active .popover,.popover-open.loading-active .popover-backdrop{pointer-events:none}@media (min-width:680px){.popover{width:360px;margin-left:-180px}} -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_popups.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.popup-open,.popup-open.modal-open .modal{pointer-events:none}.popup-container{position:absolute;top:0;left:0;bottom:0;right:0;background:0 0;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;z-index:12;visibility:hidden}.popup-container.popup-showing{visibility:visible}.popup-container.popup-hidden .popup{-webkit-animation-name:scaleOut;animation-name:scaleOut;-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.popup-container.active .popup{-webkit-animation-name:superScaleIn;animation-name:superScaleIn;-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.popup-container .popup{width:250px;max-width:100%;max-height:90%;border-radius:0;background-color:rgba(255,255,255,.9);display:flex;-webkit-box-direction:normal;-webkit-box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.popup-container input,.popup-container textarea{width:100%}.popup-head{padding:15px 10px;border-bottom:1px solid #eee;text-align:center}.popup-title{margin:0;padding:0;font-size:15px}.popup-sub-title{margin:5px 0 0;padding:0;font-weight:400;font-size:11px}.popup-body{padding:10px;overflow:auto}.popup-buttons{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;-webkit-box-orient:horizontal;-webkit-flex-direction:row;-moz-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding:10px;min-height:65px}.popup-buttons .button{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;min-height:45px;border-radius:2px;line-height:20px;margin-right:5px}.popup-buttons .button:last-child{margin-right:0}.popup-open .popup,.popup-open .popup-backdrop{pointer-events:auto} -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_progress.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | 4 | /** 5 | * Progress 6 | * -------------------------------------------------- 7 | */ 8 | progress { 9 | display: block; 10 | margin: 15px auto; 11 | width: 100%; } 12 | -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_progress.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";progress{display:block;margin:15px auto;width:100%} -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_radio.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Radio Button Inputs 4 | * -------------------------------------------------- 5 | */ 6 | .item-radio { 7 | padding: 0; } 8 | .item-radio:hover { 9 | cursor: pointer; } 10 | 11 | .item-radio .item-content { 12 | /* give some room to the right for the checkmark icon */ 13 | padding-right: 64px; } 14 | 15 | .item-radio .radio-icon { 16 | /* checkmark icon will be hidden by default */ 17 | position: absolute; 18 | top: 0; 19 | right: 0; 20 | z-index: 3; 21 | visibility: hidden; 22 | padding: 14px; 23 | height: 100%; 24 | font-size: 24px; } 25 | 26 | .item-radio input { 27 | /* hide any radio button inputs elements (the ugly circles) */ 28 | position: absolute; 29 | left: -9999px; } 30 | .item-radio input:checked + .radio-content .item-content { 31 | /* style the item content when its checked */ 32 | background: #f7f7f7; } 33 | .item-radio input:checked + .radio-content .radio-icon { 34 | /* show the checkmark icon when its checked */ 35 | visibility: visible; } 36 | -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_radio.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.item-radio{padding:0}.item-radio:hover{cursor:pointer}.item-radio .item-content{padding-right:64px}.item-radio .radio-icon{position:absolute;top:0;right:0;z-index:3;visibility:hidden;padding:14px;height:100%;font-size:24px}.item-radio input{position:absolute;left:-9999px}.item-radio input:checked+.radio-content .item-content{background:#f7f7f7}.item-radio input:checked+.radio-content .radio-icon{visibility:visible} -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_range.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.range input{overflow:hidden;margin-top:5px;margin-bottom:5px;padding-right:2px;padding-left:1px;width:auto;height:43px;outline:0;background:linear-gradient(to right,#ccc 0,#ccc 100%);background-position:center;background-size:99% 2px;background-repeat:no-repeat;-webkit-appearance:none}.range input::-moz-focus-outer{border:0}.range input::-webkit-slider-thumb{position:relative;width:28px;height:28px;border-radius:50%;background-color:#fff;box-shadow:0 0 2px rgba(0,0,0,.3),0 3px 5px rgba(0,0,0,.2);cursor:pointer;-webkit-appearance:none;border:0}.range input::-webkit-slider-thumb:before{position:absolute;top:13px;left:-2001px;width:2000px;height:2px;background:#444;content:' '}.range input::-webkit-slider-thumb:after{position:absolute;top:-15px;left:-15px;padding:30px;content:' '}.range input::-ms-fill-lower{height:2px;background:#444}.range{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;padding:2px 11px}.range.range-light input::-webkit-slider-thumb:before{background:#ddd}.range.range-light input::-ms-fill-lower{background:#ddd}.range.range-stable input::-webkit-slider-thumb:before{background:#b2b2b2}.range.range-stable input::-ms-fill-lower{background:#b2b2b2}.range.range-positive input::-webkit-slider-thumb:before{background:#387ef5}.range.range-positive input::-ms-fill-lower{background:#387ef5}.range.range-calm input::-webkit-slider-thumb:before{background:#11c1f3}.range.range-calm input::-ms-fill-lower{background:#11c1f3}.range.range-balanced input::-webkit-slider-thumb:before{background:#33cd5f}.range.range-balanced input::-ms-fill-lower{background:#33cd5f}.range.range-assertive input::-webkit-slider-thumb:before{background:#ef473a}.range.range-assertive input::-ms-fill-lower{background:#ef473a}.range.range-energized input::-webkit-slider-thumb:before{background:#ffc900}.range.range-energized input::-ms-fill-lower{background:#ffc900}.range.range-royal input::-webkit-slider-thumb:before{background:#886aea}.range.range-royal input::-ms-fill-lower{background:#886aea}.range.range-dark input::-webkit-slider-thumb:before{background:#444}.range.range-dark input::-ms-fill-lower{background:#444}.range .icon{-webkit-box-flex:0;-webkit-flex:0;-moz-box-flex:0;-moz-flex:0;-ms-flex:0;flex:0;display:block;min-width:24px;text-align:center;font-size:24px}.range input{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;margin-right:10px;margin-left:10px}.range-label{-webkit-box-flex:0;-webkit-flex:0 0 auto;-moz-box-flex:0;-moz-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;display:block;white-space:nowrap}.range-label:first-child{padding-left:5px}.range input+.range-label{padding-right:5px;padding-left:0}.platform-windowsphone .range input{height:auto} -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_select.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Select 4 | * -------------------------------------------------- 5 | */ 6 | .item-select { 7 | position: relative; } 8 | .item-select select { 9 | -webkit-appearance: none; 10 | -moz-appearance: none; 11 | appearance: none; 12 | position: absolute; 13 | top: 0; 14 | bottom: 0; 15 | right: 0; 16 | padding: 0 48px 0 16px; 17 | max-width: 65%; 18 | border: none; 19 | background: #fff; 20 | color: #333; 21 | text-indent: .01px; 22 | text-overflow: ''; 23 | white-space: nowrap; 24 | font-size: 14px; 25 | cursor: pointer; 26 | direction: rtl; } 27 | .item-select select::-ms-expand { 28 | display: none; } 29 | .item-select option { 30 | direction: ltr; } 31 | .item-select:after { 32 | position: absolute; 33 | top: 50%; 34 | right: 16px; 35 | margin-top: -3px; 36 | width: 0; 37 | height: 0; 38 | border-top: 5px solid; 39 | border-right: 5px solid transparent; 40 | border-left: 5px solid transparent; 41 | color: #999; 42 | content: ""; 43 | pointer-events: none; } 44 | .item-select.item-light select { 45 | background: #fff; 46 | color: #444; } 47 | .item-select.item-stable select { 48 | background: #f8f8f8; 49 | color: #444; } 50 | .item-select.item-stable:after, .item-select.item-stable .input-label { 51 | color: #666666; } 52 | .item-select.item-positive select { 53 | background: #387ef5; 54 | color: #fff; } 55 | .item-select.item-positive:after, .item-select.item-positive .input-label { 56 | color: #fff; } 57 | .item-select.item-calm select { 58 | background: #11c1f3; 59 | color: #fff; } 60 | .item-select.item-calm:after, .item-select.item-calm .input-label { 61 | color: #fff; } 62 | .item-select.item-assertive select { 63 | background: #ef473a; 64 | color: #fff; } 65 | .item-select.item-assertive:after, .item-select.item-assertive .input-label { 66 | color: #fff; } 67 | .item-select.item-balanced select { 68 | background: #33cd5f; 69 | color: #fff; } 70 | .item-select.item-balanced:after, .item-select.item-balanced .input-label { 71 | color: #fff; } 72 | .item-select.item-energized select { 73 | background: #ffc900; 74 | color: #fff; } 75 | .item-select.item-energized:after, .item-select.item-energized .input-label { 76 | color: #fff; } 77 | .item-select.item-royal select { 78 | background: #886aea; 79 | color: #fff; } 80 | .item-select.item-royal:after, .item-select.item-royal .input-label { 81 | color: #fff; } 82 | .item-select.item-dark select { 83 | background: #444; 84 | color: #fff; } 85 | .item-select.item-dark:after, .item-select.item-dark .input-label { 86 | color: #fff; } 87 | 88 | select[multiple], select[size] { 89 | height: auto; } 90 | -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_select.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.item-select{position:relative}.item-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;top:0;bottom:0;right:0;padding:0 48px 0 16px;max-width:65%;border:none;background:#fff;color:#333;text-indent:.01px;text-overflow:'';white-space:nowrap;font-size:14px;cursor:pointer;direction:rtl}.item-select select::-ms-expand{display:none}.item-select option{direction:ltr}.item-select:after{position:absolute;top:50%;right:16px;margin-top:-3px;width:0;height:0;border-top:5px solid;border-right:5px solid transparent;border-left:5px solid transparent;color:#999;content:"";pointer-events:none}.item-select.item-light select{background:#fff;color:#444}.item-select.item-stable select{background:#f8f8f8;color:#444}.item-select.item-stable .input-label,.item-select.item-stable:after{color:#666}.item-select.item-positive select{background:#387ef5;color:#fff}.item-select.item-positive .input-label,.item-select.item-positive:after{color:#fff}.item-select.item-calm select{background:#11c1f3;color:#fff}.item-select.item-calm .input-label,.item-select.item-calm:after{color:#fff}.item-select.item-assertive select{background:#ef473a;color:#fff}.item-select.item-assertive .input-label,.item-select.item-assertive:after{color:#fff}.item-select.item-balanced select{background:#33cd5f;color:#fff}.item-select.item-balanced .input-label,.item-select.item-balanced:after{color:#fff}.item-select.item-energized select{background:#ffc900;color:#fff}.item-select.item-energized .input-label,.item-select.item-energized:after{color:#fff}.item-select.item-royal select{background:#886aea;color:#fff}.item-select.item-royal .input-label,.item-select.item-royal:after{color:#fff}.item-select.item-dark select{background:#444;color:#fff}.item-select.item-dark .input-label,.item-select.item-dark:after{color:#fff}select[multiple],select[size]{height:auto} -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_slidebox.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Slide Box 4 | * -------------------------------------------------- 5 | */ 6 | .slider { 7 | position: relative; 8 | visibility: hidden; 9 | overflow: hidden; } 10 | 11 | .slider-slides { 12 | position: relative; 13 | height: 100%; } 14 | 15 | .slider-slide { 16 | position: relative; 17 | display: block; 18 | float: left; 19 | width: 100%; 20 | height: 100%; 21 | vertical-align: top; } 22 | 23 | .slider-slide-image > img { 24 | width: 100%; } 25 | 26 | .slider-pager { 27 | position: absolute; 28 | bottom: 20px; 29 | z-index: 1; 30 | width: 100%; 31 | height: 15px; 32 | text-align: center; } 33 | .slider-pager .slider-pager-page { 34 | display: inline-block; 35 | margin: 0px 3px; 36 | width: 15px; 37 | color: #000; 38 | text-decoration: none; 39 | opacity: 0.3; } 40 | .slider-pager .slider-pager-page.active { 41 | -webkit-transition: opacity 0.4s ease-in; 42 | transition: opacity 0.4s ease-in; 43 | opacity: 1; } 44 | 45 | .slider-slide.ng-enter, .slider-slide.ng-leave, .slider-slide.ng-animate, 46 | .slider-pager-page.ng-enter, 47 | .slider-pager-page.ng-leave, 48 | .slider-pager-page.ng-animate { 49 | -webkit-transition: none !important; 50 | transition: none !important; } 51 | 52 | .slider-slide.ng-animate, 53 | .slider-pager-page.ng-animate { 54 | -webkit-animation: none 0s; 55 | animation: none 0s; } 56 | -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_slidebox.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.slider-slide,.slider-slides{position:relative;height:100%}.slider{position:relative;visibility:hidden;overflow:hidden}.slider-slide{display:block;float:left;width:100%;vertical-align:top}.slider-slide-image>img{width:100%}.slider-pager{position:absolute;bottom:20px;z-index:1;width:100%;height:15px;text-align:center}.slider-pager .slider-pager-page{display:inline-block;margin:0 3px;width:15px;color:#000;text-decoration:none;opacity:.3}.slider-pager .slider-pager-page.active{-webkit-transition:opacity .4s ease-in;transition:opacity .4s ease-in;opacity:1}.slider-pager-page.ng-animate,.slider-pager-page.ng-enter,.slider-pager-page.ng-leave,.slider-slide.ng-animate,.slider-slide.ng-enter,.slider-slide.ng-leave{-webkit-transition:none!important;transition:none!important}.slider-pager-page.ng-animate,.slider-slide.ng-animate{-webkit-animation:none 0s;animation:none 0s} -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_spinners.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Spinners 4 | * -------------------------------------------------- 5 | */ 6 | .spinner { 7 | stroke: #444; 8 | fill: #444; } 9 | .spinner svg { 10 | width: 28px; 11 | height: 28px; } 12 | .spinner.spinner-light { 13 | stroke: #fff; 14 | fill: #fff; } 15 | .spinner.spinner-stable { 16 | stroke: #f8f8f8; 17 | fill: #f8f8f8; } 18 | .spinner.spinner-positive { 19 | stroke: #387ef5; 20 | fill: #387ef5; } 21 | .spinner.spinner-calm { 22 | stroke: #11c1f3; 23 | fill: #11c1f3; } 24 | .spinner.spinner-balanced { 25 | stroke: #33cd5f; 26 | fill: #33cd5f; } 27 | .spinner.spinner-assertive { 28 | stroke: #ef473a; 29 | fill: #ef473a; } 30 | .spinner.spinner-energized { 31 | stroke: #ffc900; 32 | fill: #ffc900; } 33 | .spinner.spinner-royal { 34 | stroke: #886aea; 35 | fill: #886aea; } 36 | .spinner.spinner-dark { 37 | stroke: #444; 38 | fill: #444; } 39 | 40 | .spinner-android { 41 | stroke: #4b8bf4; } 42 | 43 | .spinner-ios, 44 | .spinner-ios-small { 45 | stroke: #69717d; } 46 | 47 | .spinner-spiral .stop1 { 48 | stop-color: #fff; 49 | stop-opacity: 0; } 50 | 51 | .spinner-spiral.spinner-light .stop1 { 52 | stop-color: #444; } 53 | 54 | .spinner-spiral.spinner-light .stop2 { 55 | stop-color: #fff; } 56 | 57 | .spinner-spiral.spinner-stable .stop2 { 58 | stop-color: #f8f8f8; } 59 | 60 | .spinner-spiral.spinner-positive .stop2 { 61 | stop-color: #387ef5; } 62 | 63 | .spinner-spiral.spinner-calm .stop2 { 64 | stop-color: #11c1f3; } 65 | 66 | .spinner-spiral.spinner-balanced .stop2 { 67 | stop-color: #33cd5f; } 68 | 69 | .spinner-spiral.spinner-assertive .stop2 { 70 | stop-color: #ef473a; } 71 | 72 | .spinner-spiral.spinner-energized .stop2 { 73 | stop-color: #ffc900; } 74 | 75 | .spinner-spiral.spinner-royal .stop2 { 76 | stop-color: #886aea; } 77 | 78 | .spinner-spiral.spinner-dark .stop2 { 79 | stop-color: #444; } 80 | -------------------------------------------------------------------------------- /www/dest/lib/ionic/css/ionic_spinners.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.spinner{stroke:#444;fill:#444}.spinner svg{width:28px;height:28px}.spinner.spinner-light{stroke:#fff;fill:#fff}.spinner.spinner-stable{stroke:#f8f8f8;fill:#f8f8f8}.spinner.spinner-positive{stroke:#387ef5;fill:#387ef5}.spinner.spinner-calm{stroke:#11c1f3;fill:#11c1f3}.spinner.spinner-balanced{stroke:#33cd5f;fill:#33cd5f}.spinner.spinner-assertive{stroke:#ef473a;fill:#ef473a}.spinner.spinner-energized{stroke:#ffc900;fill:#ffc900}.spinner.spinner-royal{stroke:#886aea;fill:#886aea}.spinner.spinner-dark{stroke:#444;fill:#444}.spinner-android{stroke:#4b8bf4}.spinner-ios,.spinner-ios-small{stroke:#69717d}.spinner-spiral .stop1{stop-color:#fff;stop-opacity:0}.spinner-spiral.spinner-light .stop1{stop-color:#444}.spinner-spiral.spinner-light .stop2{stop-color:#fff}.spinner-spiral.spinner-stable .stop2{stop-color:#f8f8f8}.spinner-spiral.spinner-positive .stop2{stop-color:#387ef5}.spinner-spiral.spinner-calm .stop2{stop-color:#11c1f3}.spinner-spiral.spinner-balanced .stop2{stop-color:#33cd5f}.spinner-spiral.spinner-assertive .stop2{stop-color:#ef473a}.spinner-spiral.spinner-energized .stop2{stop-color:#ffc900}.spinner-spiral.spinner-royal .stop2{stop-color:#886aea}.spinner-spiral.spinner-dark .stop2{stop-color:#444} -------------------------------------------------------------------------------- /www/dest/lib/ionic/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaohuoni/ionic-for-wechat/b9b0a4dfd920d3225f50e7b22728001b9dc0104e/www/dest/lib/ionic/fonts/ionicons.eot -------------------------------------------------------------------------------- /www/dest/lib/ionic/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaohuoni/ionic-for-wechat/b9b0a4dfd920d3225f50e7b22728001b9dc0104e/www/dest/lib/ionic/fonts/ionicons.ttf -------------------------------------------------------------------------------- /www/dest/lib/ionic/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaohuoni/ionic-for-wechat/b9b0a4dfd920d3225f50e7b22728001b9dc0104e/www/dest/lib/ionic/fonts/ionicons.woff -------------------------------------------------------------------------------- /www/dest/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/dest/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/dest/lib/ionic/scss/_badge.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Badges 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .badge { 8 | @include badge-style($badge-default-bg, $badge-default-text); 9 | z-index: $z-index-badge; 10 | display: inline-block; 11 | padding: 3px 8px; 12 | min-width: 10px; 13 | border-radius: $badge-border-radius; 14 | vertical-align: baseline; 15 | text-align: center; 16 | white-space: nowrap; 17 | font-weight: $badge-font-weight; 18 | font-size: $badge-font-size; 19 | line-height: $badge-line-height; 20 | 21 | &:empty { 22 | display: none; 23 | } 24 | } 25 | 26 | //Be sure to override specificity of rule that 'badge color matches tab color by default' 27 | .tabs .tab-item .badge, 28 | .badge { 29 | &.badge-light { 30 | @include badge-style($badge-light-bg, $badge-light-text); 31 | } 32 | &.badge-stable { 33 | @include badge-style($badge-stable-bg, $badge-stable-text); 34 | } 35 | &.badge-positive { 36 | @include badge-style($badge-positive-bg, $badge-positive-text); 37 | } 38 | &.badge-calm { 39 | @include badge-style($badge-calm-bg, $badge-calm-text); 40 | } 41 | &.badge-assertive { 42 | @include badge-style($badge-assertive-bg, $badge-assertive-text); 43 | } 44 | &.badge-balanced { 45 | @include badge-style($badge-balanced-bg, $badge-balanced-text); 46 | } 47 | &.badge-energized { 48 | @include badge-style($badge-energized-bg, $badge-energized-text); 49 | } 50 | &.badge-royal { 51 | @include badge-style($badge-royal-bg, $badge-royal-text); 52 | } 53 | &.badge-dark { 54 | @include badge-style($badge-dark-bg, $badge-dark-text); 55 | } 56 | } 57 | 58 | // Quick fix for labels/badges in buttons 59 | .button .badge { 60 | position: relative; 61 | top: -1px; 62 | } 63 | -------------------------------------------------------------------------------- /www/dest/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 | &.bar-light > .button { 26 | border-color: $button-light-border; 27 | } 28 | &.bar-stable > .button { 29 | border-color: $button-stable-border; 30 | } 31 | &.bar-positive > .button { 32 | border-color: $button-positive-border; 33 | } 34 | &.bar-calm > .button { 35 | border-color: $button-calm-border; 36 | } 37 | &.bar-assertive > .button { 38 | border-color: $button-assertive-border; 39 | } 40 | &.bar-balanced > .button { 41 | border-color: $button-balanced-border; 42 | } 43 | &.bar-energized > .button { 44 | border-color: $button-energized-border; 45 | } 46 | &.bar-royal > .button { 47 | border-color: $button-royal-border; 48 | } 49 | &.bar-dark > .button { 50 | border-color: $button-dark-border; 51 | } 52 | } 53 | 54 | .button-bar > .button { 55 | @include flex(1); 56 | display: block; 57 | 58 | overflow: hidden; 59 | 60 | padding: 0 16px; 61 | 62 | width: 0; 63 | 64 | border-width: 1px 0px 1px 1px; 65 | border-radius: 0; 66 | text-align: center; 67 | text-overflow: ellipsis; 68 | white-space: nowrap; 69 | 70 | &:before, 71 | .icon:before { 72 | line-height: 44px; 73 | } 74 | 75 | &:first-child { 76 | border-radius: $button-border-radius 0px 0px $button-border-radius; 77 | } 78 | &:last-child { 79 | border-right-width: 1px; 80 | border-radius: 0px $button-border-radius $button-border-radius 0px; 81 | } 82 | &:only-child { 83 | border-radius: $button-border-radius; 84 | } 85 | } 86 | 87 | .button-bar > .button-small { 88 | &:before, 89 | .icon:before { 90 | line-height: 28px; 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /www/dest/lib/ionic/scss/_list.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Lists 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .list { 8 | position: relative; 9 | padding-top: $item-border-width; 10 | padding-bottom: $item-border-width; 11 | padding-left: 0; // reset padding because ul and ol 12 | margin-bottom: 20px; 13 | } 14 | .list:last-child { 15 | margin-bottom: 0px; 16 | &.card{ 17 | margin-bottom:40px; 18 | } 19 | } 20 | 21 | 22 | /** 23 | * List Header 24 | * -------------------------------------------------- 25 | */ 26 | 27 | .list-header { 28 | margin-top: $list-header-margin-top; 29 | padding: $list-header-padding; 30 | background-color: $list-header-bg; 31 | color: $list-header-color; 32 | font-weight: bold; 33 | } 34 | 35 | // when its a card make sure it doesn't duplicate top and bottom borders 36 | .card.list .list-item { 37 | padding-right: 1px; 38 | padding-left: 1px; 39 | } 40 | 41 | 42 | /** 43 | * Cards and Inset Lists 44 | * -------------------------------------------------- 45 | * A card and list-inset are close to the same thing, except a card as a box shadow. 46 | */ 47 | 48 | .card, 49 | .list-inset { 50 | overflow: hidden; 51 | margin: ($content-padding * 2) $content-padding; 52 | border-radius: $card-border-radius; 53 | background-color: $card-body-bg; 54 | } 55 | 56 | .card { 57 | padding-top: $item-border-width; 58 | padding-bottom: $item-border-width; 59 | box-shadow: $card-box-shadow; 60 | 61 | .item { 62 | border-left: 0; 63 | border-right: 0; 64 | } 65 | .item:first-child { 66 | border-top: 0; 67 | } 68 | .item:last-child { 69 | border-bottom: 0; 70 | } 71 | } 72 | 73 | .padding { 74 | .card, .list-inset { 75 | margin-left: 0; 76 | margin-right: 0; 77 | } 78 | } 79 | 80 | .card .item, 81 | .list-inset .item, 82 | .padding > .list .item 83 | { 84 | &:first-child { 85 | border-top-left-radius: $card-border-radius; 86 | border-top-right-radius: $card-border-radius; 87 | 88 | .item-content { 89 | border-top-left-radius: $card-border-radius; 90 | border-top-right-radius: $card-border-radius; 91 | } 92 | } 93 | &:last-child { 94 | border-bottom-right-radius: $card-border-radius; 95 | border-bottom-left-radius: $card-border-radius; 96 | 97 | .item-content { 98 | border-bottom-right-radius: $card-border-radius; 99 | border-bottom-left-radius: $card-border-radius; 100 | } 101 | } 102 | } 103 | 104 | .card .item:last-child, 105 | .list-inset .item:last-child { 106 | margin-bottom: $item-border-width * -1; 107 | } 108 | 109 | .card .item, 110 | .list-inset .item, 111 | .padding > .list .item, 112 | .padding-horizontal > .list .item { 113 | margin-right: 0; 114 | margin-left: 0; 115 | 116 | &.item-input input { 117 | padding-right: 44px; 118 | } 119 | } 120 | .padding-left > .list .item { 121 | margin-left: 0; 122 | } 123 | .padding-right > .list .item { 124 | margin-right: 0; 125 | } 126 | -------------------------------------------------------------------------------- /www/dest/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/dest/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 | .menu-open .menu-content .scroll-content .scroll { 40 | pointer-events: none; 41 | } 42 | .menu-open .menu-content .scroll-content:not(.overflow-scroll) { 43 | overflow: hidden; 44 | } 45 | 46 | .grade-b .menu-content, 47 | .grade-c .menu-content { 48 | @include box-sizing(content-box); 49 | right: -1px; 50 | left: -1px; 51 | border-right: 1px solid #ccc; 52 | border-left: 1px solid #ccc; 53 | box-shadow: none; 54 | } 55 | 56 | .menu-left { 57 | left: 0; 58 | } 59 | 60 | .menu-right { 61 | right: 0; 62 | } 63 | 64 | .aside-open.aside-resizing .menu-right { 65 | display: none; 66 | } 67 | 68 | .menu-animated { 69 | @include transition-transform($menu-animation-speed ease); 70 | } 71 | -------------------------------------------------------------------------------- /www/dest/lib/ionic/scss/_modal.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Modals 4 | * -------------------------------------------------- 5 | * Modals are independent windows that slide in from off-screen. 6 | */ 7 | 8 | .modal-backdrop, 9 | .modal-backdrop-bg { 10 | position: fixed; 11 | top: 0; 12 | left: 0; 13 | z-index: $z-index-modal; 14 | width: 100%; 15 | height: 100%; 16 | } 17 | 18 | .modal-backdrop-bg { 19 | pointer-events: none; 20 | } 21 | 22 | .modal { 23 | display: block; 24 | position: absolute; 25 | top: 0; 26 | z-index: $z-index-modal; 27 | overflow: hidden; 28 | min-height: 100%; 29 | width: 100%; 30 | background-color: $modal-bg-color; 31 | } 32 | 33 | @media (min-width: $modal-inset-mode-break-point) { 34 | // inset mode is when the modal doesn't fill the entire 35 | // display but instead is centered within a large display 36 | .modal { 37 | top: $modal-inset-mode-top; 38 | right: $modal-inset-mode-right; 39 | bottom: $modal-inset-mode-bottom; 40 | left: $modal-inset-mode-left; 41 | min-height: $modal-inset-mode-min-height; 42 | width: (100% - $modal-inset-mode-left - $modal-inset-mode-right); 43 | } 44 | 45 | .modal.ng-leave-active { 46 | bottom: 0; 47 | } 48 | 49 | // remove ios header padding from inset header 50 | .platform-ios.platform-cordova .modal-wrapper .modal { 51 | .bar-header:not(.bar-subheader) { 52 | height: $bar-height; 53 | > * { 54 | margin-top: 0; 55 | } 56 | } 57 | .tabs-top > .tabs, 58 | .tabs.tabs-top { 59 | top: $bar-height; 60 | } 61 | .has-header, 62 | .bar-subheader { 63 | top: $bar-height; 64 | } 65 | .has-subheader { 66 | top: $bar-height + $bar-subheader-height; 67 | } 68 | .has-header.has-tabs-top { 69 | top: $bar-height + $tabs-height; 70 | } 71 | .has-header.has-subheader.has-tabs-top { 72 | top: $bar-height + $bar-subheader-height + $tabs-height; 73 | } 74 | } 75 | 76 | .modal-backdrop-bg { 77 | @include transition(opacity 300ms ease-in-out); 78 | background-color: $modal-backdrop-bg-active; 79 | opacity: 0; 80 | } 81 | 82 | .active .modal-backdrop-bg { 83 | opacity: 0.5; 84 | } 85 | } 86 | 87 | // disable clicks on all but the modal 88 | .modal-open { 89 | pointer-events: none; 90 | 91 | .modal, 92 | .modal-backdrop { 93 | pointer-events: auto; 94 | } 95 | // prevent clicks on modal when loading overlay is active though 96 | &.loading-active { 97 | .modal, 98 | .modal-backdrop { 99 | pointer-events: none; 100 | } 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /www/dest/lib/ionic/scss/_platform.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Platform 4 | * -------------------------------------------------- 5 | * Platform specific tweaks 6 | */ 7 | 8 | .platform-ios.platform-cordova { 9 | // iOS has a status bar which sits on top of the header. 10 | // Bump down everything to make room for it. However, if 11 | // if its in Cordova, and set to fullscreen, then disregard the bump. 12 | &:not(.fullscreen) { 13 | .bar-header:not(.bar-subheader) { 14 | height: $bar-height + $ios-statusbar-height; 15 | 16 | &.item-input-inset .item-input-wrapper { 17 | margin-top: 19px !important; 18 | } 19 | 20 | > * { 21 | margin-top: $ios-statusbar-height; 22 | } 23 | } 24 | .tabs-top > .tabs, 25 | .tabs.tabs-top { 26 | top: $bar-height + $ios-statusbar-height; 27 | } 28 | 29 | .has-header, 30 | .bar-subheader { 31 | top: $bar-height + $ios-statusbar-height; 32 | } 33 | .has-subheader { 34 | top: $bar-height + $bar-subheader-height + $ios-statusbar-height; 35 | } 36 | .has-header.has-tabs-top { 37 | top: $bar-height + $tabs-height + $ios-statusbar-height; 38 | } 39 | .has-header.has-subheader.has-tabs-top { 40 | top: $bar-height + $bar-subheader-height + $tabs-height + $ios-statusbar-height; 41 | } 42 | } 43 | .popover{ 44 | .bar-header:not(.bar-subheader) { 45 | height: $bar-height; 46 | &.item-input-inset .item-input-wrapper { 47 | margin-top: -1px; 48 | } 49 | > * { 50 | margin-top: 0; 51 | } 52 | } 53 | .has-header, 54 | .bar-subheader { 55 | top: $bar-height; 56 | } 57 | .has-subheader { 58 | top: $bar-height + $bar-subheader-height; 59 | } 60 | } 61 | &.status-bar-hide { 62 | // Cordova doesn't adjust the body height correctly, this makes up for it 63 | margin-bottom: 20px; 64 | } 65 | } 66 | 67 | @media (orientation:landscape) { 68 | .platform-ios.platform-browser.platform-ipad { 69 | position: fixed; // required for iPad 7 Safari 70 | } 71 | } 72 | 73 | .platform-c:not(.enable-transitions) * { 74 | // disable transitions on grade-c devices (Android 2) 75 | -webkit-transition: none !important; 76 | transition: none !important; 77 | } 78 | -------------------------------------------------------------------------------- /www/dest/lib/ionic/scss/_popup.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Popups 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .popup-container { 8 | position: absolute; 9 | top: 0; 10 | left: 0; 11 | bottom: 0; 12 | right: 0; 13 | background: rgba(0,0,0,0); 14 | 15 | @include display-flex(); 16 | @include justify-content(center); 17 | @include align-items(center); 18 | 19 | z-index: $z-index-popup; 20 | 21 | // Start hidden 22 | visibility: hidden; 23 | &.popup-showing { 24 | visibility: visible; 25 | } 26 | 27 | &.popup-hidden .popup { 28 | @include animation-name(scaleOut); 29 | @include animation-duration($popup-leave-animation-duration); 30 | @include animation-timing-function(ease-in-out); 31 | @include animation-fill-mode(both); 32 | } 33 | 34 | &.active .popup { 35 | @include animation-name(superScaleIn); 36 | @include animation-duration($popup-enter-animation-duration); 37 | @include animation-timing-function(ease-in-out); 38 | @include animation-fill-mode(both); 39 | } 40 | 41 | .popup { 42 | width: $popup-width; 43 | max-width: 100%; 44 | max-height: 90%; 45 | 46 | border-radius: $popup-border-radius; 47 | background-color: $popup-background-color; 48 | 49 | @include display-flex(); 50 | @include flex-direction(column); 51 | } 52 | 53 | input, 54 | textarea { 55 | width: 100%; 56 | } 57 | } 58 | 59 | .popup-head { 60 | padding: 15px 10px; 61 | border-bottom: 1px solid #eee; 62 | text-align: center; 63 | } 64 | .popup-title { 65 | margin: 0; 66 | padding: 0; 67 | font-size: 15px; 68 | } 69 | .popup-sub-title { 70 | margin: 5px 0 0 0; 71 | padding: 0; 72 | font-weight: normal; 73 | font-size: 11px; 74 | } 75 | .popup-body { 76 | padding: 10px; 77 | overflow: auto; 78 | } 79 | 80 | .popup-buttons { 81 | @include display-flex(); 82 | @include flex-direction(row); 83 | padding: 10px; 84 | min-height: $popup-button-min-height + 20; 85 | 86 | .button { 87 | @include flex(1); 88 | display: block; 89 | min-height: $popup-button-min-height; 90 | border-radius: $popup-button-border-radius; 91 | line-height: $popup-button-line-height; 92 | 93 | margin-right: 5px; 94 | &:last-child { 95 | margin-right: 0px; 96 | } 97 | } 98 | } 99 | 100 | .popup-open { 101 | pointer-events: none; 102 | 103 | &.modal-open .modal { 104 | pointer-events: none; 105 | } 106 | 107 | .popup-backdrop, .popup { 108 | pointer-events: auto; 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /www/dest/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/dest/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/dest/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/dest/lib/ionic/scss/_spinner.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Spinners 3 | * -------------------------------------------------- 4 | */ 5 | 6 | .spinner { 7 | svg { 8 | width: $spinner-width; 9 | height: $spinner-height; 10 | } 11 | 12 | stroke: $spinner-default-stroke; 13 | fill: $spinner-default-fill; 14 | 15 | &.spinner-light { 16 | stroke: $spinner-light-stroke; 17 | fill: $spinner-light-fill; 18 | } 19 | &.spinner-stable { 20 | stroke: $spinner-stable-stroke; 21 | fill: $spinner-stable-fill; 22 | } 23 | &.spinner-positive { 24 | stroke: $spinner-positive-stroke; 25 | fill: $spinner-positive-fill; 26 | } 27 | &.spinner-calm { 28 | stroke: $spinner-calm-stroke; 29 | fill: $spinner-calm-fill; 30 | } 31 | &.spinner-balanced { 32 | stroke: $spinner-balanced-stroke; 33 | fill: $spinner-balanced-fill; 34 | } 35 | &.spinner-assertive { 36 | stroke: $spinner-assertive-stroke; 37 | fill: $spinner-assertive-fill; 38 | } 39 | &.spinner-energized { 40 | stroke: $spinner-energized-stroke; 41 | fill: $spinner-energized-fill; 42 | } 43 | &.spinner-royal { 44 | stroke: $spinner-royal-stroke; 45 | fill: $spinner-royal-fill; 46 | } 47 | &.spinner-dark { 48 | stroke: $spinner-dark-stroke; 49 | fill: $spinner-dark-fill; 50 | } 51 | } 52 | 53 | .spinner-android { 54 | stroke: #4b8bf4; 55 | } 56 | 57 | .spinner-ios, 58 | .spinner-ios-small { 59 | stroke: #69717d; 60 | } 61 | 62 | .spinner-spiral { 63 | .stop1 { 64 | stop-color: $spinner-light-fill; 65 | stop-opacity: 0; 66 | } 67 | 68 | &.spinner-light { 69 | .stop1 { 70 | stop-color: $spinner-default-fill; 71 | } 72 | .stop2 { 73 | stop-color: $spinner-light-fill; 74 | } 75 | } 76 | &.spinner-stable .stop2 { 77 | stop-color: $spinner-stable-fill; 78 | } 79 | &.spinner-positive .stop2 { 80 | stop-color: $spinner-positive-fill; 81 | } 82 | &.spinner-calm .stop2 { 83 | stop-color: $spinner-calm-fill; 84 | } 85 | &.spinner-balanced .stop2 { 86 | stop-color: $spinner-balanced-fill; 87 | } 88 | &.spinner-assertive .stop2 { 89 | stop-color: $spinner-assertive-fill; 90 | } 91 | &.spinner-energized .stop2 { 92 | stop-color: $spinner-energized-fill; 93 | } 94 | &.spinner-royal .stop2 { 95 | stop-color: $spinner-royal-fill; 96 | } 97 | &.spinner-dark .stop2 { 98 | stop-color: $spinner-dark-fill; 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /www/dest/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 | "slides", 31 | "refresher", 32 | "spinner", 33 | 34 | // Forms 35 | "form", 36 | "checkbox", 37 | "toggle", 38 | "radio", 39 | "range", 40 | "select", 41 | "progress", 42 | 43 | // Buttons 44 | "button", 45 | "button-bar", 46 | 47 | // Util 48 | "grid", 49 | "util", 50 | "platform", 51 | 52 | // Animations 53 | "animations", 54 | "transitions"; 55 | -------------------------------------------------------------------------------- /www/dest/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/dest/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/dest/lib/ionic/version.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.3.1", 3 | "codename": "el salvador", 4 | "date": "2016-05-12", 5 | "time": "18:21:10" 6 | } 7 | -------------------------------------------------------------------------------- /www/dest/lib/oclazyload/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Olivier Combe 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /www/dest/lib/oclazyload/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "oclazyload", 3 | "version": "0.6.3", 4 | "description": "Load modules on demand (lazy load) with angularJS", 5 | "main": "dist/ocLazyLoad.min.js", 6 | "homepage": "https://github.com/ocombe/ocLazyLoad", 7 | "authors": [ 8 | "Olivier Combe " 9 | ], 10 | "license": "MIT", 11 | "keywords": [ 12 | "lazy load", 13 | "lazy-load", 14 | "load on demand", 15 | "module", 16 | "angular", 17 | "angularJS" 18 | ], 19 | "ignore": [ 20 | "**/.*", 21 | "node_modules", 22 | "bower_components", 23 | "src", 24 | "gulpfile.js", 25 | "package.json", 26 | "changelog.js", 27 | "validate-commit-msg.js", 28 | "tests", 29 | "karma.conf.js" 30 | ], 31 | "devDependencies": { 32 | "angular-mocks": "~1.3.2" 33 | }, 34 | "dependencies": { 35 | "angular": ">=1.2.0 <=1.4.0" 36 | } 37 | } -------------------------------------------------------------------------------- /www/dest/lib/oclazyload/examples/complexExample/README.md: -------------------------------------------------------------------------------- 1 | Use `bower install` to download the libraries used in this example. -------------------------------------------------------------------------------- /www/dest/lib/oclazyload/examples/complexExample/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example-ocLazyLoad", 3 | "version": "0.3.9", 4 | "homepage": "https://github.com/ocombe/ocLazyLoad", 5 | "authors": ["ocombe "], 6 | "main": "js/app.js", 7 | "license": "MIT", 8 | "private": true, 9 | "ignore": ["**/.*", "node_modules", "bower_components", "test", "tests"], 10 | "dependencies": { 11 | "angular-ui-router": "~0.2.10", 12 | "ocModal": "~0.1.6", 13 | "bootstrap": "~3.2.0", 14 | "angular-ui-grid": "~3.0.0-rc.12" 15 | } 16 | } -------------------------------------------------------------------------------- /www/dest/lib/oclazyload/examples/complexExample/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 16 | 17 | 18 | 19 |

$ocLazyLoad

20 |

21 | With ocLazyLoad you can lazy load js / css / templates with a service and/or a directive.
22 | If you get on error when you load the page the first time, don't forget to use `bower install` to download the libraries used in this example. 23 |

24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /www/dest/lib/oclazyload/examples/complexExample/js/AppCtrl.js: -------------------------------------------------------------------------------- 1 | angular.module('app').controller('AppCtrl', function($scope, $ocLazyLoad) { 2 | $scope.$on('ocLazyLoad.moduleLoaded', function(e, params) { 3 | console.log('event module loaded', params); 4 | }); 5 | 6 | $scope.$on('ocLazyLoad.componentLoaded', function(e, params) { 7 | console.log('event component loaded', params); 8 | }); 9 | 10 | $scope.$on('ocLazyLoad.fileLoaded', function(e, file) { 11 | console.log('event file loaded', file); 12 | }); 13 | 14 | $scope.loadBootstrap = function() { 15 | // use events to know when the files are loaded 16 | var unbind = $scope.$on('ocLazyLoad.fileLoaded', function(e, file) { 17 | if(file === 'bower_components/bootstrap/dist/css/bootstrap.css') { 18 | $scope.bootstrapLoaded = true; 19 | unbind(); 20 | } 21 | }); 22 | // we could use .then here instead of events 23 | $ocLazyLoad.load([ 24 | 'bower_components/bootstrap/dist/js/bootstrap.js', 25 | 'bower_components/bootstrap/dist/css/bootstrap.css' 26 | ]); 27 | }; 28 | }); 29 | -------------------------------------------------------------------------------- /www/dest/lib/oclazyload/examples/complexExample/js/gridModule.js: -------------------------------------------------------------------------------- 1 | // ngGrid is also lazy loaded by $ocLazyLoad thanks to the module dependency injection ! 2 | angular.module('gridModule', [[ // you don't even need to set the name of the module that you want to lazy load ! 3 | 'bower_components/angular-ui-grid/ui-grid.js', 4 | 'bower_components/angular-ui-grid/ui-grid.css' 5 | ]]).controller('GridModuleCtrl', function($scope) { 6 | console.log('------- grid module ctrl'); 7 | $scope.myData = [{name: "Moroni", age: 50}, 8 | {name: "Teancum", age: 43}, 9 | {name: "Jacob", age: 27}, 10 | {name: "Nephi", age: 29}, 11 | {name: "Enos", age: 34}]; 12 | $scope.gridOptions = {data: 'myData'}; 13 | }).config(function() { 14 | console.warn('config gridModule'); 15 | }).config(['$ocLazyLoadProvider', function($ocLazyLoadProvider) { 16 | console.warn('config 2 gridModule'); 17 | }]).run(function() { 18 | console.warn('run gridModule'); 19 | }); 20 | -------------------------------------------------------------------------------- /www/dest/lib/oclazyload/examples/complexExample/partials/main.html: -------------------------------------------------------------------------------- 1 |
2 |

Load external libs (not angular-based):

3 |

4 |
5 | 6 |
7 |

Load a module by loading a state:

8 |

Go to "modal" state

9 |

10 |
11 | 12 |
13 |

Autoload a complete module with dependencies and templates using the directive:

14 | 15 | 16 |
17 |
18 | {{test}}
19 |
20 |
21 |
22 |
23 | -------------------------------------------------------------------------------- /www/dest/lib/oclazyload/examples/complexExample/partials/modal.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/dest/lib/oclazyload/examples/requireJSExample/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 14 | 15 | 16 | 17 | {{test}} 18 | 19 |
20 | 21 | -------------------------------------------------------------------------------- /www/dest/lib/oclazyload/examples/requireJSExample/js/lazymodule.js: -------------------------------------------------------------------------------- 1 | angular.module('lazymodule', ['ngGrid']) 2 | .controller('lazyController', ['$scope', function($scope){ 3 | $scope.test = "Hey again"; 4 | $scope.myData = [{name: "Moroni", age: 50}, 5 | {name: "Tiancum", age: 43}, 6 | {name: "Jacob", age: 27}, 7 | {name: "Nephi", age: 29}, 8 | {name: "Enos", age: 34}]; 9 | $scope.gridOptions = { data: 'myData' }; 10 | }]); -------------------------------------------------------------------------------- /www/dest/lib/oclazyload/examples/requireJSExample/js/main.js: -------------------------------------------------------------------------------- 1 | requirejs.config({ 2 | baseUrl: 'js/', 3 | paths: { 4 | 'jquery': 'jquery', 5 | 'angular': 'angular.min', 6 | 'test': 'testmodule', 7 | 'ngGrid': 'ng-grid-2.0.11.debug', 8 | 'ocLazyLoad': '../../../src/ocLazyLoad' 9 | }, 10 | shim: { 11 | 'angular': ['jquery'], 12 | 'ocLazyLoad': ['angular'], 13 | 'ngGrid': ['angular'], 14 | 'lazymodule': ['test', 'ngGrid'], 15 | 'test': ['ocLazyLoad'] 16 | } 17 | }); 18 | 19 | // Start the main app logic. 20 | requirejs(['test'], function() { 21 | angular.bootstrap(document.body, ['test']); 22 | }); 23 | -------------------------------------------------------------------------------- /www/dest/lib/oclazyload/examples/requireJSExample/js/testmodule.js: -------------------------------------------------------------------------------- 1 | angular.module('test', ['oc.lazyLoad']) 2 | .config(['$ocLazyLoadProvider', function($ocLazyLoadProvider) { 3 | $ocLazyLoadProvider.config({ 4 | jsLoader: requirejs, 5 | debug: true 6 | }); 7 | }]) 8 | .controller('mainController', ['$scope', '$ocLazyLoad', function($scope, $ocLazyLoad) { 9 | $scope.test = "Hi there"; 10 | $scope.partialUrl = ''; 11 | 12 | $scope.load = function() { 13 | $ocLazyLoad.load('lazymodule').then(function() { 14 | $scope.partialUrl = 'partials/grid.html'; 15 | }, function(e){ 16 | console.log(e); 17 | }); 18 | } 19 | 20 | }]); 21 | -------------------------------------------------------------------------------- /www/dest/lib/oclazyload/examples/requireJSExample/partials/grid.html: -------------------------------------------------------------------------------- 1 |
2 | {{test}}
3 |
4 |
-------------------------------------------------------------------------------- /www/dest/lib/oclazyload/examples/simpleExample/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
12 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /www/dest/lib/oclazyload/examples/simpleExample/js/testApp.js: -------------------------------------------------------------------------------- 1 | angular.module("testApp", []).directive("sayHello", function() { 2 | return { 3 | scope: { 4 | to: '@to' 5 | }, 6 | restrict: "E", 7 | template: '

Hello {{to}}

' 8 | }; 9 | }); 10 | -------------------------------------------------------------------------------- /www/dest/templates/chat-detail.html: -------------------------------------------------------------------------------- 1 |

{{chat.lastText}}

-------------------------------------------------------------------------------- /www/dest/templates/tab-account.html: -------------------------------------------------------------------------------- 1 | Enable Friends -------------------------------------------------------------------------------- /www/dest/templates/tab-chats.html: -------------------------------------------------------------------------------- 1 |

{{chat.name}}

{{chat.lastText}}

Delete
-------------------------------------------------------------------------------- /www/dest/templates/tab-dash.html: -------------------------------------------------------------------------------- 1 |

Welcome to Ionic

This is the Ionic starter for tabs-based apps. For other starters and ready-made templates, check out the Ionic Market.

To edit the content of each tab, edit the corresponding template file in www/templates/. This template is www/templates/tab-dash.html

If you need help with your app, join the Ionic Community on the Ionic Forum. Make sure to follow us on Twitter to get important updates and announcements for Ionic developers.

For help sending push notifications, join the Ionic Platform and check out Ionic Push. We also have other services available.

-------------------------------------------------------------------------------- /www/dest/templates/tabs.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/img/adam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaohuoni/ionic-for-wechat/b9b0a4dfd920d3225f50e7b22728001b9dc0104e/www/img/adam.jpg -------------------------------------------------------------------------------- /www/img/ben.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaohuoni/ionic-for-wechat/b9b0a4dfd920d3225f50e7b22728001b9dc0104e/www/img/ben.png -------------------------------------------------------------------------------- /www/img/ionic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaohuoni/ionic-for-wechat/b9b0a4dfd920d3225f50e7b22728001b9dc0104e/www/img/ionic.png -------------------------------------------------------------------------------- /www/img/max.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaohuoni/ionic-for-wechat/b9b0a4dfd920d3225f50e7b22728001b9dc0104e/www/img/max.png -------------------------------------------------------------------------------- /www/img/mike.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaohuoni/ionic-for-wechat/b9b0a4dfd920d3225f50e7b22728001b9dc0104e/www/img/mike.png -------------------------------------------------------------------------------- /www/img/perry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaohuoni/ionic-for-wechat/b9b0a4dfd920d3225f50e7b22728001b9dc0104e/www/img/perry.png -------------------------------------------------------------------------------- /www/js/Config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** 4 | * Config constant 5 | */ 6 | app.constant('JS_REQUIRES', { 7 | //*** Scripts 8 | scripts: { 9 | //*** Controllers 10 | 'ChatDetailCtrl': 'js/controllers/ChatDetailCtrl.js', 11 | 'ChatsCtrl': 'js/controllers/ChatsCtrl.js', 12 | 'DashCtrl': 'js/controllers/DashCtrl.js', 13 | 'AccountCtrl': 'js/controllers/AccountCtrl.js', 14 | //*** Services 15 | 'ChatsService': 'js/services/ChatsService.js', 16 | //*** 工具类 17 | 'LbwanUtil': 'js/util/LbwanUtil.js', 18 | //*** 主件 19 | 'OniBarDirective': 'js/directives/OniBarDirective.js' 20 | }, 21 | CssArg:{ 22 | ChatsStyle:'css/ChatsStyle.css' 23 | }, 24 | IonicCss:{ 25 | ActionSheets:'lib/ionic/css/ionic_action_sheets.min.css', 26 | Animations:'lib/ionic/css/ionic_animations.min.css', 27 | Badges:'lib/ionic/css/ionic_badges.min.css', 28 | Bar:'lib/ionic/css/ionic_bar.min.css', 29 | ButtonBar:'lib/ionic/css/ionic_button_bar.min.css', 30 | Buttons:'lib/ionic/css/ionic_buttons.min.css', 31 | Checkbox:'lib/ionic/css/ionic_checkbox.min.css', 32 | ComplexItems:'lib/ionic/css/ionic_complex_items.min.css', 33 | Forms:'lib/ionic/css/ionic_forms.min.css', 34 | Grid:'lib/ionic/css/ionic_grid.min.css', 35 | Icon:'lib/ionic/css/ionic_icon.min.css', 36 | ItemButton:'lib/ionic/css/ionic_item_button.min.css', 37 | ItemIcons:'lib/ionic/css/ionic_item_icons.min.css', 38 | Items:'lib/ionic/css/ionic_items.min.css', 39 | ListsAndCard:'lib/ionic/css/ionic_lists_and_card.min.css', 40 | Loading:'lib/ionic/css/ionic_loading.min.css', 41 | Menu:'lib/ionic/css/ionic_menu.min.css', 42 | Modals:'lib/ionic/css/ionic_modals.min.css', 43 | Platform:'lib/ionic/css/ionic_platform.min.css', 44 | Popovers:'lib/ionic/css/ionic_popovers.min.css', 45 | Popups:'lib/ionic/css/ionic_popups.min.css', 46 | Progress:'lib/ionic/css/ionic_progress.min.css', 47 | Radio:'lib/ionic/css/ionic_radio.min.css', 48 | Range:'lib/ionic/css/ionic_range.min.css', 49 | Select:'lib/ionic/css/ionic_select.min.css', 50 | Slidebox:'lib/ionic/css/ionic_slidebox.min.css', 51 | Spinners:'lib/ionic/css/ionic_spinners.min.css', 52 | Swiper:'lib/ionic/css/ionic_swiper.min.css', 53 | Tabs:'lib/ionic/css/ionic_tabs.min.css', 54 | Toggle:'lib/ionic/css/ionic_toggle.min.css', 55 | Utility:'lib/ionic/css/ionic_utility.min.css' 56 | }, 57 | ViewArgs: { 58 | //请注意这个文件是有加载顺序要求的。没按正确的顺序,将会导致错误。 59 | DashArgs: ['DashCtrl','ActionSheets'], 60 | ChatsArgs: ['ChatsCtrl','ChatsService','Items','ListsAndCard','ComplexItems','ItemButton','ItemIcons'], 61 | ChatDetailArgs: ['ChatDetailCtrl','ChatsService'], 62 | AccountArgs: ['AccountCtrl','ActionSheets'] 63 | } 64 | }); 65 | app.constant('VERSION', 1) 66 | app.constant('LOCALSTORAGEKEY',"LBWUSERINFOSTORAGE") 67 | app.constant('LOCALSTORAGEAUTHKEY',"LOCALSTORAGEAUTHKEY") 68 | -------------------------------------------------------------------------------- /www/js/controllers/AccountCtrl.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | /*** 3 | * 设置 4 | */ 5 | app.controller('AccountCtrl', ["$scope",function($scope) { 6 | $scope.settings = { 7 | enableFriends: true 8 | }; 9 | }]); 10 | -------------------------------------------------------------------------------- /www/js/controllers/ChatDetailCtrl.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | /*** 3 | * 聊天详情 4 | */ 5 | app.controller('ChatDetailCtrl', ["$scope","$stateParams","ChatsService",function($scope, $stateParams, ChatsService) { 6 | $scope.chat = ChatsService.get($stateParams.chatId); 7 | }]); 8 | -------------------------------------------------------------------------------- /www/js/controllers/ChatsCtrl.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | /*** 3 | * 聊天 4 | */ 5 | app.controller('ChatsCtrl', ["$scope","ChatsService",function($scope,ChatsService) { 6 | // With the new view caching in Ionic, Controllers are only called 7 | // when they are recreated or on app start, instead of every page change. 8 | // To listen for when this page is active (for example, to refresh data), 9 | // listen for the $ionicView.enter event: 10 | // 11 | //$scope.$on('$ionicView.enter', function(e) { 12 | //}); 13 | $scope.chats = ChatsService.all(); 14 | $scope.remove = function(chat) { 15 | ChatsService.remove(chat); 16 | }; 17 | }]); 18 | -------------------------------------------------------------------------------- /www/js/controllers/DashCtrl.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | /*** 3 | * 首页 4 | */ 5 | app.controller('DashCtrl', ["$scope",function($scope) { 6 | $scope.share = function (){ 7 | //d指的是window 8 | window.sharetitle = "啊啊啊啊大大"; 9 | window.shareUrl = "http://test.lbwan.com/res/upload/images/ad/p1ac6g12391r27dg42knu6ej65.jpg"; 10 | (function(s,d,e){try{}catch(e){}var f='http://v.t.sina.com.cn/share/share.php?',u=d.location.href,p=['url=',e(u),'&title=',e(window.sharetitle),'&appkey=2924220432','&pic=',e(window.shareUrl)].join('');function a(){if(!window.open([f,p].join(''),'mb',['toolbar=0,status=0,resizable=1,width=620,height=450,left=',(s.width-620)/2,',top=',(s.height-450)/2].join('')))u.href=[f,p].join('');};if(/Firefox/.test(navigator.userAgent)){setTimeout(a,0)}else{a()}})(screen,document,encodeURIComponent); 11 | } 12 | $scope.shareQQ = function () { 13 | 14 | if(wx){ 15 | wx.checkJsApi({ 16 | jsApiList: [ 17 | 'getLocation', 18 | 'onMenuShareTimeline', 19 | 'onMenuShareAppMessage' 20 | ], 21 | success: function (res) { 22 | alert(JSON.stringify(res)); 23 | } 24 | }); 25 | wx.onMenuShareAppMessage({ 26 | title: '什么鬼', // 分享标题 27 | desc: 'aaaaa', // 分享描述 28 | link: 'http://www.baidu.com', // 分享链接 29 | //imgUrl: '', // 分享图标 30 | success: function () { 31 | // 用户确认分享后执行的回调函数 32 | alert("分享成功") 33 | }, 34 | cancel: function () { 35 | // 用户取消分享后执行的回调函数 36 | alert("分享取消") 37 | 38 | } 39 | }); 40 | } 41 | } 42 | }]); 43 | -------------------------------------------------------------------------------- /www/js/directives/OniBarDirective.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | app.directive('oniBar', [function() { 3 | return { 4 | restrict: 'E', 5 | template:'
', 6 | replace:true, 7 | controller: function(){ 8 | var style = window.document.createElement('style'); 9 | style.type = 'text/css'; 10 | style.innerHTML += '.tabs .tab-title{font-family:"微软雅黑" !important;}'; 11 | style.innerHTML += '.tabs-striped .tab-item.tab-item-active, .tabs-striped .tab-item.active, .tabs-striped .tab-item.activated {margin-top: 0px;border-style: solid;border-width: 0 0 3px 0;border-color: #FF7A01; }'; 12 | style.innerHTML += '.tabs-striped .tabs{border-bottom: 0px solid #ddd !important;}'; 13 | style.innerHTML += '.tab-item{font-size: 17px;}'; 14 | style.innerHTML += '.bar .title{margin: 1px 37px;}'; 15 | window.document.getElementsByTagName('head')[0].appendChild(style); 16 | }, 17 | link: function(scope, element, attrs) { 18 | scope.items = JSON.parse(attrs.items); 19 | } 20 | } 21 | }]) -------------------------------------------------------------------------------- /www/js/services/ChatsService.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | /** 3 | * 聊天 4 | */ 5 | app.factory('ChatsService', ['$ocLazyLoad',function ($ocLazyLoad) { 6 | //$ocLazyLoad.load( [{type: 'css', path: 'css/ChatsStyle.css'}]) 7 | // Might use a resource here that returns a JSON array 8 | // Some fake testing data 9 | var chats = [{ 10 | id: 0, 11 | name: 'Ben Sparrow', 12 | lastText: 'You on your way?', 13 | face: 'img/ben.png' 14 | }, { 15 | id: 1, 16 | name: 'Max Lynx', 17 | lastText: 'Hey, it\'s me', 18 | face: 'img/max.png' 19 | }, { 20 | id: 2, 21 | name: 'Adam Bradleyson', 22 | lastText: 'I should buy a boat', 23 | face: 'img/adam.jpg' 24 | }, { 25 | id: 3, 26 | name: 'Perry Governor', 27 | lastText: 'Look at my mukluks!', 28 | face: 'img/perry.png' 29 | }, { 30 | id: 4, 31 | name: 'Mike Harrington', 32 | lastText: 'This is wicked good ice cream.', 33 | face: 'img/mike.png' 34 | }]; 35 | 36 | return { 37 | all: function() { 38 | return chats; 39 | }, 40 | remove: function(chat) { 41 | chats.splice(chats.indexOf(chat), 1); 42 | }, 43 | get: function(chatId) { 44 | for (var i = 0; i < chats.length; i++) { 45 | if (chats[i].id === parseInt(chatId)) { 46 | return chats[i]; 47 | } 48 | } 49 | return null; 50 | } 51 | }; 52 | }]); 53 | 54 | -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_action_sheets.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.action-sheet .button.destructive,.action-sheet .button.destructive:hover{color:#ff3b30}.action-sheet-open,.action-sheet-open.modal-open .modal{pointer-events:none}.action-sheet-backdrop{-webkit-transition:background-color 150ms ease-in-out;transition:background-color 150ms ease-in-out;position:fixed;top:0;left:0;z-index:11;width:100%;height:100%;background-color:transparent}.action-sheet-backdrop.active{background-color:rgba(0,0,0,.4)}.action-sheet-wrapper{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);-webkit-transition:all cubic-bezier(.36,.66,.04,1) .5s;transition:all cubic-bezier(.36,.66,.04,1) .5s;position:absolute;bottom:0;left:0;right:0;width:100%;max-width:500px;margin:auto}.action-sheet-up{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.action-sheet{margin-left:8px;margin-right:8px;width:auto;z-index:11;overflow:hidden}.action-sheet .button{display:block;padding:1px;width:100%;border-radius:0;border-color:#d1d3d6;background-color:transparent;color:#007aff;font-size:21px}.action-sheet .button:hover{color:#007aff}.action-sheet .button.activated,.action-sheet .button.active{box-shadow:none;border-color:#d1d3d6;color:#007aff;background:#e4e5e7}.action-sheet-has-icons .icon{position:absolute;left:16px}.action-sheet-title{padding:16px;color:#8f8f8f;text-align:center;font-size:13px}.action-sheet-group{margin-bottom:8px;border-radius:4px;background-color:#fff;overflow:hidden}.action-sheet-group .button{border-width:1px 0 0}.action-sheet-group .button:first-child:last-child{border-width:0}.action-sheet-options{background:#f1f2f3}.action-sheet-cancel .button{font-weight:500}.action-sheet-open .action-sheet-backdrop{pointer-events:auto}.platform-android .action-sheet-backdrop.active{background-color:rgba(0,0,0,.2)}.platform-android .action-sheet{margin:0}.platform-android .action-sheet .action-sheet-title,.platform-android .action-sheet .button{text-align:left;border-color:transparent;font-size:16px;color:inherit}.platform-android .action-sheet .action-sheet-title{font-size:14px;padding:16px;color:#666}.platform-android .action-sheet .button.activated,.platform-android .action-sheet .button.active{background:#e8e8e8}.platform-android .action-sheet-group{margin:0;border-radius:0;background-color:#fafafa}.platform-android .action-sheet-cancel{display:none}.platform-android .action-sheet-has-icons .button{padding-left:56px}.backdrop{position:fixed;top:0;left:0;z-index:11;width:100%;height:100%;background-color:rgba(0,0,0,.4);visibility:hidden;opacity:0;-webkit-transition:.1s opacity linear;transition:.1s opacity linear}.backdrop.visible{visibility:visible}.backdrop.active{opacity:1} -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_animations.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | .slide-in-up { 3 | -webkit-transform: translate3d(0, 100%, 0); 4 | transform: translate3d(0, 100%, 0); } 5 | 6 | .slide-in-up.ng-enter, 7 | .slide-in-up > .ng-enter { 8 | -webkit-transition: all cubic-bezier(0.1, 0.7, 0.1, 1) 400ms; 9 | transition: all cubic-bezier(0.1, 0.7, 0.1, 1) 400ms; } 10 | 11 | .slide-in-up.ng-enter-active, 12 | .slide-in-up > .ng-enter-active { 13 | -webkit-transform: translate3d(0, 0, 0); 14 | transform: translate3d(0, 0, 0); } 15 | 16 | .slide-in-up.ng-leave, 17 | .slide-in-up > .ng-leave { 18 | -webkit-transition: all ease-in-out 250ms; 19 | transition: all ease-in-out 250ms; } 20 | 21 | @-webkit-keyframes scaleOut { 22 | from { 23 | -webkit-transform: scale(1); 24 | opacity: 1; } 25 | to { 26 | -webkit-transform: scale(0.8); 27 | opacity: 0; } } 28 | 29 | @keyframes scaleOut { 30 | from { 31 | transform: scale(1); 32 | opacity: 1; } 33 | to { 34 | transform: scale(0.8); 35 | opacity: 0; } } 36 | 37 | @-webkit-keyframes superScaleIn { 38 | from { 39 | -webkit-transform: scale(1.2); 40 | opacity: 0; } 41 | to { 42 | -webkit-transform: scale(1); 43 | opacity: 1; } } 44 | 45 | @keyframes superScaleIn { 46 | from { 47 | transform: scale(1.2); 48 | opacity: 0; } 49 | to { 50 | transform: scale(1); 51 | opacity: 1; } } -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_animations.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.slide-in-up{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.slide-in-up.ng-enter,.slide-in-up>.ng-enter{-webkit-transition:all cubic-bezier(.1,.7,.1,1) .4s;transition:all cubic-bezier(.1,.7,.1,1) .4s}.slide-in-up.ng-enter-active,.slide-in-up>.ng-enter-active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-in-up.ng-leave,.slide-in-up>.ng-leave{-webkit-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms}@-webkit-keyframes scaleOut{from{-webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(.8);opacity:0}}@keyframes scaleOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}@-webkit-keyframes superScaleIn{from{-webkit-transform:scale(1.2);opacity:0}to{-webkit-transform:scale(1);opacity:1}}@keyframes superScaleIn{from{transform:scale(1.2);opacity:0}to{transform:scale(1);opacity:1}} -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_badges.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Badges 4 | * -------------------------------------------------- 5 | */ 6 | .badge { 7 | background-color: transparent; 8 | color: #AAAAAA; 9 | z-index: 1; 10 | display: inline-block; 11 | padding: 3px 8px; 12 | min-width: 10px; 13 | border-radius: 10px; 14 | vertical-align: baseline; 15 | text-align: center; 16 | white-space: nowrap; 17 | font-weight: bold; 18 | font-size: 14px; 19 | line-height: 16px; } 20 | .badge:empty { 21 | display: none; } 22 | 23 | .tabs .tab-item .badge.badge-light, 24 | .badge.badge-light { 25 | background-color: #fff; 26 | color: #444; } 27 | 28 | .tabs .tab-item .badge.badge-stable, 29 | .badge.badge-stable { 30 | background-color: #f8f8f8; 31 | color: #444; } 32 | 33 | .tabs .tab-item .badge.badge-positive, 34 | .badge.badge-positive { 35 | background-color: #387ef5; 36 | color: #fff; } 37 | 38 | .tabs .tab-item .badge.badge-calm, 39 | .badge.badge-calm { 40 | background-color: #11c1f3; 41 | color: #fff; } 42 | 43 | .tabs .tab-item .badge.badge-assertive, 44 | .badge.badge-assertive { 45 | background-color: #ef473a; 46 | color: #fff; } 47 | 48 | .tabs .tab-item .badge.badge-balanced, 49 | .badge.badge-balanced { 50 | background-color: #33cd5f; 51 | color: #fff; } 52 | 53 | .tabs .tab-item .badge.badge-energized, 54 | .badge.badge-energized { 55 | background-color: #ffc900; 56 | color: #fff; } 57 | 58 | .tabs .tab-item .badge.badge-royal, 59 | .badge.badge-royal { 60 | background-color: #886aea; 61 | color: #fff; } 62 | 63 | .tabs .tab-item .badge.badge-dark, 64 | .badge.badge-dark { 65 | background-color: #444; 66 | color: #fff; } 67 | 68 | .button .badge { 69 | position: relative; 70 | top: -1px; } 71 | -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_badges.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.badge{background-color:transparent;color:#AAA;z-index:1;display:inline-block;padding:3px 8px;min-width:10px;border-radius:10px;vertical-align:baseline;text-align:center;white-space:nowrap;font-weight:700;font-size:14px;line-height:16px}.badge:empty{display:none}.badge.badge-light,.tabs .tab-item .badge.badge-light{background-color:#fff;color:#444}.badge.badge-stable,.tabs .tab-item .badge.badge-stable{background-color:#f8f8f8;color:#444}.badge.badge-positive,.tabs .tab-item .badge.badge-positive{background-color:#387ef5;color:#fff}.badge.badge-calm,.tabs .tab-item .badge.badge-calm{background-color:#11c1f3;color:#fff}.badge.badge-assertive,.tabs .tab-item .badge.badge-assertive{background-color:#ef473a;color:#fff}.badge.badge-balanced,.tabs .tab-item .badge.badge-balanced{background-color:#33cd5f;color:#fff}.badge.badge-energized,.tabs .tab-item .badge.badge-energized{background-color:#ffc900;color:#fff}.badge.badge-royal,.tabs .tab-item .badge.badge-royal{background-color:#886aea;color:#fff}.badge.badge-dark,.tabs .tab-item .badge.badge-dark{background-color:#444;color:#fff}.button .badge{position:relative;top:-1px} -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_button_bar.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Button Bar 4 | * -------------------------------------------------- 5 | */ 6 | .button-bar { 7 | display: -webkit-box; 8 | display: -webkit-flex; 9 | display: -moz-box; 10 | display: -moz-flex; 11 | display: -ms-flexbox; 12 | display: flex; 13 | -webkit-box-flex: 1; 14 | -webkit-flex: 1; 15 | -moz-box-flex: 1; 16 | -moz-flex: 1; 17 | -ms-flex: 1; 18 | flex: 1; 19 | width: 100%; } 20 | .button-bar.button-bar-inline { 21 | display: block; 22 | width: auto; 23 | *zoom: 1; } 24 | .button-bar.button-bar-inline:before, .button-bar.button-bar-inline:after { 25 | display: table; 26 | content: ""; 27 | line-height: 0; } 28 | .button-bar.button-bar-inline:after { 29 | clear: both; } 30 | .button-bar.button-bar-inline > .button { 31 | width: auto; 32 | display: inline-block; 33 | float: left; } 34 | .button-bar.bar-light > .button { 35 | border-color: #ddd; } 36 | .button-bar.bar-stable > .button { 37 | border-color: #b2b2b2; } 38 | .button-bar.bar-positive > .button { 39 | border-color: #0c60ee; } 40 | .button-bar.bar-calm > .button { 41 | border-color: #0a9dc7; } 42 | .button-bar.bar-assertive > .button { 43 | border-color: #e42112; } 44 | .button-bar.bar-balanced > .button { 45 | border-color: #28a54c; } 46 | .button-bar.bar-energized > .button { 47 | border-color: #e6b500; } 48 | .button-bar.bar-royal > .button { 49 | border-color: #6b46e5; } 50 | .button-bar.bar-dark > .button { 51 | border-color: #111; } 52 | 53 | .button-bar > .button { 54 | -webkit-box-flex: 1; 55 | -webkit-flex: 1; 56 | -moz-box-flex: 1; 57 | -moz-flex: 1; 58 | -ms-flex: 1; 59 | flex: 1; 60 | display: block; 61 | overflow: hidden; 62 | padding: 0 16px; 63 | width: 0; 64 | border-width: 1px 0px 1px 1px; 65 | border-radius: 0; 66 | text-align: center; 67 | text-overflow: ellipsis; 68 | white-space: nowrap; } 69 | .button-bar > .button:before, 70 | .button-bar > .button .icon:before { 71 | line-height: 44px; } 72 | .button-bar > .button:first-child { 73 | border-radius: 4px 0px 0px 4px; } 74 | .button-bar > .button:last-child { 75 | border-right-width: 1px; 76 | border-radius: 0px 4px 4px 0px; } 77 | .button-bar > .button:only-child { 78 | border-radius: 4px; } 79 | 80 | .button-bar > .button-small:before, 81 | .button-bar > .button-small .icon:before { 82 | line-height: 28px; } 83 | -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_button_bar.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.button-bar{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;width:100%}.button-bar.button-bar-inline{display:block;width:auto}.button-bar.button-bar-inline:after,.button-bar.button-bar-inline:before{display:table;content:"";line-height:0}.button-bar.button-bar-inline:after{clear:both}.button-bar.button-bar-inline>.button{width:auto;display:inline-block;float:left}.button-bar.bar-light>.button{border-color:#ddd}.button-bar.bar-stable>.button{border-color:#b2b2b2}.button-bar.bar-positive>.button{border-color:#0c60ee}.button-bar.bar-calm>.button{border-color:#0a9dc7}.button-bar.bar-assertive>.button{border-color:#e42112}.button-bar.bar-balanced>.button{border-color:#28a54c}.button-bar.bar-energized>.button{border-color:#e6b500}.button-bar.bar-royal>.button{border-color:#6b46e5}.button-bar.bar-dark>.button{border-color:#111}.button-bar>.button{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;overflow:hidden;padding:0 16px;width:0;border-width:1px 0 1px 1px;border-radius:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.button-bar>.button .icon:before,.button-bar>.button:before{line-height:44px}.button-bar>.button:first-child{border-radius:4px 0 0 4px}.button-bar>.button:last-child{border-right-width:1px;border-radius:0 4px 4px 0}.button-bar>.button:only-child{border-radius:4px}.button-bar>.button-small .icon:before,.button-bar>.button-small:before{line-height:28px} -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_item_icons.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Item Icons 4 | * -------------------------------------------------- 5 | */ 6 | .item-icon-left .icon, 7 | .item-icon-right .icon { 8 | display: -webkit-box; 9 | display: -webkit-flex; 10 | display: -moz-box; 11 | display: -moz-flex; 12 | display: -ms-flexbox; 13 | display: flex; 14 | -webkit-box-align: center; 15 | -ms-flex-align: center; 16 | -webkit-align-items: center; 17 | -moz-align-items: center; 18 | align-items: center; 19 | position: absolute; 20 | top: 0; 21 | height: 100%; 22 | font-size: 32px; } 23 | .item-icon-left .icon:before, 24 | .item-icon-right .icon:before { 25 | display: block; 26 | width: 32px; 27 | text-align: center; } 28 | 29 | .item .fill-icon { 30 | min-width: 30px; 31 | min-height: 30px; 32 | font-size: 28px; } 33 | 34 | .item-icon-left { 35 | padding-left: 54px; } 36 | .item-icon-left .icon { 37 | left: 11px; } 38 | 39 | .item-complex.item-icon-left { 40 | padding-left: 0; } 41 | .item-complex.item-icon-left .item-content { 42 | padding-left: 54px; } 43 | 44 | .item-icon-right { 45 | padding-right: 54px; } 46 | .item-icon-right .icon { 47 | right: 11px; } 48 | 49 | .item-complex.item-icon-right { 50 | padding-right: 0; } 51 | .item-complex.item-icon-right .item-content { 52 | padding-right: 54px; } 53 | 54 | .item-icon-left.item-icon-right .icon:first-child { 55 | right: auto; } 56 | 57 | .item-icon-left.item-icon-right .icon:last-child, 58 | .item-icon-left .item-delete .icon { 59 | left: auto; } 60 | 61 | .item-icon-left .icon-accessory, 62 | .item-icon-right .icon-accessory { 63 | color: #ccc; 64 | font-size: 16px; } 65 | 66 | .item-icon-left .icon-accessory { 67 | left: 3px; } 68 | 69 | .item-icon-right .icon-accessory { 70 | right: 3px; } 71 | -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_item_icons.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.item-icon-left .icon,.item-icon-right .icon{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%;font-size:32px}.item-icon-left .icon:before,.item-icon-right .icon:before{display:block;width:32px;text-align:center}.item .fill-icon{min-width:30px;min-height:30px;font-size:28px}.item-icon-left{padding-left:54px}.item-icon-left .icon{left:11px}.item-complex.item-icon-left{padding-left:0}.item-complex.item-icon-left .item-content{padding-left:54px}.item-icon-right{padding-right:54px}.item-icon-right .icon{right:11px}.item-complex.item-icon-right{padding-right:0}.item-complex.item-icon-right .item-content{padding-right:54px}.item-icon-left.item-icon-right .icon:first-child{right:auto}.item-icon-left .item-delete .icon,.item-icon-left.item-icon-right .icon:last-child{left:auto}.item-icon-left .icon-accessory,.item-icon-right .icon-accessory{color:#ccc;font-size:16px}.item-icon-left .icon-accessory{left:3px}.item-icon-right .icon-accessory{right:3px} -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_lists_and_card.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Lists 4 | * -------------------------------------------------- 5 | */ 6 | .list { 7 | position: relative; 8 | padding-top: 1px; 9 | padding-bottom: 1px; 10 | padding-left: 0; 11 | margin-bottom: 20px; } 12 | 13 | .list:last-child { 14 | margin-bottom: 0px; } 15 | .list:last-child.card { 16 | margin-bottom: 40px; } 17 | 18 | /** 19 | * List Header 20 | * -------------------------------------------------- 21 | */ 22 | .list-header { 23 | margin-top: 20px; 24 | padding: 5px 15px; 25 | background-color: transparent; 26 | color: #222; 27 | font-weight: bold; } 28 | 29 | .card.list .list-item { 30 | padding-right: 1px; 31 | padding-left: 1px; } 32 | 33 | /** 34 | * Cards and Inset Lists 35 | * -------------------------------------------------- 36 | * A card and list-inset are close to the same thing, except a card as a box shadow. 37 | */ 38 | .card, 39 | .list-inset { 40 | overflow: hidden; 41 | margin: 20px 10px; 42 | border-radius: 2px; 43 | background-color: #fff; } 44 | 45 | .card { 46 | padding-top: 1px; 47 | padding-bottom: 1px; 48 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); } 49 | .card .item { 50 | border-left: 0; 51 | border-right: 0; } 52 | .card .item:first-child { 53 | border-top: 0; } 54 | .card .item:last-child { 55 | border-bottom: 0; } 56 | 57 | .padding .card, .padding .list-inset { 58 | margin-left: 0; 59 | margin-right: 0; } 60 | 61 | .card .item:first-child, 62 | .list-inset .item:first-child, 63 | .padding > .list .item:first-child { 64 | border-top-left-radius: 2px; 65 | border-top-right-radius: 2px; } 66 | .card .item:first-child .item-content, 67 | .list-inset .item:first-child .item-content, 68 | .padding > .list .item:first-child .item-content { 69 | border-top-left-radius: 2px; 70 | border-top-right-radius: 2px; } 71 | 72 | .card .item:last-child, 73 | .list-inset .item:last-child, 74 | .padding > .list .item:last-child { 75 | border-bottom-right-radius: 2px; 76 | border-bottom-left-radius: 2px; } 77 | .card .item:last-child .item-content, 78 | .list-inset .item:last-child .item-content, 79 | .padding > .list .item:last-child .item-content { 80 | border-bottom-right-radius: 2px; 81 | border-bottom-left-radius: 2px; } 82 | 83 | .card .item:last-child, 84 | .list-inset .item:last-child { 85 | margin-bottom: -1px; } 86 | 87 | .card .item, 88 | .list-inset .item, 89 | .padding > .list .item, 90 | .padding-horizontal > .list .item { 91 | margin-right: 0; 92 | margin-left: 0; } 93 | .card .item.item-input input, 94 | .list-inset .item.item-input input, 95 | .padding > .list .item.item-input input, 96 | .padding-horizontal > .list .item.item-input input { 97 | padding-right: 44px; } 98 | 99 | .padding-left > .list .item { 100 | margin-left: 0; } 101 | 102 | .padding-right > .list .item { 103 | margin-right: 0; } 104 | -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_lists_and_card.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.card .item,.list-inset .item,.padding-horizontal>.list .item,.padding>.list .item{margin-left:0}.list{position:relative;padding-top:1px;padding-bottom:1px;padding-left:0;margin-bottom:20px}.list:last-child{margin-bottom:0}.list:last-child.card{margin-bottom:40px}.list-header{margin-top:20px;padding:5px 15px;background-color:transparent;color:#222;font-weight:700}.card.list .list-item{padding-right:1px;padding-left:1px}.card,.list-inset{overflow:hidden;margin:20px 10px;border-radius:2px;background-color:#fff}.card .item,.list-inset .item,.padding .card,.padding .list-inset,.padding-horizontal>.list .item,.padding>.list .item{margin-left:0;margin-right:0}.card{padding-top:1px;padding-bottom:1px;box-shadow:0 1px 3px rgba(0,0,0,.3)}.card .item{border-left:0;border-right:0}.card .item:first-child{border-top:0}.card .item:last-child{border-bottom:0}.card .item:first-child,.card .item:first-child .item-content,.list-inset .item:first-child,.list-inset .item:first-child .item-content,.padding>.list .item:first-child,.padding>.list .item:first-child .item-content{border-top-left-radius:2px;border-top-right-radius:2px}.card .item:last-child,.card .item:last-child .item-content,.list-inset .item:last-child,.list-inset .item:last-child .item-content,.padding>.list .item:last-child,.padding>.list .item:last-child .item-content{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.card .item:last-child,.list-inset .item:last-child{margin-bottom:-1px}.card .item.item-input input,.list-inset .item.item-input input,.padding-horizontal>.list .item.item-input input,.padding>.list .item.item-input input{padding-right:44px}.padding-left>.list .item{margin-left:0}.padding-right>.list .item{margin-right:0} -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_loading.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Loading 4 | * -------------------------------------------------- 5 | */ 6 | .loading-container { 7 | position: absolute; 8 | left: 0; 9 | top: 0; 10 | right: 0; 11 | bottom: 0; 12 | z-index: 13; 13 | display: -webkit-box; 14 | display: -webkit-flex; 15 | display: -moz-box; 16 | display: -moz-flex; 17 | display: -ms-flexbox; 18 | display: flex; 19 | -webkit-box-pack: center; 20 | -ms-flex-pack: center; 21 | -webkit-justify-content: center; 22 | -moz-justify-content: center; 23 | justify-content: center; 24 | -webkit-box-align: center; 25 | -ms-flex-align: center; 26 | -webkit-align-items: center; 27 | -moz-align-items: center; 28 | align-items: center; 29 | -webkit-transition: 0.2s opacity linear; 30 | transition: 0.2s opacity linear; 31 | visibility: hidden; 32 | opacity: 0; } 33 | .loading-container:not(.visible) .icon, 34 | .loading-container:not(.visible) .spinner { 35 | display: none; } 36 | .loading-container.visible { 37 | visibility: visible; } 38 | .loading-container.active { 39 | opacity: 1; } 40 | .loading-container .loading { 41 | padding: 20px; 42 | border-radius: 5px; 43 | background-color: rgba(0, 0, 0, 0.7); 44 | color: #fff; 45 | text-align: center; 46 | text-overflow: ellipsis; 47 | font-size: 15px; } 48 | .loading-container .loading h1, .loading-container .loading h2, .loading-container .loading h3, .loading-container .loading h4, .loading-container .loading h5, .loading-container .loading h6 { 49 | color: #fff; } 50 | -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_loading.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.loading-container{position:absolute;left:0;top:0;right:0;bottom:0;z-index:13;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;-webkit-transition:.2s opacity linear;transition:.2s opacity linear;visibility:hidden;opacity:0}.loading-container:not(.visible) .icon,.loading-container:not(.visible) .spinner{display:none}.loading-container.visible{visibility:visible}.loading-container.active{opacity:1}.loading-container .loading{padding:20px;border-radius:5px;background-color:rgba(0,0,0,.7);color:#fff;text-align:center;text-overflow:ellipsis;font-size:15px}.loading-container .loading h1,.loading-container .loading h2,.loading-container .loading h3,.loading-container .loading h4,.loading-container .loading h5,.loading-container .loading h6{color:#fff} -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_menu.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Menus 4 | * -------------------------------------------------- 5 | * Side panel structure 6 | */ 7 | .menu { 8 | position: absolute; 9 | top: 0; 10 | bottom: 0; 11 | z-index: 0; 12 | overflow: hidden; 13 | min-height: 100%; 14 | max-height: 100%; 15 | width: 275px; 16 | background-color: #fff; } 17 | .menu .scroll-content { 18 | z-index: 10; } 19 | .menu .bar-header { 20 | z-index: 11; } 21 | 22 | .menu-content { 23 | -webkit-transform: none; 24 | transform: none; 25 | box-shadow: -1px 0px 2px rgba(0, 0, 0, 0.2), 1px 0px 2px rgba(0, 0, 0, 0.2); } 26 | 27 | .menu-open .menu-content .pane, 28 | .menu-open .menu-content .scroll-content { 29 | pointer-events: none; } 30 | 31 | .menu-open .menu-content .scroll-content .scroll { 32 | pointer-events: none; } 33 | 34 | .menu-open .menu-content .scroll-content:not(.overflow-scroll) { 35 | overflow: hidden; } 36 | 37 | .grade-b .menu-content, 38 | .grade-c .menu-content { 39 | -webkit-box-sizing: content-box; 40 | -moz-box-sizing: content-box; 41 | box-sizing: content-box; 42 | right: -1px; 43 | left: -1px; 44 | border-right: 1px solid #ccc; 45 | border-left: 1px solid #ccc; 46 | box-shadow: none; } 47 | 48 | .menu-left { 49 | left: 0; } 50 | 51 | .menu-right { 52 | right: 0; } 53 | 54 | .aside-open.aside-resizing .menu-right { 55 | display: none; } 56 | 57 | .menu-animated { 58 | -webkit-transition: -webkit-transform 200ms ease; 59 | transition: transform 200ms ease; } 60 | -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_menu.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.menu,.menu-open .menu-content .scroll-content:not(.overflow-scroll){overflow:hidden}.menu-open .menu-content .pane,.menu-open .menu-content .scroll-content,.menu-open .menu-content .scroll-content .scroll{pointer-events:none}.menu{position:absolute;top:0;bottom:0;z-index:0;min-height:100%;max-height:100%;width:275px;background-color:#fff}.menu .scroll-content{z-index:10}.menu .bar-header{z-index:11}.menu-content{-webkit-transform:none;transform:none;box-shadow:-1px 0 2px rgba(0,0,0,.2),1px 0 2px rgba(0,0,0,.2)}.grade-b .menu-content,.grade-c .menu-content{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;right:-1px;left:-1px;border-right:1px solid #ccc;border-left:1px solid #ccc;box-shadow:none}.menu-left{left:0}.menu-right{right:0}.aside-open.aside-resizing .menu-right{display:none}.menu-animated{-webkit-transition:-webkit-transform .2s ease;transition:transform .2s ease} -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_modals.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Modals 4 | * -------------------------------------------------- 5 | * Modals are independent windows that slide in from off-screen. 6 | */ 7 | .modal-backdrop, 8 | .modal-backdrop-bg { 9 | position: fixed; 10 | top: 0; 11 | left: 0; 12 | z-index: 10; 13 | width: 100%; 14 | height: 100%; } 15 | 16 | .modal-backdrop-bg { 17 | pointer-events: none; } 18 | 19 | .modal { 20 | display: block; 21 | position: absolute; 22 | top: 0; 23 | z-index: 10; 24 | overflow: hidden; 25 | min-height: 100%; 26 | width: 100%; 27 | background-color: #fff; } 28 | 29 | @media (min-width: 680px) { 30 | .modal { 31 | top: 20%; 32 | right: 20%; 33 | bottom: 20%; 34 | left: 20%; 35 | min-height: 240px; 36 | width: 60%; } 37 | .modal.ng-leave-active { 38 | bottom: 0; } 39 | .platform-ios.platform-cordova .modal-wrapper .modal .bar-header:not(.bar-subheader) { 40 | height: 44px; } 41 | .platform-ios.platform-cordova .modal-wrapper .modal .bar-header:not(.bar-subheader) > * { 42 | margin-top: 0; } 43 | .platform-ios.platform-cordova .modal-wrapper .modal .tabs-top > .tabs, 44 | .platform-ios.platform-cordova .modal-wrapper .modal .tabs.tabs-top { 45 | top: 44px; } 46 | .platform-ios.platform-cordova .modal-wrapper .modal .has-header, 47 | .platform-ios.platform-cordova .modal-wrapper .modal .bar-subheader { 48 | top: 44px; } 49 | .platform-ios.platform-cordova .modal-wrapper .modal .has-subheader { 50 | top: 88px; } 51 | .platform-ios.platform-cordova .modal-wrapper .modal .has-header.has-tabs-top { 52 | top: 93px; } 53 | .platform-ios.platform-cordova .modal-wrapper .modal .has-header.has-subheader.has-tabs-top { 54 | top: 137px; } 55 | .modal-backdrop-bg { 56 | -webkit-transition: opacity 300ms ease-in-out; 57 | transition: opacity 300ms ease-in-out; 58 | background-color: #000; 59 | opacity: 0; } 60 | .active .modal-backdrop-bg { 61 | opacity: 0.5; } } 62 | 63 | .modal-open { 64 | pointer-events: none; } 65 | .modal-open .modal, 66 | .modal-open .modal-backdrop { 67 | pointer-events: auto; } 68 | .modal-open.loading-active .modal, 69 | .modal-open.loading-active .modal-backdrop { 70 | pointer-events: none; } 71 | -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_modals.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.modal-backdrop-bg,.modal-open{pointer-events:none}.modal-backdrop,.modal-backdrop-bg{position:fixed;top:0;left:0;z-index:10;width:100%;height:100%}.modal{display:block;position:absolute;top:0;z-index:10;overflow:hidden;min-height:100%;width:100%;background-color:#fff}@media (min-width:680px){.modal{top:20%;right:20%;bottom:20%;left:20%;min-height:240px;width:60%}.modal.ng-leave-active{bottom:0}.platform-ios.platform-cordova .modal-wrapper .modal .bar-header:not(.bar-subheader){height:44px}.platform-ios.platform-cordova .modal-wrapper .modal .bar-header:not(.bar-subheader)>*{margin-top:0}.platform-ios.platform-cordova .modal-wrapper .modal .bar-subheader,.platform-ios.platform-cordova .modal-wrapper .modal .has-header,.platform-ios.platform-cordova .modal-wrapper .modal .tabs-top>.tabs,.platform-ios.platform-cordova .modal-wrapper .modal .tabs.tabs-top{top:44px}.platform-ios.platform-cordova .modal-wrapper .modal .has-subheader{top:88px}.platform-ios.platform-cordova .modal-wrapper .modal .has-header.has-tabs-top{top:93px}.platform-ios.platform-cordova .modal-wrapper .modal .has-header.has-subheader.has-tabs-top{top:137px}.modal-backdrop-bg{-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;background-color:#000;opacity:0}.active .modal-backdrop-bg{opacity:.5}}.modal-open .modal,.modal-open .modal-backdrop{pointer-events:auto}.modal-open.loading-active .modal,.modal-open.loading-active .modal-backdrop{pointer-events:none} -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_popovers.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.popover-backdrop{position:fixed;top:0;left:0;z-index:10;width:100%;height:100%;background-color:transparent}.popover-backdrop.active{background-color:rgba(0,0,0,.1)}.popover{position:absolute;top:25%;left:50%;z-index:10;display:block;margin-top:12px;margin-left:-110px;height:280px;width:220px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4);opacity:0}.popover .item:first-child{border-top:0}.popover .item:last-child{border-bottom:0}.popover.popover-bottom{margin-top:-12px}.popover,.popover .bar-header{border-radius:2px}.popover .scroll-content{z-index:1;margin:2px 0}.popover .bar-header{border-bottom-right-radius:0;border-bottom-left-radius:0}.popover .has-header{border-top-right-radius:0;border-top-left-radius:0}.popover-arrow{display:none}.platform-ios .popover{box-shadow:0 0 40px rgba(0,0,0,.08);border-radius:10px}.platform-ios .popover .bar-header{-webkit-border-top-right-radius:10px;border-top-right-radius:10px;-webkit-border-top-left-radius:10px;border-top-left-radius:10px}.platform-ios .popover .scroll-content{margin:8px 0;border-radius:10px}.platform-ios .popover .scroll-content.has-header{margin-top:0}.platform-ios .popover-arrow{position:absolute;display:block;top:-17px;width:30px;height:19px;overflow:hidden}.platform-ios .popover-arrow:after{position:absolute;top:12px;left:5px;width:20px;height:20px;background-color:#fff;border-radius:3px;content:'';-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.platform-ios .popover-bottom .popover-arrow{top:auto;bottom:-10px}.platform-ios .popover-bottom .popover-arrow:after{top:-6px}.platform-android .popover{margin-top:-32px;background-color:#fafafa;box-shadow:0 2px 6px rgba(0,0,0,.35)}.platform-android .popover .item{border-color:#fafafa;background-color:#fafafa;color:#4d4d4d}.platform-android .popover.popover-bottom{margin-top:32px}.platform-android .popover-backdrop,.platform-android .popover-backdrop.active{background-color:transparent}.popover-open{pointer-events:none}.popover-open .popover,.popover-open .popover-backdrop{pointer-events:auto}.popover-open.loading-active .popover,.popover-open.loading-active .popover-backdrop{pointer-events:none}@media (min-width:680px){.popover{width:360px;margin-left:-180px}} -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_popups.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.popup-open,.popup-open.modal-open .modal{pointer-events:none}.popup-container{position:absolute;top:0;left:0;bottom:0;right:0;background:0 0;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;z-index:12;visibility:hidden}.popup-container.popup-showing{visibility:visible}.popup-container.popup-hidden .popup{-webkit-animation-name:scaleOut;animation-name:scaleOut;-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.popup-container.active .popup{-webkit-animation-name:superScaleIn;animation-name:superScaleIn;-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.popup-container .popup{width:250px;max-width:100%;max-height:90%;border-radius:0;background-color:rgba(255,255,255,.9);display:flex;-webkit-box-direction:normal;-webkit-box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.popup-container input,.popup-container textarea{width:100%}.popup-head{padding:15px 10px;border-bottom:1px solid #eee;text-align:center}.popup-title{margin:0;padding:0;font-size:15px}.popup-sub-title{margin:5px 0 0;padding:0;font-weight:400;font-size:11px}.popup-body{padding:10px;overflow:auto}.popup-buttons{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;-webkit-box-orient:horizontal;-webkit-flex-direction:row;-moz-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding:10px;min-height:65px}.popup-buttons .button{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;min-height:45px;border-radius:2px;line-height:20px;margin-right:5px}.popup-buttons .button:last-child{margin-right:0}.popup-open .popup,.popup-open .popup-backdrop{pointer-events:auto} -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_progress.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | 4 | /** 5 | * Progress 6 | * -------------------------------------------------- 7 | */ 8 | progress { 9 | display: block; 10 | margin: 15px auto; 11 | width: 100%; } 12 | -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_progress.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";progress{display:block;margin:15px auto;width:100%} -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_radio.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Radio Button Inputs 4 | * -------------------------------------------------- 5 | */ 6 | .item-radio { 7 | padding: 0; } 8 | .item-radio:hover { 9 | cursor: pointer; } 10 | 11 | .item-radio .item-content { 12 | /* give some room to the right for the checkmark icon */ 13 | padding-right: 64px; } 14 | 15 | .item-radio .radio-icon { 16 | /* checkmark icon will be hidden by default */ 17 | position: absolute; 18 | top: 0; 19 | right: 0; 20 | z-index: 3; 21 | visibility: hidden; 22 | padding: 14px; 23 | height: 100%; 24 | font-size: 24px; } 25 | 26 | .item-radio input { 27 | /* hide any radio button inputs elements (the ugly circles) */ 28 | position: absolute; 29 | left: -9999px; } 30 | .item-radio input:checked + .radio-content .item-content { 31 | /* style the item content when its checked */ 32 | background: #f7f7f7; } 33 | .item-radio input:checked + .radio-content .radio-icon { 34 | /* show the checkmark icon when its checked */ 35 | visibility: visible; } 36 | -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_radio.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.item-radio{padding:0}.item-radio:hover{cursor:pointer}.item-radio .item-content{padding-right:64px}.item-radio .radio-icon{position:absolute;top:0;right:0;z-index:3;visibility:hidden;padding:14px;height:100%;font-size:24px}.item-radio input{position:absolute;left:-9999px}.item-radio input:checked+.radio-content .item-content{background:#f7f7f7}.item-radio input:checked+.radio-content .radio-icon{visibility:visible} -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_range.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.range input{overflow:hidden;margin-top:5px;margin-bottom:5px;padding-right:2px;padding-left:1px;width:auto;height:43px;outline:0;background:linear-gradient(to right,#ccc 0,#ccc 100%);background-position:center;background-size:99% 2px;background-repeat:no-repeat;-webkit-appearance:none}.range input::-moz-focus-outer{border:0}.range input::-webkit-slider-thumb{position:relative;width:28px;height:28px;border-radius:50%;background-color:#fff;box-shadow:0 0 2px rgba(0,0,0,.3),0 3px 5px rgba(0,0,0,.2);cursor:pointer;-webkit-appearance:none;border:0}.range input::-webkit-slider-thumb:before{position:absolute;top:13px;left:-2001px;width:2000px;height:2px;background:#444;content:' '}.range input::-webkit-slider-thumb:after{position:absolute;top:-15px;left:-15px;padding:30px;content:' '}.range input::-ms-fill-lower{height:2px;background:#444}.range{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;padding:2px 11px}.range.range-light input::-webkit-slider-thumb:before{background:#ddd}.range.range-light input::-ms-fill-lower{background:#ddd}.range.range-stable input::-webkit-slider-thumb:before{background:#b2b2b2}.range.range-stable input::-ms-fill-lower{background:#b2b2b2}.range.range-positive input::-webkit-slider-thumb:before{background:#387ef5}.range.range-positive input::-ms-fill-lower{background:#387ef5}.range.range-calm input::-webkit-slider-thumb:before{background:#11c1f3}.range.range-calm input::-ms-fill-lower{background:#11c1f3}.range.range-balanced input::-webkit-slider-thumb:before{background:#33cd5f}.range.range-balanced input::-ms-fill-lower{background:#33cd5f}.range.range-assertive input::-webkit-slider-thumb:before{background:#ef473a}.range.range-assertive input::-ms-fill-lower{background:#ef473a}.range.range-energized input::-webkit-slider-thumb:before{background:#ffc900}.range.range-energized input::-ms-fill-lower{background:#ffc900}.range.range-royal input::-webkit-slider-thumb:before{background:#886aea}.range.range-royal input::-ms-fill-lower{background:#886aea}.range.range-dark input::-webkit-slider-thumb:before{background:#444}.range.range-dark input::-ms-fill-lower{background:#444}.range .icon{-webkit-box-flex:0;-webkit-flex:0;-moz-box-flex:0;-moz-flex:0;-ms-flex:0;flex:0;display:block;min-width:24px;text-align:center;font-size:24px}.range input{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;margin-right:10px;margin-left:10px}.range-label{-webkit-box-flex:0;-webkit-flex:0 0 auto;-moz-box-flex:0;-moz-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;display:block;white-space:nowrap}.range-label:first-child{padding-left:5px}.range input+.range-label{padding-right:5px;padding-left:0}.platform-windowsphone .range input{height:auto} -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_select.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Select 4 | * -------------------------------------------------- 5 | */ 6 | .item-select { 7 | position: relative; } 8 | .item-select select { 9 | -webkit-appearance: none; 10 | -moz-appearance: none; 11 | appearance: none; 12 | position: absolute; 13 | top: 0; 14 | bottom: 0; 15 | right: 0; 16 | padding: 0 48px 0 16px; 17 | max-width: 65%; 18 | border: none; 19 | background: #fff; 20 | color: #333; 21 | text-indent: .01px; 22 | text-overflow: ''; 23 | white-space: nowrap; 24 | font-size: 14px; 25 | cursor: pointer; 26 | direction: rtl; } 27 | .item-select select::-ms-expand { 28 | display: none; } 29 | .item-select option { 30 | direction: ltr; } 31 | .item-select:after { 32 | position: absolute; 33 | top: 50%; 34 | right: 16px; 35 | margin-top: -3px; 36 | width: 0; 37 | height: 0; 38 | border-top: 5px solid; 39 | border-right: 5px solid transparent; 40 | border-left: 5px solid transparent; 41 | color: #999; 42 | content: ""; 43 | pointer-events: none; } 44 | .item-select.item-light select { 45 | background: #fff; 46 | color: #444; } 47 | .item-select.item-stable select { 48 | background: #f8f8f8; 49 | color: #444; } 50 | .item-select.item-stable:after, .item-select.item-stable .input-label { 51 | color: #666666; } 52 | .item-select.item-positive select { 53 | background: #387ef5; 54 | color: #fff; } 55 | .item-select.item-positive:after, .item-select.item-positive .input-label { 56 | color: #fff; } 57 | .item-select.item-calm select { 58 | background: #11c1f3; 59 | color: #fff; } 60 | .item-select.item-calm:after, .item-select.item-calm .input-label { 61 | color: #fff; } 62 | .item-select.item-assertive select { 63 | background: #ef473a; 64 | color: #fff; } 65 | .item-select.item-assertive:after, .item-select.item-assertive .input-label { 66 | color: #fff; } 67 | .item-select.item-balanced select { 68 | background: #33cd5f; 69 | color: #fff; } 70 | .item-select.item-balanced:after, .item-select.item-balanced .input-label { 71 | color: #fff; } 72 | .item-select.item-energized select { 73 | background: #ffc900; 74 | color: #fff; } 75 | .item-select.item-energized:after, .item-select.item-energized .input-label { 76 | color: #fff; } 77 | .item-select.item-royal select { 78 | background: #886aea; 79 | color: #fff; } 80 | .item-select.item-royal:after, .item-select.item-royal .input-label { 81 | color: #fff; } 82 | .item-select.item-dark select { 83 | background: #444; 84 | color: #fff; } 85 | .item-select.item-dark:after, .item-select.item-dark .input-label { 86 | color: #fff; } 87 | 88 | select[multiple], select[size] { 89 | height: auto; } 90 | -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_select.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.item-select{position:relative}.item-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;top:0;bottom:0;right:0;padding:0 48px 0 16px;max-width:65%;border:none;background:#fff;color:#333;text-indent:.01px;text-overflow:'';white-space:nowrap;font-size:14px;cursor:pointer;direction:rtl}.item-select select::-ms-expand{display:none}.item-select option{direction:ltr}.item-select:after{position:absolute;top:50%;right:16px;margin-top:-3px;width:0;height:0;border-top:5px solid;border-right:5px solid transparent;border-left:5px solid transparent;color:#999;content:"";pointer-events:none}.item-select.item-light select{background:#fff;color:#444}.item-select.item-stable select{background:#f8f8f8;color:#444}.item-select.item-stable .input-label,.item-select.item-stable:after{color:#666}.item-select.item-positive select{background:#387ef5;color:#fff}.item-select.item-positive .input-label,.item-select.item-positive:after{color:#fff}.item-select.item-calm select{background:#11c1f3;color:#fff}.item-select.item-calm .input-label,.item-select.item-calm:after{color:#fff}.item-select.item-assertive select{background:#ef473a;color:#fff}.item-select.item-assertive .input-label,.item-select.item-assertive:after{color:#fff}.item-select.item-balanced select{background:#33cd5f;color:#fff}.item-select.item-balanced .input-label,.item-select.item-balanced:after{color:#fff}.item-select.item-energized select{background:#ffc900;color:#fff}.item-select.item-energized .input-label,.item-select.item-energized:after{color:#fff}.item-select.item-royal select{background:#886aea;color:#fff}.item-select.item-royal .input-label,.item-select.item-royal:after{color:#fff}.item-select.item-dark select{background:#444;color:#fff}.item-select.item-dark .input-label,.item-select.item-dark:after{color:#fff}select[multiple],select[size]{height:auto} -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_slidebox.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Slide Box 4 | * -------------------------------------------------- 5 | */ 6 | .slider { 7 | position: relative; 8 | visibility: hidden; 9 | overflow: hidden; } 10 | 11 | .slider-slides { 12 | position: relative; 13 | height: 100%; } 14 | 15 | .slider-slide { 16 | position: relative; 17 | display: block; 18 | float: left; 19 | width: 100%; 20 | height: 100%; 21 | vertical-align: top; } 22 | 23 | .slider-slide-image > img { 24 | width: 100%; } 25 | 26 | .slider-pager { 27 | position: absolute; 28 | bottom: 20px; 29 | z-index: 1; 30 | width: 100%; 31 | height: 15px; 32 | text-align: center; } 33 | .slider-pager .slider-pager-page { 34 | display: inline-block; 35 | margin: 0px 3px; 36 | width: 15px; 37 | color: #000; 38 | text-decoration: none; 39 | opacity: 0.3; } 40 | .slider-pager .slider-pager-page.active { 41 | -webkit-transition: opacity 0.4s ease-in; 42 | transition: opacity 0.4s ease-in; 43 | opacity: 1; } 44 | 45 | .slider-slide.ng-enter, .slider-slide.ng-leave, .slider-slide.ng-animate, 46 | .slider-pager-page.ng-enter, 47 | .slider-pager-page.ng-leave, 48 | .slider-pager-page.ng-animate { 49 | -webkit-transition: none !important; 50 | transition: none !important; } 51 | 52 | .slider-slide.ng-animate, 53 | .slider-pager-page.ng-animate { 54 | -webkit-animation: none 0s; 55 | animation: none 0s; } 56 | -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_slidebox.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.slider-slide,.slider-slides{position:relative;height:100%}.slider{position:relative;visibility:hidden;overflow:hidden}.slider-slide{display:block;float:left;width:100%;vertical-align:top}.slider-slide-image>img{width:100%}.slider-pager{position:absolute;bottom:20px;z-index:1;width:100%;height:15px;text-align:center}.slider-pager .slider-pager-page{display:inline-block;margin:0 3px;width:15px;color:#000;text-decoration:none;opacity:.3}.slider-pager .slider-pager-page.active{-webkit-transition:opacity .4s ease-in;transition:opacity .4s ease-in;opacity:1}.slider-pager-page.ng-animate,.slider-pager-page.ng-enter,.slider-pager-page.ng-leave,.slider-slide.ng-animate,.slider-slide.ng-enter,.slider-slide.ng-leave{-webkit-transition:none!important;transition:none!important}.slider-pager-page.ng-animate,.slider-slide.ng-animate{-webkit-animation:none 0s;animation:none 0s} -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_spinners.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /** 3 | * Spinners 4 | * -------------------------------------------------- 5 | */ 6 | .spinner { 7 | stroke: #444; 8 | fill: #444; } 9 | .spinner svg { 10 | width: 28px; 11 | height: 28px; } 12 | .spinner.spinner-light { 13 | stroke: #fff; 14 | fill: #fff; } 15 | .spinner.spinner-stable { 16 | stroke: #f8f8f8; 17 | fill: #f8f8f8; } 18 | .spinner.spinner-positive { 19 | stroke: #387ef5; 20 | fill: #387ef5; } 21 | .spinner.spinner-calm { 22 | stroke: #11c1f3; 23 | fill: #11c1f3; } 24 | .spinner.spinner-balanced { 25 | stroke: #33cd5f; 26 | fill: #33cd5f; } 27 | .spinner.spinner-assertive { 28 | stroke: #ef473a; 29 | fill: #ef473a; } 30 | .spinner.spinner-energized { 31 | stroke: #ffc900; 32 | fill: #ffc900; } 33 | .spinner.spinner-royal { 34 | stroke: #886aea; 35 | fill: #886aea; } 36 | .spinner.spinner-dark { 37 | stroke: #444; 38 | fill: #444; } 39 | 40 | .spinner-android { 41 | stroke: #4b8bf4; } 42 | 43 | .spinner-ios, 44 | .spinner-ios-small { 45 | stroke: #69717d; } 46 | 47 | .spinner-spiral .stop1 { 48 | stop-color: #fff; 49 | stop-opacity: 0; } 50 | 51 | .spinner-spiral.spinner-light .stop1 { 52 | stop-color: #444; } 53 | 54 | .spinner-spiral.spinner-light .stop2 { 55 | stop-color: #fff; } 56 | 57 | .spinner-spiral.spinner-stable .stop2 { 58 | stop-color: #f8f8f8; } 59 | 60 | .spinner-spiral.spinner-positive .stop2 { 61 | stop-color: #387ef5; } 62 | 63 | .spinner-spiral.spinner-calm .stop2 { 64 | stop-color: #11c1f3; } 65 | 66 | .spinner-spiral.spinner-balanced .stop2 { 67 | stop-color: #33cd5f; } 68 | 69 | .spinner-spiral.spinner-assertive .stop2 { 70 | stop-color: #ef473a; } 71 | 72 | .spinner-spiral.spinner-energized .stop2 { 73 | stop-color: #ffc900; } 74 | 75 | .spinner-spiral.spinner-royal .stop2 { 76 | stop-color: #886aea; } 77 | 78 | .spinner-spiral.spinner-dark .stop2 { 79 | stop-color: #444; } 80 | -------------------------------------------------------------------------------- /www/lib/ionic/css/ionic_spinners.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.spinner{stroke:#444;fill:#444}.spinner svg{width:28px;height:28px}.spinner.spinner-light{stroke:#fff;fill:#fff}.spinner.spinner-stable{stroke:#f8f8f8;fill:#f8f8f8}.spinner.spinner-positive{stroke:#387ef5;fill:#387ef5}.spinner.spinner-calm{stroke:#11c1f3;fill:#11c1f3}.spinner.spinner-balanced{stroke:#33cd5f;fill:#33cd5f}.spinner.spinner-assertive{stroke:#ef473a;fill:#ef473a}.spinner.spinner-energized{stroke:#ffc900;fill:#ffc900}.spinner.spinner-royal{stroke:#886aea;fill:#886aea}.spinner.spinner-dark{stroke:#444;fill:#444}.spinner-android{stroke:#4b8bf4}.spinner-ios,.spinner-ios-small{stroke:#69717d}.spinner-spiral .stop1{stop-color:#fff;stop-opacity:0}.spinner-spiral.spinner-light .stop1{stop-color:#444}.spinner-spiral.spinner-light .stop2{stop-color:#fff}.spinner-spiral.spinner-stable .stop2{stop-color:#f8f8f8}.spinner-spiral.spinner-positive .stop2{stop-color:#387ef5}.spinner-spiral.spinner-calm .stop2{stop-color:#11c1f3}.spinner-spiral.spinner-balanced .stop2{stop-color:#33cd5f}.spinner-spiral.spinner-assertive .stop2{stop-color:#ef473a}.spinner-spiral.spinner-energized .stop2{stop-color:#ffc900}.spinner-spiral.spinner-royal .stop2{stop-color:#886aea}.spinner-spiral.spinner-dark .stop2{stop-color:#444} -------------------------------------------------------------------------------- /www/lib/ionic/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaohuoni/ionic-for-wechat/b9b0a4dfd920d3225f50e7b22728001b9dc0104e/www/lib/ionic/fonts/ionicons.eot -------------------------------------------------------------------------------- /www/lib/ionic/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaohuoni/ionic-for-wechat/b9b0a4dfd920d3225f50e7b22728001b9dc0104e/www/lib/ionic/fonts/ionicons.ttf -------------------------------------------------------------------------------- /www/lib/ionic/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaohuoni/ionic-for-wechat/b9b0a4dfd920d3225f50e7b22728001b9dc0104e/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/_badge.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Badges 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .badge { 8 | @include badge-style($badge-default-bg, $badge-default-text); 9 | z-index: $z-index-badge; 10 | display: inline-block; 11 | padding: 3px 8px; 12 | min-width: 10px; 13 | border-radius: $badge-border-radius; 14 | vertical-align: baseline; 15 | text-align: center; 16 | white-space: nowrap; 17 | font-weight: $badge-font-weight; 18 | font-size: $badge-font-size; 19 | line-height: $badge-line-height; 20 | 21 | &:empty { 22 | display: none; 23 | } 24 | } 25 | 26 | //Be sure to override specificity of rule that 'badge color matches tab color by default' 27 | .tabs .tab-item .badge, 28 | .badge { 29 | &.badge-light { 30 | @include badge-style($badge-light-bg, $badge-light-text); 31 | } 32 | &.badge-stable { 33 | @include badge-style($badge-stable-bg, $badge-stable-text); 34 | } 35 | &.badge-positive { 36 | @include badge-style($badge-positive-bg, $badge-positive-text); 37 | } 38 | &.badge-calm { 39 | @include badge-style($badge-calm-bg, $badge-calm-text); 40 | } 41 | &.badge-assertive { 42 | @include badge-style($badge-assertive-bg, $badge-assertive-text); 43 | } 44 | &.badge-balanced { 45 | @include badge-style($badge-balanced-bg, $badge-balanced-text); 46 | } 47 | &.badge-energized { 48 | @include badge-style($badge-energized-bg, $badge-energized-text); 49 | } 50 | &.badge-royal { 51 | @include badge-style($badge-royal-bg, $badge-royal-text); 52 | } 53 | &.badge-dark { 54 | @include badge-style($badge-dark-bg, $badge-dark-text); 55 | } 56 | } 57 | 58 | // Quick fix for labels/badges in buttons 59 | .button .badge { 60 | position: relative; 61 | top: -1px; 62 | } 63 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_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 | &.bar-light > .button { 26 | border-color: $button-light-border; 27 | } 28 | &.bar-stable > .button { 29 | border-color: $button-stable-border; 30 | } 31 | &.bar-positive > .button { 32 | border-color: $button-positive-border; 33 | } 34 | &.bar-calm > .button { 35 | border-color: $button-calm-border; 36 | } 37 | &.bar-assertive > .button { 38 | border-color: $button-assertive-border; 39 | } 40 | &.bar-balanced > .button { 41 | border-color: $button-balanced-border; 42 | } 43 | &.bar-energized > .button { 44 | border-color: $button-energized-border; 45 | } 46 | &.bar-royal > .button { 47 | border-color: $button-royal-border; 48 | } 49 | &.bar-dark > .button { 50 | border-color: $button-dark-border; 51 | } 52 | } 53 | 54 | .button-bar > .button { 55 | @include flex(1); 56 | display: block; 57 | 58 | overflow: hidden; 59 | 60 | padding: 0 16px; 61 | 62 | width: 0; 63 | 64 | border-width: 1px 0px 1px 1px; 65 | border-radius: 0; 66 | text-align: center; 67 | text-overflow: ellipsis; 68 | white-space: nowrap; 69 | 70 | &:before, 71 | .icon:before { 72 | line-height: 44px; 73 | } 74 | 75 | &:first-child { 76 | border-radius: $button-border-radius 0px 0px $button-border-radius; 77 | } 78 | &:last-child { 79 | border-right-width: 1px; 80 | border-radius: 0px $button-border-radius $button-border-radius 0px; 81 | } 82 | &:only-child { 83 | border-radius: $button-border-radius; 84 | } 85 | } 86 | 87 | .button-bar > .button-small { 88 | &:before, 89 | .icon:before { 90 | line-height: 28px; 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_list.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Lists 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .list { 8 | position: relative; 9 | padding-top: $item-border-width; 10 | padding-bottom: $item-border-width; 11 | padding-left: 0; // reset padding because ul and ol 12 | margin-bottom: 20px; 13 | } 14 | .list:last-child { 15 | margin-bottom: 0px; 16 | &.card{ 17 | margin-bottom:40px; 18 | } 19 | } 20 | 21 | 22 | /** 23 | * List Header 24 | * -------------------------------------------------- 25 | */ 26 | 27 | .list-header { 28 | margin-top: $list-header-margin-top; 29 | padding: $list-header-padding; 30 | background-color: $list-header-bg; 31 | color: $list-header-color; 32 | font-weight: bold; 33 | } 34 | 35 | // when its a card make sure it doesn't duplicate top and bottom borders 36 | .card.list .list-item { 37 | padding-right: 1px; 38 | padding-left: 1px; 39 | } 40 | 41 | 42 | /** 43 | * Cards and Inset Lists 44 | * -------------------------------------------------- 45 | * A card and list-inset are close to the same thing, except a card as a box shadow. 46 | */ 47 | 48 | .card, 49 | .list-inset { 50 | overflow: hidden; 51 | margin: ($content-padding * 2) $content-padding; 52 | border-radius: $card-border-radius; 53 | background-color: $card-body-bg; 54 | } 55 | 56 | .card { 57 | padding-top: $item-border-width; 58 | padding-bottom: $item-border-width; 59 | box-shadow: $card-box-shadow; 60 | 61 | .item { 62 | border-left: 0; 63 | border-right: 0; 64 | } 65 | .item:first-child { 66 | border-top: 0; 67 | } 68 | .item:last-child { 69 | border-bottom: 0; 70 | } 71 | } 72 | 73 | .padding { 74 | .card, .list-inset { 75 | margin-left: 0; 76 | margin-right: 0; 77 | } 78 | } 79 | 80 | .card .item, 81 | .list-inset .item, 82 | .padding > .list .item 83 | { 84 | &:first-child { 85 | border-top-left-radius: $card-border-radius; 86 | border-top-right-radius: $card-border-radius; 87 | 88 | .item-content { 89 | border-top-left-radius: $card-border-radius; 90 | border-top-right-radius: $card-border-radius; 91 | } 92 | } 93 | &:last-child { 94 | border-bottom-right-radius: $card-border-radius; 95 | border-bottom-left-radius: $card-border-radius; 96 | 97 | .item-content { 98 | border-bottom-right-radius: $card-border-radius; 99 | border-bottom-left-radius: $card-border-radius; 100 | } 101 | } 102 | } 103 | 104 | .card .item:last-child, 105 | .list-inset .item:last-child { 106 | margin-bottom: $item-border-width * -1; 107 | } 108 | 109 | .card .item, 110 | .list-inset .item, 111 | .padding > .list .item, 112 | .padding-horizontal > .list .item { 113 | margin-right: 0; 114 | margin-left: 0; 115 | 116 | &.item-input input { 117 | padding-right: 44px; 118 | } 119 | } 120 | .padding-left > .list .item { 121 | margin-left: 0; 122 | } 123 | .padding-right > .list .item { 124 | margin-right: 0; 125 | } 126 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_loading.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Loading 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .loading-container { 8 | position: absolute; 9 | left: 0; 10 | top: 0; 11 | right: 0; 12 | bottom: 0; 13 | 14 | z-index: $z-index-loading; 15 | 16 | @include display-flex(); 17 | @include justify-content(center); 18 | @include align-items(center); 19 | 20 | @include transition(0.2s opacity linear); 21 | visibility: hidden; 22 | opacity: 0; 23 | 24 | &:not(.visible) .icon, 25 | &:not(.visible) .spinner{ 26 | display: none; 27 | } 28 | &.visible { 29 | visibility: visible; 30 | } 31 | &.active { 32 | opacity: 1; 33 | } 34 | 35 | .loading { 36 | padding: $loading-padding; 37 | 38 | border-radius: $loading-border-radius; 39 | background-color: $loading-bg-color; 40 | 41 | color: $loading-text-color; 42 | 43 | text-align: center; 44 | text-overflow: ellipsis; 45 | font-size: $loading-font-size; 46 | 47 | h1, h2, h3, h4, h5, h6 { 48 | color: $loading-text-color; 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /www/lib/ionic/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 | .menu-open .menu-content .scroll-content .scroll { 40 | pointer-events: none; 41 | } 42 | .menu-open .menu-content .scroll-content:not(.overflow-scroll) { 43 | overflow: hidden; 44 | } 45 | 46 | .grade-b .menu-content, 47 | .grade-c .menu-content { 48 | @include box-sizing(content-box); 49 | right: -1px; 50 | left: -1px; 51 | border-right: 1px solid #ccc; 52 | border-left: 1px solid #ccc; 53 | box-shadow: none; 54 | } 55 | 56 | .menu-left { 57 | left: 0; 58 | } 59 | 60 | .menu-right { 61 | right: 0; 62 | } 63 | 64 | .aside-open.aside-resizing .menu-right { 65 | display: none; 66 | } 67 | 68 | .menu-animated { 69 | @include transition-transform($menu-animation-speed ease); 70 | } 71 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_modal.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Modals 4 | * -------------------------------------------------- 5 | * Modals are independent windows that slide in from off-screen. 6 | */ 7 | 8 | .modal-backdrop, 9 | .modal-backdrop-bg { 10 | position: fixed; 11 | top: 0; 12 | left: 0; 13 | z-index: $z-index-modal; 14 | width: 100%; 15 | height: 100%; 16 | } 17 | 18 | .modal-backdrop-bg { 19 | pointer-events: none; 20 | } 21 | 22 | .modal { 23 | display: block; 24 | position: absolute; 25 | top: 0; 26 | z-index: $z-index-modal; 27 | overflow: hidden; 28 | min-height: 100%; 29 | width: 100%; 30 | background-color: $modal-bg-color; 31 | } 32 | 33 | @media (min-width: $modal-inset-mode-break-point) { 34 | // inset mode is when the modal doesn't fill the entire 35 | // display but instead is centered within a large display 36 | .modal { 37 | top: $modal-inset-mode-top; 38 | right: $modal-inset-mode-right; 39 | bottom: $modal-inset-mode-bottom; 40 | left: $modal-inset-mode-left; 41 | min-height: $modal-inset-mode-min-height; 42 | width: (100% - $modal-inset-mode-left - $modal-inset-mode-right); 43 | } 44 | 45 | .modal.ng-leave-active { 46 | bottom: 0; 47 | } 48 | 49 | // remove ios header padding from inset header 50 | .platform-ios.platform-cordova .modal-wrapper .modal { 51 | .bar-header:not(.bar-subheader) { 52 | height: $bar-height; 53 | > * { 54 | margin-top: 0; 55 | } 56 | } 57 | .tabs-top > .tabs, 58 | .tabs.tabs-top { 59 | top: $bar-height; 60 | } 61 | .has-header, 62 | .bar-subheader { 63 | top: $bar-height; 64 | } 65 | .has-subheader { 66 | top: $bar-height + $bar-subheader-height; 67 | } 68 | .has-header.has-tabs-top { 69 | top: $bar-height + $tabs-height; 70 | } 71 | .has-header.has-subheader.has-tabs-top { 72 | top: $bar-height + $bar-subheader-height + $tabs-height; 73 | } 74 | } 75 | 76 | .modal-backdrop-bg { 77 | @include transition(opacity 300ms ease-in-out); 78 | background-color: $modal-backdrop-bg-active; 79 | opacity: 0; 80 | } 81 | 82 | .active .modal-backdrop-bg { 83 | opacity: 0.5; 84 | } 85 | } 86 | 87 | // disable clicks on all but the modal 88 | .modal-open { 89 | pointer-events: none; 90 | 91 | .modal, 92 | .modal-backdrop { 93 | pointer-events: auto; 94 | } 95 | // prevent clicks on modal when loading overlay is active though 96 | &.loading-active { 97 | .modal, 98 | .modal-backdrop { 99 | pointer-events: none; 100 | } 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_platform.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Platform 4 | * -------------------------------------------------- 5 | * Platform specific tweaks 6 | */ 7 | 8 | .platform-ios.platform-cordova { 9 | // iOS has a status bar which sits on top of the header. 10 | // Bump down everything to make room for it. However, if 11 | // if its in Cordova, and set to fullscreen, then disregard the bump. 12 | &:not(.fullscreen) { 13 | .bar-header:not(.bar-subheader) { 14 | height: $bar-height + $ios-statusbar-height; 15 | 16 | &.item-input-inset .item-input-wrapper { 17 | margin-top: 19px !important; 18 | } 19 | 20 | > * { 21 | margin-top: $ios-statusbar-height; 22 | } 23 | } 24 | .tabs-top > .tabs, 25 | .tabs.tabs-top { 26 | top: $bar-height + $ios-statusbar-height; 27 | } 28 | 29 | .has-header, 30 | .bar-subheader { 31 | top: $bar-height + $ios-statusbar-height; 32 | } 33 | .has-subheader { 34 | top: $bar-height + $bar-subheader-height + $ios-statusbar-height; 35 | } 36 | .has-header.has-tabs-top { 37 | top: $bar-height + $tabs-height + $ios-statusbar-height; 38 | } 39 | .has-header.has-subheader.has-tabs-top { 40 | top: $bar-height + $bar-subheader-height + $tabs-height + $ios-statusbar-height; 41 | } 42 | } 43 | .popover{ 44 | .bar-header:not(.bar-subheader) { 45 | height: $bar-height; 46 | &.item-input-inset .item-input-wrapper { 47 | margin-top: -1px; 48 | } 49 | > * { 50 | margin-top: 0; 51 | } 52 | } 53 | .has-header, 54 | .bar-subheader { 55 | top: $bar-height; 56 | } 57 | .has-subheader { 58 | top: $bar-height + $bar-subheader-height; 59 | } 60 | } 61 | &.status-bar-hide { 62 | // Cordova doesn't adjust the body height correctly, this makes up for it 63 | margin-bottom: 20px; 64 | } 65 | } 66 | 67 | @media (orientation:landscape) { 68 | .platform-ios.platform-browser.platform-ipad { 69 | position: fixed; // required for iPad 7 Safari 70 | } 71 | } 72 | 73 | .platform-c:not(.enable-transitions) * { 74 | // disable transitions on grade-c devices (Android 2) 75 | -webkit-transition: none !important; 76 | transition: none !important; 77 | } 78 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_popup.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Popups 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .popup-container { 8 | position: absolute; 9 | top: 0; 10 | left: 0; 11 | bottom: 0; 12 | right: 0; 13 | background: rgba(0,0,0,0); 14 | 15 | @include display-flex(); 16 | @include justify-content(center); 17 | @include align-items(center); 18 | 19 | z-index: $z-index-popup; 20 | 21 | // Start hidden 22 | visibility: hidden; 23 | &.popup-showing { 24 | visibility: visible; 25 | } 26 | 27 | &.popup-hidden .popup { 28 | @include animation-name(scaleOut); 29 | @include animation-duration($popup-leave-animation-duration); 30 | @include animation-timing-function(ease-in-out); 31 | @include animation-fill-mode(both); 32 | } 33 | 34 | &.active .popup { 35 | @include animation-name(superScaleIn); 36 | @include animation-duration($popup-enter-animation-duration); 37 | @include animation-timing-function(ease-in-out); 38 | @include animation-fill-mode(both); 39 | } 40 | 41 | .popup { 42 | width: $popup-width; 43 | max-width: 100%; 44 | max-height: 90%; 45 | 46 | border-radius: $popup-border-radius; 47 | background-color: $popup-background-color; 48 | 49 | @include display-flex(); 50 | @include flex-direction(column); 51 | } 52 | 53 | input, 54 | textarea { 55 | width: 100%; 56 | } 57 | } 58 | 59 | .popup-head { 60 | padding: 15px 10px; 61 | border-bottom: 1px solid #eee; 62 | text-align: center; 63 | } 64 | .popup-title { 65 | margin: 0; 66 | padding: 0; 67 | font-size: 15px; 68 | } 69 | .popup-sub-title { 70 | margin: 5px 0 0 0; 71 | padding: 0; 72 | font-weight: normal; 73 | font-size: 11px; 74 | } 75 | .popup-body { 76 | padding: 10px; 77 | overflow: auto; 78 | } 79 | 80 | .popup-buttons { 81 | @include display-flex(); 82 | @include flex-direction(row); 83 | padding: 10px; 84 | min-height: $popup-button-min-height + 20; 85 | 86 | .button { 87 | @include flex(1); 88 | display: block; 89 | min-height: $popup-button-min-height; 90 | border-radius: $popup-button-border-radius; 91 | line-height: $popup-button-line-height; 92 | 93 | margin-right: 5px; 94 | &:last-child { 95 | margin-right: 0px; 96 | } 97 | } 98 | } 99 | 100 | .popup-open { 101 | pointer-events: none; 102 | 103 | &.modal-open .modal { 104 | pointer-events: none; 105 | } 106 | 107 | .popup-backdrop, .popup { 108 | pointer-events: auto; 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /www/lib/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 + .radio-content .item-content { 38 | /* style the item content when its checked */ 39 | background: #f7f7f7; 40 | } 41 | 42 | &:checked + .radio-content .radio-icon { 43 | /* show the checkmark icon when its checked */ 44 | visibility: visible; 45 | } 46 | } 47 | 48 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_slide-box.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Slide Box 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .slider { 8 | position: relative; 9 | visibility: hidden; 10 | // Make sure items don't scroll over ever 11 | overflow: hidden; 12 | } 13 | 14 | .slider-slides { 15 | position: relative; 16 | height: 100%; 17 | } 18 | 19 | .slider-slide { 20 | position: relative; 21 | display: block; 22 | float: left; 23 | width: 100%; 24 | height: 100%; 25 | vertical-align: top; 26 | } 27 | 28 | .slider-slide-image { 29 | > img { 30 | width: 100%; 31 | } 32 | } 33 | 34 | .slider-pager { 35 | position: absolute; 36 | bottom: 20px; 37 | z-index: $z-index-slider-pager; 38 | width: 100%; 39 | height: 15px; 40 | text-align: center; 41 | 42 | .slider-pager-page { 43 | display: inline-block; 44 | margin: 0px 3px; 45 | width: 15px; 46 | color: #000; 47 | text-decoration: none; 48 | 49 | opacity: 0.3; 50 | 51 | &.active { 52 | @include transition(opacity 0.4s ease-in); 53 | opacity: 1; 54 | } 55 | } 56 | } 57 | 58 | //Disable animate service animations 59 | .slider-slide, 60 | .slider-pager-page { 61 | &.ng-enter, 62 | &.ng-leave, 63 | &.ng-animate { 64 | -webkit-transition: none !important; 65 | transition: none !important; 66 | } 67 | &.ng-animate { 68 | -webkit-animation: none 0s; 69 | animation: none 0s; 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_spinner.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Spinners 3 | * -------------------------------------------------- 4 | */ 5 | 6 | .spinner { 7 | svg { 8 | width: $spinner-width; 9 | height: $spinner-height; 10 | } 11 | 12 | stroke: $spinner-default-stroke; 13 | fill: $spinner-default-fill; 14 | 15 | &.spinner-light { 16 | stroke: $spinner-light-stroke; 17 | fill: $spinner-light-fill; 18 | } 19 | &.spinner-stable { 20 | stroke: $spinner-stable-stroke; 21 | fill: $spinner-stable-fill; 22 | } 23 | &.spinner-positive { 24 | stroke: $spinner-positive-stroke; 25 | fill: $spinner-positive-fill; 26 | } 27 | &.spinner-calm { 28 | stroke: $spinner-calm-stroke; 29 | fill: $spinner-calm-fill; 30 | } 31 | &.spinner-balanced { 32 | stroke: $spinner-balanced-stroke; 33 | fill: $spinner-balanced-fill; 34 | } 35 | &.spinner-assertive { 36 | stroke: $spinner-assertive-stroke; 37 | fill: $spinner-assertive-fill; 38 | } 39 | &.spinner-energized { 40 | stroke: $spinner-energized-stroke; 41 | fill: $spinner-energized-fill; 42 | } 43 | &.spinner-royal { 44 | stroke: $spinner-royal-stroke; 45 | fill: $spinner-royal-fill; 46 | } 47 | &.spinner-dark { 48 | stroke: $spinner-dark-stroke; 49 | fill: $spinner-dark-fill; 50 | } 51 | } 52 | 53 | .spinner-android { 54 | stroke: #4b8bf4; 55 | } 56 | 57 | .spinner-ios, 58 | .spinner-ios-small { 59 | stroke: #69717d; 60 | } 61 | 62 | .spinner-spiral { 63 | .stop1 { 64 | stop-color: $spinner-light-fill; 65 | stop-opacity: 0; 66 | } 67 | 68 | &.spinner-light { 69 | .stop1 { 70 | stop-color: $spinner-default-fill; 71 | } 72 | .stop2 { 73 | stop-color: $spinner-light-fill; 74 | } 75 | } 76 | &.spinner-stable .stop2 { 77 | stop-color: $spinner-stable-fill; 78 | } 79 | &.spinner-positive .stop2 { 80 | stop-color: $spinner-positive-fill; 81 | } 82 | &.spinner-calm .stop2 { 83 | stop-color: $spinner-calm-fill; 84 | } 85 | &.spinner-balanced .stop2 { 86 | stop-color: $spinner-balanced-fill; 87 | } 88 | &.spinner-assertive .stop2 { 89 | stop-color: $spinner-assertive-fill; 90 | } 91 | &.spinner-energized .stop2 { 92 | stop-color: $spinner-energized-fill; 93 | } 94 | &.spinner-royal .stop2 { 95 | stop-color: $spinner-royal-fill; 96 | } 97 | &.spinner-dark .stop2 { 98 | stop-color: $spinner-dark-fill; 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /www/lib/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 | "slides", 31 | "refresher", 32 | "spinner", 33 | 34 | // Forms 35 | "form", 36 | "checkbox", 37 | "toggle", 38 | "radio", 39 | "range", 40 | "select", 41 | "progress", 42 | 43 | // Buttons 44 | "button", 45 | "button-bar", 46 | 47 | // Util 48 | "grid", 49 | "util", 50 | "platform", 51 | 52 | // Animations 53 | "animations", 54 | "transitions"; 55 | -------------------------------------------------------------------------------- /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/ionic/version.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.3.1", 3 | "codename": "el salvador", 4 | "date": "2016-05-12", 5 | "time": "18:21:10" 6 | } 7 | -------------------------------------------------------------------------------- /www/lib/oclazyload/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "oclazyload", 3 | "version": "0.6.3", 4 | "description": "Load modules on demand (lazy load) with angularJS", 5 | "main": "dist/ocLazyLoad.min.js", 6 | "homepage": "https://github.com/ocombe/ocLazyLoad", 7 | "authors": [ 8 | "Olivier Combe " 9 | ], 10 | "license": "MIT", 11 | "keywords": [ 12 | "lazy load", 13 | "lazy-load", 14 | "load on demand", 15 | "module", 16 | "angular", 17 | "angularJS" 18 | ], 19 | "ignore": [ 20 | "**/.*", 21 | "node_modules", 22 | "bower_components", 23 | "src", 24 | "gulpfile.js", 25 | "package.json", 26 | "changelog.js", 27 | "validate-commit-msg.js", 28 | "tests", 29 | "karma.conf.js" 30 | ], 31 | "devDependencies": { 32 | "angular-mocks": "~1.3.2" 33 | }, 34 | "dependencies": { 35 | "angular": ">=1.2.0 <=1.4.0" 36 | }, 37 | "_release": "0.6.3", 38 | "_resolution": { 39 | "type": "version", 40 | "tag": "0.6.3", 41 | "commit": "65807002e12b35a98658977de67d3481571f1d5f" 42 | }, 43 | "_source": "git://github.com/ocombe/ocLazyLoad.git", 44 | "_target": "~0.6.3", 45 | "_originalSource": "oclazyload" 46 | } -------------------------------------------------------------------------------- /www/lib/oclazyload/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Olivier Combe 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /www/lib/oclazyload/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "oclazyload", 3 | "version": "0.6.3", 4 | "description": "Load modules on demand (lazy load) with angularJS", 5 | "main": "dist/ocLazyLoad.min.js", 6 | "homepage": "https://github.com/ocombe/ocLazyLoad", 7 | "authors": [ 8 | "Olivier Combe " 9 | ], 10 | "license": "MIT", 11 | "keywords": [ 12 | "lazy load", 13 | "lazy-load", 14 | "load on demand", 15 | "module", 16 | "angular", 17 | "angularJS" 18 | ], 19 | "ignore": [ 20 | "**/.*", 21 | "node_modules", 22 | "bower_components", 23 | "src", 24 | "gulpfile.js", 25 | "package.json", 26 | "changelog.js", 27 | "validate-commit-msg.js", 28 | "tests", 29 | "karma.conf.js" 30 | ], 31 | "devDependencies": { 32 | "angular-mocks": "~1.3.2" 33 | }, 34 | "dependencies": { 35 | "angular": ">=1.2.0 <=1.4.0" 36 | } 37 | } -------------------------------------------------------------------------------- /www/lib/oclazyload/examples/complexExample/README.md: -------------------------------------------------------------------------------- 1 | Use `bower install` to download the libraries used in this example. -------------------------------------------------------------------------------- /www/lib/oclazyload/examples/complexExample/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example-ocLazyLoad", 3 | "version": "0.3.9", 4 | "homepage": "https://github.com/ocombe/ocLazyLoad", 5 | "authors": ["ocombe "], 6 | "main": "js/app.js", 7 | "license": "MIT", 8 | "private": true, 9 | "ignore": ["**/.*", "node_modules", "bower_components", "test", "tests"], 10 | "dependencies": { 11 | "angular-ui-router": "~0.2.10", 12 | "ocModal": "~0.1.6", 13 | "bootstrap": "~3.2.0", 14 | "angular-ui-grid": "~3.0.0-rc.12" 15 | } 16 | } -------------------------------------------------------------------------------- /www/lib/oclazyload/examples/complexExample/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 16 | 17 | 18 | 19 |

$ocLazyLoad

20 |

21 | With ocLazyLoad you can lazy load js / css / templates with a service and/or a directive.
22 | If you get on error when you load the page the first time, don't forget to use `bower install` to download the libraries used in this example. 23 |

24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /www/lib/oclazyload/examples/complexExample/js/AppCtrl.js: -------------------------------------------------------------------------------- 1 | angular.module('app').controller('AppCtrl', function($scope, $ocLazyLoad) { 2 | $scope.$on('ocLazyLoad.moduleLoaded', function(e, params) { 3 | console.log('event module loaded', params); 4 | }); 5 | 6 | $scope.$on('ocLazyLoad.componentLoaded', function(e, params) { 7 | console.log('event component loaded', params); 8 | }); 9 | 10 | $scope.$on('ocLazyLoad.fileLoaded', function(e, file) { 11 | console.log('event file loaded', file); 12 | }); 13 | 14 | $scope.loadBootstrap = function() { 15 | // use events to know when the files are loaded 16 | var unbind = $scope.$on('ocLazyLoad.fileLoaded', function(e, file) { 17 | if(file === 'bower_components/bootstrap/dist/css/bootstrap.css') { 18 | $scope.bootstrapLoaded = true; 19 | unbind(); 20 | } 21 | }); 22 | // we could use .then here instead of events 23 | $ocLazyLoad.load([ 24 | 'bower_components/bootstrap/dist/js/bootstrap.js', 25 | 'bower_components/bootstrap/dist/css/bootstrap.css' 26 | ]); 27 | }; 28 | }); 29 | -------------------------------------------------------------------------------- /www/lib/oclazyload/examples/complexExample/js/app.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // Declare app level module which depends on filters, and services 4 | var App = angular.module('app', ['ui.router', 'oc.lazyLoad']) 5 | .config(function($stateProvider, $locationProvider, $urlRouterProvider, $ocLazyLoadProvider) { 6 | $urlRouterProvider.otherwise("/"); 7 | $locationProvider.hashPrefix('!'); 8 | 9 | // You can also load via resolve 10 | $stateProvider 11 | .state('index', { 12 | url: "/", // root route 13 | views: { 14 | "lazyLoadView": { 15 | controller: 'AppCtrl', // This view will use AppCtrl loaded below in the resolve 16 | templateUrl: 'partials/main.html' 17 | } 18 | }, 19 | resolve: { // Any property in resolve should return a promise and is executed before the view is loaded 20 | loadMyCtrl: ['$ocLazyLoad', function($ocLazyLoad) { 21 | // you can lazy load files for an existing module 22 | return $ocLazyLoad.load('js/AppCtrl.js'); 23 | }] 24 | } 25 | }) 26 | .state('modal', { 27 | parent: 'index', 28 | resolve: { // Any property in resolve should return a promise and is executed before the view is loaded 29 | loadOcModal: ['$ocLazyLoad', '$injector', '$rootScope', function($ocLazyLoad, $injector, $rootScope) { 30 | // Load 'oc.modal' defined in the config of the provider $ocLazyLoadProvider 31 | return $ocLazyLoad.load([ 32 | 'bower_components/bootstrap/dist/css/bootstrap.css', // will use the cached version if you already loaded bootstrap with the button 33 | 'bower_components/ocModal/dist/css/ocModal.animations.css', 34 | 'bower_components/ocModal/dist/css/ocModal.light.css', 35 | 'bower_components/ocModal/dist/ocModal.js', 36 | 'partials/modal.html' 37 | ]).then(function() { 38 | $rootScope.bootstrapLoaded = true; 39 | // inject the lazy loaded service 40 | var $ocModal = $injector.get("$ocModal"); 41 | $ocModal.open({ 42 | url: 'modal', 43 | cls: 'fade-in' 44 | }); 45 | }); 46 | }], 47 | 48 | // resolve the sibling state and use the service lazy loaded 49 | setModalBtn: ['loadOcModal', '$rootScope', '$ocModal', function(loadOcModal, $rootScope, $ocModal) { 50 | $rootScope.openModal = function() { 51 | $ocModal.open({ 52 | url: 'modal', 53 | cls: 'flip-vertical' 54 | }); 55 | } 56 | }] 57 | } 58 | }); 59 | 60 | // Without server side support html5 must be disabled. 61 | $locationProvider.html5Mode(false); 62 | 63 | // We configure ocLazyLoad to use the lib script.js as the async loader 64 | $ocLazyLoadProvider.config({ 65 | debug: true, 66 | events: true, 67 | modules: [{ 68 | name: 'gridModule', 69 | files: [ 70 | 'js/gridModule.js' 71 | ] 72 | }] 73 | }); 74 | }); 75 | -------------------------------------------------------------------------------- /www/lib/oclazyload/examples/complexExample/js/gridModule.js: -------------------------------------------------------------------------------- 1 | // ngGrid is also lazy loaded by $ocLazyLoad thanks to the module dependency injection ! 2 | angular.module('gridModule', [[ // you don't even need to set the name of the module that you want to lazy load ! 3 | 'bower_components/angular-ui-grid/ui-grid.js', 4 | 'bower_components/angular-ui-grid/ui-grid.css' 5 | ]]).controller('GridModuleCtrl', function($scope) { 6 | console.log('------- grid module ctrl'); 7 | $scope.myData = [{name: "Moroni", age: 50}, 8 | {name: "Teancum", age: 43}, 9 | {name: "Jacob", age: 27}, 10 | {name: "Nephi", age: 29}, 11 | {name: "Enos", age: 34}]; 12 | $scope.gridOptions = {data: 'myData'}; 13 | }).config(function() { 14 | console.warn('config gridModule'); 15 | }).config(['$ocLazyLoadProvider', function($ocLazyLoadProvider) { 16 | console.warn('config 2 gridModule'); 17 | }]).run(function() { 18 | console.warn('run gridModule'); 19 | }); 20 | -------------------------------------------------------------------------------- /www/lib/oclazyload/examples/complexExample/partials/main.html: -------------------------------------------------------------------------------- 1 |
2 |

Load external libs (not angular-based):

3 |

4 |
5 | 6 |
7 |

Load a module by loading a state:

8 |

Go to "modal" state

9 |

10 |
11 | 12 |
13 |

Autoload a complete module with dependencies and templates using the directive:

14 | 15 | 16 |
17 |
18 | {{test}}
19 |
20 |
21 |
22 |
23 | -------------------------------------------------------------------------------- /www/lib/oclazyload/examples/complexExample/partials/modal.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/lib/oclazyload/examples/requireJSExample/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 14 | 15 | 16 | 17 | {{test}} 18 | 19 |
20 | 21 | -------------------------------------------------------------------------------- /www/lib/oclazyload/examples/requireJSExample/js/lazymodule.js: -------------------------------------------------------------------------------- 1 | angular.module('lazymodule', ['ngGrid']) 2 | .controller('lazyController', ['$scope', function($scope){ 3 | $scope.test = "Hey again"; 4 | $scope.myData = [{name: "Moroni", age: 50}, 5 | {name: "Tiancum", age: 43}, 6 | {name: "Jacob", age: 27}, 7 | {name: "Nephi", age: 29}, 8 | {name: "Enos", age: 34}]; 9 | $scope.gridOptions = { data: 'myData' }; 10 | }]); -------------------------------------------------------------------------------- /www/lib/oclazyload/examples/requireJSExample/js/main.js: -------------------------------------------------------------------------------- 1 | requirejs.config({ 2 | baseUrl: 'js/', 3 | paths: { 4 | 'jquery': 'jquery', 5 | 'angular': 'angular.min', 6 | 'test': 'testmodule', 7 | 'ngGrid': 'ng-grid-2.0.11.debug', 8 | 'ocLazyLoad': '../../../src/ocLazyLoad' 9 | }, 10 | shim: { 11 | 'angular': ['jquery'], 12 | 'ocLazyLoad': ['angular'], 13 | 'ngGrid': ['angular'], 14 | 'lazymodule': ['test', 'ngGrid'], 15 | 'test': ['ocLazyLoad'] 16 | } 17 | }); 18 | 19 | // Start the main app logic. 20 | requirejs(['test'], function() { 21 | angular.bootstrap(document.body, ['test']); 22 | }); 23 | -------------------------------------------------------------------------------- /www/lib/oclazyload/examples/requireJSExample/js/testmodule.js: -------------------------------------------------------------------------------- 1 | angular.module('test', ['oc.lazyLoad']) 2 | .config(['$ocLazyLoadProvider', function($ocLazyLoadProvider) { 3 | $ocLazyLoadProvider.config({ 4 | jsLoader: requirejs, 5 | debug: true 6 | }); 7 | }]) 8 | .controller('mainController', ['$scope', '$ocLazyLoad', function($scope, $ocLazyLoad) { 9 | $scope.test = "Hi there"; 10 | $scope.partialUrl = ''; 11 | 12 | $scope.load = function() { 13 | $ocLazyLoad.load('lazymodule').then(function() { 14 | $scope.partialUrl = 'partials/grid.html'; 15 | }, function(e){ 16 | console.log(e); 17 | }); 18 | } 19 | 20 | }]); 21 | -------------------------------------------------------------------------------- /www/lib/oclazyload/examples/requireJSExample/partials/grid.html: -------------------------------------------------------------------------------- 1 |
2 | {{test}}
3 |
4 |
-------------------------------------------------------------------------------- /www/lib/oclazyload/examples/simpleExample/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
12 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /www/lib/oclazyload/examples/simpleExample/js/testApp.js: -------------------------------------------------------------------------------- 1 | angular.module("testApp", []).directive("sayHello", function() { 2 | return { 3 | scope: { 4 | to: '@to' 5 | }, 6 | restrict: "E", 7 | template: '

Hello {{to}}

' 8 | }; 9 | }); 10 | -------------------------------------------------------------------------------- /www/templates/chat-detail.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 |

11 | {{chat.lastText}} 12 |

13 |
14 |
15 | -------------------------------------------------------------------------------- /www/templates/tab-account.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Enable Friends 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /www/templates/tab-chats.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |

{{chat.name}}

7 |

{{chat.lastText}}

8 | 9 | 10 | 11 | Delete 12 | 13 |
14 |
15 |
16 |
17 | -------------------------------------------------------------------------------- /www/templates/tab-dash.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Welcome to Ionic

4 | 5 | 6 | 7 | 8 | 9 | 10 |

11 | This is the Ionic starter for tabs-based apps. For other starters and ready-made templates, check out the Ionic Market. 12 |

13 |

14 | To edit the content of each tab, edit the corresponding template file in www/templates/. This template is www/templates/tab-dash.html 15 |

16 |

17 | If you need help with your app, join the Ionic Community on the Ionic Forum. Make sure to follow us on Twitter to get important updates and announcements for Ionic developers. 18 |

19 |

20 | For help sending push notifications, join the Ionic Platform and check out Ionic Push. We also have other services available. 21 |

22 |
23 |
24 | -------------------------------------------------------------------------------- /www/templates/tabs.html: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | --------------------------------------------------------------------------------