From 56b7fc440d31e799739a7837ff75fe4335ea8a3a Mon Sep 17 00:00:00 2001 From: iinterest Date: Fri, 27 Feb 2015 11:34:35 +0800 Subject: [PATCH] v0.10.0 --- .gitignore | 3 + Gruntfile.js | 182 - README.md | 96 +- animate/_base.css | 14 - animate/attention_seekers/pulse.css | 11 - animate/attention_seekers/shake.css | 9 - animate/attention_seekers/swing.css | 12 - animate/bouncing_entrances/bounceIn.css | 23 - animate/bouncing_exits/bounceOut.css | 23 - animate/fading_entrances/fadeIn.css | 8 - animate/fading_entrances/fadeInDown.css | 15 - animate/fading_entrances/fadeInLeft.css | 15 - animate/fading_entrances/fadeInRight.css | 15 - animate/fading_entrances/fadeInUp.css | 15 - animate/fading_exits/fadeOut.css | 8 - animate/fading_exits/fadeOutDown.css | 15 - animate/fading_exits/fadeOutLeft.css | 15 - animate/fading_exits/fadeOutRight.css | 15 - animate/fading_exits/fadeOutUp.css | 15 - animate/flippers/flip.css | 27 - animate/flippers/flipInX.css | 24 - animate/flippers/flipInY.css | 24 - animate/flippers/flipOutX.css | 15 - animate/flippers/flipOutY.css | 15 - animate/sliders/slideInDown.css | 14 - animate/sliders/slideInLeft.css | 14 - animate/sliders/slideInRight.css | 14 - animate/sliders/slideOutLeft.css | 14 - animate/sliders/slideOutRight.css | 14 - animate/sliders/slideOutUp.css | 14 - build/css/animate.css | 991 --- build/css/squirrel.css | 2615 ------- build/fonts/sq-fontello.ttf | Bin 49732 -> 0 bytes build/fonts/sq-fontello.woff | Bin 28736 -> 0 bytes build/js/squirrel-core.js | 546 -- build/js/squirrel.js | 3689 ---------- dist/css/squirrel-min.css | 7 - dist/css/squirrel.min.css | 3 + dist/fonts/fontawesome-webfont.ttf | Bin 0 -> 112160 bytes dist/fonts/fontawesome-webfont.woff | Bin 0 -> 65452 bytes dist/fonts/sq-fontello.ttf | Bin 49732 -> 0 bytes dist/fonts/sq-fontello.woff | Bin 28736 -> 0 bytes dist/js/jquery.min.js | 5 + dist/js/jquery.min.map | 1 + dist/js/squirrel-min.js | 7 - dist/js/squirrel.min.js | 5 + dist/maps/squirrel.min.css.map | 1 + dist/maps/squirrel.min.js.map | 1 + doc_tpl/documentation.html | 78 + doc_tpl/index.html | 209 + example/animate.html | 118 + example/badge.html | 43 + example/bar.html | 122 + example/button.html | 147 + example/column.html | 45 + example/core-function.html | 49 + example/css/example-material.css | 8 + example/css/example-theme.css | 10 + example/css/example.css | 34 + example/data/list.json | 12 + example/data/loadmore/0/list.json | 12 + example/data/loadmore/1/list.json | 12 + example/data/loadmore/2/list.json | 12 + example/data/loadmore/3/list.json | 12 + example/data/loadmore/4/list.json | 12 + example/dropdown.html | 69 + example/example.html | 36 + example/form.html | 237 + example/gallery.html | 89 + example/grid.html | 52 + example/icon.html | 1419 ++++ example/images/gallery-1.jpg | Bin 0 -> 257438 bytes example/images/gallery-2.jpg | Bin 0 -> 175097 bytes example/images/gallery-3.jpg | Bin 0 -> 228379 bytes example/images/pic-home.jpg | Bin 0 -> 70008 bytes example/images/sq-icon.png | Bin 0 -> 3844 bytes example/images/sq-logo.jpg | Bin 0 -> 9535 bytes example/index.html | 136 + example/js/example.js | 34 + example/lazyload.html | 147 + example/list.html | 253 + example/loadmore.html | 173 + example/material.html | 178 + example/modal.html | 56 + example/panel.html | 47 + example/screenshot.html | 109 + example/slider.html | 48 + example/sticky.html | 149 + example/tab.html | 58 + fonts/sq-fontello.ttf | Bin 49732 -> 0 bytes fonts/sq-fontello.woff | Bin 28736 -> 0 bytes fonts/sq-fontello/LICENSE.txt | 21 - fonts/sq-fontello/README.txt | 75 - fonts/sq-fontello/config.json | 6076 ----------------- fonts/sq-fontello/css/animation.css | 85 - fonts/sq-fontello/css/fontello-codes.css | 151 - fonts/sq-fontello/css/fontello-embedded.css | 204 - fonts/sq-fontello/css/fontello-ie7-codes.css | 151 - fonts/sq-fontello/css/fontello-ie7.css | 162 - fonts/sq-fontello/css/fontello.css | 202 - fonts/sq-fontello/demo.html | 494 -- fonts/sq-fontello/font/fontello.eot | Bin 49900 -> 0 bytes fonts/sq-fontello/font/fontello.svg | 161 - fonts/sq-fontello/font/fontello.ttf | Bin 49732 -> 0 bytes fonts/sq-fontello/font/fontello.woff | Bin 28736 -> 0 bytes gulpfile.js | 181 + jshintrc | 26 - .../node_modules/amdefine/intercept.js | 36 - .../cmd-util/tests/css-cases/compressed.css | 3 - .../cmd-util/tests/css-cases/compressed.json | 11 - package.json | 51 +- src/js/core/gestures.js | 59 - src/js/fastclick.js | 16 - src/js/touchslip.js | 606 -- src/less/badge.less | 15 - src/less/bars.less | 105 - src/less/button.less | 197 - src/less/common.less | 41 - src/less/default-theme.less | 53 - src/less/font-icon.less | 200 - src/less/form.less | 125 - src/less/list.less | 156 - src/less/loadmore.less | 29 - src/less/mixins.less | 63 - src/less/modal.less | 11 - src/less/panel.less | 12 - src/less/reset.less | 24 - src/less/squirrel.less | 28 - src/less/suggest.less | 27 - src/less/variables.less | 43 - src/{js => scripts}/core/core.js | 0 src/scripts/core/iscroll.js | 2013 ++++++ src/{js => scripts}/core/store.js | 0 src/{js => scripts}/core/ua.js | 0 src/{js => scripts}/core/util.js | 0 src/{js/button.js => scripts/dropdown.js} | 35 +- src/scripts/fastclick.js | 874 +++ src/{js => scripts}/lazyload.js | 11 +- src/{js => scripts}/loadmore.js | 58 +- src/{js => scripts}/modal.js | 5 +- src/{js => scripts}/panel.js | 36 +- src/scripts/slider.js | 1316 ++++ src/scripts/squirrel.js | 9 + src/{js/fixed.js => scripts/sticky.js} | 60 +- src/{js => scripts}/suggest.js | 0 src/{js => scripts}/tab.js | 6 +- src/styles/animate.less | 3132 +++++++++ src/styles/badge.less | 15 + src/styles/bar.less | 113 + src/styles/base.less | 42 + src/styles/button.less | 82 + src/styles/column.less | 34 + src/styles/font-awesome.less | 1698 +++++ src/styles/form.less | 127 + src/styles/gallery.less | 24 + src/{less => styles}/grid.less | 45 +- src/styles/list.less | 92 + src/styles/mixins.less | 55 + src/{less => styles}/normalize.less | 279 +- src/styles/plugins/dropdown.less | 19 + src/styles/plugins/loadmore.less | 23 + src/styles/plugins/modal.less | 17 + src/styles/plugins/panel.less | 12 + src/styles/plugins/screenshot.less | 42 + src/styles/plugins/slider.less | 26 + src/{less => styles/plugins}/tabs.less | 16 +- src/styles/squirrel.less | 44 + src/styles/themes/default-theme.less | 105 + src/styles/utilities.less | 16 + src/styles/variables.less | 206 + src_cmd/button/button.js | 127 - src_cmd/core/squirrel-core.js | 390 -- src_cmd/fixed/fixed.js | 223 - src_cmd/lazyload/lazyload.js | 167 - src_cmd/loadmore/loadmore.js | 447 -- src_cmd/popup/popup.js | 470 -- src_cmd/suggest/suggest.js | 244 - src_cmd/tabs/tabs.js | 293 - src_cmd/touchslip/touchslip.js | 594 -- src_cmd/zepto/zepto.js | 12 - test/components/all.html | 627 -- test/components/css/test-all.css | 70 - test/components/data/list-900.json | 5 - test/components/data/list.json | 5 - test/components/data/suggest.json | 14 - test/components/data/tabs1.json | 5 - test/components/data/tabs2.json | 5 - test/components/data/tabs3.json | 5 - test/components/images/sq-icon.png | Bin 2064 -> 0 bytes test/components/js/test-all.js | 252 - test/unit/base/modules-loaded.js | 29 - test/unit/test-runner.html | 24 - 192 files changed, 14893 insertions(+), 22496 deletions(-) create mode 100644 .gitignore delete mode 100644 Gruntfile.js delete mode 100644 animate/_base.css delete mode 100644 animate/attention_seekers/pulse.css delete mode 100644 animate/attention_seekers/shake.css delete mode 100644 animate/attention_seekers/swing.css delete mode 100644 animate/bouncing_entrances/bounceIn.css delete mode 100644 animate/bouncing_exits/bounceOut.css delete mode 100644 animate/fading_entrances/fadeIn.css delete mode 100644 animate/fading_entrances/fadeInDown.css delete mode 100644 animate/fading_entrances/fadeInLeft.css delete mode 100644 animate/fading_entrances/fadeInRight.css delete mode 100644 animate/fading_entrances/fadeInUp.css delete mode 100644 animate/fading_exits/fadeOut.css delete mode 100644 animate/fading_exits/fadeOutDown.css delete mode 100644 animate/fading_exits/fadeOutLeft.css delete mode 100644 animate/fading_exits/fadeOutRight.css delete mode 100644 animate/fading_exits/fadeOutUp.css delete mode 100644 animate/flippers/flip.css delete mode 100644 animate/flippers/flipInX.css delete mode 100644 animate/flippers/flipInY.css delete mode 100644 animate/flippers/flipOutX.css delete mode 100644 animate/flippers/flipOutY.css delete mode 100644 animate/sliders/slideInDown.css delete mode 100644 animate/sliders/slideInLeft.css delete mode 100644 animate/sliders/slideInRight.css delete mode 100644 animate/sliders/slideOutLeft.css delete mode 100644 animate/sliders/slideOutRight.css delete mode 100644 animate/sliders/slideOutUp.css delete mode 100644 build/css/animate.css delete mode 100644 build/css/squirrel.css delete mode 100644 build/fonts/sq-fontello.ttf delete mode 100644 build/fonts/sq-fontello.woff delete mode 100644 build/js/squirrel-core.js delete mode 100644 build/js/squirrel.js delete mode 100644 dist/css/squirrel-min.css create mode 100644 dist/css/squirrel.min.css create mode 100644 dist/fonts/fontawesome-webfont.ttf create mode 100644 dist/fonts/fontawesome-webfont.woff delete mode 100644 dist/fonts/sq-fontello.ttf delete mode 100644 dist/fonts/sq-fontello.woff create mode 100644 dist/js/jquery.min.js create mode 100644 dist/js/jquery.min.map delete mode 100644 dist/js/squirrel-min.js create mode 100644 dist/js/squirrel.min.js create mode 100644 dist/maps/squirrel.min.css.map create mode 100644 dist/maps/squirrel.min.js.map create mode 100644 doc_tpl/documentation.html create mode 100644 doc_tpl/index.html create mode 100644 example/animate.html create mode 100644 example/badge.html create mode 100644 example/bar.html create mode 100644 example/button.html create mode 100644 example/column.html create mode 100644 example/core-function.html create mode 100644 example/css/example-material.css create mode 100644 example/css/example-theme.css create mode 100644 example/css/example.css create mode 100644 example/data/list.json create mode 100644 example/data/loadmore/0/list.json create mode 100644 example/data/loadmore/1/list.json create mode 100644 example/data/loadmore/2/list.json create mode 100644 example/data/loadmore/3/list.json create mode 100644 example/data/loadmore/4/list.json create mode 100644 example/dropdown.html create mode 100644 example/example.html create mode 100644 example/form.html create mode 100644 example/gallery.html create mode 100644 example/grid.html create mode 100644 example/icon.html create mode 100644 example/images/gallery-1.jpg create mode 100644 example/images/gallery-2.jpg create mode 100644 example/images/gallery-3.jpg create mode 100644 example/images/pic-home.jpg create mode 100644 example/images/sq-icon.png create mode 100644 example/images/sq-logo.jpg create mode 100644 example/index.html create mode 100644 example/js/example.js create mode 100644 example/lazyload.html create mode 100644 example/list.html create mode 100644 example/loadmore.html create mode 100644 example/material.html create mode 100644 example/modal.html create mode 100644 example/panel.html create mode 100644 example/screenshot.html create mode 100644 example/slider.html create mode 100644 example/sticky.html create mode 100644 example/tab.html delete mode 100644 fonts/sq-fontello.ttf delete mode 100644 fonts/sq-fontello.woff delete mode 100644 fonts/sq-fontello/LICENSE.txt delete mode 100644 fonts/sq-fontello/README.txt delete mode 100644 fonts/sq-fontello/config.json delete mode 100644 fonts/sq-fontello/css/animation.css delete mode 100644 fonts/sq-fontello/css/fontello-codes.css delete mode 100644 fonts/sq-fontello/css/fontello-embedded.css delete mode 100644 fonts/sq-fontello/css/fontello-ie7-codes.css delete mode 100644 fonts/sq-fontello/css/fontello-ie7.css delete mode 100644 fonts/sq-fontello/css/fontello.css delete mode 100644 fonts/sq-fontello/demo.html delete mode 100644 fonts/sq-fontello/font/fontello.eot delete mode 100644 fonts/sq-fontello/font/fontello.svg delete mode 100644 fonts/sq-fontello/font/fontello.ttf delete mode 100644 fonts/sq-fontello/font/fontello.woff create mode 100644 gulpfile.js delete mode 100644 jshintrc delete mode 100644 node_modules/grunt-cmd-concat/node_modules/cmd-util/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/intercept.js delete mode 100644 node_modules/grunt-cmd-concat/node_modules/cmd-util/tests/css-cases/compressed.css delete mode 100644 node_modules/grunt-cmd-concat/node_modules/cmd-util/tests/css-cases/compressed.json delete mode 100644 src/js/core/gestures.js delete mode 100644 src/js/fastclick.js delete mode 100644 src/js/touchslip.js delete mode 100644 src/less/badge.less delete mode 100644 src/less/bars.less delete mode 100644 src/less/button.less delete mode 100644 src/less/common.less delete mode 100644 src/less/default-theme.less delete mode 100644 src/less/font-icon.less delete mode 100644 src/less/form.less delete mode 100644 src/less/list.less delete mode 100644 src/less/loadmore.less delete mode 100644 src/less/mixins.less delete mode 100644 src/less/modal.less delete mode 100644 src/less/panel.less delete mode 100644 src/less/reset.less delete mode 100644 src/less/squirrel.less delete mode 100644 src/less/suggest.less delete mode 100644 src/less/variables.less rename src/{js => scripts}/core/core.js (100%) create mode 100644 src/scripts/core/iscroll.js rename src/{js => scripts}/core/store.js (100%) rename src/{js => scripts}/core/ua.js (100%) rename src/{js => scripts}/core/util.js (100%) rename src/{js/button.js => scripts/dropdown.js} (82%) create mode 100644 src/scripts/fastclick.js rename src/{js => scripts}/lazyload.js (96%) rename src/{js => scripts}/loadmore.js (92%) rename src/{js => scripts}/modal.js (98%) rename src/{js => scripts}/panel.js (92%) create mode 100644 src/scripts/slider.js create mode 100644 src/scripts/squirrel.js rename src/{js/fixed.js => scripts/sticky.js} (81%) rename src/{js => scripts}/suggest.js (100%) rename src/{js => scripts}/tab.js (98%) create mode 100644 src/styles/animate.less create mode 100644 src/styles/badge.less create mode 100644 src/styles/bar.less create mode 100644 src/styles/base.less create mode 100644 src/styles/button.less create mode 100644 src/styles/column.less create mode 100644 src/styles/font-awesome.less create mode 100644 src/styles/form.less create mode 100644 src/styles/gallery.less rename src/{less => styles}/grid.less (86%) create mode 100644 src/styles/list.less create mode 100644 src/styles/mixins.less rename src/{less => styles}/normalize.less (66%) create mode 100644 src/styles/plugins/dropdown.less create mode 100644 src/styles/plugins/loadmore.less create mode 100644 src/styles/plugins/modal.less create mode 100644 src/styles/plugins/panel.less create mode 100644 src/styles/plugins/screenshot.less create mode 100644 src/styles/plugins/slider.less rename src/{less => styles/plugins}/tabs.less (65%) create mode 100644 src/styles/squirrel.less create mode 100644 src/styles/themes/default-theme.less create mode 100644 src/styles/utilities.less create mode 100644 src/styles/variables.less delete mode 100644 src_cmd/button/button.js delete mode 100644 src_cmd/core/squirrel-core.js delete mode 100644 src_cmd/fixed/fixed.js delete mode 100644 src_cmd/lazyload/lazyload.js delete mode 100644 src_cmd/loadmore/loadmore.js delete mode 100644 src_cmd/popup/popup.js delete mode 100644 src_cmd/suggest/suggest.js delete mode 100644 src_cmd/tabs/tabs.js delete mode 100644 src_cmd/touchslip/touchslip.js delete mode 100644 src_cmd/zepto/zepto.js delete mode 100644 test/components/all.html delete mode 100644 test/components/css/test-all.css delete mode 100644 test/components/data/list-900.json delete mode 100644 test/components/data/list.json delete mode 100644 test/components/data/suggest.json delete mode 100644 test/components/data/tabs1.json delete mode 100644 test/components/data/tabs2.json delete mode 100644 test/components/data/tabs3.json delete mode 100644 test/components/images/sq-icon.png delete mode 100644 test/components/js/test-all.js delete mode 100644 test/unit/base/modules-loaded.js delete mode 100644 test/unit/test-runner.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ee7a4c1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/.idea/* +/node_modules/* +/bower_components/* \ No newline at end of file diff --git a/Gruntfile.js b/Gruntfile.js deleted file mode 100644 index f695bb3..0000000 --- a/Gruntfile.js +++ /dev/null @@ -1,182 +0,0 @@ -/*! - * Squirrel's Gruntfile - * http://hisquirrel.com - * Copyright 2013-2014 - * Licensed under MIT (https://github.com/iinterest/Squirrel-3/blob/master/LICENSE.md) - */ -module.exports = function (grunt) { - 'use strict'; - grunt.initConfig({ - pkg: grunt.file.readJSON('package.json'), - banner: '/*!\n' + - ' * Squirrel v<%= pkg.version %> (<%= pkg.homepage %>)\n' + - ' * Copyright 2011-<%= grunt.template.today("yyyy-mm-dd hh:MM:ss") %> <%= pkg.author %>\n' + - ' * Licensed under <%= pkg.license.type %> (<%= pkg.license.url %>)\n' + - ' */\n', - concat: { - concatCore: { - src: [ - 'src/js/core/core.js', - 'src/js/core/*.js' - ], - dest: 'build/js/<%= pkg.name%>-core.js' - }, - concatPlugins: { - src: [ - 'build/js/<%= pkg.name%>-core.js', - 'src/js/*.js' - ], - dest: 'build/js/<%= pkg.name%>.js', - nonull: true - }, - // 动画 CSS 合并 - concatAnimate: { - src: [ - 'animate/_base.css', - 'animate/**/*.css' - ], - dest: 'build/css/animate.css' - } - }, - uglify: { - options: { - banner: '<%= banner %>' - }, - build: { - src: 'build/js/<%= pkg.name%>.js', - dest: 'dist/js/<%= pkg.name%>-min.js' - } - }, - less: { - compileCore: { - files: { - 'build/css/<%= pkg.name %>.css': 'src/less/squirrel.less' - } - } - }, - cssmin: { - compress: { - options: { - banner: '<%= banner %>' - }, - src: [ - 'build/css/<%= pkg.name%>.css', - 'build/css/animate.css' - ], - dest: 'dist/css/<%= pkg.name%>-min.css' - } - }, - clean: { - options: {force: true}, - build: 'build', - dist: 'dist' - }, - watch: { - less: { - files: 'src/less/*.less', - tasks: ['less', 'cssmin', 'copy', 'sed'] - }, - script: { - files: [ - 'src/js/*.js', - 'src/js/core/*.js' - ], - tasks: ['concat:concatCore', 'concat:concatPlugins', 'uglify', 'copy', 'sed'] - } - }, - jsdoc: { - dist: { - src: 'src/js/**/*.js', - options: { - destination: '../Squirrel-Doc/docs/jsdoc' - } - } - }, - copy: { - fontToDist: { - expand: true, - src: 'fonts/*', - dest: 'dist' - }, - fontToBuild: { - expand: true, - src: 'fonts/*', - dest: 'build' - }, - buildToDoc: { - expand: true, - src: 'build/**', - dest: '../Squirrel-Doc/docs/latest/' - }, - distToDoc: { - expand: true, - src: 'dist/**', - dest: '../Squirrel-Doc/docs/latest/' - }, - tplIndexToDoc: { - expand: true, - flatten: true, - src: 'doc_tpl/index.html', - dest: '../Squirrel-Doc/', - filter: 'isFile' - }, - tplDocumentationToDoc: { - expand: true, - flatten: true, - src: 'doc_tpl/documentation.html', - dest: '../Squirrel-Doc/docs/latest/', - filter: 'isFile' - } - }, - autoprefixer: { - options: { - browsers: ['android 3'] - }, - multipleFiles: { - expand: true, - flatten: true, - src: 'build/css/animate.css', - dest: 'build/css/' - } - }, - sed: { - versionNumber: { - path: [ - '../Squirrel-Doc/index.html', - '../Squirrel-Doc/docs/latest/documentation.html' - ], - pattern: '%VERSION%', - replacement: '<%= pkg.version %>' - }, - update: { - path: [ - '../Squirrel-Doc/index.html', - '../Squirrel-Doc/docs/latest/documentation.html' - ], - pattern: '%UPDATE%', - replacement: '<%= grunt.template.today("yyyy-mm-dd") %>' - } - } - }); - - grunt.loadNpmTasks('grunt-autoprefixer'); - grunt.loadNpmTasks('grunt-contrib-clean'); - grunt.loadNpmTasks('grunt-contrib-copy'); - grunt.loadNpmTasks('grunt-contrib-concat'); - grunt.loadNpmTasks('grunt-contrib-cssmin'); - grunt.loadNpmTasks('grunt-contrib-less'); - grunt.loadNpmTasks('grunt-contrib-uglify'); - grunt.loadNpmTasks('grunt-contrib-watch'); - grunt.loadNpmTasks('grunt-jsdoc'); - grunt.loadNpmTasks('grunt-sed'); - // 构建工程 - grunt.registerTask('build', ['clean', 'concat', 'autoprefixer', 'less', 'uglify', 'cssmin', 'copy', 'sed']); - // 构建文档 - grunt.registerTask('doc', ['copy', 'sed']); - - // 监视文件变化自动构建 - // grunt watch - - // 生成 JSDoc 文档 - // grunt jsdoc -}; \ No newline at end of file diff --git a/README.md b/README.md index 724c97c..1af044a 100644 --- a/README.md +++ b/README.md @@ -2,17 +2,16 @@ ## 一、简介 -Squirrle 是一款移动 Web 前端开发框架,提供简单、快速的 Web 开发体验。 +Squirrle 是一款轻量级的移动 Web 前端开发框架,提供简单、快速的 Web 开发体验。 ## 二、特性 -* 基于 HTML5,应用了 HTML5 的多种特性,如 CSS3、离线应用、本地存储等。 -* 多操作系统支持,支持 Android、iOS 系统,可扩展支持 Windows Phone、Firefox OS 等系统。 -* 专为手持移动设备打造,能适应不同屏幕尺寸,针对不同尺寸屏幕做了排版优化。 -* 提供定制工具,可以根据实际需要灵活的定制内容,按需最小化加载组件及插件。 -* 遵循 CMD 规范,借助 Sea.js 可以按需最小化加载组件及插件。 -* 基于 LESS 开发,能够方便的创建结构良好、高扩展性、高可维护性的代码。 -* 框架遵循 MIT 协议,无论公司还是个人,都可以免费自由使用。 +* 专为移动终端设计,支持 Android、iOS、WP 操作系统。 +* 适应各种屏幕尺寸、分辨率的移动终端,针对触摸操作体验进行了优化。 +* 遵循 MIT 协议,无论公司还是个人,都可以免费、自由使用。 +* 提供丰富的样式及交互组件,能帮助您轻松构建 Web 应用。 +* 采用 LESS 技术、CMD 规范、jQuery 插件开发模式,扩展方便。 +* 提供定制工具,可以根据实际需要灵活的定制框架。 ## 三、使用指南 @@ -20,63 +19,40 @@ Squirrle 是一款移动 Web 前端开发框架,提供简单、快速的 Web Squirrel 支持两种安装方式: -1. 直接下载 Squirrle 3 代码包 - 代码包分为『开发版』和『压缩版』;『开发版』包含完整的项目结构与源码;而『压缩版』则是更适合用于实际生产的代码,下面是『压缩版』目录结构: - - Squirrel/ - ├── css/ - │ ├── squirrel.css - │ ├── squirrel.min.css - ├── js/ - │ ├── squirrel.js - │ ├── squirrel.min.js - ├── fonts/ - │ ├── sq-fontello.ttf - │ ├── sq-fontello.woff - └── index.html - -2. 使用 NPM 安装 Squirrle 3 工程套件 - Squirrle 3 工程套件是一套完整移动 Web 开发方案,它集成了 Squirrel 框架代码并提供自动化构建工具,按照约定的目录进行开发,需要自行配置,套件目录结构: - - - Squirrel-pt/ - ├── dist/ - │ ├── css/ - │ │ ├── squirrel.min.css - │ │ ├── project-name.min.css - │ ├── js/ - │ │ ├── squirrel.min.js - │ │ ├── project-name.min.js - │ ├── images/ - │ ├── fonts/ - │ │ ├── sq-fontello.ttf - │ │ ├── sq-fontello.woff - ├── src/ (源码) - │ ├── sq-less/ (框架源码) - │ ├── sq-js/ (框架源码) - │ ├── less/ (项目源码) - │ ├── js/ (项目源码) - ├── libs/ (依赖库) - │ ├── zepto.min.js - ├── .jshintrc - ├── Gruntfile.js - ├── package.json - └── index.html - - - NPM 安装命令: - +1. 直接下载 Squirrle 3 [代码包](https://github.com/iinterest/Squirrel-3/releases) +2. 或者使用 npm 安装: + npm install squirrel-pt - - 进入 squirrel-pt 目录,下载完成后需要对 package.json 进行配置。 + +安装完成或压缩下载的安装包之后,可看到以下目录结构: + + squirrel/ + | + ├── css/ + │ ├── squirrel.min.css + │ └── app.css + ├── fonts/ + │ ├── fontawesome-webfont.ttf + │ └── fontawesome-webfont.woff + ├── images/ + ├── js/ + │ ├── jquery.min.js + │ ├── jquery.min.map + │ ├── squirrel.min.js + │ └── app.js + ├── maps/ + │ ├── squirrel.min.css.map + │ └── squirrel.min.js.map + └── index.html ### 2、使用 -Squirrel 集成了许多常用的组件及插件,只需要简单的几步就可以快速的使用集成的组件及插件构建一个应用: +Squirrel 安装包内包含编译并压缩好的 squirrel.min.css、squirrel.min.js 文件,以及最新的 jQuery 库和 Awesome 的图标字体,同时还提供 Javascript 和 CSS 的源码映射表(.map 文件);除此之外还提供简单的模板样式文件(Boilerplate)您可以: -1. 打开并编辑安装目录中 index.html 文件; -2. 在框架文档中拷贝所需组件代码片段或者插件的实例化方法; -3. 加入自定义样式和 Javascript 脚本。 +* 以index.html为样板编写 HTML; +* 在app.css中编写 CSS; +* 在app.js中编写 JavaScript; +* 将图片资源放在images目录下。 ## 三、贡献力量 diff --git a/animate/_base.css b/animate/_base.css deleted file mode 100644 index ce64b4a..0000000 --- a/animate/_base.css +++ /dev/null @@ -1,14 +0,0 @@ -/*! Animate */ -.animated { - animation-duration: 1s; - animation-fill-mode: both; -} -.animated.fast { - animation-duration: .3s; -} -.animated.quick { - animation-duration: .6s; -} -.animated.hinge { - animation-duration: 2s; -} \ No newline at end of file diff --git a/animate/attention_seekers/pulse.css b/animate/attention_seekers/pulse.css deleted file mode 100644 index b77622c..0000000 --- a/animate/attention_seekers/pulse.css +++ /dev/null @@ -1,11 +0,0 @@ -/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ - -@keyframes pulse { - 0% { transform: scale(1); } - 50% { transform: scale(1.1); } - 100% { transform: scale(1); } -} - -.pulse { - animation-name: pulse; -} \ No newline at end of file diff --git a/animate/attention_seekers/shake.css b/animate/attention_seekers/shake.css deleted file mode 100644 index 69180ba..0000000 --- a/animate/attention_seekers/shake.css +++ /dev/null @@ -1,9 +0,0 @@ -@keyframes shake { - 0%, 100% {transform: translateX(0);} - 10%, 30%, 50%, 70%, 90% {transform: translateX(-10px);} - 20%, 40%, 60%, 80% {transform: translateX(10px);} -} - -.shake { - animation-name: shake; -} \ No newline at end of file diff --git a/animate/attention_seekers/swing.css b/animate/attention_seekers/swing.css deleted file mode 100644 index 70e7261..0000000 --- a/animate/attention_seekers/swing.css +++ /dev/null @@ -1,12 +0,0 @@ -@keyframes swing { - 20% { transform: rotate(15deg); } - 40% { transform: rotate(-10deg); } - 60% { transform: rotate(5deg); } - 80% { transform: rotate(-5deg); } - 100% { transform: rotate(0deg); } -} - -.swing { - transform-origin: top center; - animation-name: swing; -} \ No newline at end of file diff --git a/animate/bouncing_entrances/bounceIn.css b/animate/bouncing_entrances/bounceIn.css deleted file mode 100644 index 46f19c0..0000000 --- a/animate/bouncing_entrances/bounceIn.css +++ /dev/null @@ -1,23 +0,0 @@ -@keyframes bounceIn { - 0% { - opacity: 0; - transform: scale(.3); - } - - 50% { - opacity: 1; - transform: scale(1.05); - } - - /*70% { - transform: scale(.9); - }*/ - - 100% { - transform: scale(1); - } -} - -.bounceIn { - animation-name: bounceIn; -} \ No newline at end of file diff --git a/animate/bouncing_exits/bounceOut.css b/animate/bouncing_exits/bounceOut.css deleted file mode 100644 index 70c0c58..0000000 --- a/animate/bouncing_exits/bounceOut.css +++ /dev/null @@ -1,23 +0,0 @@ -@keyframes bounceOut { - 0% { - transform: scale(1); - } - - /*25% { - transform: scale(.95); - }*/ - - 50% { - opacity: 1; - transform: scale(1.1); - } - - 100% { - opacity: 0; - transform: scale(.3); - } -} - -.bounceOut { - animation-name: bounceOut; -} \ No newline at end of file diff --git a/animate/fading_entrances/fadeIn.css b/animate/fading_entrances/fadeIn.css deleted file mode 100644 index 2916944..0000000 --- a/animate/fading_entrances/fadeIn.css +++ /dev/null @@ -1,8 +0,0 @@ -@keyframes fadeIn { - 0% {opacity: 0;} - 100% {opacity: 1;} -} - -.fadeIn { - animation-name: fadeIn; -} \ No newline at end of file diff --git a/animate/fading_entrances/fadeInDown.css b/animate/fading_entrances/fadeInDown.css deleted file mode 100644 index 4328fba..0000000 --- a/animate/fading_entrances/fadeInDown.css +++ /dev/null @@ -1,15 +0,0 @@ -@keyframes fadeInDown { - 0% { - opacity: 0; - transform: translateY(-20px); - } - - 100% { - opacity: 1; - transform: translateY(0); - } -} - -.fadeInDown { - animation-name: fadeInDown; -} \ No newline at end of file diff --git a/animate/fading_entrances/fadeInLeft.css b/animate/fading_entrances/fadeInLeft.css deleted file mode 100644 index 18ba4ea..0000000 --- a/animate/fading_entrances/fadeInLeft.css +++ /dev/null @@ -1,15 +0,0 @@ -@keyframes fadeInLeft { - 0% { - opacity: 0; - transform: translateX(-20px); - } - - 100% { - opacity: 1; - transform: translateX(0); - } -} - -.fadeInLeft { - animation-name: fadeInLeft; -} \ No newline at end of file diff --git a/animate/fading_entrances/fadeInRight.css b/animate/fading_entrances/fadeInRight.css deleted file mode 100644 index 1fe7767..0000000 --- a/animate/fading_entrances/fadeInRight.css +++ /dev/null @@ -1,15 +0,0 @@ -@keyframes fadeInRight { - 0% { - opacity: 0; - transform: translateX(20px); - } - - 100% { - opacity: 1; - transform: translateX(0); - } -} - -.fadeInRight { - animation-name: fadeInRight; -} \ No newline at end of file diff --git a/animate/fading_entrances/fadeInUp.css b/animate/fading_entrances/fadeInUp.css deleted file mode 100644 index 0aeb471..0000000 --- a/animate/fading_entrances/fadeInUp.css +++ /dev/null @@ -1,15 +0,0 @@ -@keyframes fadeInUp { - 0% { - opacity: 0; - transform: translateY(20px); - } - - 100% { - opacity: 1; - transform: translateY(0); - } -} - -.fadeInUp { - animation-name: fadeInUp; -} \ No newline at end of file diff --git a/animate/fading_exits/fadeOut.css b/animate/fading_exits/fadeOut.css deleted file mode 100644 index ea9051f..0000000 --- a/animate/fading_exits/fadeOut.css +++ /dev/null @@ -1,8 +0,0 @@ -@keyframes fadeOut { - 0% {opacity: 1;} - 100% {opacity: 0;} -} - -.fadeOut { - animation-name: fadeOut; -} \ No newline at end of file diff --git a/animate/fading_exits/fadeOutDown.css b/animate/fading_exits/fadeOutDown.css deleted file mode 100644 index c02763c..0000000 --- a/animate/fading_exits/fadeOutDown.css +++ /dev/null @@ -1,15 +0,0 @@ -@keyframes fadeOutDown { - 0% { - opacity: 1; - transform: translateY(0); - } - - 100% { - opacity: 0; - transform: translateY(20px); - } -} - -.fadeOutDown { - animation-name: fadeOutDown; -} \ No newline at end of file diff --git a/animate/fading_exits/fadeOutLeft.css b/animate/fading_exits/fadeOutLeft.css deleted file mode 100644 index d86012a..0000000 --- a/animate/fading_exits/fadeOutLeft.css +++ /dev/null @@ -1,15 +0,0 @@ -@keyframes fadeOutLeft { - 0% { - opacity: 1; - transform: translateX(0); - } - - 100% { - opacity: 0; - transform: translateX(-20px); - } -} - -.fadeOutLeft { - animation-name: fadeOutLeft; -} \ No newline at end of file diff --git a/animate/fading_exits/fadeOutRight.css b/animate/fading_exits/fadeOutRight.css deleted file mode 100644 index 54b62ec..0000000 --- a/animate/fading_exits/fadeOutRight.css +++ /dev/null @@ -1,15 +0,0 @@ -@keyframes fadeOutRight { - 0% { - opacity: 1; - transform: translateX(0); - } - - 100% { - opacity: 0; - transform: translateX(20px); - } -} - -.fadeOutRight { - animation-name: fadeOutRight; -} \ No newline at end of file diff --git a/animate/fading_exits/fadeOutUp.css b/animate/fading_exits/fadeOutUp.css deleted file mode 100644 index c872ab8..0000000 --- a/animate/fading_exits/fadeOutUp.css +++ /dev/null @@ -1,15 +0,0 @@ -@keyframes fadeOutUp { - 0% { - opacity: 1; - transform: translateY(0); - } - - 100% { - opacity: 0; - transform: translateY(-20px); - } -} - -.fadeOutUp { - animation-name: fadeOutUp; -} \ No newline at end of file diff --git a/animate/flippers/flip.css b/animate/flippers/flip.css deleted file mode 100644 index 7e23d90..0000000 --- a/animate/flippers/flip.css +++ /dev/null @@ -1,27 +0,0 @@ -@keyframes flip { - 0% { - transform: perspective(400px) translateZ(0) rotateY(0) scale(1); - animation-timing-function: ease-out; - } - 40% { - transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1); - animation-timing-function: ease-out; - } - 50% { - transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); - animation-timing-function: ease-in; - } - 80% { - transform: perspective(400px) translateZ(0) rotateY(360deg) scale(.95); - animation-timing-function: ease-in; - } - 100% { - transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1); - animation-timing-function: ease-in; - } -} - -.animated.flip { - backface-visibility: visible; - animation-name: flip; -} diff --git a/animate/flippers/flipInX.css b/animate/flippers/flipInX.css deleted file mode 100644 index 0a05467..0000000 --- a/animate/flippers/flipInX.css +++ /dev/null @@ -1,24 +0,0 @@ -@keyframes flipInX { - 0% { - transform: perspective(400px) rotateX(90deg); - opacity: 0; - } - - 50% { - transform: perspective(400px) rotateX(-10deg); - } - - /*70% { - transform: perspective(400px) rotateX(10deg); - }*/ - - 100% { - transform: perspective(400px) rotateX(0deg); - opacity: 1; - } -} - -.flipInX { - backface-visibility: visible !important; - animation-name: flipInX; -} \ No newline at end of file diff --git a/animate/flippers/flipInY.css b/animate/flippers/flipInY.css deleted file mode 100644 index 619f5fd..0000000 --- a/animate/flippers/flipInY.css +++ /dev/null @@ -1,24 +0,0 @@ -@keyframes flipInY { - 0% { - transform: perspective(400px) rotateY(90deg); - opacity: 0; - } - - 50% { - transform: perspective(400px) rotateY(-10deg); - } - - /*70% { - transform: perspective(400px) rotateY(10deg); - }*/ - - 100% { - transform: perspective(400px) rotateY(0deg); - opacity: 1; - } -} - -.flipInY { - backface-visibility: visible !important; - animation-name: flipInY; -} \ No newline at end of file diff --git a/animate/flippers/flipOutX.css b/animate/flippers/flipOutX.css deleted file mode 100644 index 4bb32d0..0000000 --- a/animate/flippers/flipOutX.css +++ /dev/null @@ -1,15 +0,0 @@ -@keyframes flipOutX { - 0% { - transform: perspective(400px) rotateX(0deg); - opacity: 1; - } - 100% { - transform: perspective(400px) rotateX(90deg); - opacity: 0; - } -} - -.flipOutX { - animation-name: flipOutX; - backface-visibility: visible !important; -} \ No newline at end of file diff --git a/animate/flippers/flipOutY.css b/animate/flippers/flipOutY.css deleted file mode 100644 index 948caf8..0000000 --- a/animate/flippers/flipOutY.css +++ /dev/null @@ -1,15 +0,0 @@ -@keyframes flipOutY { - 0% { - transform: perspective(400px) rotateY(0deg); - opacity: 1; - } - 100% { - transform: perspective(400px) rotateY(90deg); - opacity: 0; - } -} - -.flipOutY { - backface-visibility: visible !important; - animation-name: flipOutY; -} \ No newline at end of file diff --git a/animate/sliders/slideInDown.css b/animate/sliders/slideInDown.css deleted file mode 100644 index 397861d..0000000 --- a/animate/sliders/slideInDown.css +++ /dev/null @@ -1,14 +0,0 @@ -@keyframes slideInDown { - 0% { - opacity: 0; - transform: translateY(-2000px); - } - - 100% { - transform: translateY(0); - } -} - -.slideInDown { - animation-name: slideInDown; -} \ No newline at end of file diff --git a/animate/sliders/slideInLeft.css b/animate/sliders/slideInLeft.css deleted file mode 100644 index 219d949..0000000 --- a/animate/sliders/slideInLeft.css +++ /dev/null @@ -1,14 +0,0 @@ -@keyframes slideInLeft { - 0% { - opacity: 0; - transform: translateX(-2000px); - } - - 100% { - transform: translateX(0); - } -} - -.slideInLeft { - animation-name: slideInLeft; -} \ No newline at end of file diff --git a/animate/sliders/slideInRight.css b/animate/sliders/slideInRight.css deleted file mode 100644 index 7bde814..0000000 --- a/animate/sliders/slideInRight.css +++ /dev/null @@ -1,14 +0,0 @@ -@keyframes slideInRight { - 0% { - opacity: 0; - transform: translateX(2000px); - } - - 100% { - transform: translateX(0); - } -} - -.slideInRight { - animation-name: slideInRight; -} \ No newline at end of file diff --git a/animate/sliders/slideOutLeft.css b/animate/sliders/slideOutLeft.css deleted file mode 100644 index d0bbde7..0000000 --- a/animate/sliders/slideOutLeft.css +++ /dev/null @@ -1,14 +0,0 @@ -@keyframes slideOutLeft { - 0% { - transform: translateX(0); - } - - 100% { - opacity: 0; - transform: translateX(-2000px); - } -} - -.slideOutLeft { - animation-name: slideOutLeft; -} \ No newline at end of file diff --git a/animate/sliders/slideOutRight.css b/animate/sliders/slideOutRight.css deleted file mode 100644 index 1253906..0000000 --- a/animate/sliders/slideOutRight.css +++ /dev/null @@ -1,14 +0,0 @@ -@keyframes slideOutRight { - 0% { - transform: translateX(0); - } - - 100% { - opacity: 0; - transform: translateX(2000px); - } -} - -.slideOutRight { - animation-name: slideOutRight; -} \ No newline at end of file diff --git a/animate/sliders/slideOutUp.css b/animate/sliders/slideOutUp.css deleted file mode 100644 index 4c344d1..0000000 --- a/animate/sliders/slideOutUp.css +++ /dev/null @@ -1,14 +0,0 @@ -@keyframes slideOutUp { - 0% { - transform: translateY(0); - } - - 100% { - opacity: 0; - transform: translateY(-2000px); - } -} - -.slideOutUp { - animation-name: slideOutUp; -} \ No newline at end of file diff --git a/build/css/animate.css b/build/css/animate.css deleted file mode 100644 index c88a9fb..0000000 --- a/build/css/animate.css +++ /dev/null @@ -1,991 +0,0 @@ -/*! Animate */ - -.animated { - -webkit-animation-duration: 1s; - animation-duration: 1s; - -webkit-animation-fill-mode: both; - animation-fill-mode: both; -} - -.animated.fast { - -webkit-animation-duration: .3s; - animation-duration: .3s; -} - -.animated.quick { - -webkit-animation-duration: .6s; - animation-duration: .6s; -} - -.animated.hinge { - -webkit-animation-duration: 2s; - animation-duration: 2s; -} - -/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ - -@-webkit-keyframes pulse { - 0% { - -webkit-transform: scale(1); - transform: scale(1); - } - - 50% { - -webkit-transform: scale(1.1); - transform: scale(1.1); - } - - 100% { - -webkit-transform: scale(1); - transform: scale(1); - } -} - -@keyframes pulse { - 0% { - -webkit-transform: scale(1); - transform: scale(1); - } - - 50% { - -webkit-transform: scale(1.1); - transform: scale(1.1); - } - - 100% { - -webkit-transform: scale(1); - transform: scale(1); - } -} - -.pulse { - -webkit-animation-name: pulse; - animation-name: pulse; -} - -@-webkit-keyframes shake { - 0%, 100% { - -webkit-transform: translateX(0); - transform: translateX(0); - } - - 10%, 30%, 50%, 70%, 90% { - -webkit-transform: translateX(-10px); - transform: translateX(-10px); - } - - 20%, 40%, 60%, 80% { - -webkit-transform: translateX(10px); - transform: translateX(10px); - } -} - -@keyframes shake { - 0%, 100% { - -webkit-transform: translateX(0); - transform: translateX(0); - } - - 10%, 30%, 50%, 70%, 90% { - -webkit-transform: translateX(-10px); - transform: translateX(-10px); - } - - 20%, 40%, 60%, 80% { - -webkit-transform: translateX(10px); - transform: translateX(10px); - } -} - -.shake { - -webkit-animation-name: shake; - animation-name: shake; -} - -@-webkit-keyframes swing { - 20% { - -webkit-transform: rotate(15deg); - transform: rotate(15deg); - } - - 40% { - -webkit-transform: rotate(-10deg); - transform: rotate(-10deg); - } - - 60% { - -webkit-transform: rotate(5deg); - transform: rotate(5deg); - } - - 80% { - -webkit-transform: rotate(-5deg); - transform: rotate(-5deg); - } - - 100% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } -} - -@keyframes swing { - 20% { - -webkit-transform: rotate(15deg); - transform: rotate(15deg); - } - - 40% { - -webkit-transform: rotate(-10deg); - transform: rotate(-10deg); - } - - 60% { - -webkit-transform: rotate(5deg); - transform: rotate(5deg); - } - - 80% { - -webkit-transform: rotate(-5deg); - transform: rotate(-5deg); - } - - 100% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } -} - -.swing { - -webkit-transform-origin: top center; - transform-origin: top center; - -webkit-animation-name: swing; - animation-name: swing; -} - -@-webkit-keyframes bounceIn { - 0% { - opacity: 0; - -webkit-transform: scale(.3); - transform: scale(.3); - } - - 50% { - opacity: 1; - -webkit-transform: scale(1.05); - transform: scale(1.05); - } - - 100% { - -webkit-transform: scale(1); - transform: scale(1); - } -} - -@keyframes bounceIn { - 0% { - opacity: 0; - -webkit-transform: scale(.3); - transform: scale(.3); - } - - 50% { - opacity: 1; - -webkit-transform: scale(1.05); - transform: scale(1.05); - } - - 100% { - -webkit-transform: scale(1); - transform: scale(1); - } -} - -.bounceIn { - -webkit-animation-name: bounceIn; - animation-name: bounceIn; -} - -@-webkit-keyframes bounceOut { - 0% { - -webkit-transform: scale(1); - transform: scale(1); - } - - 50% { - opacity: 1; - -webkit-transform: scale(1.1); - transform: scale(1.1); - } - - 100% { - opacity: 0; - -webkit-transform: scale(.3); - transform: scale(.3); - } -} - -@keyframes bounceOut { - 0% { - -webkit-transform: scale(1); - transform: scale(1); - } - - 50% { - opacity: 1; - -webkit-transform: scale(1.1); - transform: scale(1.1); - } - - 100% { - opacity: 0; - -webkit-transform: scale(.3); - transform: scale(.3); - } -} - -.bounceOut { - -webkit-animation-name: bounceOut; - animation-name: bounceOut; -} - -@-webkit-keyframes fadeIn { - 0% { - opacity: 0; - } - - 100% { - opacity: 1; - } -} - -@keyframes fadeIn { - 0% { - opacity: 0; - } - - 100% { - opacity: 1; - } -} - -.fadeIn { - -webkit-animation-name: fadeIn; - animation-name: fadeIn; -} - -@-webkit-keyframes fadeInDown { - 0% { - opacity: 0; - -webkit-transform: translateY(-20px); - transform: translateY(-20px); - } - - 100% { - opacity: 1; - -webkit-transform: translateY(0); - transform: translateY(0); - } -} - -@keyframes fadeInDown { - 0% { - opacity: 0; - -webkit-transform: translateY(-20px); - transform: translateY(-20px); - } - - 100% { - opacity: 1; - -webkit-transform: translateY(0); - transform: translateY(0); - } -} - -.fadeInDown { - -webkit-animation-name: fadeInDown; - animation-name: fadeInDown; -} - -@-webkit-keyframes fadeInLeft { - 0% { - opacity: 0; - -webkit-transform: translateX(-20px); - transform: translateX(-20px); - } - - 100% { - opacity: 1; - -webkit-transform: translateX(0); - transform: translateX(0); - } -} - -@keyframes fadeInLeft { - 0% { - opacity: 0; - -webkit-transform: translateX(-20px); - transform: translateX(-20px); - } - - 100% { - opacity: 1; - -webkit-transform: translateX(0); - transform: translateX(0); - } -} - -.fadeInLeft { - -webkit-animation-name: fadeInLeft; - animation-name: fadeInLeft; -} - -@-webkit-keyframes fadeInRight { - 0% { - opacity: 0; - -webkit-transform: translateX(20px); - transform: translateX(20px); - } - - 100% { - opacity: 1; - -webkit-transform: translateX(0); - transform: translateX(0); - } -} - -@keyframes fadeInRight { - 0% { - opacity: 0; - -webkit-transform: translateX(20px); - transform: translateX(20px); - } - - 100% { - opacity: 1; - -webkit-transform: translateX(0); - transform: translateX(0); - } -} - -.fadeInRight { - -webkit-animation-name: fadeInRight; - animation-name: fadeInRight; -} - -@-webkit-keyframes fadeInUp { - 0% { - opacity: 0; - -webkit-transform: translateY(20px); - transform: translateY(20px); - } - - 100% { - opacity: 1; - -webkit-transform: translateY(0); - transform: translateY(0); - } -} - -@keyframes fadeInUp { - 0% { - opacity: 0; - -webkit-transform: translateY(20px); - transform: translateY(20px); - } - - 100% { - opacity: 1; - -webkit-transform: translateY(0); - transform: translateY(0); - } -} - -.fadeInUp { - -webkit-animation-name: fadeInUp; - animation-name: fadeInUp; -} - -@-webkit-keyframes fadeOut { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - } -} - -@keyframes fadeOut { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - } -} - -.fadeOut { - -webkit-animation-name: fadeOut; - animation-name: fadeOut; -} - -@-webkit-keyframes fadeOutDown { - 0% { - opacity: 1; - -webkit-transform: translateY(0); - transform: translateY(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateY(20px); - transform: translateY(20px); - } -} - -@keyframes fadeOutDown { - 0% { - opacity: 1; - -webkit-transform: translateY(0); - transform: translateY(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateY(20px); - transform: translateY(20px); - } -} - -.fadeOutDown { - -webkit-animation-name: fadeOutDown; - animation-name: fadeOutDown; -} - -@-webkit-keyframes fadeOutLeft { - 0% { - opacity: 1; - -webkit-transform: translateX(0); - transform: translateX(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(-20px); - transform: translateX(-20px); - } -} - -@keyframes fadeOutLeft { - 0% { - opacity: 1; - -webkit-transform: translateX(0); - transform: translateX(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(-20px); - transform: translateX(-20px); - } -} - -.fadeOutLeft { - -webkit-animation-name: fadeOutLeft; - animation-name: fadeOutLeft; -} - -@-webkit-keyframes fadeOutRight { - 0% { - opacity: 1; - -webkit-transform: translateX(0); - transform: translateX(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(20px); - transform: translateX(20px); - } -} - -@keyframes fadeOutRight { - 0% { - opacity: 1; - -webkit-transform: translateX(0); - transform: translateX(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(20px); - transform: translateX(20px); - } -} - -.fadeOutRight { - -webkit-animation-name: fadeOutRight; - animation-name: fadeOutRight; -} - -@-webkit-keyframes fadeOutUp { - 0% { - opacity: 1; - -webkit-transform: translateY(0); - transform: translateY(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateY(-20px); - transform: translateY(-20px); - } -} - -@keyframes fadeOutUp { - 0% { - opacity: 1; - -webkit-transform: translateY(0); - transform: translateY(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateY(-20px); - transform: translateY(-20px); - } -} - -.fadeOutUp { - -webkit-animation-name: fadeOutUp; - animation-name: fadeOutUp; -} - -@-webkit-keyframes flip { - 0% { - -webkit-transform: perspective(400px) translateZ(0) rotateY(0) scale(1); - transform: perspective(400px) translateZ(0) rotateY(0) scale(1); - -webkit-animation-timing-function: ease-out; - animation-timing-function: ease-out; - } - - 40% { - -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1); - transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1); - -webkit-animation-timing-function: ease-out; - animation-timing-function: ease-out; - } - - 50% { - -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); - transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - } - - 80% { - -webkit-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(.95); - transform: perspective(400px) translateZ(0) rotateY(360deg) scale(.95); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - } - - 100% { - -webkit-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1); - transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - } -} - -@keyframes flip { - 0% { - -webkit-transform: perspective(400px) translateZ(0) rotateY(0) scale(1); - transform: perspective(400px) translateZ(0) rotateY(0) scale(1); - -webkit-animation-timing-function: ease-out; - animation-timing-function: ease-out; - } - - 40% { - -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1); - transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1); - -webkit-animation-timing-function: ease-out; - animation-timing-function: ease-out; - } - - 50% { - -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); - transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - } - - 80% { - -webkit-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(.95); - transform: perspective(400px) translateZ(0) rotateY(360deg) scale(.95); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - } - - 100% { - -webkit-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1); - transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - } -} - -.animated.flip { - -webkit-backface-visibility: visible; - backface-visibility: visible; - -webkit-animation-name: flip; - animation-name: flip; -} - -@-webkit-keyframes flipInX { - 0% { - -webkit-transform: perspective(400px) rotateX(90deg); - transform: perspective(400px) rotateX(90deg); - opacity: 0; - } - - 50% { - -webkit-transform: perspective(400px) rotateX(-10deg); - transform: perspective(400px) rotateX(-10deg); - } - - 100% { - -webkit-transform: perspective(400px) rotateX(0deg); - transform: perspective(400px) rotateX(0deg); - opacity: 1; - } -} - -@keyframes flipInX { - 0% { - -webkit-transform: perspective(400px) rotateX(90deg); - transform: perspective(400px) rotateX(90deg); - opacity: 0; - } - - 50% { - -webkit-transform: perspective(400px) rotateX(-10deg); - transform: perspective(400px) rotateX(-10deg); - } - - 100% { - -webkit-transform: perspective(400px) rotateX(0deg); - transform: perspective(400px) rotateX(0deg); - opacity: 1; - } -} - -.flipInX { - -webkit-backface-visibility: visible !important; - backface-visibility: visible !important; - -webkit-animation-name: flipInX; - animation-name: flipInX; -} - -@-webkit-keyframes flipInY { - 0% { - -webkit-transform: perspective(400px) rotateY(90deg); - transform: perspective(400px) rotateY(90deg); - opacity: 0; - } - - 50% { - -webkit-transform: perspective(400px) rotateY(-10deg); - transform: perspective(400px) rotateY(-10deg); - } - - 100% { - -webkit-transform: perspective(400px) rotateY(0deg); - transform: perspective(400px) rotateY(0deg); - opacity: 1; - } -} - -@keyframes flipInY { - 0% { - -webkit-transform: perspective(400px) rotateY(90deg); - transform: perspective(400px) rotateY(90deg); - opacity: 0; - } - - 50% { - -webkit-transform: perspective(400px) rotateY(-10deg); - transform: perspective(400px) rotateY(-10deg); - } - - 100% { - -webkit-transform: perspective(400px) rotateY(0deg); - transform: perspective(400px) rotateY(0deg); - opacity: 1; - } -} - -.flipInY { - -webkit-backface-visibility: visible !important; - backface-visibility: visible !important; - -webkit-animation-name: flipInY; - animation-name: flipInY; -} - -@-webkit-keyframes flipOutX { - 0% { - -webkit-transform: perspective(400px) rotateX(0deg); - transform: perspective(400px) rotateX(0deg); - opacity: 1; - } - - 100% { - -webkit-transform: perspective(400px) rotateX(90deg); - transform: perspective(400px) rotateX(90deg); - opacity: 0; - } -} - -@keyframes flipOutX { - 0% { - -webkit-transform: perspective(400px) rotateX(0deg); - transform: perspective(400px) rotateX(0deg); - opacity: 1; - } - - 100% { - -webkit-transform: perspective(400px) rotateX(90deg); - transform: perspective(400px) rotateX(90deg); - opacity: 0; - } -} - -.flipOutX { - -webkit-animation-name: flipOutX; - animation-name: flipOutX; - -webkit-backface-visibility: visible !important; - backface-visibility: visible !important; -} - -@-webkit-keyframes flipOutY { - 0% { - -webkit-transform: perspective(400px) rotateY(0deg); - transform: perspective(400px) rotateY(0deg); - opacity: 1; - } - - 100% { - -webkit-transform: perspective(400px) rotateY(90deg); - transform: perspective(400px) rotateY(90deg); - opacity: 0; - } -} - -@keyframes flipOutY { - 0% { - -webkit-transform: perspective(400px) rotateY(0deg); - transform: perspective(400px) rotateY(0deg); - opacity: 1; - } - - 100% { - -webkit-transform: perspective(400px) rotateY(90deg); - transform: perspective(400px) rotateY(90deg); - opacity: 0; - } -} - -.flipOutY { - -webkit-backface-visibility: visible !important; - backface-visibility: visible !important; - -webkit-animation-name: flipOutY; - animation-name: flipOutY; -} - -@-webkit-keyframes slideInDown { - 0% { - opacity: 0; - -webkit-transform: translateY(-2000px); - transform: translateY(-2000px); - } - - 100% { - -webkit-transform: translateY(0); - transform: translateY(0); - } -} - -@keyframes slideInDown { - 0% { - opacity: 0; - -webkit-transform: translateY(-2000px); - transform: translateY(-2000px); - } - - 100% { - -webkit-transform: translateY(0); - transform: translateY(0); - } -} - -.slideInDown { - -webkit-animation-name: slideInDown; - animation-name: slideInDown; -} - -@-webkit-keyframes slideInLeft { - 0% { - opacity: 0; - -webkit-transform: translateX(-2000px); - transform: translateX(-2000px); - } - - 100% { - -webkit-transform: translateX(0); - transform: translateX(0); - } -} - -@keyframes slideInLeft { - 0% { - opacity: 0; - -webkit-transform: translateX(-2000px); - transform: translateX(-2000px); - } - - 100% { - -webkit-transform: translateX(0); - transform: translateX(0); - } -} - -.slideInLeft { - -webkit-animation-name: slideInLeft; - animation-name: slideInLeft; -} - -@-webkit-keyframes slideInRight { - 0% { - opacity: 0; - -webkit-transform: translateX(2000px); - transform: translateX(2000px); - } - - 100% { - -webkit-transform: translateX(0); - transform: translateX(0); - } -} - -@keyframes slideInRight { - 0% { - opacity: 0; - -webkit-transform: translateX(2000px); - transform: translateX(2000px); - } - - 100% { - -webkit-transform: translateX(0); - transform: translateX(0); - } -} - -.slideInRight { - -webkit-animation-name: slideInRight; - animation-name: slideInRight; -} - -@-webkit-keyframes slideOutLeft { - 0% { - -webkit-transform: translateX(0); - transform: translateX(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(-2000px); - transform: translateX(-2000px); - } -} - -@keyframes slideOutLeft { - 0% { - -webkit-transform: translateX(0); - transform: translateX(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(-2000px); - transform: translateX(-2000px); - } -} - -.slideOutLeft { - -webkit-animation-name: slideOutLeft; - animation-name: slideOutLeft; -} - -@-webkit-keyframes slideOutRight { - 0% { - -webkit-transform: translateX(0); - transform: translateX(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(2000px); - transform: translateX(2000px); - } -} - -@keyframes slideOutRight { - 0% { - -webkit-transform: translateX(0); - transform: translateX(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateX(2000px); - transform: translateX(2000px); - } -} - -.slideOutRight { - -webkit-animation-name: slideOutRight; - animation-name: slideOutRight; -} - -@-webkit-keyframes slideOutUp { - 0% { - -webkit-transform: translateY(0); - transform: translateY(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateY(-2000px); - transform: translateY(-2000px); - } -} - -@keyframes slideOutUp { - 0% { - -webkit-transform: translateY(0); - transform: translateY(0); - } - - 100% { - opacity: 0; - -webkit-transform: translateY(-2000px); - transform: translateY(-2000px); - } -} - -.slideOutUp { - -webkit-animation-name: slideOutUp; - animation-name: slideOutUp; -} \ No newline at end of file diff --git a/build/css/squirrel.css b/build/css/squirrel.css deleted file mode 100644 index 5f5ed23..0000000 --- a/build/css/squirrel.css +++ /dev/null @@ -1,2615 +0,0 @@ -/* =16px */ -/*.border-box (){ - /*/ -/** 当计算宽度时包含 padding、border - -webkit-box-sizing:border-box; - //-moz-box-sizing:border-box; - //box-sizing:border-box; -}*/ -/*! normalize.css v3.0.1 | MIT License | git.io/normalize */ -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ -html { - font-family: sans-serif; - /* 1 */ - -ms-text-size-adjust: 100%; - /* 2 */ - -webkit-text-size-adjust: 100%; - /* 2 */ -} -/** - * Remove default margin. - */ -body { - margin: 0; -} -/* HTML5 display definitions - ========================================================================== */ -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ -article, -aside, -details, -figcaption, -figure, -footer, -header, -main, -nav, -section, -summary { - display: block; -} -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ -audio, -canvas, -progress, -video { - display: inline-block; - /* 1 */ - vertical-align: baseline; - /* 2 */ -} -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ -audio:not([controls]) { - display: none; - height: 0; -} -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. - */ -[hidden], -template { - display: none; -} -/* Links - ========================================================================== */ -/** - * Remove the gray background color from active links in IE 10. - */ -a { - background: transparent; -} -/** - * Improve readability when focused and also mouse hovered in all browsers. - */ -a:active, -a:hover { - outline: 0; -} -/* Text-level semantics - ========================================================================== */ -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ -abbr[title] { - border-bottom: 1px dotted; -} -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ -b, -strong { - font-weight: bold; -} -/** - * Address styling not present in Safari and Chrome. - */ -dfn { - font-style: italic; -} -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ -/*h1 { - font-size: 2em; - margin: 0.67em 0; -}*/ -/** - * Address styling not present in IE 8/9. - */ -mark { - background: #ff0; - color: #000; -} -/** - * Address inconsistent and variable font size in all browsers. - */ -small { - font-size: 80%; -} -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} -sup { - top: -0.5em; -} -sub { - bottom: -0.25em; -} -/* Embedded content - ========================================================================== */ -/** - * Remove border when inside `a` element in IE 8/9/10. - */ -img { - border: 0; -} -/** - * Correct overflow not hidden in IE 9/10/11. - */ -svg:not(:root) { - overflow: hidden; -} -/* Grouping content - ========================================================================== */ -/** - * Address margin not present in IE 8/9 and Safari. - */ -figure { - margin: 1em 40px; -} -/** - * Address differences between Firefox and other browsers. - */ -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; -} -/** - * Contain overflow in all browsers. - */ -pre { - overflow: auto; -} -/** - * Address odd `em`-unit font size rendering in all browsers. - */ -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} -/* Forms - ========================================================================== */ -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ -button, -input, -optgroup, -select, -textarea { - color: inherit; - /* 1 */ - font: inherit; - /* 2 */ - margin: 0; - /* 3 */ -} -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ -button { - overflow: visible; -} -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ -button, -select { - text-transform: none; -} -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - /* 2 */ - cursor: pointer; - /* 3 */ -} -/** - * Re-set default cursor for disabled elements. - */ -button[disabled], -html input[disabled] { - cursor: default; -} -/** - * Remove inner padding and border in Firefox 4+. - */ -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ -input { - line-height: normal; -} -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - /* 1 */ - padding: 0; - /* 2 */ -} -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome - * (include `-moz` to future-proof). - */ -input[type="search"] { - -webkit-appearance: textfield; - /* 1 */ - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - /* 2 */ - box-sizing: content-box; -} -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -/** - * Define consistent border, margin, and padding. - */ -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ -legend { - border: 0; - /* 1 */ - padding: 0; - /* 2 */ -} -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ -textarea { - overflow: auto; -} -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ -optgroup { - font-weight: bold; -} -/* Tables - ========================================================================== */ -/** - * Remove most spacing between table cells. - */ -table { - border-collapse: collapse; - border-spacing: 0; -} -td, -th { - padding: 0; -} -/* Squirrel - ========================================================================== */ -*, -*:before, -*:after { - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; -} -html { - font-size: 62.5%; -} -body { - -webkit-font-smoothing: antialiased; - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - font-family: "Segoe UI", Helvetica, "Lucida Grande", Arial, "Microsoft YaHei", FreeSans, Arimo, "Droid Sans", "wenquanyi micro hei", "Hiragino Sans GB", "Hiragino Sans GB W3", Arial, sans-serif; - font-size: 1.6rem; - color: #333333; - word-wrap: break-word; - break-word: break-all; -} -h1, -h2, -h3, -h4, -h5 { - font-weight: 400; -} -ul, -ol, -menu { - margin: 0; - padding: 0; -} -a { - text-decoration: none; -} -input, -textarea, -select { - -webkit-font-smoothing: antialiased; -} -.sq-fl { - float: left; -} -.sq-fr { - float: right; -} -.sq-m10 { - margin: 10px; -} -.sq-p10 { - padding: 10px; -} -.sq-hide { - display: none; -} -.sq-unvisible { - visibility: hidden; -} -.sq-clearfix:before, -.sq-clearfix:after { - content: " "; - display: table; -} -.sq-clearfix:after { - clear: both; -} -.col2 > *, -.col3 > *, -.col4 > *, -.col5 > *, -.col5 > * { - float: left; -} -.col2 > *::after:before, -.col3 > *::after:before, -.col4 > *::after:before, -.col5 > *::after:before, -.col5 > *::after:before, -.col2 > *::after:after, -.col3 > *::after:after, -.col4 > *::after:after, -.col5 > *::after:after, -.col5 > *::after:after { - content: " "; - display: table; -} -.col2 > *::after:after, -.col3 > *::after:after, -.col4 > *::after:after, -.col5 > *::after:after, -.col5 > *::after:after { - clear: both; -} -.col2 > * { - width: 50%; -} -.col3 > * { - width: 33.3333%; -} -.col4 > * { - width: 25%; -} -.col5 > * { - width: 20%; -} -.col6 > * { - width: 16.6666%; -} -.sq-box .hd { - height: 40px; - padding: 0 10px; - line-height: 40px; -} -.sq-content { - margin: 16px; -} -.sq-ucweb-anchor { - position: relative; -} -.sq-ucweb-anchor li { - position: relative; -} -.sq-ucweb-anchor a { - position: absolute!important; - top: 0; - right: 0; - bottom: 0; - left: 0; -} -.sq-badge { - border-radius: 10px; - padding: 3px 7px; - font-weight: normal; - font-size: 1.2rem; - overflow: hidden; -} -.sq-badge:empty { - display: none; -} -.sq-badge.red { - background: #e34541; - color: #fff; -} -.sq-badge.blue { - background: #009bd8; - color: #fff; -} -.sq-badge.green { - background: #6eb82c; - color: #fff; -} -.sq-badge.grey { - background: #a9a7a7; - color: #fff; -} -.sq-badge.black { - background: #444; - color: #fff; -} -.sq-badge.orange { - background: #faa800; - color: #fff; -} -.sq-bars { - height: 49px; -} -.sq-bars.toolbar, -.sq-bars.nav, -.sq-bars.pagination, -.sq-bars.search { - position: relative; - display: -webkit-box; - -webkit-box-align: center; - -webkit-box-pack: justify; - padding: 0 4px; - z-index: 100; -} -.sq-bars.toolbar .col, -.sq-bars.nav .col, -.sq-bars.pagination .col, -.sq-bars.search .col { - display: -webkit-box; -} -.sq-bars.toolbar.align-end, -.sq-bars.toolbar .align-end, -.sq-bars.nav.align-end, -.sq-bars.nav .align-end, -.sq-bars.pagination.align-end, -.sq-bars.pagination .align-end, -.sq-bars.search.align-end, -.sq-bars.search .align-end { - -webkit-box-pack: end; -} -.sq-bars.toolbar.align-start, -.sq-bars.toolbar .align-start, -.sq-bars.nav.align-start, -.sq-bars.nav .align-start, -.sq-bars.pagination.align-start, -.sq-bars.pagination .align-start, -.sq-bars.search.align-start, -.sq-bars.search .align-start { - -webkit-box-pack: start; -} -.sq-bars.toolbar .sq-btn, -.sq-bars.nav .sq-btn, -.sq-bars.pagination .sq-btn, -.sq-bars.search .sq-btn { - display: block; - z-index: 1; -} -.sq-bars.nav .title, -.sq-bars.nav .extend { - -webkit-box-flex: 1; - height: 49px; - margin: 0 .5rem; -} -.sq-bars.nav .title { - font-size: 1.8rem; - line-height: 49px; - text-align: center; - overflow: hidden; -} -.sq-bars.nav .extend { - display: -webkit-box; - -webkit-box-align: center; - -webkit-box-pack: justify; -} -.sq-bars.nav .extend .sq-btn-group { - width: 100%; -} -.sq-bars.nav .sq-btn { - min-width: 40px; - padding: 6px .5rem; -} -.sq-bars.nav .sq-btn + .title, -.sq-bars.nav .sq-btn + .extend { - margin: 0 1rem; -} -.sq-bars.pagination .pages { - position: absolute; - top: 0; - right: 80px; - bottom: 0; - left: 80px; - font-size: 1.4rem; - text-align: center; - line-height: 49px; -} -.sq-bars.pagination .disable { - pointer-events: none; - opacity: .4; - cursor: not-allowed; -} -.sq-bars.pagination select { - min-height: 39px; - line-height: 1; -} -.sq-bars.nav-tabs { - font-size: 1.4rem; -} -.sq-bars.nav-tabs a { - display: -webkit-box; - -webkit-box-pack: justify; - -webkit-box-align: center; - position: relative; - height: 49px; - text-align: center; -} -.sq-bars.nav-tabs span { - display: block; - -webkit-box-flex: 1; -} -.sq-bars.nav-tabs.icons a { - font-size: 1.2rem; -} -.sq-bars.nav-tabs.icons .sq-icon { - display: block; -} -.sq-bars.nav-tabs.icons .sq-badge { - left: 60%; - right: auto; -} -.sq-bars.nav-tabs .sq-badge { - position: absolute; - top: -2px; - right: 10%; - padding: 4px; - min-width: 20px; - border-radius: 999px; - line-height: 1; - z-index: 1; -} -.sq-bars.search { - padding: 0 8px; -} -.sq-bars.search input[type="text"], -.sq-bars.search input[type="search"] { - display: block; - width: 100%; - height: 28px; - border: none; - outline: none; -} -.sq-bars.search input[type="submit"], -.sq-bars.search input[type="button"] { - border: none; - outline: none; -} -.sq-bars.search .label { - position: relative; - -webkit-box-flex: 1; - background: #fff; -} -.sq-bars.search .label.icon-search { - padding: 0 5px 0 24px; -} -.sq-bars.search .label.icon-search::before { - position: absolute; - top: 7px; - left: 4px; - content: '\e801'; -} -.sq-bars.search .clear { - display: none; - position: absolute; - top: 0; - right: 0; - width: 30px; - height: 28px; - cursor: pointer; -} -.sq-bars.search .clear::after { - content: "×"; - position: absolute; - top: 5px; - left: 6px; - width: 18px; - height: 18px; - background: #ccc; - border-radius: 999px; - text-align: center; - line-height: 16px; - color: #fff; -} -.sq-bars.search .sq-btn { - min-height: 30px; -} -.sq-btn { - display: inline-block; - position: relative; - border-radius: 3px; - border: 1px solid transparent; - text-align: center; - white-space: nowrap; - line-height: 1; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - /*normal*/ - padding: 9px 1rem; - /* sq-btn height = 9*2 + 16 + 2 = 36px */ - /*28px*/ -} -.sq-btn.large { - padding: 12px 1rem; - font-size: 1.8rem; -} -.sq-btn.small { - padding: 6px 1rem; - font-size: 1.4rem; -} -.sq-btn.mini { - padding: 4px 1rem; - font-size: 1.2rem; -} -.sq-btn.block { - display: block; -} -input[type="button"].sq-btn.block, -input[type="submit"].sq-btn.block, -button.sq-btn.block { - width: 100%; -} -.sq-btn.block + .block { - margin-top: 10px; -} -.sq-btn > .sq-icon::before { - opacity: .8; - margin-right: .5rem; -} -.sq-btn.right-icon > .sq-icon::before { - margin-right: 0; - margin-left: .5rem; -} -.sq-btn.disabled, -.sq-btn[disabled] { - pointer-events: none; - opacity: .7; - cursor: not-allowed; -} -.sq-btn .dropdown-menu { - display: none; - position: absolute; - top: 100%; - left: -1px; - right: -1px; - min-width: 100px; - background: #fff; - box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2); - border-radius: 3px; - border: 1px solid #d7d7d7; - line-height: 30px; -} -.sq-btn .dropdown-menu a { - display: block; - padding: 3px 0; - color: #333; - border-bottom: 1px solid #efefef; -} -.sq-btn .dropdown-menu.right { - left: auto; - right: 0; -} -.sq-btn-group { - display: -webkit-box; - -webkit-box-orient: horizontal; -} -.sq-btn-group .active { - z-index: 1; -} -.sq-btn-group .active + .sq-btn { - border-left-color: transparent; -} -.sq-btn-group .sq-btn { - display: block; - -webkit-box-flex: 1; - margin-left: -1px; - border-radius: 0; -} -.sq-btn-group .sq-btn:first-child { - margin-left: 0; - border-radius: 3px 0 0 3px; -} -.sq-btn-group .sq-btn:last-child { - border-radius: 0 3px 3px 0; -} -.sq-btn-group.vertical { - -webkit-box-orient: vertical; -} -.sq-btn-group.vertical .sq-btn { - margin: -1px 0 0 0; -} -.sq-btn-group.vertical .sq-btn:first-child { - margin-top: 0; - border-radius: 3px 3px 0 0; -} -.sq-btn-group.vertical .sq-btn:last-child { - border-radius: 0 0 3px 3px; -} -.sq-btn { - /*// fresh 风格 - &.f-grey{ - background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(1, #e6e6e6)); - -webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.1); border:1px solid #ccc; border-bottom-color:#b3b3b3; text-shadow:0 1px 1px #fff; color:#333; - a{ color:#333;} - } - &.f-grey-dark{ - background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #c5c5c5), color-stop(1, #8c8c8c)); border:1px solid #999; color:#fff; - a{ color:#fff;} - } - &.f-blue{ - background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #00a0ef), color-stop(1, #008acf)); border:1px solid #007dbb; color:#fff; - a{ color:#fff;} - } - &.f-green{ - background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#43c037),color-stop(1,#2a9b22)); border:1px solid #2a9b22; border-bottom-color:#217001; color:#fff; - a{ color:#fff;} - } - &.f-black{ - background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4b4f51),color-stop(1,#383c41)); border:1px solid #383b3d; color:#fff; - a{ color:#fff;} - } - &.f-orange{ - background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #faa800), color-stop(1, #f99100)); border:1px solid #cf7d2d; color:#fff; - a{ color:#fff;} - } - &.f-red{ - background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #ee5f5b), color-stop(1, #bd362f)); border:1px solid #ab3a35; color:#fff; - a{ color:#fff;} - } - - // flat 风格 - &.fl-grey{ - background:#e6e6e6; border-bottom:3px solid #b3b3b3; color:#333; - a{ color:#333;} - } - &.fl-grey-dark{ - background:#b2b2b2; border-bottom:3px solid #777; color:#fff; - a{ color:#fff;} - } - &.fl-black{ - background:#4b4f51; border-bottom:3px solid #333; color:#fff; - a{ color:#fff;} - } - &.fl-blue{ - background:#00a0ef; border-bottom:3px solid #007dbb; color:#fff; - a{ color:#fff;} - } - &.fl-green{ - background:#6eb82c; border-bottom:3px solid #217001; color:#fff; - a{ color:#fff;} - } - &.fl-orange{ - background:#faa800; border-bottom:3px solid #cf7d2d; color:#fff; - a{ color:#fff;} - } - &.fl-red{ - background:#e34541; border-bottom:3px solid #ab3a35; color:#fff; - a{ color:#fff;} - }*/ -} -.sq-btn.mt-white { - background: #f7f7f7; - color: #333; - border-color: #ddd; -} -.sq-btn.mt-white a { - color: #333; -} -.sq-btn.mt-grey { - background: #e1e1e1; - border-color: #e1e1e1; - color: #333; -} -.sq-btn.mt-grey a { - color: #333; -} -.sq-btn.mt-grey-dark { - background: #a9a7a7; - border-color: #a9a7a7; - color: #fff; -} -.sq-btn.mt-grey-dark a { - color: #fff; -} -.sq-btn.mt-black { - background: #444; - border-color: #444; - color: #fff; -} -.sq-btn.mt-black a { - color: #fff; -} -.sq-btn.mt-blue { - background: #4285f4; - border-color: #4285f4; - color: #fff; -} -.sq-btn.mt-blue a { - color: #fff; -} -.sq-btn.mt-blue:hover { - background: #3367d6; -} -.sq-btn.mt-green { - background: #6eb82c; - border-color: #6eb82c; - color: #fff; -} -.sq-btn.mt-green a { - color: #fff; -} -.sq-btn.mt-orange { - background: #faa800; - border-color: #faa800; - color: #fff; -} -.sq-btn.mt-orange a { - color: #fff; -} -.sq-btn.mt-red { - background: #e34541; - border-color: #e34541; - color: #fff; -} -.sq-btn.mt-red a { - color: #fff; -} -.col-tb-visible { - display: none; -} -.row:before, -.row:after { - content: " "; - display: table; -} -.row:after { - clear: both; -} -.col-mb-1, .col-tb-1, .col-mb-2, .col-tb-2, .col-mb-3, .col-tb-3, .col-mb-4, .col-tb-4, .col-mb-5, .col-tb-5, .col-mb-6, .col-tb-6, .col-mb-7, .col-tb-7, .col-mb-8, .col-tb-8, .col-mb-9, .col-tb-9, .col-mb-10, .col-tb-10, .col-mb-11, .col-tb-11, .col-mb-12, .col-tb-12 { - position: relative; - min-height: 1px; - padding-left: 15px; - padding-right: 15px; -} -.col-mb-1, .col-mb-2, .col-mb-3, .col-mb-4, .col-mb-5, .col-mb-6, .col-mb-7, .col-mb-8, .col-mb-9, .col-mb-10, .col-mb-11, .col-mb-12 { - float: left; -} -.col-mb-12 { - width: 100%; -} -.col-mb-11 { - width: 91.66666667%; -} -.col-mb-10 { - width: 83.33333333%; -} -.col-mb-9 { - width: 75%; -} -.col-mb-8 { - width: 66.66666667%; -} -.col-mb-7 { - width: 58.33333333%; -} -.col-mb-6 { - width: 50%; -} -.col-mb-5 { - width: 41.66666667%; -} -.col-mb-4 { - width: 33.33333333%; -} -.col-mb-3 { - width: 25%; -} -.col-mb-2 { - width: 16.66666667%; -} -.col-mb-1 { - width: 8.33333333%; -} -.col-mb-pull-12 { - right: 100%; -} -.col-mb-pull-11 { - right: 91.66666667%; -} -.col-mb-pull-10 { - right: 83.33333333%; -} -.col-mb-pull-9 { - right: 75%; -} -.col-mb-pull-8 { - right: 66.66666667%; -} -.col-mb-pull-7 { - right: 58.33333333%; -} -.col-mb-pull-6 { - right: 50%; -} -.col-mb-pull-5 { - right: 41.66666667%; -} -.col-mb-pull-4 { - right: 33.33333333%; -} -.col-mb-pull-3 { - right: 25%; -} -.col-mb-pull-2 { - right: 16.66666667%; -} -.col-mb-pull-1 { - right: 8.33333333%; -} -.col-mb-pull-0 { - right: 0%; -} -.col-mb-push-12 { - left: 100%; -} -.col-mb-push-11 { - left: 91.66666667%; -} -.col-mb-push-10 { - left: 83.33333333%; -} -.col-mb-push-9 { - left: 75%; -} -.col-mb-push-8 { - left: 66.66666667%; -} -.col-mb-push-7 { - left: 58.33333333%; -} -.col-mb-push-6 { - left: 50%; -} -.col-mb-push-5 { - left: 41.66666667%; -} -.col-mb-push-4 { - left: 33.33333333%; -} -.col-mb-push-3 { - left: 25%; -} -.col-mb-push-2 { - left: 16.66666667%; -} -.col-mb-push-1 { - left: 8.33333333%; -} -.col-mb-push-0 { - left: 0%; -} -.col-mb-offset-12 { - margin-left: 100%; -} -.col-mb-offset-11 { - margin-left: 91.66666667%; -} -.col-mb-offset-10 { - margin-left: 83.33333333%; -} -.col-mb-offset-9 { - margin-left: 75%; -} -.col-mb-offset-8 { - margin-left: 66.66666667%; -} -.col-mb-offset-7 { - margin-left: 58.33333333%; -} -.col-mb-offset-6 { - margin-left: 50%; -} -.col-mb-offset-5 { - margin-left: 41.66666667%; -} -.col-mb-offset-4 { - margin-left: 33.33333333%; -} -.col-mb-offset-3 { - margin-left: 25%; -} -.col-mb-offset-2 { - margin-left: 16.66666667%; -} -.col-mb-offset-1 { - margin-left: 8.33333333%; -} -.col-mb-offset-0 { - margin-left: 0%; -} -@media (min-width: 768px) { - .col-tb-1, .col-tb-2, .col-tb-3, .col-tb-4, .col-tb-5, .col-tb-6, .col-tb-7, .col-tb-8, .col-tb-9, .col-tb-10, .col-tb-11, .col-tb-12 { - float: left; - } - .col-tb-12 { - width: 100%; - } - .col-tb-11 { - width: 91.66666667%; - } - .col-tb-10 { - width: 83.33333333%; - } - .col-tb-9 { - width: 75%; - } - .col-tb-8 { - width: 66.66666667%; - } - .col-tb-7 { - width: 58.33333333%; - } - .col-tb-6 { - width: 50%; - } - .col-tb-5 { - width: 41.66666667%; - } - .col-tb-4 { - width: 33.33333333%; - } - .col-tb-3 { - width: 25%; - } - .col-tb-2 { - width: 16.66666667%; - } - .col-tb-1 { - width: 8.33333333%; - } - .col-tb-pull-12 { - right: 100%; - } - .col-tb-pull-11 { - right: 91.66666667%; - } - .col-tb-pull-10 { - right: 83.33333333%; - } - .col-tb-pull-9 { - right: 75%; - } - .col-tb-pull-8 { - right: 66.66666667%; - } - .col-tb-pull-7 { - right: 58.33333333%; - } - .col-tb-pull-6 { - right: 50%; - } - .col-tb-pull-5 { - right: 41.66666667%; - } - .col-tb-pull-4 { - right: 33.33333333%; - } - .col-tb-pull-3 { - right: 25%; - } - .col-tb-pull-2 { - right: 16.66666667%; - } - .col-tb-pull-1 { - right: 8.33333333%; - } - .col-tb-pull-0 { - right: 0%; - } - .col-tb-push-12 { - left: 100%; - } - .col-tb-push-11 { - left: 91.66666667%; - } - .col-tb-push-10 { - left: 83.33333333%; - } - .col-tb-push-9 { - left: 75%; - } - .col-tb-push-8 { - left: 66.66666667%; - } - .col-tb-push-7 { - left: 58.33333333%; - } - .col-tb-push-6 { - left: 50%; - } - .col-tb-push-5 { - left: 41.66666667%; - } - .col-tb-push-4 { - left: 33.33333333%; - } - .col-tb-push-3 { - left: 25%; - } - .col-tb-push-2 { - left: 16.66666667%; - } - .col-tb-push-1 { - left: 8.33333333%; - } - .col-tb-push-0 { - left: 0%; - } - .col-tb-offset-12 { - margin-left: 100%; - } - .col-tb-offset-11 { - margin-left: 91.66666667%; - } - .col-tb-offset-10 { - margin-left: 83.33333333%; - } - .col-tb-offset-9 { - margin-left: 75%; - } - .col-tb-offset-8 { - margin-left: 66.66666667%; - } - .col-tb-offset-7 { - margin-left: 58.33333333%; - } - .col-tb-offset-6 { - margin-left: 50%; - } - .col-tb-offset-5 { - margin-left: 41.66666667%; - } - .col-tb-offset-4 { - margin-left: 33.33333333%; - } - .col-tb-offset-3 { - margin-left: 25%; - } - .col-tb-offset-2 { - margin-left: 16.66666667%; - } - .col-tb-offset-1 { - margin-left: 8.33333333%; - } - .col-tb-offset-0 { - margin-left: 0%; - } - .col-tb-visible { - display: block; - } -} -@font-face { - font-family: "fontello"; - src: url("../fonts/sq-fontello.woff") format("woff"), url("../fonts/sq-fontello.ttf") format("truetype"); - font-weight: normal; - font-style: normal; -} -.sq-icon::before { - font-family: "fontello"; - font-style: normal; - font-weight: normal; - speak: none; - display: inline-block; - text-decoration: inherit; - min-width: .5rem; - text-align: center; - /* For safety - reset parent styles, that can break glyph codes*/ - font-variant: normal; - text-transform: none; - /* fix buttons height, for twitter bootstrap */ - position: relative; -} -.sq-icon.x2::before { - font-size: 2rem; -} -.sq-icon.x3::before { - font-size: 2.7rem; -} -.sq-icon.x4::before { - font-size: 4rem; -} -.sq-icon.x5::before { - font-size: 5rem; -} -.icon-left-open:before, -.icon-right-open:before, -.icon-download:before { - top: .1rem; -} -.icon-group .sq-icon::before { - margin-right: .1em; -} -.icon-music:before { - content: '\e800'; -} -/* '' */ -.icon-camera:before { - content: '\e808'; -} -/* '' */ -.icon-heart:before { - content: '\e802'; -} -/* '' */ -.icon-heart-empty:before { - content: '\e889'; -} -/* '' */ -.icon-star:before { - content: '\e803'; -} -/* '' */ -.icon-star-empty:before { - content: '\e804'; -} -/* '' */ -.icon-star-half:before { - content: '\e805'; -} -/* '' */ -.icon-star-half-alt:before { - content: '\e806'; -} -/* '' */ -.icon-male:before { - content: '\e807'; -} -/* '' */ -.icon-female:before { - content: '\e80a'; -} -/* '' */ -.icon-videocam:before { - content: '\e80b'; -} -/* '' */ -.icon-picture:before { - content: '\e80c'; -} -/* '' */ -.icon-th-large:before { - content: '\e80e'; -} -/* '' */ -.icon-th:before { - content: '\e80f'; -} -/* '' */ -.icon-th-list:before { - content: '\e810'; -} -/* '' */ -.icon-ok:before { - content: '\e811'; -} -/* '' */ -.icon-ok-circled:before { - content: '\e813'; -} -/* '' */ -.icon-cancel:before { - content: '\e812'; -} -/* '' */ -.icon-cancel-circled:before { - content: '\e814'; -} -/* '' */ -.icon-plus-circled:before { - content: '\e818'; -} -/* '' */ -.icon-minus-circled:before { - content: '\e819'; -} -/* '' */ -.icon-help-circled:before { - content: '\e816'; -} -/* '' */ -.icon-info-circled:before { - content: '\e817'; -} -/* '' */ -.icon-home:before { - content: '\e815'; -} -/* '' */ -.icon-link-ext:before { - content: '\e81a'; -} -/* '' */ -.icon-attach:before { - content: '\e81b'; -} -/* '' */ -.icon-lock:before { - content: '\e81c'; -} -/* '' */ -.icon-lock-open:before { - content: '\e81d'; -} -/* '' */ -.icon-pin:before { - content: '\e894'; -} -/* '' */ -.icon-eye:before { - content: '\e81e'; -} -/* '' */ -.icon-eye-off:before { - content: '\e81f'; -} -/* '' */ -.icon-tag:before { - content: '\e820'; -} -/* '' */ -.icon-bookmark:before { - content: '\e821'; -} -/* '' */ -.icon-bookmark-empty:before { - content: '\e822'; -} -/* '' */ -.icon-flag-checkered:before { - content: '\e895'; -} -/* '' */ -.icon-thumbs-up:before { - content: '\e823'; -} -/* '' */ -.icon-thumbs-down:before { - content: '\e824'; -} -/* '' */ -.icon-thumbs-up-alt:before { - content: '\e825'; -} -/* '' */ -.icon-thumbs-down-alt:before { - content: '\e826'; -} -/* '' */ -.icon-download:before { - content: '\e827'; -} -/* '' */ -.icon-upload:before { - content: '\e828'; -} -/* '' */ -.icon-download-cloud:before { - content: '\e829'; -} -/* '' */ -.icon-upload-cloud:before { - content: '\e82a'; -} -/* '' */ -.icon-pencil:before { - content: '\e82b'; -} -/* '' */ -.icon-keyboard:before { - content: '\e82c'; -} -/* '' */ -.icon-gamepad:before { - content: '\e82d'; -} -/* '' */ -.icon-comment:before { - content: '\e82e'; -} -/* '' */ -.icon-chat:before { - content: '\e82f'; -} -/* '' */ -.icon-comment-empty:before { - content: '\e830'; -} -/* '' */ -.icon-chat-empty:before { - content: '\e831'; -} -/* '' */ -.icon-bell:before { - content: '\e832'; -} -/* '' */ -.icon-bell-alt:before { - content: '\e833'; -} -/* '' */ -.icon-attention:before { - content: '\e834'; -} -/* '' */ -.icon-attention-circled:before { - content: '\e835'; -} -/* '' */ -.icon-location:before { - content: '\e836'; -} -/* '' */ -.icon-direction:before { - content: '\e837'; -} -/* '' */ -.icon-trash:before { - content: '\e838'; -} -/* '' */ -.icon-doc:before { - content: '\e839'; -} -/* '' */ -.icon-doc-inv:before { - content: '\e83a'; -} -/* '' */ -.icon-folder-open:before { - content: '\e83b'; -} -/* '' */ -.icon-folder-open-empty:before { - content: '\e83c'; -} -/* '' */ -.icon-rss:before { - content: '\e83d'; -} -/* '' */ -.icon-phone:before { - content: '\e842'; -} -/* '' */ -.icon-menu:before { - content: '\e83e'; -} -/* '' */ -.icon-cog:before { - content: '\e83f'; -} -/* '' */ -.icon-cog-alt:before { - content: '\e840'; -} -/* '' */ -.icon-wrench:before { - content: '\e841'; -} -/* '' */ -.icon-basket:before { - content: '\e843'; -} -/* '' */ -.icon-calendar:before { - content: '\e844'; -} -/* '' */ -.icon-calendar-empty:before { - content: '\e845'; -} -/* '' */ -.icon-mic:before { - content: '\e846'; -} -/* '' */ -.icon-mute:before { - content: '\e847'; -} -/* '' */ -.icon-volume-off:before { - content: '\e848'; -} -/* '' */ -.icon-volume-down:before { - content: '\e849'; -} -/* '' */ -.icon-volume-up:before { - content: '\e84a'; -} -/* '' */ -.icon-search:before { - content: '\e801'; -} -/* '' */ -.icon-lightbulb:before { - content: '\e84b'; -} -/* '' */ -.icon-block:before { - content: '\e84d'; -} -/* '' */ -.icon-zoom-in:before { - content: '\e84e'; -} -/* '' */ -.icon-zoom-out:before { - content: '\e84f'; -} -/* '' */ -.icon-down-open:before { - content: '\e850'; -} -/* '' */ -.icon-left-open:before { - content: '\e851'; -} -/* '' */ -.icon-right-open:before { - content: '\e852'; -} -/* '' */ -.icon-up-open:before { - content: '\e853'; -} -/* '' */ -.icon-angle-circled-left:before { - content: '\e854'; -} -/* '' */ -.icon-angle-circled-right:before { - content: '\e855'; -} -/* '' */ -.icon-angle-circled-up:before { - content: '\e856'; -} -/* '' */ -.icon-angle-circled-down:before { - content: '\e857'; -} -/* '' */ -.icon-angle-double-left:before { - content: '\e858'; -} -/* '' */ -.icon-angle-double-right:before { - content: '\e859'; -} -/* '' */ -.icon-angle-double-up:before { - content: '\e85a'; -} -/* '' */ -.icon-angle-double-down:before { - content: '\e85b'; -} -/* '' */ -.icon-cw:before { - content: '\e85c'; -} -/* '' */ -.icon-arrows-cw:before { - content: '\e85d'; -} -/* '' */ -.icon-target:before { - content: '\e85f'; -} -/* '' */ -.icon-signal:before { - content: '\e85e'; -} -/* '' */ -.icon-award:before { - content: '\e860'; -} -/* '' */ -.icon-desktop:before { - content: '\e861'; -} -/* '' */ -.icon-laptop:before { - content: '\e862'; -} -/* '' */ -.icon-tablet:before { - content: '\e863'; -} -/* '' */ -.icon-mobile:before { - content: '\e864'; -} -/* '' */ -.icon-globe:before { - content: '\e865'; -} -/* '' */ -.icon-sun:before { - content: '\e866'; -} -/* '' */ -.icon-cloud:before { - content: '\e867'; -} -/* '' */ -.icon-flash:before { - content: '\e868'; -} -/* '' */ -.icon-moon:before { - content: '\e869'; -} -/* '' */ -.icon-umbrella:before { - content: '\e86a'; -} -/* '' */ -.icon-flight:before { - content: '\e86b'; -} -/* '' */ -.icon-leaf:before { - content: '\e86c'; -} -/* '' */ -.icon-align-justify:before { - content: '\e86d'; -} -/* '' */ -.icon-list:before { - content: '\e86e'; -} -/* '' */ -.icon-list-bullet:before { - content: '\e86f'; -} -/* '' */ -.icon-list-numbered:before { - content: '\e870'; -} -/* '' */ -.icon-crop:before { - content: '\e871'; -} -/* '' */ -.icon-scissors:before { - content: '\e872'; -} -/* '' */ -.icon-briefcase:before { - content: '\e873'; -} -/* '' */ -.icon-suitcase:before { - content: '\e874'; -} -/* '' */ -.icon-ellipsis:before { - content: '\e875'; -} -/* '' */ -.icon-ellipsis-vert:before { - content: '\e876'; -} -/* '' */ -.icon-qrcode:before { - content: '\e877'; -} -/* '' */ -.icon-barcode:before { - content: '\e878'; -} -/* '' */ -.icon-book:before { - content: '\e879'; -} -/* '' */ -.icon-tint:before { - content: '\e87b'; -} -/* '' */ -.icon-check:before { - content: '\e87c'; -} -/* '' */ -.icon-check-empty:before { - content: '\e87d'; -} -/* '' */ -.icon-circle-empty:before { - content: '\e881'; -} -/* '' */ -.icon-dot-circled:before { - content: '\e882'; -} -/* '' */ -.icon-gift:before { - content: '\e87e'; -} -/* '' */ -.icon-fire:before { - content: '\e87f'; -} -/* '' */ -.icon-magnet:before { - content: '\e880'; -} -/* '' */ -.icon-credit-card:before { - content: '\e883'; -} -/* '' */ -.icon-megaphone:before { - content: '\e884'; -} -/* '' */ -.icon-rocket:before { - content: '\e885'; -} -/* '' */ -.icon-bug:before { - content: '\e886'; -} -/* '' */ -.icon-certificate:before { - content: '\e887'; -} -/* '' */ -.icon-tasks:before { - content: '\e888'; -} -/* '' */ -.icon-filter:before { - content: '\e88a'; -} -/* '' */ -.icon-beaker:before { - content: '\e88b'; -} -/* '' */ -.icon-magic:before { - content: '\e88c'; -} -/* '' */ -.icon-truck:before { - content: '\e88d'; -} -/* '' */ -.icon-gauge:before { - content: '\e88f'; -} -/* '' */ -.icon-spinner:before { - content: '\e890'; -} -/* '' */ -.icon-coffee:before { - content: '\e88e'; -} -/* '' */ -.icon-food:before { - content: '\e891'; -} -/* '' */ -.icon-eraser:before { - content: '\e892'; -} -/* '' */ -.icon-puzzle:before { - content: '\e893'; -} -/* '' */ -.icon-user:before { - content: '\e809'; -} -/* '' */ -.icon-users:before { - content: '\e897'; -} -/* '' */ -.icon-user-add:before { - content: '\e898'; -} -/* '' */ -.icon-clock:before { - content: '\e84c'; -} -/* '' */ -.sq-form { - margin: 1rem 0; -} -.sq-form label { - display: block; - margin: 0 0 1rem 0; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; -} -.sq-form .radio, -.sq-form .checkbox { - min-width: 20px; - margin-bottom: 1.5rem; - padding: 0 20px 0 21px; -} -.sq-form .radio input[type="radio"], -.sq-form .checkbox input[type="radio"], -.sq-form .radio input[type="checkbox"], -.sq-form .checkbox input[type="checkbox"], -.sq-form .radio .sq-checkbox, -.sq-form .checkbox .sq-checkbox, -.sq-form .radio .sq-radio, -.sq-form .checkbox .sq-radio { - margin-left: -20px; -} -.sq-form .radio.inline, -.sq-form .checkbox.inline { - display: inline-block; - float: left; -} -.sq-form input[type="checkbox"], -.sq-form input[type="radio"] { - margin: 2px .7rem 0 0; -} -.sq-form .sq-checkbox, -.sq-form .sq-radio { - display: inline-block; - position: relative; - width: 21px; - height: 21px; - margin-right: .7rem; - text-align: center; - vertical-align: middle; - overflow: hidden; -} -.sq-form .sq-checkbox > span, -.sq-form .sq-radio > span { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - background: #fff; - border: 2px solid #ccc; - border-radius: 3px; - text-indent: -999em; -} -.sq-form .sq-checkbox input[type=checkbox], -.sq-form .sq-radio input[type=checkbox] { - visibility: hidden; -} -.sq-form .sq-checkbox input[type=checkbox]:checked + span, -.sq-form .sq-radio input[type=checkbox]:checked + span { - background: rgba(76, 176, 80, 0.9); - border-color: #4CAF50; - color: #fff; - text-indent: 0; -} -.sq-form .sq-checkbox input[type=radio], -.sq-form .sq-radio input[type=radio] { - visibility: hidden; -} -.sq-form .sq-checkbox input[type=radio]:checked + span, -.sq-form .sq-radio input[type=radio]:checked + span { - background: rgba(76, 176, 80, 0.6); - border-color: #4CAF50; - color: #fff; - text-indent: 0; -} -.sq-form .sq-radio > span { - border-radius: 999em; -} -.sq-form input[type="text"], -.sq-form input[type="search"], -.sq-form input[type="password"], -.sq-form input[type="number"], -.sq-form input[type="email"], -.sq-form input[type="tel"], -.sq-form textarea, -.sq-form select { - width: 100%; - height: 36px; - padding: 4px 6px; - margin-bottom: 10px; - background-color: #fff; - border: 1px solid #ccc; - border-radius: 3px; - outline: none; - line-height: 1; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.sq-form input[type="text"]::-webkit-input-placeholder, -.sq-form input[type="search"]::-webkit-input-placeholder, -.sq-form input[type="password"]::-webkit-input-placeholder, -.sq-form input[type="number"]::-webkit-input-placeholder, -.sq-form input[type="email"]::-webkit-input-placeholder, -.sq-form input[type="tel"]::-webkit-input-placeholder, -.sq-form textarea::-webkit-input-placeholder, -.sq-form select::-webkit-input-placeholder { - color: #999; -} -.sq-form textarea { - min-height: 88px; -} -.sq-form input[type="search"] { - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; -} -.sq-form .form-item { - clear: both; -} -.sq-form .help-block { - display: block; - margin-top: -5px; - margin-bottom: 10px; - color: #999; - font-size: 1.2rem; - clear: both; -} -.sq-form.inline { - display: -webkit-box; - -webkit-box-orient: horizontal; - -webkit-box-align: center; - overflow: hidden; -} -.sq-form.inline select, -.sq-form.inline input { - margin-bottom: 0; -} -.sq-form.inline label { - margin: 0 .5rem; - padding-right: 0; - line-height: 1; -} -.sq-form.inline input[type="submit"], -.sq-form.inline input[type="button"] { - width: 100%; -} -.sq-form.inline .form-item { - display: block; - -webkit-box-flex: 1; - padding-right: 4px; -} -.sq-form.inline .form-item:last-of-type { - padding-right: 0; -} -.sq-form.horizontal .form-item { - display: -webkit-box; - -webkit-box-orient: horizontal; - -webkit-box-align: center; -} -.sq-form.horizontal .form-item.align-top { - -webkit-box-align: start; -} -.sq-form.horizontal .form-item.align-top label:first-of-type { - padding-top: 4px; -} -.sq-form.horizontal label { - min-width: 3em; -} -.sq-form.horizontal input[type="text"], -.sq-form.horizontal input[type="search"], -.sq-form.horizontal input[type="password"], -.sq-form.horizontal input[type="number"], -.sq-form.horizontal input[type="email"], -.sq-form.horizontal input[type="tel"], -.sq-form.horizontal textarea, -.sq-form.horizontal select { - display: block; - width: 100%; - -webkit-box-flex: 1; - margin-right: .5rem; -} -.sq-form.horizontal input[type="text"] + input, -.sq-form.horizontal input[type="search"] + input, -.sq-form.horizontal input[type="password"] + input, -.sq-form.horizontal input[type="number"] + input, -.sq-form.horizontal input[type="email"] + input, -.sq-form.horizontal input[type="tel"] + input, -.sq-form.horizontal textarea + input, -.sq-form.horizontal select + input { - margin-left: .5rem; -} -.sq-form.horizontal input[type="text"]:last-of-type, -.sq-form.horizontal input[type="search"]:last-of-type, -.sq-form.horizontal input[type="password"]:last-of-type, -.sq-form.horizontal input[type="number"]:last-of-type, -.sq-form.horizontal input[type="email"]:last-of-type, -.sq-form.horizontal input[type="tel"]:last-of-type, -.sq-form.horizontal textarea:last-of-type, -.sq-form.horizontal select:last-of-type { - margin-right: 0; -} -.sq-form.horizontal .wd-4, -.sq-form.horizontal .wd-6, -.sq-form.horizontal .wd-8 { - width: 9em; - text-align: right; -} -.sq-form.horizontal .wd-4 { - width: 5em; -} -.sq-form.horizontal .wd-6 { - width: 7em; -} -.sq-list { - /*&.thumbnails{ - @thumbnail-space:7px; // 缩略图容器间距 - letter-spacing:-4px; // 修正 inline-block 模式下换行带来的空隙问题 - margin-left:@thumbnail-space; - &.col2, - &.col3, - &.col4, - &.col5, - &.col6{ - li{ float:none; display:inline-block; vertical-align:top;} - // 为解决高度不一的排版问题,重写 col2-clo6,不使用 float 布局。 - } - li{ margin:@thumbnail-space 0; padding-right:@thumbnail-space; letter-spacing:0;} - img{ display:block; width:100%;} - - .content{ .border-box(); font-size:@content-font-size; overflow:hidden;} - .title{ margin:5px 0;} - .caption{ margin:5px 0; line-height:1.3em;} - .extend{ margin:5px 0;} - }*/ - /*&.top10{ - dt{ position:relative;} - - li:nth-child(1) dt, - li:nth-child(2) dt, - li:nth-child(3) dt, - li:nth-child(4) dt, - li:nth-child(5) dt, - li:nth-child(6) dt, - li:nth-child(7) dt, - li:nth-child(8) dt, - li:nth-child(9) dt{ text-indent:1em;} - li:nth-child(10) dt{ text-indent:1.6em;} - - dt::before{ position:absolute; top:0; left:-1em;} - li:nth-child(1) dt::before{ content:"1.";} - li:nth-child(2) dt::before{ content:"2.";} - li:nth-child(3) dt::before{ content:"3.";} - li:nth-child(4) dt::before{ content:"4.";} - li:nth-child(5) dt::before{ content:"5.";} - li:nth-child(6) dt::before{ content:"6.";} - li:nth-child(7) dt::before{ content:"7.";} - li:nth-child(8) dt::before{ content:"8.";} - li:nth-child(9) dt::before{ content:"9.";} - li:nth-child(10) dt::before{ content:"10."; left:-1.6em;} - }*/ -} -.sq-list .group-hd, -.sq-list .list-item { - display: block; - position: relative; - padding: 15px 16px; - border: 1px solid transparent; - border-width: 1px 0; - font-size: 1.4rem; -} -.sq-list .group-hd + .group-hd, -.sq-list .list-item + .group-hd, -.sq-list .group-hd + .list-item, -.sq-list .list-item + .list-item { - margin-top: -1px; -} -.sq-list .tit { - display: block; -} -.sq-list .icon, -.sq-list .thumb { - display: block; - position: relative; -} -.sq-list .icon img, -.sq-list .thumb img { - display: block; - width: 100%; - /*height:100%;*/ -} -.sq-list .icon .sq-badge, -.sq-list .thumb .sq-badge { - position: absolute; - top: -5px; - left: -5px; -} -.sq-list .icon { - width: 60px; - height: 60px; -} -.sq-list .digest { - margin-top: .5rem; - margin-bottom: 0; -} -.sq-list .linked-Range { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 11; - cursor: pointer; -} -.sq-list .v-middle { - display: -webkit-box; - -webkit-box-align: center; -} -.sq-list .row { - display: block; - max-height: 1.4em; - line-height: 1.4; - overflow: hidden; -} -.sq-list .row-ellipsis { - display: block; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; -} -.sq-list.text .sq-badge { - margin: -2px 0; - margin-left: 1rem; -} -.sq-list.text .data { - margin-left: 1rem; -} -.sq-list.text .sq-icon:not(.fr) { - display: inline-block; - text-align: center; - width: 48px; - margin: -3px 0 -3px -15px; -} -.sq-list.media .list-item { - display: -webkit-box; - -webkit-box-orient: horizontal; -} -.sq-list.media .desc { - -webkit-box-flex: 1; - margin: 0 16px; -} -.sq-list.media .desc .tit { - margin: 0; - margin-bottom: .5rem; - font-size: 1.6rem; -} -.sq-list.media .desc .digest { - margin: 0; - margin-bottom: .5rem; - font-size: 1.4rem; -} -.sq-list.media .desc :last-child.tit, -.sq-list.media .desc :last-child.digest { - margin-bottom: 0; -} -.sq-list.media :first-child.desc { - margin-left: 0; -} -.sq-list.media .extend { - position: relative; - z-index: 12; - letter-spacing: -4px; - /*display:inline-block;*/ -} -.sq-list.media .extend .sq-btn { - margin: 0; - letter-spacing: 0; -} -.sq-list.media .extend .sq-btn.block { - margin-bottom: 5px; -} -.sq-list.media .extend .sq-btn:not(.block) { - margin-right: 5px; -} -.sq-list.media .extend :last-child.sq-btn { - margin-bottom: 0; - margin-right: 0; -} -.sq-list.media.col2 .list-item, -.sq-list.media.col3 .list-item, -.sq-list.media.col4 .list-item { - padding: 16px 10px; - margin-top: 0; - margin-bottom: -1px; -} -.sq-list.media.col2 .desc, -.sq-list.media.col3 .desc, -.sq-list.media.col4 .desc { - margin-left: 10px; -} -.sq-list.tile { - letter-spacing: -4px; -} -.sq-list.tile .list-item { - float: left; - padding: 10px 5px; - text-align: center; - letter-spacing: 0; -} -.sq-list.tile .icon { - margin: 0 auto; -} -.sq-list.tile .tit { - display: block; - margin: 5px 0; -} -.sq-list.tile.col2 .list-item, -.sq-list.tile.col3 .list-item, -.sq-list.tile.col4 .list-item, -.sq-list.tile.col5 .list-item, -.sq-list.tile.col6 .list-item { - float: none; - display: inline-block; - vertical-align: top; - margin-top: 0; - border: none; -} -.sq-loadMore-state { - position: relative; - height: 40px; - line-height: 40px; - color: #333333; - text-align: center; - cursor: pointer; - overflow: hidden; -} -.sq-loadMore-state .state-icon { - display: inline-block; -} -.sq-loadMore-state .state-icon::before { - font-family: "fontello"; - font-style: normal; - font-weight: normal; - speak: none; -} -.sq-loadMore-state .state-txt { - padding: 0 8px; -} -.sq-loadMore-state.click .state-icon::before { - content: '\e85b'; -} -.sq-loadMore-state.loading .state-icon { - position: relative; - top: -1px; - -webkit-animation: spin 2s infinite linear; -} -.sq-loadMore-state.loading .state-icon::before { - content: '\e85c'; -} -/*@-webkit-keyframes spin { - 0% { - -webkit-transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - } -}*/ -.sq-panel { - background: #333; -} -.sq-panel .close-btn { - position: absolute; - top: 0; - left: 0; - width: 30px; - height: 30px; - background: #d7d7d7; - border-radius: 3px; - text-align: center; - line-height: 30px; - cursor: pointer; - z-index: 3; -} -.sq-showPanel { - -webkit-animation-name: showPanel; -} -.sq-hidePanel { - -webkit-animation-name: hidePanel; -} -.sq-hideWrap { - -webkit-animation-name: hideWrap; -} -.sq-showWrap { - -webkit-animation-name: showWrap; -} -.sq-modal { - background: #fff; - border-radius: 5px; -} -.sq-modal .close-btn { - position: absolute; - top: 0; - right: 0; - width: 30px; - height: 30px; - background: #d7d7d7; - border-radius: 3px; - text-align: center; - line-height: 30px; - cursor: pointer; - z-index: 3; -} -.sq-modal .ok, -.sq-modal .cancel { - float: left; - width: 50%; - height: 40px; - background: #efefef; - border-top: 1px solid #d7d7d7; - border-radius: 0 0 5px 0; - line-height: 40px; - text-align: center; - cursor: pointer; -} -.sq-modal .ok { - border-right: 1px solid #d7d7d7; - border-radius: 0 0 0 5px; -} -.suggest-panel { - display: none; - position: absolute; - top: 44px; - left: 0px; - right: 0px; - background: #f9f9f9; - border: 1px solid #d7d7d7; - z-index: 1; - box-shadow: 0 6px 9px #999; -} -.suggest-panel li:last-of-type { - border-bottom: none; -} -.suggest-panel .sq-list { - border-bottom: 1px solid #d7d7d7; -} -.suggest-panel .sq-list li { - padding: 5px 10px; -} -.suggest-panel .sq-list .icon { - width: 35px; - height: 35px; -} -.suggest-panel .sq-list img { - width: 35px; - height: 35px; -} -.suggest-panel .sq-list .description { - margin-top: 1px; -} -.suggest-panel .sq-list .description dt { - margin-bottom: 2px; -} -.suggest-panel .sq-list .description dd { - color: #999; -} -.suggest-panel .sq-list .description em { - margin-left: 8px; - padding-left: 8px; - border-left: 1px solid #ddd; -} -.suggest-panel .sq-list .sq-btn { - width: 45px; -} -.suggest-panel .sq-list .trigger-area { - right: 80px; -} -.suggest-panel .keyword { - height: 30px; - padding: 0 10px; - line-height: 30px; - border-bottom: 1px solid #d7d7d7; -} -.suggest-panel .keyword a { - display: block; - height: 30px; - line-height: 30px; - color: #555; - overflow: hidden; - text-overflow: ellipsis; -} -.sq-nav-tabs { - height: 39px; - border-bottom: 1px solid #d7d7d7; -} -.sq-nav-tabs > li { - min-width: 40px; - height: 40px; - padding: 0 10px; - border-bottom: 3px solid transparent; - line-height: 40px; - text-align: center; - cursor: pointer; -} -.sq-nav-tabs > li.active { - border-bottom-color: #d7d7d7; -} -.sq-tab-content { - display: none; - border: 1px solid transparent; - min-height: 100px; -} -.sq-tab-content.active { - display: block; -} -.sq-tabs-loading-tip { - padding: 30px 0; - text-align: center; -} -.sq-tabs-loading-tip .reload > p { - margin-bottom: .8em; -} -a { - color: #333; -} -.sq-bars.nav, -.sq-bars.nav-tabs, -.sq-bars.pagination, -.sq-bars.toolbar, -.sq-bars.nav, -.sq-bars.pagination, -.sq-bars.search { - background: #f9f9f9; -} -.badge.red { - background: #e34541; - color: #fff; -} -.badge.blue { - background: #009bd8; - color: #fff; -} -.badge.green { - background: #6eb82c; - color: #fff; -} -.badge.grey { - background: #a9a7a7; - color: #fff; -} -.badge.black { - background: #444; - color: #fff; -} -.badge.orange { - background: #faa800; - color: #fff; -} -.sq-list .list-item { - border-top-color: #e5e5e5; - border-bottom-color: #e5e5e5; -} -.sq-list.text .group-hd { - background: #efeff4; - border-top-color: #e5e5e5; - border-bottom-color: #e5e5e5; -} -.sq-list.text .data { - color: #999999; -} -.sq-list.text .digest { - color: #999999; -} -.sq-list.media.col2 .list-item, -.sq-list.media.col3 .list-item, -.sq-list.media.col4 .list-item { - border-right: 1px solid #e5e5e5; -} -.sq-list.media.col2 .list-item:nth-child(even), -.sq-list.media.col3 .list-item:nth-child(even), -.sq-list.media.col4 .list-item:nth-child(even) { - border-right: none; -} diff --git a/build/fonts/sq-fontello.ttf b/build/fonts/sq-fontello.ttf deleted file mode 100644 index 9593887564e31eeb6633f93fcff29ec674f689ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49732 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�yDqO1yMr4Lv%D{<70cW=2Ri*+S$RLL2D3w0xjQ#9-dXB4N>mec$(sqd8hbI<*wQFgKPukV0TjwTzK$8z)w`boL zcYRFXxT<**N2(d;YPM;x3;BNj@A=S58qyEbVy2Mb!D7b{xaBXTdjl4I(9JR!>77y( z@>??Loh7BIzGiaXr-e|-hiJDFm2#GTxJoBIG^^CA>`wl5?5|U!6Idab-HgbC!;>{{^?U;Ua#TVCp7R@5x}Y7Y!HFZ^UNljC%D=#jPzvT9^ajxb{+MB&;)7;JVm9D} zwuO4pi7T8&`py^fL#xPkZ#UU#u)mM`H9QXcx!9eqYVkU3@0Ei zLR{PrBezQDNx?HNPX;5Z)`9RHgpqXnsexq^%z0WDSavpu;yyINh<`ER`1~_Lr<_YG zU3vxp4o;?;_QI^fVTzgt4V$Go4#&Pe=g!1OPUkYpu(WArQfV?Jg6+FB`bbd1(98$> zgQ0&tWSzBjT0io$_UGipdOrsBUtx)ft!^CRaBlnSIJ(JJ*T!-a8q<@qobq5r{2FOS zFZE5QCWFa>_6=3b`y{0zXnT>=dA_ld)y1TQcX{Gh^|8D7=JyK9iMR8Z&dCRqltlRX88-k5k2}ClVos)j5rwc{_vFP5qdE0U zsAws%Fq= z%1BcOJl*#R^mps41GMe?3S;dx^Ydk@ZsL+flfn_L7Z5o+e|YccbQY_Z<*?Id{o_}A zy+;ge5Nl_o(h`$(SULQ*VM&Jfuul~G;wY6$AuXay5^k2fjd4za)QhC6XLTfLn_4mv zvGJx!kuya#uwoyNkjAJsY2zhE`Yi1FNA`}5O-d+tlX^W9F?diy9MT95qmq=n55e!_ zZf~x1iWGm`5x9j|DyaS7aRRq(s6ZhP@Kn&mii;+5%Va8+`a8>8;^;w6jc zZ$ymF0B;NI&93{Sx`~-;f?SL`jMPXNS&AmroS!S;C9BQ8=NurLo3;$(A3x6oqarmT{l)m1j(Z;)K1 z9MX|oTb_Ajn0hKvcELmz8st_HdAS;4g6aJNrya!8!?-gdKLLE9NIbLEfOo3DwggW; zn~b|ymvqJV>AP>3j*Bc_lAUn|l7wwva3F$RA%tVOaR$4nb#OJ~(PCs~pVJ=O-96vU zGHjW~*x_;|DW-QYO3_sg9c-urYIcG;Nk{ZO*B*j_&F@0A9#o>#UR0a%H` z$sMIfgl9*sun4$Gt$O<@5#WV&MJ9E$wOL8m!Fgf*YNm)Uwnl*|*KOUn!D5~$&^;w7 z3*I{J$sEQ_|Jsv?GLd&jCe#}i;~r_L;8P__GdHT$l+!@fr4tyf zVVcoXbbkPMI4FwXbFMeQu#l_MX4R6p0rH9Wg`h!}HS_2^+{(K)r?2R{>bT?bpfWFJ zsgl3Ky$+5hBTh{Ud>?$|Ig(y+4&hn;DM=T-QDWzJ&R;`JrAdLlsGr!}0S)~I!MZuv z^N|3tjt>JxiPt8EB`j~7ZQx|s2G}Wa;za*C(RM2aYKq<8EDq#?vI%JPGZu~dXoKWN z$4g6+Xg)y}WR8yhP}@8P;Lb})Dj!fCm`GeGiW}i; zchICc3bO=-P35SAqTu{wVq5 z$XAGYLMIcZArp_Mx{^S`8AWT-5p)-{k?Xawt&Tz}8Q>Vq%DPIK-`kEwP1;A~Iq+SB zAif7@X>|@CzCT+_l0fy%LrV&3^ShOY-K_9eWk*(A0ZvV9ZnXgc&^~P06p88qLd(w( ze*AyOa9X?5?&Tzk_L1I8w-rqv)+`g_Y-g19-{AI9B}v~re9oXrvu14!U=yhB5sO^y zSI;tq{X*$(?i7ut8{+)n42bWr#PzQf`I7w;Jj;C<=tI2W9pOJh3^5~w%Rk_f1`HmS zZ<+C>?mzOs!5t*q_`aN`g=(Zu%2H`KBwIrsq`PVceyuN=kmOz)Q8(kwa!jr?tv1!P zO#dB&+qU@o-lN+lTN_lHxQn(bKEnpXxy(m^_QE#JI>nc1;k@5(^D;eqz0qNEc{1VF z;z)f3(GG4*B7Tw$*nZaS-D0MObVpI76jB$IRX0&n5uMW!F`)uuoem!g#qL0*Qe>d^ z-7|K%*t)qcJ-M+yQQcl}Lr`$mtLwXbN6_-pOxaH>)wg<^7Rw*~170-CefV@9qCjNE zr~Lzx6YSR9GwcrlLSz6GnPrtuBi5<_C2RQ}E(pFjq@SG{0S~JsaFJbC$*zji`SPNj zW)a`U?&dt+ED>$;X)T;!du_EPfLo`6^ixb#{n=-DP>|>f5)M974y7I}&!;mPSuPs) z=bjkL{bgJ(2oJlf+^kRmEJ;=*Q>G`f{;TZZ$FzTbZy@>c@A~f-DLH`EHc1hDz>3s} zZ{CAO=97XWM8fw3WXNN3dR4G!ILr_6I(#~*1N)}fbr}|HSiKt&r!2^!m!eX=Q!VWo zl*l5tB*dLT0HBQaATN3d@Ekz_^-P(wgf{&AR>p(Fk-`y7I_$l6BY}#4otRZA?A}&f z4|84g+mh^W4`$>ZehV0MV;F;*-wkU*7!xoWc;$w+=4M57W-I%w{uS zDOY(Gkz8({kAsh&A1~8>Qm-%72P_uWmQ>8wLJzTg(o`;m8cgIMldTT7o4OFR_IL?Y z8%ZbwE{ww3MqDEWQp1&eGh2~Zx4fDS`I9_S;2yS0auq33BSkk2mrvxSpKnslnk?K! z!phyp>mfp(!jeY}|NQ)D!K&=2XEy0bgO_~Q?_@#hO?0v%062^h+izGZ$2x1j&$3If zm9@<^^JDq!bKi8LXs8(ZKobC6HepMuLy_K&X$7c*tji zHwZpk^52V+vMsyVF*XCDE!YvUJ(`r-iOy)ECJK1uX_X&2@}0h0l0+!ph!Y@SoFb$u z{qKZSg;VPmBYLLqa6-}@ts_{iP=n0R@y#}2gxQ%lyyyO~K99c^ z5?^<`hW?kMptNVH_m_bA_}kK1&30ou=sl3GXS>(yd*0U9(c7I*?d|)SH`0#=hvht* z*pB8f!IizXlnqBt=|4O!HF+?osU+eV4k&qj@rFt`3|&(JQR~?tvBjxGdzOdo?3S9D zO`wclMfF3{gNu&mMW9K>8n(o9C_Lc3C+K{Z7Yau|>`v7f)Qtc)7oF7!S!`ymdSwp@ zp_6cq2xkn{1Z2^uGB936pb}Y>L{LSzbn?D|qn&rXG&zN54AzQPO|D|dk)R7uUB!wj z$q5{kVx%|f_k?CE=HPZ7OY6+!--%GZSVVS}vdrOB?d&GxJRyr3@tiFAmMtu3C1LNs z?xY1eA4hY(B8xPL#^y2P6xwyvzF76;Hdj{cEuHt;?ZJ5pd6#~7P7DNIZ~#7nN{hal z%RdXb+iH60SM1M}@7m1+1#kXR`P)sV9xLTF{3aO}@M!2usD(&Oh$UVw6E_#ae!S2* z1Xl6sF^ZwKrmuKYwHYV8y(>B+*=TJkQ@2btpKX@|bTVYpTq>C;wMB$Zr$1dD16#4i ziiEq>w>3(v_X!nqd?^IHF5XTwx_A<5L_7FBPX$DpxY(wKt(C$-{*(m}f@jS8*FLC~ zSNrer-^O<*2Ku@|yzln(sGmxTs}g|2FW@ePB7ONL+<$w5>k zhzG+_s$EU&e&h%iPFSZBB{}gX)Jz={)-ye&<;U1OjQN&4OEH-9JkzbYP3wDG-xUB9 z)$!k_^!Z*f3OrB5{iF%D|M=bdy*liAPqjE`dT#IVAKK6i`Hj@uZSE`5Im^qdh{j`H zOSwksQf|B_r*=@4q|74YG{kC+U z&bPsAWqWRLpI>NNu*-<{FVz1-chKl9(!COqB7=LS-M?&Kab>9e=xjQ*WgOBRy| zK8GIyqW1s+ClI~5)dk}^L4&@P1=lSl=z%KW`c9!&4LersGty~M^zB-0ewrYMK|(C0 z>*&4LschGY z>@vk%DK*~V%c=0~kme*F-s|Yczv+lGSnx419?psr(eGq|xn<_o?E(pYQo_-KJt`4* zcaX}^x9*B2U?6C+9n8LQy|n47R$heXS>gj|Ymy&cAK&@sx2e)tTae@et|?Nrxd zA2uWQpG*b{+&(~?ip}{2&_6jHDU-L))a2yIls`@Z0x!2F`K}<8R4rYD%4|QSV(Uw|JhHzFpGu!>8K1WN9oB zwb=ky`6KuhpTb3Dj7VCX!3QjeYgjXe7UezJD3;p{L2|mh*nx zWM0$^7X>O#o-(GWYgLYv*f;T>pEmryk!mY*6ML0JuT)X@OT;9C+dol|n5OzRm{)hjY2OvW=at2+`;fF8p?W{>wwpoe=+ z5Xq1gBom2oDSM{{QJ@-ISW(Qigo-I~qLQhl_V=Wsb_*IOupQnX=wo*;73nPzOyzn# zsQg2Qr2COL+mOAguMq2bOFblUPZo}nSHy06D~HQxU=Xlj^9Y}M^XR7Ni8P|@_=cm5 zU#{M7@rI}U^EK5<1kEdzX`3$QgnuOpuufM~Dl4I@;cT$5F()Jw)`FtU)K8bHQ}@~YN5q< z6LA>5x#5}F@RoPi-m#H+S?4oUu*%qN|D%@7*6Owx+H!a#s?}4eO`R4B5w)G+s!_?B z5$@64HWI!bCNeM@5a?RX$)h_n*C#y1sC!3CANJiPPHJgoV5dupimF$Yn-;!3t}dch z(12M|el)RI*5`WiH!V}A{WL*hCYKu&F;~FvB|(CqX{magwB(xqU}=4^Or$iISPh3$ z;d#WsGZoK5r9_uQgGXn=T#+_U7R@7Dz>ml0{U}(jfKuym~}!-juB)2+_YW3Fa&n?gmTdjZAPh! z-r(SHBQjbte?9Oq1I7hFpCpi~(A8+ex&z45#{5r}! zx#6M&#s0h3P<9k>WKKywp#?hWv`ok7c8)6ubKET-JftS!N;gbz&a4I?G%c>9ubWCN zF%tqGU#Cu1t%}&5Z-jak;`Uok2TZt%vW5>_&1(Tt04|n{V=;SFJ?~evFj$ zqyv7?dSZN{%DK7U-vkOU>KJ_}?U$MzYZ+Hs*k~dmgNo*hle2JYq zJ|l9w_=B*ms}Jv?w;w}Yp?(5VDcv0UcmkVGRS!-R#=uAEk8C92mTRqECT8UZYNpB4 zlKEy2BwC_WD7aw|85Qy^c{mBx$%!p7%CF|s`u@(ZDVNrVHsTT+MH#l^^?DX+DV2GO z6xiJRG5|h$GOZiYFz6OFXQ{o6V<8(DxF;uMGTllT_(T>Nu6=)9Y3KH_MqgjLU$Da6 z3vIlDy>6H4$tMp3d&w{Ee#&l3Uq=_MuF}@8?;B6HS!Ds1bC$C~D<_XFkFJ$=rk3VT zPEI}{kmuNTPOOHZkr6lWfCkN<(3@qyg1h51J@<}{+NYXcXFG{q&%s@*Pe6ib|D|1A z+lUtpj>D@rXhis~gU82Vi?Q!@$}-?kYlq)iXiYBd5yEaIq*EFCogr;Jk|EOgPFx9Y z_-Y3>%2+g8(v)jecAZzFBR?S@x1?Tm82A_|JFlOHgDGanbK)Z*+{$U&4R)Wsx#fA?-Z#CE#V$YS z7bI?N-|Ik}Zd-%`9^g)dkVpLwz^C-mCoI&wwh!WlFw^Vy@7LFjPu{Vidq$l{+odJ>csi>AXyWG_Bmn}RbnV(u zb-XT1_GaGgE=B33?JoKDq0N^_wS}4e5e0wb)=G5>!fhaTK4_SfT#*4F)m2y8hzpnE zP*{&H35?~fE9cf<0U@<6W;pr{b?S9l;EAqD9XJkbU-|1Lwg_!@D`nQ`X~(fg@T z1;eiIhid&fnr;zxJd~P<(IET78e%nnlpMTSMv~n!D={=+$6JTX-R!1#v-7-hA7R4p zthin2=ysK)Vc>P^rs8}(+I8Zw(_&6j9~5x!mDfa4Z>RIKA|iokcTGrLm2aEmcku*g z%k{CZ;Qw|OdcUkvaL1i@-Ce%RDy6*rfu|9}ZUUNEC_VvKb?7;cS{_y&Sv$k}ha~|n zgrqfHbe;gd$CNwCZ*f$YTZ7?r%3WRcE9x!SU-FqNON~)g&^@tp^Dc%xDpU=OAyv?xLFdplO_pjmO^LJCxZn2up7pTk-L}Z<9zV&4t%U^20ej$v$G3t z{dGwU_lYrWp@Lu7r}@3+<5Uc85zM}?;VHU&9kXbVcm_6ZF;I2DE-EkYq~G6N%kDF` zV~QkoaQc_x+HmJG?MGu}J!85g4n^Lp;u2G#i1Rf}WGQhcT1YiaB!}0tn#RpWFTDXZ zhVy$+Qe(VjD(uX&h*8G}wmgi{Zt+c#{^mGHwD_n|O%?B3aKsdSNGK;mnj$WxiIGS| zKkhxncL6)sK`(m&zlpu!&|2;sj*&Lk?NZ)GAbvvD>DD3tZS>!83f7knl^KLSP$f?CcEk#Q zCZqhw5EnTU7g>!!8J^`NR4KZmqX{|OP+0leY=^jD%a`M+a;1Hz(G^i^^5ZE| zj|Th%!F6T41e(&w>J@91^Gc3G|KI2e_y>f%%S|Ruk9#X7HiZ+CL^-tb`2tFWOVbg# zzC3$m#x`}k0#MYaJJJ{{$I@jL@w;F1&bz&vlM<((pF3>p{H#jJN%M|Q&0MOE@QWb@ z2a*O* zq&q&^gn{b;&t(9#J;ea$4mb+ep*GQ>51<*5x0?kkK8x2fb{t#&ZOjVO_vH@d3a!f| z=ZRh_PuT?chV>2E-#~d>8lO5Imnzsqta2$WUZ|qF{NHS#m!IBU%KZ=;PYBO7bfzjJ zwZ<$rYoU{h==X0vRj0~TRD&#_zuK&oI|9M5?1!P$rY04k%M$qi{fDKKGC66c%4^Z| zWscgNH=93Tp5mwpzC#S9vqtO4aC>61W0pkb*6tFa$ye%wtt_~pCur$Z1PjaQ4A#9* z$7pWYa~QDx*~5X&j2I{B#u&rErlMRN0ACgqB_bTU?-_pXm?dh{lQUaznTi-$oBj)K zlEYm$Zbdr(yjiY|*j~vVyNC8-DHKiPORH1S(J|<}#}o&n`i0llodnSqQEo1$@+L}Z z&=XZ-YGY#pp;%&(@KM36HLv|AFDp}_>1=}zT`!9+O&uYPT7qACy*sA4Oq`JEl;xtd+GSSzC@3j<%zt7pAByh7+k zF(-a8BQrxyNvmU`iM4NxYbYAuAv52b=h#0~Tt`+PoL9MvRjMS9@!2&}X#8W#xfx-a zI5JT{`r!IT`r_9b*TPJ*zc{tA*VjmxNHgud54W=#n0;{QDCir^KlF{D^Hfi=1xjez zH|*isMDPaGO}L4n$=MC5L#YY81MU!Zc&FYDyaVSDbh!`j2qw$4=CT&YC(~bZr{jop z8{5R!oys5QL8*nu@CSPh>=JncZE7HHuj>w9GeiPF2fF)*a<6JGN`h8X@Czk3urK6x zDCth_4Ir+msukoLg!s(F$`e6=QnuT#I!CTvaExE@lh3{5yvY24V8FlM z2i{;P;N8zc;b17dz)ag?o1R7HF>H^qzzh}FLrPnP|(HEGm z*}AsCv^HC7TVQRyc3bZP>*aPY74GV=dB+0lXtz7s7g&4IZZ9sdVvk+ySztZgc2D;L z>n_;cg#}hf*oDLbOXTfDeu3rVsr)_`PulV10!wz<$<77VnX@}{3oMtibEyTEO?9QR zU5l(Mlj_PWuuOj{vyb(!NcFE+U@Ow873l?*?n|Zju|7!k!NLHl8381=d8Dzh6%5bU z;!&_-PDHXz%bsVcETnd@R0?)6NCD*mo0mqC6XCXH2JHRJ^jM~60g+|7$g*5ySuV0H z7g?5zEXzff+k!88avRq_YF0w2aS(b||%SD#uBFl1-Wx2?*T9IYB$g*5ySuV1y z{|K^bDHimGgF9jnMr_$(>tcxVv>+s&xim9z}EX-?{_B zru5hFSMYWC8vGf20Um|Vz$f7o@L~8pxC?$4?u6fgYhVF(!7NO}W*CPxFbqSGhaBn* z2?#@o+)`!0KmeVu)ceU|+(dzd}MKE*!CKEWPj_p|%hN7+Z% z@3RlH53;-1``MlBeeAvLUF=r&4t5he!H%=HvbV4|vTNBPb`9H$y32Z8vq#u!R$*n- zcLpi%ivmnh8?uD(G|0|R;Y4t>A=IuZ9wC~iw0AXMwzX1TE%(dhuJA!5pQhGYrI6Pu zrNS_k-g4a+Y7(gKpGv{UD)}@-EQv<{hVt4tWGEWB;8fk9&P&KL>RIWs;(Y&arMlmUA+)Hx1>S!WwL@VS~ zXP6$;i4axQPASQwDm}1_tq_PpKQB`*fSTmP2>4J^?vzA5BD}ep7Uji~5UrH)DYzjM ze7+JLs$h4qU$z>_RLHoE=e4xvlPD~Pjtdp{BPo^q05}zV5<=`$lN`}gsX9^e9Ouhq z2&+^@RzhJ2Tci=1aTs>QPt~d9$01s+Wazk(FI0xgh!Uw%&8G)|o=bmzD(e@?Q<_a) zC9LNwdBS}~jo=XVgQzS@Cflg3I_IU`BGu_s`&|k~!l+K;B8j6W%ci2rM2aBGGM7=& z<+`EBiXu_X5GAg0j#quaHA9kRkU8FEa#``p-1dcKGJOG83=Uxf?^aY((q&DNxN6|D z6hl@di7PVrG>=~nklj(%2@Dl_TyIS=D4!H#J#N6^keXFIooTMZr!;K`!|;70*is*Gx$TpKRh273`QP zYnldzqH8(@*AhCBB1}p0aRpzb$QlPzr@UE?ou`T^k|rUk0j$^|Q&~b;^_w`pNM=4< zR5+;Z9HI!1q}Y-aKt#*BqRZfk`lv*oEL*xy_JQfKH60X0I}SuhGG*CNuqP%V+2R2s zjGdAZ5>xYu@kEpd6u-ie8a;?{nMTfM_!I+VGT2i2DhVfw!u@8$E{XIPmAQ^1;OC~P z;0f7dC`2GQ2-uQ{76}V)#~#v$<*3H1BJ;X8aygE#OtpY%J|JyyLTtD59fIkgg$ zg*Z{-deHD07MBCsxjH9*C0&L*dILpEts16JL9OZU$=E8eWE+j#M5A1yWUggL{vkIMred})ARgwGmUU%Ddd;8_e zt{eC0Qu*VCM=Jleru}wV@)#d4<0R5$TgYsD zTac7VN5mlPJ7-jM^O-wpk;Vr%&Obl*=}ga%h~8K(!{&x9w$x#h2O2fkW@_-UW4mup z7b>FW+BZdowduDc{l>A69oU}PHCoIBk2d^_hu~KTUy8h>ag)<09>^HXDe0A*Zfv1p z@MIpgp-?FZ2eqStn!zQa8Wsh9^VKkg^$I8?Dsl_Ynri*8w194y{Mx6vV&YW0j{EdS zJwCqwhYF6dA5Sg%(&XV8R6?PJ;Lnsy`f&Upw zT@Nn6$aS~F$i7>qX5M>$`P;|I-N|d$-o2|W92y*go$uZ`u_hYS<+myaK6&u)-mcHz zu=(bFV|>FKe&f~+M?ZY!`1OPmWFGy9VQ$7a4ln?Vmri{R3~?8-n_5 zwB50jHr!nQ+{iAzdzA>oju&}iX$U; zaG2_QQk{57i#B!#IHlgBgcGgi#9maXj)TNv>ApRCBy&>MaJ9PUeMw0#D>|+X*StsN zYDLkMBk!yK6c?yT-GDdE^&aBCP8=!jsUP=f6gW*#>X?we$ND9G^!?4MrT3Pokh7< zlsqEBP}$_vmuW{K#`g%k@+}?q_c`hscV$vrf>i^L9I-4q9nqksctWz zz`T}MRFn>roIh^+_uu!n4IZb%@|UcwcTyqUgs1)Px887KcALJ_GTLL=RE+$&>0%lJ zpbYLhGTM3Iz=567KrkrxaVHzF;H!QcR_)tj#cl9-OP-A*&WUpM#F?=*9lV$=W-VVZ zh$>exm9%(XjVEizc2C%*soG8;5HRDO(sZr)4YyVw`R3ZDK~OcyWRC?n&L=_{6*^|B zLMdmjkk($#=kYI}CC|qNiS5;k9A{b*+p8CZQA*D^z8Chp$?R@L-dB0ln)d#cmi@0z zkq1vC!2jiPGQ7idr2AhTW_xN^j-qJT3%Y?)HibFh!k~Igifsbw6{tha;3$h+$>np9DwC77Pek!{j_1Tz(e!6QM|(alR~ZEV0_^pE_N1L z4{CiiKDKv^*ZwcJo<;qat(auZlg$tl6P$BMbn$iw=fXCe32WFkb`^UAJHZpR!9Cy) z%t6F|E%+jXC|c|rC`x8{JdV;{!pA)*=F*2x7#I`Luv_4ae8CIMABY6}kwpj0aL6$C zBlGY`@_xo~mhk;7;`2s!M1$OCgID)?_mYPstZVb+b1}jp8V^-5)IE%npLd{+$vj-~ z%rj(Q>l>p%5>&^QhjRF~*T2l$JjC?>^IliP*Dap+y095q{Gau{+BKJWm1prk`(1N$ zbF~%Qx2ICafAi?|N3J>Wn(bF@ziRLNl~?S%Y-Y#S%^TLG)}+>qjb=NXV5ktzq+_vO zw~l9(lGDm1O&B+-<+NIeWXi)46rjVAjL1i+(ic&*f`|+g@hrn-<$|dIbWgcdEoW4% zP#un3c>Thu@}2R%v215N6^M4T8T%U7;bi!d=~n~DBpEavqE zAk`I5^>@en+mrtEnP!NV1^={a)rS6vX4=KcAAk1}v+i8IK#%YsR@s``$S{B^agq0J zPzlOII;iwrJ{9Pz%%m?ezSk{YSt$+lhlg{S%y2dwpxW$RK?Ay=`JrAnMomN*WG={( zNkA9H=-GY<(wb3)t@V5G->3OWkxqf&)suQNr9yn|?ECLh0;X~sp1KtqejWe4>+rc2 z@U&=kg8F&lHpSyp-&N0H549JcN8RHWBCcYZ?MD6QP3$Ii3%jlMTQ?l5jmxI-h9eV_ z*SvA@^($o6d-6Anh79bcw;U~m6p!-GcW_HmCz#h%O|QDhB#-5hEJ}knOv*|zk#CtQ zMG6tWCK<&e5pAQ|Z0(@WmB>2sa?7GfD@&ey)Ab7nuD)vb6_@R3@9r+-?e=iM7o!hV z`%s!kVbyVk`y2{&PE)qai}b5uQH`Tfrjl~pD%D03oTGI@j&$WDXi5d;KKihpL!~gK zaS%s7Q5Z8ErP3Y+p)zDT0SZb)>*P)+C{=u)#$%$gLP&0Z1Udpra8e6v^|z0sHpAu0 z!1T=4!C_6V^iN;bpI7t^8+0Y#f7x_@MV6elfo(I>{i{&>(Z=B&c-v%92`pXH9$!(a z79;pGysD>dMZDeVSv8D5kz)0CDtk2F->KgaM)06f8_Bv2uAEk{V zH0l55>DIHd{M{UnxA)E@2Kojz7V#&fE8RVc792>-6uZWpzJbK{zK#wl_gzKK8U<@x zY&za$$EK29^*6_-qjnc<;D#>E_Q>r%jxT;^2-ao)sa94bO#%Oz%ulx=!HbwG@hvw= z&%9EAb`REI=QtnI1sQB{MmvSZk#i{yi{W%IL0&7l4o^z9vU_JFzt~4hKrOlNZ zHP}h!rbvShmZK^Uq^aQ4o-;g}VoEBR2evi$8J{JSA>)%ipDbt7U7fxTUq>tw3I_bL zSGLl@fE5zG(t??098s_E-9-C?a56S7_ES}}ZCnuN6 z)5Gws;pwF^e`1a*xy_xZ58$OIrio7>vkJjKG-TzjT9PUWicjN8ytRUt2%4pDuwC#C zT;&2ew|U(B`qSCQ$7SiWvXF3p+*6(Ir)I^OM_WEa>s(@gxh@-fYFW1LrBW)dpusdD zuU_yqU+IFLNEdv)_v|acL;IKf;O+(A(zS$M77{daVI7PCQ3>MN?)!ef-@P9^-jT;6MNt%We900;F?>n3X_=;FQIRFviPXf39mh^> zM{;U6>C$dZ<1S76N6@u)(*kJ_7sG;jL5tN`i*##IWW}(gLs1NCx~_7E73%{X=3+>f zJ~FIZ#P0k39Z9K9QWR|^k@x!D>F#&G$M^a9C_G)&h!Q8UfD&8fWH%r$ac-D%m%M0X zSO{=o5(uv*2njJD@YNAJ6%-`Hke2*4$+*q2Ox}=;1J!D&l*y!0i9{@>C;~LwDkcEe zN|jQjd`o6BGg+J{jF0VrAvBvxr_$a?VmL9}>u_BV3oB>_3`JLTO$D`ImP8Exv$Gb| zZn_4NL2U#(U8RQeep*Br3&fLWqJw`NI;CBSRBFT?VZR$~=ukhO??9irew|#~*tp!e zLf=1seSZFWyS>rwT$(;b-$J8~B6!$(ha%+IV_$qrE}SV2RGt-e*t6Nr=d=7<4$o8qE%++G$;y3c2Ge~6G;vQ0|xqUFkDs? z2;-<^L9&>9$xB_D&TVviZ$E$EnS1WO^DPJG5485|swoy4PWc`>?p_8jUqd)v>m{7||zOiUrp)XJvOAOUnGmT;pl2ncdtR zKLV|rU>K_q3dBSz2(o6lJbDwffEMQksz{nDN|G)*junx~r*{;Lr<~DhXE11p=6=ds zN#RohiEMs}N(xz4OlrXV-MJ>4bQiD4WLY*rzQa8V)KWV&+L1FQ(kNuTU_cg4=&tcd zBO|q0N9cAxm*eJ{1Caghgtgu*=h+V?)ve%=xIc$2!tKV5GxV$&o`rX-vB}~Mw2`= zY?9Q8VoH`k9U@qUqUwldmU#BZ&yopYczR$aC?=9|$!b&^;>6dTun|#HhN=dVj&6jV zp|PXd$?jd)CyM~UOd6Km;1Ir#NaA&`?+ubRfC8!=>i2cIEC;;;X!xe zWz<4t6hF>#qQr|Bt$jgq5fM*_55lBbYjU z{pr8ke+T7EccPJet(>b>)Y#2rwai7sq}7`kYZ;ha)D8D@-L`1goo$4*FQtdnmJ%Z2``oo3R>ZV~ z4Y0GzG+$xm19)NpuF!o);qKf#*32X5{2L~cQZ6~@hBcWB(x4awNoVWfFa$no|0-oK zeQ?{oS0CAWyw*wjLjT_I;A;QK34~Se*+W<9e}KAdb8+qfcTe;9E*8&k5M2OyLFbQ& zLCX9{0gZC1${jWtv>{PJ10k}^ZX6S2h}_n-*;Z@c3{pIm%cXG;NK;9eAsjQH*}7e^ zEqgo*Bd{-k@|8S8FU(faOAkAuJq6BJdHcGX58pOSeC9(bk7+T|bB=Yt<^1yeT(Fp; z3G!5OGI#*QjBjX4E#+=L^cFkf_Ju9zc!men#QWU1D{?J^j=A-$ffFNy~AvP@0AIsXMM4>u8 zmdH|4IkZ?#k;GV{9xvc_`Ou+~cXBIFp3W8K>xDw5K3H!@i>#*&PM@Gv-)msT+ zyZT%Scd`7rDmRPy|FtYbi$SL>CWWm*sdb4kE)5KN;FmFNhi~t1?w+o|>r9X29ofcL zWKtij)W>mh7|>kZouR#bWSi`Wvf_5B7q|J<3oris@83pz43oI$W=uC;OeNS3ck@Mm zKl`Q)$J#(cHXI<2%|Gz@({$~#@95gIhsIn{fq5rnmIr*K*E=>?W>fzRf7Q>^>E$IG z+`zBxe}s#=b{EfGWNZ&Ki5`t2{go{4Ys)<>4dKuwa%?-E#--aoboE2Gv#-ueZ^-Yi zu&i>#{}3@wMBEO$(4!0U6QwjYH5?zXf@(yIghN>Wj)dS+WjFuEH`a%R{m7f%U=NJ) z)i=3Mv76JRgOnJD_A<&9xOlz3jAY*84l$d)tT%TdGa1r{(TyuYk2x6IVLIozT$)FDNzR-#gx)+2t zDl)7G9xX3W0Th9VL=l^gNZasmc`p?XTM~O3M6H5PE^iVyiu}J(ln#nQeJb4_60*>R zcpD13JR@T*B!2XrR8DYo!H6Xt`}oNLA+DK%qRjfqJ;u)n85$$=-+Aeu$jf7mQL+JB ze;3lKGfp^@@LW5UFk^vvuT^X&tJ(Xr)$4`C=D$$qQ_+t{d-BdB%=V^m6WoJMBW}Xe z4FoZT7DR?PO!t{SzfR9#h)8K?w}{_-n9i{`DTb`kP?V)k;&3Q(?bR=2qN520)VYms zz;`8gy~)f>l=j!^KDH8Sotac21%DUsxObunBGiU}vKv47i7P~q#f&Cjl+mhFnL+!S9KzDoO~D-GPeR6 zrp(RH9oXM$&g`77*CI|XZ`&YlvXWFZzZk@3rnIg0X-5l-rVy!S5jwO>7@ zB^~Y5Dfma)sjDujF08HjIpzQN%WM1z-U2Cepy}@2S)JUG86F7hA`Gfc%z~dJprJ(Z zt})gQAFfB@jL`%5y%!P9yD>L;P*sKrOD3PHyZD7pb&%_1o?Eg5?s`(Pt?1gI7?lNE zKe!l-Ma99jsAbDT>u$haVr7P8zf93uJZKgD<5CijlM}E*8oV!Rh2-RVR3-s9LzJWI zNjYRi?;Dhg*1@e3Lu=7M2nra{wW0oT-$%4vPaXu_csF;Vd8|N0y-GA8L3q_65+|U4 zO%!wyEp(v&Yv_c)@QYQ%$CIgoem7_#WR*jQ`%)KUk(1iHrVtY|m&^K!FOp)8)JF2~ z$s*$AO^E2>n_Qvcn_QiAH!ArXw6XajIdlCwN&d#3^Q$3Qhl+Sgu}fG#eR9^E7jGdUm>A9&_kAnI*I9?MFL* zt|hh3)u1-!#V=j-=4Xmwr_h{BU%W)c;_O(=5MrfNC=dwd#*$P@W){ZpUhjOBOt0Vl zo<}>M(=>79ot+bSfytzu~#7&G5ln5A5GLT`Gn`p@DF8#0>>} zT3w_aBOz<5B0#EwQIAF;KIiabV(_2RcTj>_VB zk$$ZUj{F2n#abW^a^wbl_6nA$3JP_C7zZ7=pnKM;Ytr2?stmE>LXqse4Cl+8Z}fK1 zhc~~Xn36;YvQ6QK@)B<JSycNJUSRFT z=gyqrj-aG5L8w$$DKBS242Ywp5DclK@){@elFXk~yX;@6oJbst=98$7Fm(h*slzCR zXe-bZwE3mQ1Fb!cozvAyX%gg4KQ<$bNa&zf!;9{vVn?UyMHI8pw}+Y8^;|zooAk@{ zS8)6q@%%_G7=1UoZ~HuZWA)O1?&Pg_f}b9#D|+GRLO_j^JGwlTou|5G{=2*U%fp)U z+D{$r@R1KZ|JCO|aOCS$zc3{PLu6o_r%Ws3QN-tIyR~nt&YiIT8w$oSsFty_ zN11vyL;MIBWG^FIdratNb;PCbs&HGn9G;CuBBfT5mYb!Y^eXi)>hpD4UM$nOOx>fo z@@S{H>-K5dI5a~@^XLq1t;~{%WHCv-G4Ea7RQl5+B~qL%7C+pp&09fNTBue#-;ZZ9 z)eIda-`RneXwd0aH$>)wFFXG*l%TOuSMs{C*CFUa6I=^>ThVjT4<8Va;GzX03|*En znqS+`@TXQp!VDj^bPZ$H3QXQE66j!kC}bb*H@aC}!w129aglV%XZ%AKWo>N%L=(Q)x#CUhoh61C@SHyFAtOCZaW~K$aO39H z*WT|V3xGQK<%M&^;8v#@GR#}z+S;C<9u91M_+_0fC_YT7KPmRa~ z=3n9mndKO(84jL5f4;N)JpTh#GLfjNvmEg>MFOEak|Nh4ndbHDbTvE{+2x`#H)dlSH^e;ba54Fp5aiVnG6{XkVnO3phF5A6PTX>>RzLrOz8~aKw2YuPSym*Fe`W5ND$+h= z4U5W|D1f#w^WxZlERd)nUBzYV9iJ@5<{9&-c ze+>~$B0)O-eUJl=P7Q(ZF-Xo}SDiXa9{69h>*CknfL_x1sjMJyrxQGIfh0jrVf-+i zA6)3hMEY?DBHTS<)y#2kCx@Hkd+U@lN(Ggd0>gyxjXzJmF8@}`6&isQX3o>FgTn|BtF2nDl}2hj>A7!by3}hO+Dzx z3Le^aQE0knf7h!v590+To~-?zt_YoDM3T;}oq6l((YGugT0Ah@*f}{dHVWeY5GeS% zq(_6G>(?YX0%9Y6i!~`rjQq@z zgXsk<+W^H6yE?@bKfhZ|)m`$^nFrr-`sBO*h)#ZBS=acKlvEN%!b)g?puY3;9!-x8 z?muw6_$jdc6ev(PSGF3%m}mYadO*~aea zXi!vqc0e3sql{+s#FmnII|Fx|8*I8=Kf_H2R-5X+W?|e3TY@z%rjh@mj$c^8$g>0z zMv%A>6A}9`00`4AqgjlHW2{iUqKIqvy2AX8?=>D7jY~8}4QNpH$EO9wfDI`=HvK>d z#DGrhuQwM~7N>I(O$m~Ke+!>q5HwRrQ7Jcl*OT@7OtNlyo?>}1$&2TX9LY7Lm}e=T zXN{F&MNc_b+Bj7F;1>&CsyXeH3L1=BA%PY%<#XrCw=2m)Oe>U}>1Jryt)2iV8 zs>oI%7&V2_8x{Jt&%gG)O!35AQK4gkCJ2fk9sl8R!3tU`&_ng3ikCs@%%Pl8Mv8W07V$iXU#5y(8*^1zy8l;F=7q|ayb~7K%xLjoD3OwoMT{QU|`(JLFY+3* zJAgE1-{C#oqI{@6vH#_d zpaI+hIs&!>Is=RZA_Qmz+yzbsJO<G!fnsN)omcI22YDJQa)Y8U_*Vi?F7Fd1waq#9fr zup0CmVjJunTpYq3h977j@F0dE1|lFLx+63r@+2lCh$T`b{w7`~uqQkxrYGJg7AR0C zhA7l2A}MewzA73jb}G~>G%K7eEG)JyWG(0}UM|)zMlY~9mN^(XXgRbx7&^o|Bs;!5 zKs_ow#y^5T@<9kectO@eE<%b!L__XG$VDne{6Qb@{4KuN+%UP{ZxBv{L|6pi~e50RR91mjUi$Ysk=(e*eN@=`cH-aEobklC6xGgcpBoZ?+ z83kXX@6dO__8v^RosiOfm&^K6of|B26fqPwmNdUm5M4#+*rD66Dpm`zMQMX_;IWpPc8R6_Jeio z>V3GMC%#T2mB^OU+^dnF_}Vr8Y*#(q1Z`vHa<0`<4sC{9X|?b@kKg5y zACm&^k6A?@tsce`((a5X^OAiz?CvmYL`t$uH?y-Iq1)W|Jm8W@g`AkC~a7NtR_> zwQRY9Y?EVVhW_1?yt`?0-}(Ejc{B2i#!pWgt&JAXWc2^fiO~pa7$ZQ42r&|*m|%)^ z%&>t?9Ksg1aTurJbew@RaTdj|cD|9>T+T1drk|JdP*uB%Z?4cm~hn zIXsUS@FHHq%XkH^;x)XEH}EFj!rOQU@8UhYj}JhQgQ5UKi3&A1j-r7;iw+V!jzK}g zz+wk;9LFy9@F70J$M^)F;xl}XFYqP4!q@l)-{L!bk00p)1_q<+X`&$=<&WwCoRS(al%sw9`PX^Cn! zR$%$>rnYUaGuuy>sF3q+wjcF8Y@RaX{lo(yNfFuJn~jy9Q6X)yzKAZI$n`?GNE)`A zOQMRna&-2jh^cH_)|r6T#LSk?qNRxsEntu{Are3MbyN4J?kg_4t$lQo4!0dXkQQ7q z>QQJE(e=2HG-UMx0NS_iHTJEpR7{Z)R=Xs+B3)L~!Cjzu}q z4KoRK66gw|HdbI+pyf1ZtznZLDQr7%KV3pkQM$yoPX(`PlUtF8)Nfgs`!U{=vUPnX zgO%2#1LMBKRIt(vXrg@T0Asg3-fokw5^Tjp=081rFf`;GIvBJ4fAaidTZ>R3ZSIV( zw0$5l6xuuxvi-p%UuKQYQ=*idJGssy&8v=x$oTVNLNfO?1*XZwzs%CTeBQ z1q&-7b2iqt3kMB_rEnV=v{H776QXi*AW=C`7zjqn8F9GFj#_Paxf}SiH}ym22zFIx z1MXZVQ|`o3CHq8EuC-J;%@t=QC7LDLax(x|p7)yT*$QMkOquAIqOxFdP6iwJV-y(P znUL0uHq&8TsMkCqJ?5AswqmjFdDk%&lu{Ov zyUg5G7WH;-Pq49@*>Ln$+0efyDE2p<&WCj#;?~ z00;nMAg}==M6d%RaIyp_2}M#wvI+tRDzOFuM6o0Rh*4OuK!{ke1_MN~CIN_1ShxfL ah*+@(0Yq6@Sy{LN|Anvwjj;s)L;wKC&8S2G diff --git a/build/js/squirrel-core.js b/build/js/squirrel-core.js deleted file mode 100644 index 15b275b..0000000 --- a/build/js/squirrel-core.js +++ /dev/null @@ -1,546 +0,0 @@ -/** - * @file SQ.core - * @version 1.0.0 - */ -/*global SQ*/ -window.SQ = { - /** - * 命名空间方法 - * @method - * @name SQ.core.namespace - * @param {string} nameSpaceString 命名空间字符串 - * @example - * SQ.core.namespace('SQ.modules.module2'); - */ - namespace: function (nameSpaceString) { - 'use strict'; - var parts = nameSpaceString.split('.'); - var parent = SQ; - var i; - if (parts[0] === 'SQ') { - parts = parts.slice(1); - } else { - return false; - } - for (i = 0; i < parts.length; i += 1) { - if (typeof parent[parts[i]]) { - parent[parts[i]] = {}; - } - parent = parent[parts[i]]; - } - return parent; - }, - /** - * 判断对象类型 - * @example - * SQ.core.isString(str); - */ - isString: function (str) { - 'use strict'; - return Object.prototype.toString.call(str) === '[object String]'; - }, - isArray: function (arr) { - 'use strict'; - return Object.prototype.toString.call(arr) === '[object Array]'; - }, - isNumber: function (num) { - 'use strict'; - return Object.prototype.toString.call(num) === '[object Number]'; - }, - isBoolean: function (bool) { - 'use strict'; - return Object.prototype.toString.call(bool) === '[object Boolean]'; - }, - isNull: function (nullObj) { - 'use strict'; - return Object.prototype.toString.call(nullObj) === '[object Null]'; - }, - isUndefined: function (undefinedObj) { - 'use strict'; - return Object.prototype.toString.call(undefinedObj) === '[object Undefined]'; - }, - isFunction: function (fun) { - 'use strict'; - return Object.prototype.toString.call(fun) === '[object Function]'; - }, - isObject: function (obj) { - 'use strict'; - return Object.prototype.toString.call(obj) === '[object Object]'; - }, - /** - * isJSON - * 判断是否为 JSON 对象 - * @param string - * @returns {boolean} - * @see qatrix.js - */ - // 暂时无法使用 - /*isJSON : function (string) { - var rvalidchars = /^[\],:{}\s]*$/; - var rvalidescape = /\\(?:['\\\/bfnrt]|u[\da-fA-F]{4})/g; - var rvalidtokens = /'[^'\\\r\n]*'|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g; - var rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g; - return typeof string === 'string' && $.trim(string) !== '' ? - rvalidchars.test(string - .replace(rvalidescape, '@') - .replace(rvalidtokens, ']') - .replace(rvalidbraces, '')) : - false; - }*/ - /** - * 继承 - * @param Child - * @param Parent - */ - extend: function (Child, Parent) { - 'use strict'; - var F = function () { - }; - F.prototype = Parent.prototype; - Child.prototype = new F(); - Child.prototype.constructor = Child; - Child.uber = Parent.prototype; - }, - /** - * 频率控制 返回函数连续调用时,fn 执行频率限定为每多少时间执行一次 - * @param fn {function} 需要调用的函数 - * @param delay {number} 延迟时间,单位毫秒 - * @param immediate {bool} 给 immediate 参数传递 false 绑定的函数先执行,而不是 delay 后后执行。 - * @return {function} 实际调用函数 - */ - throttle: function (fn, delay, immediate, debounce) { - 'use strict'; - var curr; - var lastCall = 0; - var lastExec = 0; - var timer = null; - var diff; // 时间差 - var context; // 上下文 - var args; - var exec = function () { - lastExec = curr; - fn.apply(context, args); - }; - return function () { - curr = + new Date(); - context = this; - args = arguments; - diff = curr - (debounce ? lastCall : lastExec) - delay; - clearTimeout(timer); - if (debounce) { - if (immediate) { - timer = setTimeout(exec, delay); - } else if (diff >= 0) { - exec(); - } - } else { - if (diff >= 0) { - exec(); - } else if (immediate) { - timer = setTimeout(exec, -diff); - } - } - lastCall = curr; - }; - }, - /** - * 空闲控制 返回函数连续调用时,空闲时间必须大于或等于 delay,fn 才会执行 - * @param fn {function} 要调用的函数 - * @param delay {number} 空闲时间 - * @param immediate {bool} 给 immediate 参数传递 false 绑定的函数先执行,而不是 delay 后后执行。 - * @return {function} 实际调用函数 - */ - debounce: function (fn, delay, immediate) { - 'use strict'; - return SQ.throttle(fn, delay, immediate, true); - } -}; -/** - * @file SQ.gestures - * 手势函数 - * @version 0.5.0 - */ -/*global SQ*/ -SQ.gestures = { - isSupportTouch: function () { - 'use strict'; - if (typeof window.ontouchstart === 'undefined') { - return false; - } else { - return true; - } - }, - /** - * 轻点 - * @param config - */ - tap: function (config) { - 'use strict'; - var boundary = 20; - var el = config.el; - var event = config.event || ''; - var fun = config.callbackFun; - - function startHandle (e) { - startX = e.touches[0].clientX; - startY = e.touches[0].clientY; - $(e.target).addClass('press'); - setTimeout(function () { - $(e.target).removeClass('press'); - }, 200); - } - - function endHandle (e) { - var endX = e.changedTouches[0].clientX; - var endY = e.changedTouches[0].clientY; - if (Math.abs(endX - startX) < boundary && Math.abs(endY - startY) < boundary) { - fun.call(el, e, $(e.target)); - } - $(e.target).removeClass('press'); - } - - if (SQ.gestures.isSupportTouch()) { - var startX = 0; - var startY = 0; - if (SQ.isString(el)) { - $(document).on('touchstart' + event, el, startHandle).on('touchend' + event, el, endHandle); - } else if (SQ.isArray(el)) { - el.on('touchstart' + event, startHandle).on('touchend' + event, endHandle); - } - } else { - $(el).on('click' + event, function (e) { - fun.call(el, e, $(this)); - }); - } - } -}; -/** - * @file SQ.store - * @version 1.1.0 - */ -/*global SQ*/ -SQ.store = { - /** - * Cookie - * @example - * Sq.cookie.set('name', 'value'); // 设置 - * Sq.cookie.get('name'); // 读取 - * Sq.cookie.del('name'); // 删除 - */ - cookie: { - _getValue: function (offset) { - 'use strict'; - var ck = document.cookie; - var endstr = ck.indexOf(';', offset) === -1 ? ck.length : ck.indexOf(';', offset); - return decodeURIComponent(ck.substring(offset, endstr)); - }, - get: function (key) { - 'use strict'; - var me = this; - var ck = document.cookie; - var arg = key + '='; - var argLen = arg.length; - var cookieLen = ck.length; - var i = 0; - while (i < cookieLen) { - var j = i + argLen; - if (ck.substring(i, j) === arg) { - return me._getValue(j); - } - i = ck.indexOf(' ', i) + 1; - if (i === 0) { - break; - } - } - return null; - }, - set: function (key, value) { - 'use strict'; - var expdate = new Date(); - var year = expdate.getFullYear(); - var month = expdate.getMonth(); - var date = expdate.getDate() + 1; - var argv = arguments; - var argc = arguments.length; - //获取更多实参,依次为:有效期、路径、域、加密安全设置 - var expires = (argc > 2) ? argv[2] : null; - var path = (argc > 3) ? argv[3] : null; - var domain = (argc > 4) ? argv[4] : null; - var secure = (argc > 5) ? argv[5] : false; - - if (!!expires) { - switch (expires) { - case 'day': - expdate.setYear(year); - expdate.setMonth(month); - expdate.setDate(date); - expdate.setHours(8); // 补 8 小时时差 - expdate.setMinutes(0); - expdate.setSeconds(0); - break; - case 'week': - var week = 7 * 24 * 3600 * 1000; - expdate.setTime(expdate.getTime() + week); - break; - default: - expdate.setTime(expdate.getTime() + (expires * 1000 + 8 * 3600 * 1000)); - break; - } - } - - document.cookie = key + '=' + encodeURIComponent(value) + ((expires === null) ? '' : ('; expires=' + expdate.toGMTString())) + - ((path === null) ? '' : ('; path=' + path)) + ((domain === null) ? '' : ('; domain=' + domain)) + - ((secure === true) ? '; secure' : ''); - }, - del: function (key) { - 'use strict'; - var me = this; - var exp = new Date(); - exp.setTime(exp.getTime() - 1); - var cval = me.get(key); - document.cookie = key + '=' + cval + '; expires=' + exp.toGMTString(); - } - }, - /** - * localStorage - */ - localStorage: { - hasLoaclStorage: (function () { - 'use strict'; - if(('localStorage' in window) && window.localStorage !== null) { - return true; - } - }()), - // expires 过期时间,单位 min - get: function (key, expires) { - 'use strict'; - var me = this; - var now = new Date().getTime(); - var localData; - var time; - var dataStore; - - if (!key || !me.hasLoaclStorage) { - return; - } - - localData = JSON.parse(localStorage.getItem(key)); - - if (localData) { - time = localData.time; - dataStore = localData.dataStore; - - // 填写了 expires 过期时间 - if (expires) { - dataStore = parseInt(expires, 10) * 1000 * 60 > (now - parseInt(time, 10)) ? dataStore : false; - } - return dataStore; - } - }, - set: function (key, value) { - 'use strict'; - var me = this; - var ds = {}; - var now = new Date().getTime(); - if (!key || !value || !me.hasLoaclStorage) { - return; - } - - ds.dataStore = value; - ds.time = now; - ds = JSON.stringify(ds); - - localStorage.setItem(key, ds); - }, - del: function (key) { - 'use strict'; - var me = this; - if (!key || !me.hasLoaclStorage) { - return; - } - localStorage.removeItem(key); - }, - clearAll: function () { - 'use strict'; - var me = this; - if (!me.hasLoaclStorage) { - return; - } - localStorage.clear(); - } - } -}; - -/** - * @file SQ.ua - * 获取设备 ua 信息,判断系统版本、浏览器名称及版本 - * @version 1.0.0 - */ -/*global SQ*/ -SQ.ua = (function () { - 'use strict'; - var info = {}; - var ua = navigator.userAgent; - var m; - - info.os = {}; - info.browser = {}; - - /** - * operating system. android, ios, linux, windows - * @type string - */ - if ((/Android/i).test(ua)) { - info.os.name = 'android'; - info.os.version = ua.match(/(Android)\s([\d.]+)/)[2]; - } else if ((/Adr/i).test(ua)) { - // UC 浏览器极速模式下,Android 系统的 UA 为 'Adr' - info.os.name = 'android'; - info.os.version = ua.match(/(Adr)\s([\d.]+)/)[2]; - } else if ((/iPod/i).test(ua)) { - info.os.name = 'ios'; - info.os.version = ua.match(/OS\s([\d_]+)/)[1].replace(/_/g, '.'); - info.device = 'ipod'; - } else if ((/iPhone/i).test(ua)) { - info.os.name = 'ios'; - info.os.version = ua.match(/(iPhone\sOS)\s([\d_]+)/)[2].replace(/_/g, '.'); - info.device = 'iphone'; - } else if ((/iPad/i).test(ua)) { - info.os.name = 'ios'; - info.os.version = ua.match(/OS\s([\d_]+)/)[1].replace(/_/g, '.'); - info.device = 'ipad'; - } - - // 浏览器判断 - m = ua.match(/AppleWebKit\/([\d.]*)/); - if (m && m[1]) { - info.browser.core = 'webkit'; - info.browser.version = m[1]; - - if ((/Chrome/i).test(ua)) { - info.browser.shell = 'chrome'; - } else if ((/Safari/i).test(ua)) { - info.browser.shell = 'safari'; - } else if ((/Opera/i).test(ua)) { - info.browser.shell = 'opera'; - } - } - - if ((/UCBrowser/i).test(ua)) { - // UCWeb 9.0 UA 信息中包含 UCBrowser 字段 - m = ua.match(/(UCBrowser)\/([\d.]+)/); - info.browser.shell = 'ucweb'; - info.browser.version = m[2]; - } else if ((/UCWEB/i).test(ua)) { - // UCWeb 7.9 UA 信息中包含 UCWEB 字段 - m = ua.match(/(UCWEB)([\d.]+)/); - info.browser.shell = 'ucweb'; - info.browser.version = m[2]; - } else if ((/UC/i).test(ua)) { - // UCWeb 8.x UA 信息中包含 UC 字段 - // 确认 8.6、8.7 - info.browser.shell = 'ucweb'; - info.browser.version = '8.x'; - } - - if (info.browser.shell === 'ucweb') { - // UC 浏览器急速模式 - // 目前只有 Android 平台国内版 UCWeb 9.0 可以判断是否为急速模式,UA 中包含 UCWEB/2.0 字段即为急速模式。 - if ((/UCWEB\/2\.0/i).test(ua)) { - info.browser.module = 'swift'; - } - } - - if (info.browser.version) { - info.browser.version = parseFloat(info.browser.version, 10); - } - - return info; -}()); -/** - * @file SQ.util - * 常用函数 - * @version 1.0.0 - */ -/*global SQ*/ -SQ.util = { - /** - * 随机数输出 - * @method - * @name SQ.util.generate - * @example - * Sq.util.generate.uniqueId(); - * Sq.util.generate.randomInt(0, 9); - * Sq.util.generate.randomArr([1,2,3]); - */ - generate: { - // 生成唯一标识符 - uniqueId: function () { - - }, - randomInt: function (min, max) { - 'use strict'; - if (typeof min === 'number' && typeof max === 'number' && min < max) { - return parseInt(Math.random() * (max - min + 1) + min, 10); - } - return false; - }, - randomArr: function (arr) { - 'use strict'; - return arr.sort(function () { - return Math.random() - 0.5; - }); - } - }, - /** - * 字符串操作 - * @method - * @name SQ.util.string - * @example - * SQ.util.string.trim(' test string '); - * //return test string - */ - string: { - // 过滤字符串首尾的空格 - trim: function(srt) { - 'use strict'; - return srt.replace(/^\s+|\s+$/g, ''); - } - }, - /** - * 格式化时间 - * @method - * @name SQ.util.dateToString - * @example - * SQ.util.dateToString(new Date()) - * //return 2013-10-17 17:31:58 - */ - dateToString: function(time) { - 'use strict'; - var year = time.getFullYear(); - var month = time.getMonth() + 1; - var date = time.getDate(); - var hours = time.getHours(); - var min = time.getMinutes(); - var sec = time.getSeconds(); - - month = month < 10 ? ('0' + month) : month; - date = date < 10 ? ('0' + date) : date; - hours = hours < 10 ? ('0' + hours) : hours; - min = min < 10 ? ('0' + min) : min; - sec = sec < 10 ? ('0' + sec) : sec; - - var dateString = year + '-' + month + '-' + date + ' ' + hours + ':' + min + ':' + sec; - return dateString; - }, - goTop: function (e) { - 'use strict'; - e.preventDefault(); - window.scrollTo(0, 0); - }, - goBack: function (e) { - 'use strict'; - e.preventDefault(); - history.back(); - } -}; \ No newline at end of file diff --git a/build/js/squirrel.js b/build/js/squirrel.js deleted file mode 100644 index dc725d9..0000000 --- a/build/js/squirrel.js +++ /dev/null @@ -1,3689 +0,0 @@ -/** - * @file SQ.core - * @version 1.0.0 - */ -/*global SQ*/ -window.SQ = { - /** - * 命名空间方法 - * @method - * @name SQ.core.namespace - * @param {string} nameSpaceString 命名空间字符串 - * @example - * SQ.core.namespace('SQ.modules.module2'); - */ - namespace: function (nameSpaceString) { - 'use strict'; - var parts = nameSpaceString.split('.'); - var parent = SQ; - var i; - if (parts[0] === 'SQ') { - parts = parts.slice(1); - } else { - return false; - } - for (i = 0; i < parts.length; i += 1) { - if (typeof parent[parts[i]]) { - parent[parts[i]] = {}; - } - parent = parent[parts[i]]; - } - return parent; - }, - /** - * 判断对象类型 - * @example - * SQ.core.isString(str); - */ - isString: function (str) { - 'use strict'; - return Object.prototype.toString.call(str) === '[object String]'; - }, - isArray: function (arr) { - 'use strict'; - return Object.prototype.toString.call(arr) === '[object Array]'; - }, - isNumber: function (num) { - 'use strict'; - return Object.prototype.toString.call(num) === '[object Number]'; - }, - isBoolean: function (bool) { - 'use strict'; - return Object.prototype.toString.call(bool) === '[object Boolean]'; - }, - isNull: function (nullObj) { - 'use strict'; - return Object.prototype.toString.call(nullObj) === '[object Null]'; - }, - isUndefined: function (undefinedObj) { - 'use strict'; - return Object.prototype.toString.call(undefinedObj) === '[object Undefined]'; - }, - isFunction: function (fun) { - 'use strict'; - return Object.prototype.toString.call(fun) === '[object Function]'; - }, - isObject: function (obj) { - 'use strict'; - return Object.prototype.toString.call(obj) === '[object Object]'; - }, - /** - * isJSON - * 判断是否为 JSON 对象 - * @param string - * @returns {boolean} - * @see qatrix.js - */ - // 暂时无法使用 - /*isJSON : function (string) { - var rvalidchars = /^[\],:{}\s]*$/; - var rvalidescape = /\\(?:['\\\/bfnrt]|u[\da-fA-F]{4})/g; - var rvalidtokens = /'[^'\\\r\n]*'|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g; - var rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g; - return typeof string === 'string' && $.trim(string) !== '' ? - rvalidchars.test(string - .replace(rvalidescape, '@') - .replace(rvalidtokens, ']') - .replace(rvalidbraces, '')) : - false; - }*/ - /** - * 继承 - * @param Child - * @param Parent - */ - extend: function (Child, Parent) { - 'use strict'; - var F = function () { - }; - F.prototype = Parent.prototype; - Child.prototype = new F(); - Child.prototype.constructor = Child; - Child.uber = Parent.prototype; - }, - /** - * 频率控制 返回函数连续调用时,fn 执行频率限定为每多少时间执行一次 - * @param fn {function} 需要调用的函数 - * @param delay {number} 延迟时间,单位毫秒 - * @param immediate {bool} 给 immediate 参数传递 false 绑定的函数先执行,而不是 delay 后后执行。 - * @return {function} 实际调用函数 - */ - throttle: function (fn, delay, immediate, debounce) { - 'use strict'; - var curr; - var lastCall = 0; - var lastExec = 0; - var timer = null; - var diff; // 时间差 - var context; // 上下文 - var args; - var exec = function () { - lastExec = curr; - fn.apply(context, args); - }; - return function () { - curr = + new Date(); - context = this; - args = arguments; - diff = curr - (debounce ? lastCall : lastExec) - delay; - clearTimeout(timer); - if (debounce) { - if (immediate) { - timer = setTimeout(exec, delay); - } else if (diff >= 0) { - exec(); - } - } else { - if (diff >= 0) { - exec(); - } else if (immediate) { - timer = setTimeout(exec, -diff); - } - } - lastCall = curr; - }; - }, - /** - * 空闲控制 返回函数连续调用时,空闲时间必须大于或等于 delay,fn 才会执行 - * @param fn {function} 要调用的函数 - * @param delay {number} 空闲时间 - * @param immediate {bool} 给 immediate 参数传递 false 绑定的函数先执行,而不是 delay 后后执行。 - * @return {function} 实际调用函数 - */ - debounce: function (fn, delay, immediate) { - 'use strict'; - return SQ.throttle(fn, delay, immediate, true); - } -}; -/** - * @file SQ.gestures - * 手势函数 - * @version 0.5.0 - */ -/*global SQ*/ -SQ.gestures = { - isSupportTouch: function () { - 'use strict'; - if (typeof window.ontouchstart === 'undefined') { - return false; - } else { - return true; - } - }, - /** - * 轻点 - * @param config - */ - tap: function (config) { - 'use strict'; - var boundary = 20; - var el = config.el; - var event = config.event || ''; - var fun = config.callbackFun; - - function startHandle (e) { - startX = e.touches[0].clientX; - startY = e.touches[0].clientY; - $(e.target).addClass('press'); - setTimeout(function () { - $(e.target).removeClass('press'); - }, 200); - } - - function endHandle (e) { - var endX = e.changedTouches[0].clientX; - var endY = e.changedTouches[0].clientY; - if (Math.abs(endX - startX) < boundary && Math.abs(endY - startY) < boundary) { - fun.call(el, e, $(e.target)); - } - $(e.target).removeClass('press'); - } - - if (SQ.gestures.isSupportTouch()) { - var startX = 0; - var startY = 0; - if (SQ.isString(el)) { - $(document).on('touchstart' + event, el, startHandle).on('touchend' + event, el, endHandle); - } else if (SQ.isArray(el)) { - el.on('touchstart' + event, startHandle).on('touchend' + event, endHandle); - } - } else { - $(el).on('click' + event, function (e) { - fun.call(el, e, $(this)); - }); - } - } -}; -/** - * @file SQ.store - * @version 1.1.0 - */ -/*global SQ*/ -SQ.store = { - /** - * Cookie - * @example - * Sq.cookie.set('name', 'value'); // 设置 - * Sq.cookie.get('name'); // 读取 - * Sq.cookie.del('name'); // 删除 - */ - cookie: { - _getValue: function (offset) { - 'use strict'; - var ck = document.cookie; - var endstr = ck.indexOf(';', offset) === -1 ? ck.length : ck.indexOf(';', offset); - return decodeURIComponent(ck.substring(offset, endstr)); - }, - get: function (key) { - 'use strict'; - var me = this; - var ck = document.cookie; - var arg = key + '='; - var argLen = arg.length; - var cookieLen = ck.length; - var i = 0; - while (i < cookieLen) { - var j = i + argLen; - if (ck.substring(i, j) === arg) { - return me._getValue(j); - } - i = ck.indexOf(' ', i) + 1; - if (i === 0) { - break; - } - } - return null; - }, - set: function (key, value) { - 'use strict'; - var expdate = new Date(); - var year = expdate.getFullYear(); - var month = expdate.getMonth(); - var date = expdate.getDate() + 1; - var argv = arguments; - var argc = arguments.length; - //获取更多实参,依次为:有效期、路径、域、加密安全设置 - var expires = (argc > 2) ? argv[2] : null; - var path = (argc > 3) ? argv[3] : null; - var domain = (argc > 4) ? argv[4] : null; - var secure = (argc > 5) ? argv[5] : false; - - if (!!expires) { - switch (expires) { - case 'day': - expdate.setYear(year); - expdate.setMonth(month); - expdate.setDate(date); - expdate.setHours(8); // 补 8 小时时差 - expdate.setMinutes(0); - expdate.setSeconds(0); - break; - case 'week': - var week = 7 * 24 * 3600 * 1000; - expdate.setTime(expdate.getTime() + week); - break; - default: - expdate.setTime(expdate.getTime() + (expires * 1000 + 8 * 3600 * 1000)); - break; - } - } - - document.cookie = key + '=' + encodeURIComponent(value) + ((expires === null) ? '' : ('; expires=' + expdate.toGMTString())) + - ((path === null) ? '' : ('; path=' + path)) + ((domain === null) ? '' : ('; domain=' + domain)) + - ((secure === true) ? '; secure' : ''); - }, - del: function (key) { - 'use strict'; - var me = this; - var exp = new Date(); - exp.setTime(exp.getTime() - 1); - var cval = me.get(key); - document.cookie = key + '=' + cval + '; expires=' + exp.toGMTString(); - } - }, - /** - * localStorage - */ - localStorage: { - hasLoaclStorage: (function () { - 'use strict'; - if(('localStorage' in window) && window.localStorage !== null) { - return true; - } - }()), - // expires 过期时间,单位 min - get: function (key, expires) { - 'use strict'; - var me = this; - var now = new Date().getTime(); - var localData; - var time; - var dataStore; - - if (!key || !me.hasLoaclStorage) { - return; - } - - localData = JSON.parse(localStorage.getItem(key)); - - if (localData) { - time = localData.time; - dataStore = localData.dataStore; - - // 填写了 expires 过期时间 - if (expires) { - dataStore = parseInt(expires, 10) * 1000 * 60 > (now - parseInt(time, 10)) ? dataStore : false; - } - return dataStore; - } - }, - set: function (key, value) { - 'use strict'; - var me = this; - var ds = {}; - var now = new Date().getTime(); - if (!key || !value || !me.hasLoaclStorage) { - return; - } - - ds.dataStore = value; - ds.time = now; - ds = JSON.stringify(ds); - - localStorage.setItem(key, ds); - }, - del: function (key) { - 'use strict'; - var me = this; - if (!key || !me.hasLoaclStorage) { - return; - } - localStorage.removeItem(key); - }, - clearAll: function () { - 'use strict'; - var me = this; - if (!me.hasLoaclStorage) { - return; - } - localStorage.clear(); - } - } -}; - -/** - * @file SQ.ua - * 获取设备 ua 信息,判断系统版本、浏览器名称及版本 - * @version 1.0.0 - */ -/*global SQ*/ -SQ.ua = (function () { - 'use strict'; - var info = {}; - var ua = navigator.userAgent; - var m; - - info.os = {}; - info.browser = {}; - - /** - * operating system. android, ios, linux, windows - * @type string - */ - if ((/Android/i).test(ua)) { - info.os.name = 'android'; - info.os.version = ua.match(/(Android)\s([\d.]+)/)[2]; - } else if ((/Adr/i).test(ua)) { - // UC 浏览器极速模式下,Android 系统的 UA 为 'Adr' - info.os.name = 'android'; - info.os.version = ua.match(/(Adr)\s([\d.]+)/)[2]; - } else if ((/iPod/i).test(ua)) { - info.os.name = 'ios'; - info.os.version = ua.match(/OS\s([\d_]+)/)[1].replace(/_/g, '.'); - info.device = 'ipod'; - } else if ((/iPhone/i).test(ua)) { - info.os.name = 'ios'; - info.os.version = ua.match(/(iPhone\sOS)\s([\d_]+)/)[2].replace(/_/g, '.'); - info.device = 'iphone'; - } else if ((/iPad/i).test(ua)) { - info.os.name = 'ios'; - info.os.version = ua.match(/OS\s([\d_]+)/)[1].replace(/_/g, '.'); - info.device = 'ipad'; - } - - // 浏览器判断 - m = ua.match(/AppleWebKit\/([\d.]*)/); - if (m && m[1]) { - info.browser.core = 'webkit'; - info.browser.version = m[1]; - - if ((/Chrome/i).test(ua)) { - info.browser.shell = 'chrome'; - } else if ((/Safari/i).test(ua)) { - info.browser.shell = 'safari'; - } else if ((/Opera/i).test(ua)) { - info.browser.shell = 'opera'; - } - } - - if ((/UCBrowser/i).test(ua)) { - // UCWeb 9.0 UA 信息中包含 UCBrowser 字段 - m = ua.match(/(UCBrowser)\/([\d.]+)/); - info.browser.shell = 'ucweb'; - info.browser.version = m[2]; - } else if ((/UCWEB/i).test(ua)) { - // UCWeb 7.9 UA 信息中包含 UCWEB 字段 - m = ua.match(/(UCWEB)([\d.]+)/); - info.browser.shell = 'ucweb'; - info.browser.version = m[2]; - } else if ((/UC/i).test(ua)) { - // UCWeb 8.x UA 信息中包含 UC 字段 - // 确认 8.6、8.7 - info.browser.shell = 'ucweb'; - info.browser.version = '8.x'; - } - - if (info.browser.shell === 'ucweb') { - // UC 浏览器急速模式 - // 目前只有 Android 平台国内版 UCWeb 9.0 可以判断是否为急速模式,UA 中包含 UCWEB/2.0 字段即为急速模式。 - if ((/UCWEB\/2\.0/i).test(ua)) { - info.browser.module = 'swift'; - } - } - - if (info.browser.version) { - info.browser.version = parseFloat(info.browser.version, 10); - } - - return info; -}()); -/** - * @file SQ.util - * 常用函数 - * @version 1.0.0 - */ -/*global SQ*/ -SQ.util = { - /** - * 随机数输出 - * @method - * @name SQ.util.generate - * @example - * Sq.util.generate.uniqueId(); - * Sq.util.generate.randomInt(0, 9); - * Sq.util.generate.randomArr([1,2,3]); - */ - generate: { - // 生成唯一标识符 - uniqueId: function () { - - }, - randomInt: function (min, max) { - 'use strict'; - if (typeof min === 'number' && typeof max === 'number' && min < max) { - return parseInt(Math.random() * (max - min + 1) + min, 10); - } - return false; - }, - randomArr: function (arr) { - 'use strict'; - return arr.sort(function () { - return Math.random() - 0.5; - }); - } - }, - /** - * 字符串操作 - * @method - * @name SQ.util.string - * @example - * SQ.util.string.trim(' test string '); - * //return test string - */ - string: { - // 过滤字符串首尾的空格 - trim: function(srt) { - 'use strict'; - return srt.replace(/^\s+|\s+$/g, ''); - } - }, - /** - * 格式化时间 - * @method - * @name SQ.util.dateToString - * @example - * SQ.util.dateToString(new Date()) - * //return 2013-10-17 17:31:58 - */ - dateToString: function(time) { - 'use strict'; - var year = time.getFullYear(); - var month = time.getMonth() + 1; - var date = time.getDate(); - var hours = time.getHours(); - var min = time.getMinutes(); - var sec = time.getSeconds(); - - month = month < 10 ? ('0' + month) : month; - date = date < 10 ? ('0' + date) : date; - hours = hours < 10 ? ('0' + hours) : hours; - min = min < 10 ? ('0' + min) : min; - sec = sec < 10 ? ('0' + sec) : sec; - - var dateString = year + '-' + month + '-' + date + ' ' + hours + ':' + min + ':' + sec; - return dateString; - }, - goTop: function (e) { - 'use strict'; - e.preventDefault(); - window.scrollTo(0, 0); - }, - goBack: function (e) { - 'use strict'; - e.preventDefault(); - history.back(); - } -}; -/** - * @file SQ.Button 按钮插件 - * @version 0.5.0 - */ - -/** - * @changelog - * 0.5.0 * 重写插件,调用方式改为 $. 链式调用。 - * 0.2.0 * 重写 menu 模式代码,独立 button.js 为插件 - * 0.1.2 * 修复 jshint 问题 - * 0.1.1 + 新增 menu 交互模式 - * 0.0.1 + 新建 - */ -/*global $, SQ, console, jQuery*/ -(function ($) { - 'use strict'; - /** - * @name Button - * @classdesc 按钮交互插件 - * @constructor - * @param {object} config 插件配置(下面的参数为配置项,配置会写入属性) - * @param {string} config.ANIMATE 动画类,例如 .fadeIn - * @param {string} config.EVE_EVENT_TYPE 交互触发方式,默认为 'click' - * @param {string} config.MODE 按钮交互模式,默认为 'menu' - * @example $('.J_buttonMenu').button({ - ANIMATE: '.fadeIn quick' -}); - */ - - var scope = 'sq-button'; // data-* 后缀 - var defaults = { - MODE: 'menu', - EVE_EVENT_TYPE: 'click' - }; - - function Button ( element, options ) { - this.element = element; - this.settings = $.extend( {}, defaults, options ); - this._defaults = defaults; - this.init(); - } - - Button.prototype = { - construtor: 'Button', - init: function () { - var me = this; - var date = new Date().getTime().toString().slice(-4); - me.$element = $(me.element); - me.elementClassName = me.settings.selector.slice(1); // '.style-name' => 'style-name' - - // _documentEvent 判断时会碰到相同 className 的情况,会导致无法隐藏菜单 - me.classId = scope + '-id-' + date; - me.$element.addClass(me.classId); - if (me.settings.MODE === 'menu') { - me.menu(); - } - }, - setState: function (state) { - var me = this; - if (state === 'active') { - me.$element.addClass('active'); - } - if (state === 'init') { - me.$element.removeClass('active'); - } - }, - menu: function () { - var me = this; - var $doc = $(document); - var $allButtons = $(me.settings.selector); - var $allMenus = $allButtons.find('.dropdown-menu'); - var $menu = me.$element.find('.dropdown-menu'); - - me.$element.on(me.settings.EVE_EVENT_TYPE + '.sq.button.menu', function () { - if (!me.$element.hasClass('active')) { - _showMenu(); - } else { - _hideMenu(); - } - }); - - function _showMenu() { - //** reset all menus - $allMenus.hide(); - $allButtons.removeClass('active'); - //** add animate - if (me.settings.ANIMATE) { - var animateClassName = me.settings.ANIMATE.indexOf('.') === 0 ? me.settings.ANIMATE.slice(1) : me.settings.ANIMATE; - $menu.addClass('animated ' + animateClassName); - } - $menu.show(); - me.setState('active'); - $doc.on('click.sq.button.menu', _documentEvent); - } - - function _hideMenu() { - $menu.hide(); - me.setState('init'); - $doc.off('click.sq.button.menu', _documentEvent); - } - - function _documentEvent(e) { - if (!$(e.target).hasClass(me.classId)) { - _hideMenu(); - } - } - } - }; - - $.fn.button = function ( options ) { - var isZepto = typeof Zepto !== 'undefined' ? true : false; - var isJQuery = typeof jQuery !== 'undefined' ? true : false; - var plugin; - - if (SQ.isObject(options)) { - options = options || {}; - // 当使用 $(this).modal({...}) 调用时,无法获取 this.selector 值, - // 所以去手动获取该 DOM 的类名 - options.selector = this.selector || '.' + this[0].className.split(' ').join('.'); - } - - this.each(function() { - if (isJQuery) { - if (!$.data(this, scope + 'init')) { - $.data( this, scope + 'init', new Button( this, options ) ); - } - } else if (isZepto) { - if (!$(this).data(scope + 'init')) { - plugin = new Button( this, options ); - $(this).data(scope + 'init', 'initialized'); - } - } - }); - // chain jQuery functions - return this; - }; - - // DATA-API - // =============== - /*$(document).on('click.button.data.api', '[data-'+ scope +']', function () { - var $me = $(this); - var pluginSetting = $me.data(scope); - //console.log(pluginSetting) - $me.button(pluginSetting); - });*/ - /*$(document).ready(function () { - $('[data-'+ scope +']').each(function () { - var $me = $(this); - var pluginSetting = $me.data(scope); - if (SQ.isObject(pluginSetting)) { - $me.button(pluginSetting); - } - }); - });*/ -})($); -/*global $, SQ, console*/ -(function ($) { - 'use strict'; - - SQ.gestures.tap({ - el: 'a.sq-btn', - event: '.sq.tap', - callbackFun: function (e, $el) { - e.preventDefault(); - var url = $el.attr('href'); - if (url && url !== '#') { - window.location = url; - } - } - }); -})($); - -/** - * @file SQ.Fixed 悬停插件 - * @version 1.5.0 - */ - -/** - * @changelog - * 1.5.0 * 重写插件,调用方式改为 $. 链式调用。 - * 1.0.0 + 新增 refresh 方法,可以刷新 Fixed 列表; - * * 更改 ARRY_FIXED_POSITION 默认值,修正 fixed 元素高度时会占据全屏的 bug; - * * 修正 triggerPosTop 没有将 scrollY 的值计算在内的 bug。 - * 0.9.0 * 完成主要功能 - * 0.0.1 + 新建。 - */ -/*global $, SQ, console, jQuery */ -(function ($) { - 'use strict'; - /** - * @name Fixed - * @classdesc 元素固定定位 - * @constructor - * @param {object} config 插件配置(下面的参数为配置项,配置会写入属性) - * @param {string} config.ANIMATE 动画类,默认值:undefined - * @param {array} config.ARRY_FIXED_POSITION 固定位置设置,遵循 [上,右,下,左] 规则,默认为:[0, 0, 'auto', 0] - * @param {number} config.NUM_TRIGGER_POSITION 设置 fixed 激活位置,当有该值时以该值为准,没有则以元素当前位置为准 - * @param {number} config.NUM_ZINDEX z-index 值设置,默认为 101 - * @param {boolen} config.PLACEHOLD 是否设置占位 DOM,默认为 false - * @param {function} config.fixedIn 设置固定布局时回调函数 - * @param {function} config.fixedOut 取消固定布局时回调函数 - * @example $('.J_fixedHeader').fixed({ - PLACEHOLD: true -}); - */ - - var scope = 'sq-fixed'; // data-* 后缀 - var defaults = { - ARRY_FIXED_POSITION: [0, 0, 'auto', 0], - NUM_ZINDEX: 101, // .sq-header 的 z-index 值为 100 - PLACEHOLD: false - }; - - function Fixed ( element, options ) { - this.element = element; - this.settings = $.extend( {}, defaults, options ); - this._defaults = defaults; - this.init(); - } - - Fixed.prototype = { - construtor: 'Fixed', - scrollTimer: 0, // 滑动计时器 - scrollDelay: 150, // 滑动阀值 - init: function () { - var me = this; - var initializedIndex = $('[data-' + scope + ']').length; - me.$element = $(me.element); - me.fixedInFun = me.settings.fixedIn; - me.fixedOutFun = me.settings.fixedOut; - - me.$element.each(function (index) { - var fixedItem = { - id: scope + (index + initializedIndex), // 用于定位 fixed 元素 - self: this, - $self: $(this), - fixed: false // 标记是否处在 fixed 状态,用于之后的判断 - }; - - // 确定 fixed 激活位置,当有 NUM_TRIGGER_POSITION 值时以该值为准,没有则以元素当前位置为准 - if (me.settings.NUM_TRIGGER_POSITION && SQ.isNumber(me.settings.NUM_TRIGGER_POSITION)) { - fixedItem.triggerPosTop = me.settings.NUM_TRIGGER_POSITION; - } else { - // 设置占位 DOM - if (me.settings.PLACEHOLD) { - me._setPlaceholder(fixedItem); - } - // 获取元素位置 top 值 - if (fixedItem.self.getBoundingClientRect()) { - fixedItem.triggerPosTop = fixedItem.self.getBoundingClientRect().top + window.scrollY; - } else { - console.warn('Not Support getBoundingClientRect'); - } - // 当元素处于页面顶端则立即设置为 fixed 布局 - // UC 浏览器在实际渲染时会有问题,不建议用 fixed.js 来实现顶部导航的固定布局(直接使用 CSS) - if (fixedItem.self.triggerPosTop === 0) { - me._setFixed(fixedItem); - } - } - // 触发绑定 - me._trigger(fixedItem); - }); - }, - /** - * 设置 fixed 元素占位 DOM - * @param fixedItem - * @private - */ - _setPlaceholder: function (fixedItem) { - var $placeholderDom = $('
').css({ - display: 'none', - width: fixedItem.$self.width(), - height: fixedItem.$self.height(), - background: fixedItem.$self.css('background') - }); - $placeholderDom.insertAfter(fixedItem.$self); - }, - /** - * 设置触发事件及触发条件 - * @param fixedItem - * @private - */ - _trigger: function (fixedItem) { - var me = this; - window.requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame; - // 高级浏览器使用 requestAnimationFrame - function advancedWatchEvent() { - var scrollTop = window.scrollY; - if (scrollTop >= fixedItem.triggerPosTop && !fixedItem.fixed) { - me._setFixed(fixedItem); - } else if (scrollTop < fixedItem.triggerPosTop && fixedItem.fixed) { - me._removeFixed(fixedItem); - } - window.requestAnimationFrame(advancedWatchEvent); - } - // 不支持 requestAnimationFrame 的浏览器使用常用事件 - function normalWatchEvent() { - var mobile = 'android-ios'; - // 触发函数 - function fire() { - var scrollTop = window.scrollY; - if (scrollTop >= fixedItem.triggerPosTop && !fixedItem.$self.hasClass('sq-fixed')) { - me._setFixed(fixedItem); - } else if (scrollTop < fixedItem.triggerPosTop && fixedItem.$self.hasClass('sq-fixed')) { - me._removeFixed(fixedItem); - } - } - // 触摸设备使用 touchstart 事件 - if (mobile.indexOf(SQ.ua.os.name) !== -1) { - $(window).on('touchstart', function () { - // 在触摸滑动时浏览器会锁死进程,滑动停止后才会触发 touchstart 事件,而此时 scrollTop 值 - // 为触摸时的数值,所以添加 setTimeout 来计算获取滑动停止后的数值。 - setTimeout(function () { - fire(); - }, 150); - }); - } else { - $(window).on('scroll', function () { - // 添加 scroll 事件相应伐值,优化其性能 - if (!me.scrollTimer) { - me.scrollTimer = setTimeout(function () { - fire(); - me.scrollTimer = 0; - }, me.scrollDelay); - } - }); - } - } - - if (window.requestAnimationFrame) { - window.requestAnimationFrame(advancedWatchEvent); - } else { - normalWatchEvent(); - } - }, - _setFixed: function (fixedItem) { - var me = this; - var posCss = me.settings.ARRY_FIXED_POSITION; - var $placeholderDom = $('#' + fixedItem.id); - - fixedItem.$self.css({ - 'position': 'fixed', - 'top': posCss[0], - 'right': posCss[1], - 'bottom': posCss[2], - 'left': posCss[3], - 'z-index': me.settings.NUM_ZINDEX - }); - fixedItem.fixed = true; - - if (me.settings.PLACEHOLD && $placeholderDom.length) { - $placeholderDom.show(); - } - - if (me.settings.ANIMATE) { - var animateClassName = me.settings.ANIMATE.indexOf('.') === 0 ? me.settings.ANIMATE.slice(1) : me.settings.ANIMATE; - fixedItem.$self.addClass('animated ' + animateClassName); - } - - if (me.fixedInFun) { - me.fixedInFun(); - } - }, - _removeFixed: function (fixedItem) { - var me = this; - var $placeholderDom = $('#' + fixedItem.id); - - fixedItem.$self.attr('style', ''); - fixedItem.fixed = false; - - if (me.settings.PLACEHOLD && $placeholderDom.length) { - $placeholderDom.hide(); - } - - if (me.fixedOutFun) { - me.fixedOutFun(); - } - } - }; - - $.fn.fixed = function ( options ) { - var isZepto = typeof Zepto !== 'undefined' ? true : false; - var isJQuery = typeof jQuery !== 'undefined' ? true : false; - var plugin; - - options = options || {}; - options.selector = this.selector; - - this.each(function() { - if (isJQuery) { - if ( !$.data( this, scope ) ) { - $.data( this, scope, new Fixed( this, options ) ); - } - } else if (isZepto) { - if (!$(this).data(scope)) { - plugin = new Fixed( this, options ); - $(this).data(scope, 'initialized'); - } - } - }); - // chain jQuery functions - return this; - }; - -})($); -/** - * @file SQ.LazyLoad 延迟加载插件 - * @version 1.0.2 - */ - -/** - * @changelog - * 1.0.2 * 修改 scroll 绑定事件,使用新增的节流函数,精简函数。 - * 1.0.1 * 增加验证提示,调整了 init 函数。 - * 1.0.0 * 重写插件,调用方式改为 $. 链式调用。 - * 0.8.1 * 新增 ANIMATE 设置。 - * 0.8.0 * 重写 lazylaod 插件,提高整体性能。 - * 0.7.0 * 调整滑动阀值 scrollDelay,由 200 调整至 150; - * * 调整可视区的计算方式,由 offset 改为 getBoundingClientRect; - * * 针对 UC 浏览器极速版进行优化,可以在滑动过程中进行加载。 - * 0.6.5 * 修复 jshint 问题。 - * 0.6.4 * 修复图片加载失败时会导致 error 时间一直被触发的 bug; - * 修复与 loadmore 插件配合使用时,无法替换加载错误的图片。 - * 0.6.3 + 新增首屏图片自动加载功能; - * + 新增占位图、占位背景设置。 - * 0.6.0 + 首屏图片自动加载。 - * 0.5.1 * 完成图片模式的延迟加载功能。 - * 0.0.1 + 新建。 - */ -/*global $, SQ, console, jQuery */ -(function ($) { - 'use strict'; - /** - * @name LazyLoad - * @classdesc 内容延迟加载 - * @constructor - * @param {object} config 插件配置(下面的参数为配置项,配置会写入属性) - * @param {string} config.ANIMATE 动画类,例如 .fadeIn - * @param {string} config.IMG_PLACEHOLDER 占位图片 - * @param {string} config.MODE 延迟加载模式,默认为:image(图片模式) - * @param {number} config.NUM_THRESHOLD 灵敏度,数值越大越灵敏,延迟性越小,默认为 200 - * - * @example $('.J_lazyload').lazyload({ - ANIMATE: '.fadeIn' -}); - */ - - var scope = 'sq-lazyload'; // data-* 后缀 - var defaults = { - MODE: 'image', - NUM_THRESHOLD: 350, - IMG_PLACEHOLDER: '' - }; - - function Lazyload ( element, options ) { - this.element = element; - this.settings = $.extend( {}, defaults, options ); - this._defaults = defaults; - this.init(); - } - - Lazyload.prototype = { - construtor: 'Lazyload', - scrollTimer: 0, // 滑动计时器 - scrollDelay: 150, // 滑动阀值 - init: function () { - var me = this; - me.$element = $(me.element); - me.elementClassName = me.settings.selector.slice(1); // '.style-name' => 'style-name' - me.$element.attr('src', me.settings.IMG_PLACEHOLDER); - if (me._verify()) { - me._bindLazyEvent(); - me._trigger(); - me._loadImg(); - } - }, - /** - * 验证参数是否合法 - * @returns {boolean} - * @private - */ - _verify: function () { - /*if (!this.$element.length) { - console.warn('SQ.lazyload: '+ this.settings.selector +'下未找到'); - return false; - }*/ - return true; - }, - _bindLazyEvent: function () { - var me = this; - // 为延迟加载元素绑定一次性执行事件 - me.$element.one('appear', function () { - var img = this; - var $img = $(img); - var src = $img.attr('data-img'); - // 替换 src 操作 - if (src) { - $img.addClass('unvisible').attr('src', src).removeAttr('data-img').removeClass(me.elementClassName); - $img.on('load', function () { - // 添加动画 - if (me.settings.ANIMATE) { - var animateClassName = me.settings.ANIMATE.indexOf('.') === 0 ? me.settings.ANIMATE.slice(1) : me.settings.ANIMATE; - $img.addClass('animated ' + animateClassName); - } - $img.removeClass('unvisible'); - }); - $img.on('error', function () { - if (me.settings.IMG_PLACEHOLDER) { - $(this).attr('src', me.settings.IMG_PLACEHOLDER).off('error'); - } - }); - } - }); - }, - _trigger: function () { - var me = this; - $(window).on('scroll.bs.lazyload', SQ.throttle(function () { - if (me.settings.MODE === 'image') { - me._loadImg(); - } - }, me.scrollDelay)); - }, - /** - * 判断是否在显示区域 - */ - _isInDisplayArea: function (item) { - var me = this; - if (item.getBoundingClientRect()) { - var pos = item.getBoundingClientRect(); - return pos.top > 0 - me.settings.NUM_THRESHOLD && pos.top - me.settings.NUM_THRESHOLD < window.innerHeight; - } else { - var $item = $(item); - var winH = window.innerHeight; - var winOffsetTop = window.pageYOffset; // window Y 轴偏移量 - var itemOffsetTop = $item.offset().top; - // itemOffsetTop >= winOffsetTop 只加载可视区域下方的内容 - // winOffsetTop + winH + me.settings.NUM_THRESHOLD 加载可视区域下方一屏内的内容 - return itemOffsetTop >= winOffsetTop && itemOffsetTop <= winOffsetTop + winH + me.settings.NUM_THRESHOLD; - } - }, - _loadImg: function () { - var me = this; - if (me.settings.IMG_PLACEHOLDER && me.$element.hasClass(me.elementClassName)) { - //me.$element.attr('src', me.settings.IMG_PLACEHOLDER); - me.$element.on('error', function () { - $(this).attr('src', me.settings.IMG_PLACEHOLDER).off('error'); - }); - } - if (me._isInDisplayArea(me.$element.get(0))) { - me.$element.trigger('appear'); - } - } - }; - - $.fn.lazyload = function ( options ) { - var isZepto = typeof Zepto !== 'undefined' ? true : false; - var isJQuery = typeof jQuery !== 'undefined' ? true : false; - var plugin; - - options = options || {}; - options.selector = this.selector; - - if (!this.length) { - console.warn('SQ.lazyload: 未找到'+ this.selector +'元素'); - } - - this.each(function() { - if (isJQuery) { - if ( !$.data( this, scope ) ) { - $.data( this, scope, new Lazyload( this, options ) ); - } - } else if (isZepto) { - if (!$(this).data(scope)) { - plugin = new Lazyload( this, options ); - $(this).data(scope, 'initialized'); - } - } - }); - // chain jQuery functions - return this; - }; - -})($); -/** - * @file SQ.LoadMore 加载更多插件 - * @version 1.6.0 - */ - -/** - * @changelog - * 1.6.1 * 使用新增的节流函数,调整执行逻辑。 - * 1.6.0 * 现在可以记录一个页面中多个实例的运行状态,方便配合 Tab.js 使用。 - * 1.5.0 * 重写插件,调用方式改为 $. 链式调用。 - * 1.4.2 * 修复 _spliceApi 函数对 api 的拼装错误。 - * 1.4.1 * 为 loaded、scrollEnd 回调函数增加 index 参数。 - * 1.4.0 * 重写 loadMore 插件,支持在一个页面里生成多个实例。 - * 1.3.0 * 删除 render 回调函数。 - * 1.2.4 + 新增 RESTFUL 配置,支持 RESTful 接口风格, - * + 新增 XHR_TIMEOUT 配置, - * * 精简的验证方法。 - * 1.2.3 * 增强 CSS_STATE_BAR 参数的兼容性,可以支持 '.style-name' 或 'style-name' 写法。 - * 1.2.2 * 修复 jshint 问题,修复 #15 问题。 - * 1.2.1 * 修复启用 localstorage 时 _loadedResult 函数得到的数据为字符串的问题。 - * 1.2.0 + 添加对 localStorage 支持,通过将 LOCAL_DATA 设置为 true 开启,通过 NUM_EXPIRES 来设置过期时间(单位:分钟)。 - * 1.1.10 * 修复点击加载是,加载出错会导致无法展示状态栏。 - * 1.1.9 + 可自定义 XHR_METHOD 为 GET 或 POST 方法,默认为 POST。 - * 1.1.8 + 添加对 IE6 的支持。 - * 1.1.7 * 为 noMore 状态添加 loaded 回调函数。 - * 1.1.6 * 去除 unbind,解决与 lazyload 插件冲突。 - * 1.1.5 + 新增 _changeEvent 函数,用来改变交绑定互事件; - * * 精简 _bind、_unbind 函数,对整体逻辑做小的优化。 - * 1.1.3 + 新增 loadError 回调函数。 - * 1.1.2 + 新增 NUM_SUCCESS_CODE、NUM_NO_MORE_CODE 配置项。 - * * 修复当最大滑动加载页数正好为最后一页时,noMore 事件没有解除滑动事件绑定,导致 scrollEnd 继续执行。 - * 1.1.1 * 修改 config 常量的书写方式。 - * 1.1.0 + 新增 DATATYPE 属性,用于定义 json 数据中 data 字段的数据类型; - * 新增回调函数 render、loading、loaded、scrollEnd; - * - 删除了 scrollEnd 事件中 addClass('click-state') 操作,改为在 scrollEnd 回调函数中执行。 - * 1.0.6 - 精简注释;修改 _refresh 名称为 _setNewTriggerPoint。 - * 1.0.5 * 修复 _verify 方法因为找不到 DOM 元素而保存导致 js 无法继续执行的问题。 - * 1.0.4 + 添加 _refresh 方法,用于计算并存储文档高度和触发高度,该方法会在完成 XHR 加载后刷新, - * 减少 _getHeight 取值,优化性能。 - * 1.0.3 + 添加 scroll 事件相应伐值,优化其性能。 - * 1.0.2 + 添加 _verify 方法,用于验证参数是否合法。 - * 1.0.1 + 配置内置的 config 设置。 - */ -/*global $, SQ, console, jQuery */ -(function ($) { - 'use strict'; - /** - * @name LoadMore - * @classdesc 应用列表加载更多插件,支持点击加载和滑动加载两种方式,支持由滑动加载自动转为点击加载,依赖 jQuery 或 Zepto 库。 - * @constructor - * @param {object} config 插件配置(下面的参数为配置项,配置会写入属性) - * @param {string} config.API API 接口地址 - * @param {string} config.CSS_STATE_BAR 初始状态展示样式,默认为 .sq-loadmore-state - * @param {string} config.EVE_EVENT_TYPE 绑定事件设置,默认为 'scroll' - * @param {boolen} config.LOCAL_DATA 数据 loaclstorage 开关,默认为 false - * @param {string} config.MODE 插件模式,默认为 simple,当模式为 simple 时插件会自动判断并更新运行状态,在 simple 模式下 XHR 的返回值必须遵循以下 json 格式:{ code:int, data:object} - * @param {number} config.NUM_EXPIRES 数据 loaclstorage 过期时间(单位:分钟),默认为 15 分钟 - * @param {string} config.NUM_LOAD_POSITION 滑动加载位置,默认值:0.5 - * @param {number} config.NUM_START_PAGE_INDEX 起始页面序号,默认值:0 - * @param {number} config.NUM_SCROLL_MAX_PAGE 最大滑动加载页数,默认值:3 - * @param {number} config.NUM_SUCCESS_CODE XHR 成功返回码,默认值:200 - * @param {number} config.NUM_NO_MORE_CODE 无下页数据返回码,默认值:900 - * @param {object | boolen} config.RESTFUL 当设为 true 时,程序会自动将 API 中的 ':page' 段替换为页码 (self.page)也可以设置为 hash 列表,程序会遍历替换所有值。 - * @param {string} config.TXT_CLICK_TIP 触发点击交互提示文字,默认值:'点击加载更多' - * @param {string} config.TXT_LOADING_TIP 正在加载提示,默认值:'正在加载请稍后...' - * @param {string} config.TXT_LOADED_ERROR XHR 加载错误或超时提示,默认值:'加载错误,请重试' - * @param {string} config.TXT_INIT_TIP 初始提示文字,默认值:'滑动加载更多内容' - * @param {string} config.TXT_UNKNOWN_ERROR 通过 XHR 接收到的数据无法识别,默认值:'未知错误,请重试' - * @param {number} config.XHR_TIMEOUT 设置 XHR 超时时间,默认为 5000 ms - * @param {number} config.XHR_METHOD XHR 请求方法,默认为 POST - * @param {function} config.loading(index) 加载阶段回调函数,返回参数:index(序号) - * @param {function} config.loaded(data,$element,index) 加载完成回调函数,返回参数:data(XHR 数据), $element(当前 DOM 容器), index(序号) - * @param {function} config.loadError(index) 加载失败回调函数,返回参数:index(序号) - * @param {function} config.scrollEnd(index) 滑动加载事件完成回调函数,返回参数:index(序号) - * @example $('.J_ajaxWrap').loadmore({ - API: 'data/:id/:page/list.json', - RESTFUL: { - ':id': appid - }, - EVE_EVENT_TYPE: 'scroll', - NUM_SCROLL_MAX_PAGE: 3, - XHR_TIMEOUT: 10000, - LOCAL_DATA: true, - loaded: function (data, $element, index) { - $element.append(data.data); - } -}); - */ - var scope = 'sq-loadmore'; - var initIndex = 0; - var defaults = { - API: '', // API 接口 - CSS_STATE_BAR: '.sq-loadmore-state', - EVE_EVENT_TYPE: 'scroll', - NUM_START_PAGE_INDEX: 0, // 起始页面序号 - NUM_LOAD_POSITION: 0.5, // 滑动加载位置(0.5 表示页面滑动到 50% 的位置开始加载,该值会递增) - NUM_SCROLL_MAX_PAGE: 3, // 最大滑动加载次数 - NUM_SUCCESS_CODE: 200, - NUM_NO_MORE_CODE: 900, - NUM_EXPIRES: 15, - TXT_LOADING_TIP: '正在加载请稍后...', // 正在加载提示 - TXT_INIT_TIP: '滑动加载更多内容', // 初始提示文字 - TXT_CLICK_TIP: '点击加载更多', // 触发点击交互提示文字 - TXT_LOADED_ERROR: '加载失败,请点击重试', // Ajax 加载错误或超时提示 - MODE: 'simple', - XHR_METHOD: 'POST', - XHR_TIMEOUT: 5000, - LOCAL_DATA: false - }; - - function LoadMore ( element, options ) { - this.element = element; - this.settings = $.extend( {}, defaults, options ); - this._defaults = defaults; - this.init(); - } - - LoadMore.prototype = { - construtor: 'LoadMore', - scrollTimer: 0, // 滑动计时器 - scrollDelay: 200, // 滑动阀值 - init: function () { - var me = this; - var self = {}; - var index = initIndex; - var winHeight = window.innerHeight || $(window).height(); - var oldState = me._reload(); - - me.$win = $(window); - me.$triggerTarget = me.$win; // 触发元素 - me.$element = $(me.element); // 数据展示元素 - me.maxPage = me.settings.NUM_SCROLL_MAX_PAGE + me.settings.NUM_START_PAGE_INDEX; - me.initStyle = me.settings.CSS_STATE_BAR.indexOf('.') === 0 ? me.settings.CSS_STATE_BAR.slice(1) : me.settings.CSS_STATE_BAR; - - me.beforeLoadFun = me.settings.beforeLoad; - me.loadingFun = me.settings.loading; - me.loadFun = me.settings.loaded; - me.loadErrorFun = me.settings.loadError; - me.scrollEndFun = me.settings.scrollEnd; - - self.$element = me.$element; - - if (oldState.isReload) { - // 重载状态,获取已有的状态栏 - self.$stateBar = oldState.$stateBar; - self.$stateTxt = self.$stateBar.find('.state-txt'); - } else { - // 初次实例化,创建新的状态栏 - self.$stateBar = $('
'); - self.$stateTxt = self.$stateBar.find('.state-txt'); - self.$stateBar.addClass(me.initStyle); - self.$stateTxt.text(me.settings.TXT_INIT_TIP); - self.$element.css({'min-height': winHeight - 40}).after(self.$stateBar); - } - - self.api = me.settings.API; - self.index = index; - self.page = oldState.page || me.settings.NUM_START_PAGE_INDEX; - self.currentState = oldState.page || 'none'; // 设置当前状态 - self.currentEventType = oldState.event || me.settings.EVE_EVENT_TYPE; // 临时存储事件类型,以供 _changeState 判断使用。 - - if (self.currentEventType === 'click') { - me._changeEvent('click', self); - } - if (oldState.top > 0) { - $('body').scrollTop(oldState.top); - } - - if (me._verify(self)) { - me._setNewTriggerPoint(self); - me._bind(self.currentEventType, self); - } - }, - /** - * 重新加载 - * @returns {obj} state 状态对象 - * @private - */ - _reload: function () { - var me = this; - var $loadmoreDom = $(me.settings.selector); - var state = {}; - // 清除事件绑定 - $(window).off('scroll.sq.loadmore'); - // 如果目标对象已经实例化过,就提取运行状态 - if ($loadmoreDom.data(scope)) { - var $stateBar = $loadmoreDom.next('.sq-loadMore-state'); - state.isReload = true; - state.page = $stateBar.data('page'); - state.event = $stateBar.data('event'); - state.top = parseInt($stateBar.data('top'), 10); - state.currentState = $stateBar.data('currentState'); - state.$stateBar = $stateBar; - } - return state; - }, - /** - * 验证 - * @returns {boolean} - * @private - */ - _verify: function (self) { - var me = this; - // Dom 验证,触发元素、数据展示元素、状态展示元素必须都存在 - if (me.$triggerTarget.length === 0 || self.$element.length === 0) { - console.warn('SQ.loadmore: Self[' + self.index + ']缺少 Dom 元素'); - return false; - } - // API 验证 - if (!self.api) { - console.warn('SQ.loadmore: Self[' + self.index + ']缺少 API 参数'); - return false; - } - return true; - }, - /** - * 事件绑定 - * @param {string} eventType - * @private - */ - _bind: function (eventType, self) { - var me = this; - me.$triggerTarget.on(eventType + '.sq.loadmore' + self.id, function () { - me._trigger(self); - }); - me.$win.on('scroll.sq.loadmore.setTop', function () { - me._setTopPosition(self); - }); - }, - /** - * 触发事件 - * @description 触发事件方法,在满足绑定事件条件时或满足指定触发条件的情况下调用触发方法, - * 该方法用于集中处理触发事件,判定是否需要加载数据或者更新 UI 显示。 - * @param {string} eventType EVE_EVENT_TYPE 事件类型,'scroll' 或 'click'。 - * @private - */ - _trigger: function (self) { - var me = this; - if (self.currentEventType === 'scroll') { - if (self.page < me.maxPage) { - (SQ.throttle(function () { - var isLoading = self.$stateBar.hasClass('loading'); - var isNoMore = self.$stateBar.hasClass('no-more'); - if (me.$triggerTarget.scrollTop() >= me.triggerHeight && !isLoading && !isNoMore) { - me._load(me._spliceApi(self), self); - } - }, me.scrollDelay)()); - } - if (self.page === me.maxPage) { - me._changeState('scrollEnd', self); - } - } else if (self.currentEventType === 'click') { - me._load(me._spliceApi(self), self); - } - }, - /** - * 重置计算参数 - * @private - */ - _setNewTriggerPoint: function (self) { - if (self.currentEventType === 'click') { - // 当为点击事件时,不用计算页面高度等数值。 - return; - } - var me = this; - var contentHeight = me._getHeight(document.querySelector('body')) || $('body').height(); - var winHeight = window.innerHeight || $(window).height(); - me.triggerHeight = (contentHeight - winHeight) * (me.settings.NUM_LOAD_POSITION); - if (me.settings.NUM_LOAD_POSITION < 0.8) { - me.settings.NUM_LOAD_POSITION += 0.15555; - } - }, - /** - * 转换绑定事件 - * @param {string} eventType - * @private - */ - _changeEvent: function (eventType, self) { - var me = this; - me.$triggerTarget.off('scroll.sq.loadmore' + self.id); - self.currentEventType = eventType; - self.$stateBar.data('event', eventType); // 记录事件状态 - if (eventType === 'click') { - me.$triggerTarget = self.$stateBar; // 变更触发目标,并将加载触发方式更改为 click - me._bind(eventType, self); // 重新绑定 - self.$stateBar.addClass('click').show(); - } else if (eventType === 'scroll') { - me.$triggerTarget = me.$win; - me._bind(eventType, self); - } - }, - /** - * 运行状态反馈 - * @description 该方法用于记录程序运行状态,并针对不同状态做出 UI 更新及事件重新绑定等操作。 - * @param {string} state 运行状态,值包括:loading、success、scrollEnd、noMore、loadError、unknowError。 - * @private - */ - _changeState: function (state, self) { - var me = this; - // 当预执行状态与程序当前运行状态相同时,退出状态变更方法,以避免多次重复操作。 - if (self.currentState === state) { - return; - } - self.currentState = state; - self.$stateBar.data('currentState', state); - // 状态判断 - switch (state) { - case 'loading': //正在加载阶段,添加 loading 标识,更新提示文字 - self.$stateTxt.text(me.settings.TXT_LOADING_TIP); - self.$stateBar.removeClass('loading').addClass('loading').show(); // 使用 CSS 特殊值技巧 - if (me.loadingFun) { - me.loadingFun(self.index); - } - break; - case 'success': //加载完成 - self.$stateBar.removeClass('loading'); - if (self.currentState === 'loadError') { - self.currentState = undefined; - } - if (self.currentEventType === 'scroll') { - self.$stateTxt.text(me.settings.TXT_INIT_TIP); - } - if (self.currentEventType === 'click') { - self.$stateTxt.text(me.settings.TXT_CLICK_TIP); - } - self.page += 1; - self.$stateBar.data('page', self.page); - break; - case 'scrollEnd': //滑动加载次数已达到上限 - me._changeEvent('click', self); - self.$stateTxt.text(me.settings.TXT_CLICK_TIP); - if (me.scrollEndFun) { - me.scrollEndFun(self.index); - } - break; - case 'noMore': // 无下页数据 - self.$stateBar.addClass('no-more').hide(); - break; - case 'loadError': // 加载错误提示 - self.currentState = 'loadError'; - me._changeEvent('click', self); - self.$stateTxt.text(me.settings.TXT_LOADED_ERROR); - self.$stateBar.removeClass('loading'); - if (me.loadErrorFun) { - me.loadErrorFun(self.index); - } - break; - } - }, - /** - * 数据加载 - * @param {string} api 请求数据的 API 接口。 - * @private - */ - _load: function (api, self) { - var me = this; - me._changeState('loading', self); - // 如果设置了 beforeLoadFun 回调函数,则 beforeLoadFun 必须返回 true 才能继续向下执行, - // 用于人为中断 _load 事件。 - if (me.beforeLoadFun) { - if (!me.beforeLoadFun()) { - return; - } - } - // 是否启用本地缓存 - if (me.settings.LOCAL_DATA) { - var localData = SQ.store.localStorage.get(api, me.settings.NUM_EXPIRES); - localData = SQ.isString(localData) ? $.parseJSON(localData) : localData; - if (localData) { - me._loadedResult(localData, self); - return; - } - } - if (!api || api.length === 0) { - return; - } - if (me.xhr) { - me.xhr.abort(); - } - me.xhr = $.ajax({ - type: me.settings.XHR_METHOD, - url: api, - timeout: me.settings.XHR_TIMEOUT, - success: function (data) { - me._loadedResult(data, self); - if (me.settings.LOCAL_DATA) { - SQ.store.localStorage.set(api, data); - } - }, - error: function () { - me._changeState('loadError', self); - } - }); - }, - /** - * 数据渲染 - * @param {object} data 服务器返回的数据 - * @private - */ - _loadedResult: function (data, self) { - var me = this; - var jsonData; - var code; - if (!data) { - me._changeState('loadError', self); - return; - } - jsonData = SQ.isString(data) ? $.parseJSON(data) : data; - // 简单模式 - // 会自动判断并更新运行状态,前提是数据格式必须要符合要求 - if (me.settings.MODE === 'simple') { - code = parseInt(jsonData.code, 10); - switch (code) { - case me.settings.NUM_SUCCESS_CODE: //成功加载 - me._changeState('success', self); - break; - case me.settings.NUM_NO_MORE_CODE: //无下页数据 - me._changeState('noMore', self); - break; - default: - me._changeState('loadError', self); - return; - } - } - if (me.loadFun) { - me.loadFun(jsonData, self.$element, self.index); - } - me._setNewTriggerPoint(self); - }, - /** - * 计算页面高度 - * @param el element 元素。 - * @returns {*} - * @private - */ - _getHeight: function (el) { - if (!el) { - console.warn('SQ.loadmore: 无法计算页面高度'); - return 0; - } - if (el.getBoundingClientRect) { - return el.getBoundingClientRect().height; - } - return Math.max(el.clientHeight, el.offsetHeight, el.scrollHeight); - }, - /** - * 接口拼接 - * @returns {*|string|LoadMore.api} - * @private - */ - _spliceApi: function (self) { - var me = this; - var connector = self.api.indexOf('?') === -1 ? '?' : '&'; - var api; - var j; - if (me.settings.RESTFUL) { - api = self.api.replace(':page', self.page); - for (j in me.settings.RESTFUL) { - if (me.settings.RESTFUL.hasOwnProperty(j)) { - api = api.replace(j, me.settings.RESTFUL[j]); - } - } - } else { - api = self.api + connector + 'page=' + self.page; - } - return api; - }, - _setTopPosition: function (self) { - self.$stateBar.data('top', $('body').scrollTop()); - } - }; - - $.fn.loadmore = function ( options ) { - //var isZepto = typeof Zepto !== 'undefined' ? true : false; - //var isJQuery = typeof jQuery !== 'undefined' ? true : false; - var plugin; - - options = options || {}; - options.selector = this.selector; - - if (!this.length) { - console.warn('SQ.loadmore: 未找到'+ this.selector +'元素'); - } - - this.each(function() { - /*if (isJQuery) { - if ( !$.data( this, scope ) ) { - $.data( this, scope, new LoadMore( this, options ) ); - } - } else if (isZepto) { - if (!$(this).data(scope)) { - plugin = new LoadMore( this, options ); - $(this).data(scope, 'initialized'); - } - }*/ - plugin = new LoadMore( this, options ); - $(this).data(scope, 'initialized'); - }); - // chain jQuery functions - return this; - }; - -})($); -/** - * @file SQ.Modal 弹窗插件 - * @version 1.6.0 - */ - -/** - * @changelog - * 1.6.0 * 重命名为 SQ.Modal - * * 删除 trigget 方法, - * * 优化 _setModalPos 方法 - * + 新增 DATA-API 调用方式, - * + 新增外部触发的事件,如 sq:modal:remove。 - * 1.5.1 * 为 ucweb 9.7 事件优化做兼容。 - * 1.5.0 * 重写插件,调用方式改为 $. 链式调用。 - * 1.0.3 * 修复 resize 导致报错的 BUG。 - * 1.0.2 * _setPopupPos 函数优化 - * 1.0.1 * 在设置了 ANIMATE 时,_setPopupPos 函数不使用 translate(-50%, -50%) 方法定位,因为会与动画产生冲突。 - * * 修复 ANIMATE 设置问题。 - * 1.0.0 * 原 Dialog 插件重构为 Popup 插件。 - */ - -/*global $, SQ, console, jQuery*/ -(function ($) { - 'use strict'; - /** - * @name Modal - * @classdesc 对话框插件。 - * @constructor - * @param {object} config 插件配置(下面的参数为配置项,配置会写入属性) - * @param {string} config.ANIMATE 动画类 - * @param {boolen} config.CANCEL_BTN 取消按钮显示设定,默认值:false - * @param {string} config.CSS_CLASS 弹窗样式类,支持添加多个类:'.style1 .style2' - * @param {string} config.CSS_POSITION 弹窗定位方式,默认值:'fixed', 可以设置为:'absolute' - * @param {number} config.CSS_TOP 弹窗 top 属性值 - * @param {number} config.CSS_RIGHT 弹窗 right 属性值 - * @param {number} config.CSS_BOTTOM 弹窗 bottom 属性值 - * @param {number} config.CSS_LEFT 弹窗 left 属性值 - * @param {number} config.CSS_WIDTH 弹窗 width 属性值 - * @param {number} config.CSS_HEIGHT 弹窗 height 属性值 - * @param {string} config.CSS_MASK_BACKGROUND 遮罩背景色,默认值:'#000000' - * @param {string} config.CSS_MASK_OPACITY 遮罩透明度,默认值:0.5 - * @param {boolen} config.CLOSE_BTN 关闭按钮显示设定,默认值:true - * @param {number} config.DELAY 延时显示对话框设置,单位:毫秒 - * @param {boolen} config.DISPOSABLE 设置弹窗是否是只显示一次,默认为 false - * @param {string} config.EVE_EVENT_TYPE 绑定事件设置,默认值为:'click' - * @param {boolen} config.HORIZONTAL 弹窗是否水平居中设定,值:'center' - * @param {boolen} config.LOCK 锁定操作,设为 true 将屏蔽触摸操作,默认为 false - * @param {boolen} config.MASK 遮罩设定,默认为 true - * @param {number} config.NUM_CLOSE_TIME 对话框自动关闭时间,单位:毫秒 - * @param {boolen} config.OK_BTN 去掉按钮显示设定,默认值:false - * @param {boolen} config.PREVENT_DEFAULT 默认动作响应设置,默认为 true,不响应默认操作 - * @param {boolen} config.VERTICAL 弹窗是否垂直居中设定,值:'middle' - * @param {string} config.TXT_CLOSE_VAL 关闭按钮显示文字,默认值:'×' - * @param {string} config.TXT_OK_VAL 确定按钮显示文字,默认值:'确定' - * @param {string} config.TXT_CANCEL_VAL 取消按钮显示文字,默认值:'取消' - * @param {function} config.beforeShow 打开弹窗前回调函数,该函数必须返回为 true 才能继续执行 show 函数 - * @param {function} config.show 打开弹窗回调函数 - * @param {function} config.ok 点击确定按钮回调函数 - * @param {function} config.cancel 点击取消按钮回调函数 - * @param {function} config.close 关闭对话框回调函数 - * @param {function} config.reszie resize 回调函数 - * @example $('.J_showFullModal').modal({ - CSS_CLASS: '.modal-demo', - CSS_TOP: 10, - CSS_RIGHT: 10, - CSS_BOTTOM: 10, - CSS_LEFT: 10, - DISPOSABLE: true, - beforeShow: function () { - var me = this; - me.$modalContent.append('全屏窗口'); - return true; - }, - close: function () { - tipModal('全屏窗口是一次性点击响应'); - } -}); - */ - - var scope = 'sq-modal'; - var defaults = { - EVE_EVENT_TYPE: 'click', - CSS_POSITION: 'fixed', - TXT_CLOSE_VAL: '×', - TXT_OK_VAL: '确定', - TXT_CANCEL_VAL: '取消', - PREVENT_DEFAULT: true, - LOCK: false, - MASK: true, - CSS_MASK_BACKGROUND: '#000000', - CSS_MASK_OPACITY: 0.5, - CLOSE_BTN: true - }; - - function Modal ( element, options ) { - this.element = element; - this.settings = $.extend( {}, defaults, options ); - this._defaults = defaults; - this.init(); - } - - Modal.prototype = { - construtor: 'Modal', - timer : undefined, - resizeTimer : false, // resize - closed : true, - init: function () { - var me = this; - - me.$win = $(window); - me.$doc = $(document); - me.$body = $('body'); - me.$target = $(me.settings.selector); - me.customEvent = me.settings.selector.replace('.', ':'); - - me.beforeShowFun = me.settings.beforeShow; - me.showFun = me.settings.show; - me.closeFun = me.settings.close; - me.okFun = me.settings.ok; - me.cancelFun = me.settings.cancel; - me.resizeFun = me.settings.resize; - - me._bind(); - }, - /** - * 事件绑定方法 - * @param {string} EVE_EVENT_TYPE 事件类型,'scroll' 或 'click'。 - * @private - */ - _bind: function () { - var me = this; - var event = me.settings.DISPOSABLE ? '.sq.modal.once' : '.sq.modal'; - me.$doc.on(me.settings.EVE_EVENT_TYPE + event, me.settings.selector, function (e) { - if (me.settings.PREVENT_DEFAULT) { - e.preventDefault(); - } - if (me.settings.DISPOSABLE) { - me.$target.addClass('disabled'); - me.$doc.off(me.settings.EVE_EVENT_TYPE + event); - } - if (me.settings.DELAY) { - setTimeout(function () { - me.show(e); - }, me.settings.DELAY); - return; - } - me.show(e); - }); - - me.$target.on('sq:modal:remove', function () { - me.close(); - }); - }, - /** - * 新建弹窗对象 - * @returns {*} $modalPanel - * @private - */ - _createModal: function () { - var me = this; - - if (me.$modalPanel) { - return me.$modalPanel; - } - // 初始化 - var $modalPanel = $('
'); - var $modalContent = $('
'); - var $close = $('
' + me.settings.TXT_CLOSE_VAL + '
'); - var $okBtn = $('
' + me.settings.TXT_OK_VAL + '
'); - var $cancelBtn = $('
' + me.settings.TXT_CANCEL_VAL + '
'); - - // 设置样式 - $modalPanel.css({ - 'position' : me.settings.CSS_POSITION, - 'width' : me.settings.CSS_WIDTH, - 'height' : me.settings.CSS_HEIGHT, - 'z-index' : 1000 - }); - - if (me.settings.CSS_CLASS) { - var cssClasses = me.settings.CSS_CLASS.split(' '); - var i; - var len = cssClasses.length; - for (i = 0; i < len; i++) { - var cssClass = cssClasses[i]; - $modalPanel.addClass(cssClass.indexOf('.') === 0 ? cssClass.slice(1) : cssClass); - } - } - - // 装载内容 - $modalPanel.append($modalContent); - // 设置显示按钮 - if (me.settings.CLOSE_BTN) { - $modalPanel.append($close); - } - if (me.settings.OK_BTN) { - $modalPanel.append($okBtn); - } - if (me.settings.CANCEL_BTN) { - $modalPanel.append($cancelBtn); - } - - $modalPanel.appendTo(me.$body); - // 保存 Dom - me.$modalPanel = $modalPanel; - me.$modalContent = $modalContent; - me.$okBtn = $okBtn; - me.$cancelBtn = $cancelBtn; - me.$close = $close; - - return $modalPanel; - }, - /** - * 设置弹窗位置 - * @private - */ - _setModalPos: function () { - var me = this; - var supportBroswer = 'chrome'; - var isAnimate = me.settings.ANIMATE; - var isMiddle = me.settings.VERTICAL === 'middle' ? true : false; - var isCenter = me.settings.HORIZONTAL === 'center' ? true : false; - var isSupportTransform = SQ.ua.browser.shell === 'ucweb' && SQ.ua.browser.version >= 9 || supportBroswer.indexOf(SQ.ua.browser.shell) !== -1; - - // 垂直居中时使用的 top 值,下面使用时会进行修正 - var verticalCenterTop; - if (me.settings.CSS_POSITION === 'fixed') { - verticalCenterTop = '50%'; - } else if (me.settings.CSS_POSITION === 'absolute') { - var winHeight = window.innerHeight || me.$win.height(); - verticalCenterTop = me.$body.scrollTop() + winHeight / 2; - } - var mt = me.settings.CSS_HEIGHT ? me.settings.CSS_HEIGHT / 2 * -1 : me.$modalPanel.height() / 2 * -1; - var ml = me.settings.CSS_WIDTH ? me.settings.CSS_WIDTH / 2 * -1 : me.$modalPanel.width() / 2 * -1; - var css = { - 'top': me.settings.CSS_TOP || 'auto', - 'left': me.settings.CSS_LEFT || 'auto', - 'bottom': me.settings.CSS_BOTTOM || 'auto', - 'right': me.settings.CSS_RIGHT || 'auto' - }; - - // 当坐标全部未设置时给一个默认值,避免弹窗定位到页面最底部 - if (!me.settings.CSS_TOP && !me.settings.CSS_BOTTOM) { - css.top = 0; - } - if (!me.settings.CSS_LEFT && !me.settings.CSS_RIGHT) { - css.left = 0; - } - - if (isMiddle && isCenter) { - // 同时居中 - css.top = verticalCenterTop; - css.left = '50%'; - if (isSupportTransform && !isAnimate) { - css['-webkit-transform'] = 'translate(-50%, -50%)'; - } else { - css['margin-top'] = mt; - css['margin-left'] = ml; - } - } else if (isMiddle) { - // 垂直居中 - css.top = verticalCenterTop; - if (isSupportTransform && !isAnimate) { - css['-webkit-transform'] = 'translateY(-50%)'; - } else { - css['margin-top'] = mt; - } - } else if (isCenter) { - // 水平居中 - css.left = '50%'; - if (isSupportTransform && !isAnimate) { - css['-webkit-transform'] = 'translateX(-50%)'; - } else { - css['margin-left'] = ml; - } - } - me.$modalPanel.css(css); - }, - /** - * 设置弹窗事件 - * @private - */ - _setModalEvent : function () { - var me = this; - // 锁定操作 - if (me.settings.LOCK) { - // 优化 Android 下 UCweb 浏览器触摸操作,减少滑动误操作 - // Ucweb 9.7 以后对 click 事件做了优化,取消 touchstart 默认操作会导致点击事件失效 - if (SQ.ua.os.name === 'android' && SQ.ua.browser.shell === 'ucweb' && SQ.ua.browser.version >= 9 && SQ.ua.browser.version < 9.7) { - me.$modalPanel.on('touchstart', function (e) { - e.preventDefault(); - }); - } else { - me.$modalPanel.on('touchmove', function (e) { - e.preventDefault(); - }); - } - me.$modalPanel.on('mousewheel', function (e) { - e.preventDefault(); - }); - } - me.$okBtn.on('click', function () { - me.ok(); - }); - me.$cancelBtn.on('click', function () { - me.cancel(); - }); - me.$close.on('click', function () { - me.close(); - }); - me.$win.resize(function () { - me.resize(); - }); - }, - _beforeShow: function (e) { - var me = this; - // 创建弹窗 - me.$modalPanel = me._createModal(); - // 绑定弹窗事件 - me._setModalEvent(); - // 添加动画 - if (me.settings.ANIMATE) { - var animateClassName = me.settings.ANIMATE.indexOf('.') === 0 ? me.settings.ANIMATE.slice(1) : me.settings.ANIMATE; - me.$modalPanel.addClass('animated ' + animateClassName); - } - // 为 DATA-API 模式触发自定义的 beforeShow 事件, - // 自定义 beforeShow 事件不同于 beforeShowFun,它无法接收返回 true | false 从而判断是否继续执行 - me.$target.trigger('sq:modal:beforeShow', [me]); - // 执行回调函数 - if (me.beforeShowFun) { - return me.beforeShowFun(e); - } - return true; - }, - /** - * 显示对话框 - * @param e - */ - show: function (e) { - var me = this; - if (!me.closed) { - return; - } - if (!me._beforeShow(e)) { - console.warn('SQ.Modal: _beforeShow function return false'); - return; - } - me.closed = false; - if (me.settings.MASK) { - me.mask(); - } - // 为 DATA-API 模式触发自定义事件 - me.$target.trigger('sq:modal:show', [me]); - // 执行回调函数,优先执行 show 回调函数可以确定弹窗中的内容,从而方便计算弹窗尺寸。 - if (me.showFun) { - me.showFun(e); - } - // 设置弹窗位置 - me._setModalPos(); - me.$modalPanel.show(); - // 设置自动关闭 - if (me.settings.NUM_CLOSE_TIME) { - me.time(me.settings.NUM_CLOSE_TIME); - } - }, - /** - * 关闭对话框 - * @param type - */ - close: function (type) { - var me = this; - // 清除定时关闭 - if (me.timer) { - clearTimeout(me.timer); - } - if (me.$modalPanel) { - me.$modalPanel.remove(); - me.$modalContent.empty(); - me.$modalPanel = null; - } - if (me.settings.MASK) { - me.$mask.hide(); - } - me.closed = true; - // 为 DATA-API 模式触发自定义事件 - me.$target.trigger('sq:modal:close', [me]); - if (me.closeFun && !type) { - me.closeFun(); - } - }, - /** - * 定时关闭 - * @param {Number} 单位为秒, 无参数则停止计时器 - */ - time: function (second) { - var me = this; - if (!me.closed) { - me.timer = setTimeout(function () { - me.close(); - }, second); - } - }, - /** 显示遮罩 */ - mask: function () { - var me = this; - var bodyH = me.$body.height(); - var winH = me.$win.height(); - var h = bodyH > winH ? bodyH : winH; - var $mask = me.$mask || $('.sq-mask').length > 0 ? $('.sq-mask') : undefined; - - if ($mask) { - $mask.css({ - 'width' : '100%', - 'height' : h - }); - $mask.show(); - } else { - $mask = $('
'); - $mask.css({ - 'position': 'absolute', - 'top': 0, - 'left': 0, - 'right': 0, - 'width': '100%', - 'height': h, - 'background': me.settings.CSS_MASK_BACKGROUND, - 'opacity': me.settings.CSS_MASK_OPACITY, - 'z-index': 999 - }).appendTo(me.$body); - - if (me.settings.LOCK) { - $mask.on('touchstart', function (e) { - e.preventDefault(); - }); - $mask.on('mousewheel', function (e) { - e.preventDefault(); - }); - } - } - me.$mask = $mask; - }, - ok: function (e) { - var me = this; - me.close('ok'); - // 为 DATA-API 模式触发自定义事件 - me.$target.trigger('sq:modal:ok', [me]); - if (me.okFun) { - me.okFun(e); - } - }, - cancel: function (e) { - var me = this; - me.close('cancel'); - // 为 DATA-API 模式触发自定义事件 - me.$target.trigger('sq:modal:cancel', [me]); - if (me.cancelFun) { - me.cancelFun(e); - } - }, - resize: function () { - var me = this; - if (me.$modalPanel) { - me._setModalPos(); - } - } - }; - - $.fn.modal = function ( options ) { - var isZepto = typeof Zepto !== 'undefined' ? true : false; - var isJQuery = typeof jQuery !== 'undefined' ? true : false; - var plugin; - var me = this; - - if (SQ.isObject(options)) { - options = options || {}; - // 当使用 $(this).modal({...}) 调用时,无法获取 this.selector 值, - // 所以去手动获取该 DOM 的类名 - options.selector = this.selector || '.' + this[0].className.split(' ').join('.'); - } - - // 如果页面中没有指定的 Dom 则生成一个插入到文档中,避免因 trigger() 触发 Modal 时找不到该 Dom 而报错。 - if ($(this.selector).length === 0) { - me = $(''); - me.selector = this.selector; - $('body').append(me); - } - - - me.each(function() { - if (isJQuery) { - if ( !$.data( this, scope ) ) { - $.data( this, scope, new Modal( me, options ) ); - } - } else if (isZepto) { - if (!me.data(scope)) { - plugin = new Modal( me, options ); - me.data(scope, 'initialized'); - } - } - }); - // chain jQuery functions - return me; - }; - - - // DATA-API - // =============== - $(document).ready(function () { - $('[data-'+ scope +']').each(function () { - var $me = $(this); - var pluginSetting = $me.data(scope); - if (SQ.isObject(pluginSetting)) { - $me.modal(pluginSetting); - } - }); - }); -})($); -/** - * @file SQ.Panel 滑动面板插件 - * @version 1.0.2 - */ - -/** - * @changelog - * 1.0.2 * 使用了新增的手势事件,适应调整后的 jsHint 规则。 - * 1.0.1 * 为 ucweb 9.7 事件优化做兼容,增加 selector Dom 验证。 - * 1.0.0 * 重写插件,调用方式改为 $. 链式调用。 - * 0.5.0 * 完成左侧滑动面板功能 - * 0.0.1 * 新建。 - */ - -/*global $, SQ, console, jQuery */ -(function ($) { - 'use strict'; - /** - * @name Panel - * @classdesc 内容延迟加载 - * @constructor - * @param {object} config 插件配置(下面的参数为配置项,配置会写入属性) - * @param {string} config.CLOSE_BTN 是否显示关闭按钮,默认为:false - * @param {number} config.CSS_WIDTH 面板宽度,默认为:300px - * @param {string} config.DOM_WRAPPER 页面包装节点,当 DISPLAY 设置为 push 时,该节点会应用动画 - * @param {string} config.DIRECTION 出现方向,默认为:left - * @param {string} config.DISPLAY 显示模式,默认为:overlay,可选 push - * @param {string} config.EVE_EVENT_TYPE 触发方式,默认为:click - * @param {string} config.TXT_CLOSE_VAL 关闭按钮显示文字,默认为:'×' - * @param {function} config.beforeShow 打开面板前回调函数,该函数必须返回为 true 才能继续执行 show 函数 - * @param {function} config.show($activePanel) 打开面板时回调函数 - * @param {function} config.close 关闭面板时回调函数 - * @param {function} config.resize resize 回调函数 - * @example $('.J_panelMenu').panel({ - CSS_CLASS: '.panel-menu', - CSS_WIDTH: 240, - beforeShow: function () { - console.log('beforeShow'); - return true; - }, - show: function () { - console.log('show'); - } -}); - */ - - var scope = 'sq-panel'; - var defaults = { - EVE_EVENT_TYPE: 'click', - DISPLAY: 'overlay', - DIRECTION: 'left', - CSS_WIDTH: 300, - CLOSE_BTN: false, - TXT_CLOSE_VAL: '×' - }; - - function Panel ( element, options ) { - this.element = element; - this.settings = $.extend( {}, defaults, options ); - this._defaults = defaults; - this.init(); - } - - Panel.prototype = { - construtor: 'Panel', - resizeTimer: false, - closed: true, - init: function () { - var me = this; - var css = '@-webkit-keyframes showPanel {0% {-webkit-transform: translateX(-'+ me.settings.CSS_WIDTH +'px);} 100% {-webkit-transform: translateX(0);}}' + - '@-webkit-keyframes hidePanel{0% {-webkit-transform: translateX(0);}100% {-webkit-transform: translateX(-'+ me.settings.CSS_WIDTH +'px);}}'; - if (me.settings.DISPLAY === 'push') { - css += '@-webkit-keyframes hideWrap {0% {-webkit-transform: translateX(0);}100% {-webkit-transform: translateX('+ me.settings.CSS_WIDTH +'px);}}' + - '@-webkit-keyframes showWrap {0% {-webkit-transform: translateX('+ me.settings.CSS_WIDTH +'px);}100% {-webkit-transform: translateX(0);}}'; - } - - me.$win = $(window); - me.$doc = $(document); - me.$body = $('body'); - me.$element = $(me.element); // 触发元素 - me.$wrapper = $(me.settings.DOM_WRAPPER); - - me.beforeShowFun = me.settings.beforeShow; - me.showFun = me.settings.show; - me.closeFun = me.settings.close; - me.resizeFun = me.settings.resize; - - if (me._verify()) { - me._bind(); - me.$body.append(''); - } - }, - /** - * 验证 - * @returns {boolean} - * @private - */ - _verify: function () { - var me = this; - // Dom 验证,触发元素、数据展示元素、状态展示元素必须都存在 - if (me.$element.length === 0 || me.$wrapper.length === 0) { - console.warn('SQ.panel: 缺少 Dom 元素'); - return false; - } - return true; - }, - /** - * 事件绑定方法 - * @param {string} EVE_EVENT_TYPE 事件类型,'scroll' 或 'click'。 - * @private - */ - _bind: function () { - var me = this; - // 绑定在 document 上是为了解决 Ajax 内容绑定问题 - SQ.gestures.tap({ - el: me.settings.selector, - event: '.sq.panel', - callbackFun: function (e) { - e.preventDefault(); - me.show(e); - } - }); - }, - /** - * 新建滑动面板对象 - * @returns {*} $panel - * @private - */ - _createPanel: function () { - var me = this; - - // 初始化 - var $panel = $('
'); - var $panelContent = $('
'); - var $close = $('
' + me.settings.TXT_CLOSE_VAL + '
'); - - // 设置样式 - if (me.settings.DIRECTION === 'left' || me.settings.DIRECTION === 'right') { - $panel.css({ - 'position': 'absolute', - 'display': 'none', - 'top': 0, - 'bottom': 0, - 'width': me.settings.CSS_WIDTH, - 'z-index': 1000 - }); - } - - if (me.settings.CSS_CLASS) { - $panel.addClass(me.settings.CSS_CLASS.indexOf('.') === 0 ? me.settings.CSS_CLASS.slice(1) : me.settings.CSS_CLASS); - } - // 装载内容 - $panel.append($panelContent); - // 设置显示按钮 - if (me.settings.CLOSE_BTN) { - $panel.append($close); - } - - $panel.appendTo(me.$body); - // 保存 Dom - me.$panel = $panel; - me.$panelContent = $panelContent; - me.$close = $close; - - return $panel; - }, - /** - * 设置滑动面板事件 - * @private - */ - _setPanelEvent: function () { - var me = this; - // 锁定操作 - // 优化 Android 下 UCweb 浏览器触摸操作,减少滑动误操作 - if (SQ.ua.os.name === 'android' && SQ.ua.browser.shell === 'ucweb' && SQ.ua.browser.version >= 9 && SQ.ua.browser.version < 9.7) { - me.$panel.on('touchstart', function (e) { - e.preventDefault(); - }); - } else { - me.$panel.on('touchmove', function (e) { - e.preventDefault(); - }); - } - me.$panel.on('mousewheel', function (e) { - e.preventDefault(); - }); - me.$close.on('click', function () { - me.close(); - }); - - me.$win.resize(function () { - me.resize(); - }); - }, - /** - * - * @param e - * @returns {*} - * @private - */ - _beforeShow: function (e) { - var me = this; - // 如果没有找到面板就创建新的面板,并执行 _beforeShow 回调函数 - // _beforeShow 函数只在首次执行时运行一次 - if (!me.$panel) { - me.$panel = me._createPanel(); - me._setPanelEvent(); - if (me.beforeShowFun) { - return me.beforeShowFun(e); - } - return true; - } - return true; - }, - /** - * 显示对话框 - * @param e - */ - show: function (e) { - var me = this; - if (!me.closed) { - return; - } - if (!me._beforeShow(e)) { - console.warn('SQ.Panel: _beforeShow 回调函数返回 false'); - return; - } - me.mask(); - me.$panel.removeClass('sq-hidePanel').addClass('animated sq-showPanel fast'); - me.$wrapper.removeClass('sq-showWrap').addClass('animated sq-hideWrap fast'); - me.closed = false; - // 执行回调函数。 - if (me.showFun) { - me.showFun(me.$panel); - } - - me.$panel.show(); - }, - /** 显示遮罩 */ - mask: function () { - var me = this; - var bodyH = me.$body.height(); - var winH = me.$win.height(); - var h = bodyH > winH ? bodyH : winH; - - if (me.$mask) { - me.$mask.css({ - 'width': '100%', - 'height': h - }); - me.$mask.show(); - } else { - var $mask = $('
'); - $mask.css({ - 'position': 'absolute', - 'top': 0, - 'left': 0, - 'right': 0, - 'width': '100%', - 'height': h, - //'background': 'rgba(255,255,255,.5)', - 'z-index': 999 - }).appendTo(me.$body); - - $mask.on('touchstart', function (e) { - e.preventDefault(); - // 当屏蔽 touchstart 事件后其它浏览器不能响应 click 事件,所以注册一个关闭方法。 - // ucweb 9.7 也不能响应 click 事件。 - if (SQ.ua.browser.shell !== 'ucweb' || SQ.ua.browser.version >= 9.7) { - me.close(); - } - }); - SQ.gestures.tap({ - el: $mask, - callbackFun: function (e) { - e.preventDefault(); - me.close(); - } - }); - $mask.on('mousewheel', function (e) { - e.preventDefault(); - }); - - me.$mask = $mask; - } - }, - /** - * 关闭对话框 - * @param e - */ - close: function (type) { - var me = this; - me.$panel.removeClass('sq-showPanel').addClass('sq-hidePanel'); - me.$wrapper.removeClass('sq-hideWrap').addClass('sq-showWrap'); - me.$mask.hide(); - me.closed = true; - if (me.closeFun && !type) { - me.closeFun(); - } - }, - resize: function () { - - }, - destroy: function () { - var me =this; - me.$panel.remove(); - me.$panelContent.empty(); - me.$panel = null; - } - }; - - $.fn.panel = function ( options ) { - var isZepto = typeof Zepto !== 'undefined' ? true : false; - var isJQuery = typeof jQuery !== 'undefined' ? true : false; - var plugin; - - options = options || {}; - options.selector = this.selector; - - if (!this.length) { - console.warn('SQ.panel: 未找到'+ this.selector +'元素'); - } - - this.each(function() { - if (isJQuery) { - if ( !$.data( this, scope ) ) { - $.data( this, scope, new Panel( this, options ) ); - } - } else if (isZepto) { - if (!$(this).data(scope)) { - plugin = new Panel( this, options ); - $(this).data(scope, 'initialized'); - } - } - }); - // chain jQuery functions - return this; - }; - -})($); -/** - * @file SQ.Suggest 联想词插件 - * @version 1.0.0 - */ - -/** - * @changelog - * 1.0.0 * 重写插件,调用方式改为 $. 链式调用。 - * 0.5.10 * 修复 jshint 问题 - * 0.5.9 * 修复在输入搜索后删除搜索词,再次输入相同字符,首字符无请求问题。issues#11 - * 0.5.8 * 修复 IE 下对 XHR 对象处理问题。 - * 0.5.7 * 修复多次发送请求时,老请求因为响应慢覆盖新请求问题。 - * 0.5.6 * 修改插件名称为 Suggest。 - * 0.5.5 * 完成搜索联想词基本功能。 - * 0.0.1 + 新建。 - */ - -/*global $, SQ, console, jQuery */ -(function ($) { - 'use strict'; - /** - * @name Suggest - * @classdesc 搜索联想词插件 - * @constructor - * @param {object} config 插件配置(下面的参数为配置项,配置会写入属性) - * @param {string} config.API 联想词接口 - * @param {string} config.CSS_CLEAR_BTN 设置清空按钮样式名称,默认为 .sq-suggest-clear-btn - * @param {string} config.CSS_SUGGEST_PANEL 设置联想词展示面板样式名称,默认为 .sq-suggest-result - * @param {number} config.NUM_TIMER_DELAY 监测输入框间隔时长,默认为 300ms - * @param {number} config.NUM_XHR_TIMEER XHR 超时时长,默认为 5000ms - * @param {number} config.NUM_SUCCESS_CODE XHR 成功状态码,默认为 200 - * @param {function} config.beforeStart 检测输入框前的回调函数 - * @param {function} config.start 开始检测输入框时回调函数 - * @param {function} config.show(data) 显示联想词面板时回调函数,data 为 XHR 返回数据 - * @param {function} config.clear 清除时回调函数 - * @example $('.J_suggest').suggest({ - API: 'data/suggest.json', - CSS_CLEAR_BTN: '.clear', - CSS_SUGGEST_RESULT: '.suggest-panel', - show: function (data) { - var me = this; - console.log('suggestList: ' + data); - } -}); - */ - var scope = 'sq-suggest'; - var defaults = { - NUM_TIMER_DELAY : 300, - NUM_XHR_TIMEER : 5000, - NUM_SUCCESS_CODE : 200, - suggestion : true - }; - - function Suggest ( element, options ) { - this.element = element; - this.settings = $.extend( {}, defaults, options ); - this._defaults = defaults; - this.init(); - } - - Suggest.prototype = { - construtor: 'Suggest', - lastKeyword: '', // 为 300ms(检测时长) 前的关键词 - lastSendKeyword : '', // 上一次符合搜索条件的关键词 - canSendRequest : true, // 是否可以进行下次联想请求 - init: function () { - var me = this; - var clearBtnClassName = ''; - var suggestResultClassName = ''; - - if (me.settings.CSS_CLEAR_BTN) { - clearBtnClassName = me.settings.CSS_CLEAR_BTN.indexOf('.') !== -1 ? me.settings.CSS_CLEAR_BTN.slice(1) : me.settings.CSS_CLEAR_BTN; - } - if (me.settings.CSS_SUGGEST_RESULT) { - suggestResultClassName = me.settings.CSS_SUGGEST_RESULT.indexOf('.') !== -1 ? me.settings.CSS_SUGGEST_RESULT.slice(1) : me.settings.CSS_SUGGEST_RESULT; - } - - me.$element = $(me.element); - me.$input = me.$element.find('input[type=text]'); - me.$clearBtn = $('
').addClass(clearBtnClassName); - me.$suggestPanel = $('
').addClass(suggestResultClassName); - - me.$input.after(me.$clearBtn); - me.$element.append(me.$suggestPanel); - - me.beforeStartFun = me.settings.beforeStart; - me.startFun = me.settings.start; - me.clearFun = me.settings.clear; - me.showFun = me.settings.show; - - if (me._verify()) { - me._bind(); - } - }, - _verify : function () { - return true; - }, - _bind : function (e) { - var me = this; - me.$input.on('focus', function () { - me.start(); - }); - me.$input.on('blur', function () { - me.stop(); - }); - me.$clearBtn.on('click', function () { - me.clear(); - }); - if (me.beforeStartFun) { - me.beforeStartFun(); - } - }, - /** 过滤输入内容 */ - _filter : function (originalKeyword) { - return originalKeyword.replace(/\s+/g, '').replace(/[^\u4e00-\u9fa5a-zA-Z0-9]/g, ''); - }, - /** 初始化提示层容器 */ - _initSuggest : function () { - var me = this; - me.$suggestPanel.empty(); - }, - /** 请求数据 */ - _requestData : function (keyword) { - var me = this; - var api = me.settings.API; - - //console.log('request -> ' + 'keyword: ' + keyword, 'lastSendKeyword: ' + me.lastSendKeyword); - if (me.xhr) { - me.xhr.abort(); - } - me.xhr = $.ajax({ - type : 'POST', - url : api, - dataType : 'json', - data : {'keyword': keyword}, - timeout : me.settings.NUM_XHR_TIMEER, - success : function (data) { - me.showSuggest(data); - me.lastSendKeyword = keyword; - }, - error : function () { - me.canSendRequest = false; - setTimeout(function () { - me.canSendRequest = true; - }, 500); - } - }); - }, - _compare : function (keyword) { - var me = this; - var cLen = keyword.length; - var lsLen = me.lastSendKeyword.length; - //console.log('keyword: ' + keyword, 'lastSendKeyword: ' + me.lastSendKeyword); - - if (me.lastKeyword === keyword) { - //console.log('same ' + 'me.lastKeyword = ' + me.lastKeyword + ' | ' + 'keyword = ' + keyword + ' | ' + 'me.lastSendKeyword =' + me.lastSendKeyword); - return false; - } - - if (lsLen > 0 && cLen < lsLen) { - me.canSendRequest = true; - } - - if (!me.canSendRequest) { - // canSendRequest 为能否发送请求的判断条件 - // 有几种情况会改变 canSendRequest 的值: - // true 情况 - // 1、当前输入关键词少于上次发送请求关键词时,canSendRequest 为 true - // 2、请求服务器成功返回并有联想结果时,canSendRequest 为 true - // 3、调用 clear() 函数时,canSendRequest 为 true - // 4、请求服务器失败,500ms 后 canSendRequest 为 true - // false 情况 - // 1、请求服务器成功,但返回的 code 与 NUM_SUCCESS_CODE 不一致,canSendRequest 为 false - // 2、请求服务器失败,canSendRequest 为 false - //console.log('!canSendRequest'); - return false; - } - if (me.lastSendKeyword === keyword) { - //console.log('关键词相同') - return false; - } - return true; - }, - /** 启动计时器,开始监听用户输入 */ - start : function () { - var me = this; - me.inputListener = setInterval(function () { - var originalKeyword = me.$input.val(); - var keyword = me._filter(originalKeyword); - - if (keyword.length > 0) { - if (me.$clearBtn.css('display') === 'none') { - me.$clearBtn.show(); - } - if (me._compare(keyword)) { - me._requestData(keyword); - if (me.startFun) { - me.startFun(); - } - } - me.lastKeyword = keyword; - } else { - me.lastKeyword = undefined; - me.clear(); - } - }, me.settings.NUM_TIMER_DELAY); - }, - /** 停止计时器 */ - stop : function () { - var me = this; - clearInterval(me.inputListener); - }, - /** 显示提示层 */ - showSuggest : function (data) { - var me = this; - var ds = typeof data === 'object' ? data : JSON.parse(data); - if (ds.code !== me.settings.NUM_SUCCESS_CODE) { - me.canSendRequest = false; - return; - } - me.canSendRequest = true; - me._initSuggest(); - if (me.showFun) { - me.showFun(ds); - } - }, - /** 隐藏提示层 */ - hideSuggest : function () { - var me = this; - me.$suggestPanel.hide(); - }, - /** 清除输入内容 */ - clear : function () { - var me = this; - me.$input.val(''); - me.hideSuggest(); - me.$clearBtn.hide(); - me.canSendRequest = true; - me.lastSendKeyword = ''; - if (me.clearFun) { - me.clearFun(); - } - } - }; - - $.fn.suggest = function ( options ) { - var isZepto = typeof Zepto !== 'undefined' ? true : false; - var isJQuery = typeof jQuery !== 'undefined' ? true : false; - var plugin; - - options = options || {}; - options.selector = this.selector; - - this.each(function() { - if (isJQuery) { - if ( !$.data( this, scope ) ) { - $.data( this, scope, new Suggest( this, options ) ); - } - } else if (isZepto) { - if (!$(this).data(scope)) { - plugin = new Suggest( this, options ); - $(this).data(scope, 'initialized'); - } - } - }); - // chain jQuery functions - return this; - }; - -})($); -/** - * @file SQ.Tab 选项卡插件 - * @version 1.0.2 - */ - -/** - * @changelog - * 1.0.2 * 使用了新增的手势事件,适应调整后的 jsHint 规则。 - * 1.0.1 * 添加 _verify 验证 DOM 的提示。 - * 1.0.0 * 重写插件,调用方式改为 $. 链式调用。 - * 0.7.5 * 修改类名,新增 beforeLoad 、loaded 回调函数的传参。 - * 0.7.4 * 解决 localStorage 问题,API 兼容 ['','test.json',''] 这种写法; - * * CSS_LOADING_TIP 兼容 '.demo' 和 'demo' 写法。 - * 0.7.3 * 修复 reload 按钮多次绑定问题。 - * 0.7.2 * 修复初始化时,me.$loadingTip 无法找到的问题。 - * 0.7.1 * 修复 jshint 问题。 - * 0.7.0 + 添加对 localStorage 支持,通过将 LOCAL_DATA 设置为 true 开启,通过 NUM_EXPIRES 来设置过期时间(单位:分钟)。 - * 0.6.1 * 屏蔽 click 默认动作,新增自定义 CSS_HIGHLIGHT 属性。 - * 0.6.0 * 重写 Tabs 插件,使 Tabs 插件能够在同一页面多次实例化。 - * 0.5.6 * 修改插件名称为 Tabs。 - * 0.5.1 * 完成选项卡基本功能。 - * 0.0.1 + 新建。 - */ -/*global $, SQ, console, jQuery */ -(function ($) { - 'use strict'; - /** - * @name Tab - * @classdesc 选项卡插件 - * @constructor - * @param {object} config 插件配置(下面的参数为配置项,配置会写入属性) - * @param {string} config.API API 接口① 字符串形式 - * @param {array} config.API API 接口② 数组形式,数组中各项对应各个选项卡 - * @param {boolean} config.CLEAR_PANEL 切换选项卡时是否自动清理面板数据 - * @param {string} config.CSS_HIGHLIGHT 自定义高亮样式名称,默认为 .active - * @param {string} config.CSS_LOADING_TIP loading 提示样式 - * @param {string} config.DOM_PANELS 面板 Dom 元素 - * @param {string} config.DOM_TABS 标签 Dom 元素 - * @param {string} config.EVE_EVENT_TYPE 触发事件,click 或 mouseover - * @param {string} config.LOCAL_DATA XHR 数据 loaclstorage 开关,默认为 false - * @param {number} config.NUM_ACTIVE 初始高亮选项卡序号,0 - n - * @param {number} config.NUM_EXPIRES XHR 数据 loaclstorage 过期时间(单位:分钟),默认为 15 分钟 - * @param {number} config.XHR_TIMEOUT XHR 超时时间 - * @param {number} config.XHR_METHOD XHR 请求方法,默认为 POST - * @param {string} config.TXT_LOADING_TIP loading 提示文字 - * @param {function} config.trigger($tabs,$panels,tabIndex) 触发选项卡切换回调函数 - * @param {function} config.show($tabs,$panels,tabIndex) 显示选项卡时回调函数 - * @param {function} config.beforeLoad($activePanel,tabIndex) 异步加载前回调函数,当设定了该回调函数时,必须返回 - * true 才能继续执行,异步加载事件,可中断异步加载事件。 - * 参数:$activePanel 是当前激活的面板 - * @param {function} config.loaded(data,$activePanel,tabIndex) 异步加载成功回调函数,参数:data 是异步加载返回数据 - * 参数:$activePanel 是当前激活的面板 - * @example $('.J_tabs').tab({ - API: ['data/content1.json', 'data/content2.json', ''], - DOM_TABS: '.sq-nav-tabs>li', - DOM_PANELS: '.sq-tab-content', - CSS_LOADING_TIP: '.tab-loading-tip', - show: function ($tabs, $panels, tabIndex) { - - }, - loaded: function (data, $activePanel) { - - } -}); - */ - var scope = 'sq-tab'; - var defaults = { - EVE_EVENT_TYPE: 'click', - CSS_HIGHLIGHT: '.active', - CLEAR_PANEL : false, - LOCAL_DATA: false, - NUM_ACTIVE : 0, - XHR_TIMEOUT : 5000, - NUM_EXPIRES: 15, - TXT_LOADING_TIP : '正在加载请稍后...', // 正在加载提示 - XHR_METHOD: 'POST' - }; - - function Tab ( element, options ) { - this.element = element; - this.settings = $.extend( {}, defaults, options ); - this._defaults = defaults; - this.init(); - } - - Tab.prototype = { - construtor: 'Tab', - needLoadContent : false, // 选项卡内容是否需要异步加载 - init: function () { - var me = this; - - if (me.settings.CSS_LOADING_TIP) { - me.CSS_LOADING_TIP = me.settings.CSS_LOADING_TIP.indexOf('.') === 0 ? me.settings.CSS_LOADING_TIP.slice(1) : me.settings.CSS_LOADING_TIP; - } - me.CSS_HIGHLIGHT = me.settings.CSS_HIGHLIGHT.indexOf('.') === 0 ? me.settings.CSS_HIGHLIGHT.slice(1) : me.settings.CSS_HIGHLIGHT; - - me.$element = $(me.element); // 目标元素 - me.tabsLen = me.$element.length; - - me.triggerFun = me.settings.trigger; - me.showFun = me.settings.show; - me.beforeLoadFun = me.settings.beforeLoad; - me.loadFun = me.settings.loaded; - - me.$element.each(function () { - var $tabMould = $(this); - var $tabs = $tabMould.find(me.settings.DOM_TABS); - var $panels = $tabMould.find(me.settings.DOM_PANELS); - if (me._verify($tabs, $panels)) { - me._init($tabMould, $tabs, $panels); - } - }); - }, - _verify: function ($tabs, $panels) { - if (!$tabs.length) { - console.warn('SQ.tab: 参数 DOM_TABS 错误,'+ this.settings.selector +'下未找到'+ this.settings.DOM_TABS +'元素'); - return false; - } - if (!$panels.length) { - console.warn('SQ.tab: 参数 DOM_PANELS 错误,'+ this.settings.selector +'下未找到'+ this.settings.DOM_PANELS +'元素'); - return false; - } - return true; - }, - _init: function ($tabMould, $tabs, $panels) { - var me = this; - var i = 0; - // 为选项卡添加序号 - $tabs.each(function () { - $(this).attr('data-tabIndex', i); - i++; - }); - // 判断是否需要生成异步加载提示语 - if (me.settings.API && (SQ.isString(me.settings.API) || SQ.isArray(me.settings.API))) { - me.$loadingTip = $('
'); - if (me.CSS_LOADING_TIP) { - me.$loadingTip.addClass(me.CSS_LOADING_TIP); - } else { - me.$loadingTip.css({ - 'height' : 60, - 'text-align' : 'center', - 'line-height' : '60px' - }); - } - me.$loadingTip.text(me.settings.TXT_LOADING_TIP); - me.needLoadContent = true; - } - // 初始化高亮 - if (me.settings.NUM_ACTIVE !== undefined) { - me.show($tabs, $panels, me.settings.NUM_ACTIVE); - } - // 绑定事件 - SQ.gestures.tap({ - el: $tabs, - event: '.sq.tab', - callbackFun: function (e, $el) { - e.preventDefault(); - me._trigger($tabMould, $tabs, $panels, $el); - } - }); - }, - /** - * 触发事件方法,在满足绑定事件条件时或满足指定触发条件的情况下调用触发方法, - * 该方法用于集中处理触发事件,判定是否需要加载数据或者更新 UI 显示。 - * @param $tabMould - * @param $tabs - * @param $panels - * @param $tab - * @private - */ - _trigger: function ($tabMould, $tabs, $panels, $tab) { - var me = this; - var tabIndex = parseInt($tab.attr('data-tabIndex'), 10); - var isCurrentActive = $tab.hasClass(me.CSS_HIGHLIGHT); - - if (isCurrentActive) { - return; - } - - me.show($tabs, $panels, tabIndex); - if (me.triggerFun) { - me.triggerFun($tabs, $panels, tabIndex); - } - }, - _cleanPanel: function ($activePanel) { - $activePanel.empty(); - }, - /** - * 显示目标选项卡,可以在外部调用该方法 - * @param $tabs - * @param $panels - * @param tabIndex - */ - show: function ($tabs, $panels, tabIndex) { - var me = this; - var $activeTab = $tabs.eq(tabIndex); - var $activePanel = $panels.eq(tabIndex); - - $tabs.removeClass(me.CSS_HIGHLIGHT); - $panels.removeClass(me.CSS_HIGHLIGHT); - $activeTab.addClass(me.CSS_HIGHLIGHT); - $activePanel.addClass(me.CSS_HIGHLIGHT); - - if (me.showFun) { - me.showFun($tabs, $panels, tabIndex); - } - if (me.settings.API) { - me._load($activePanel, tabIndex); - } - }, - _load: function ($activePanel, tabIndex) { - var me = this; - var api = me.settings.API; - var $currentLoadTip = $activePanel.find('.sq-tabs-loading-tip'); - var hasLoadingTip = $currentLoadTip.length > 0 ? true : false; - var hasLoaded = $activePanel.hasClass('hasLoaded'); - - if (hasLoaded) { - return; - } - // 如果设置了 beforeLoadFun 回调函数,则 beforeLoadFun 必须返回 true 才能继续向下执行, - // 用于人为中断 _load 事件。 - if (me.beforeLoadFun) { - if (!me.beforeLoadFun($activePanel, tabIndex)) { - return; - } - } - // 是否清空面板 - if (me.settings.CLEAR_PANEL) { - me._cleanPanel($activePanel); - } - // 是否启用本地缓存 - if (me.settings.LOCAL_DATA) { - var localData = SQ.store.localStorage.get(api, me.settings.NUM_EXPIRES); - localData = SQ.isString(localData) ? $.parseJSON(localData) : localData; - if (localData) { - $activePanel.addClass('hasLoaded'); - if (me.loadFun) { - me.loadFun(JSON.parse(localData), $activePanel, tabIndex); - } - return; - } - } - // 开始 XHR 流程 - if (SQ.isArray(me.settings.API)) { - api = me.settings.API[tabIndex]; - } - if (!api || api.length === 0) { - return; - } - if (me.xhr) { - me.xhr.abort(); - } - // 显示加载提示语 - if (hasLoadingTip) { - $currentLoadTip.show(); - } else { - $activePanel.append(me.$loadingTip); - $currentLoadTip = $activePanel.find('.sq-tabs-loading-tip'); - $currentLoadTip.show(); - } - me.xhr = $.ajax({ - type: me.settings.XHR_METHOD, - url : api, - dataType : 'json', - timeout : me.settings.XHR_TIMEOUT, - success : function (data) { - $currentLoadTip.hide(); - $activePanel.addClass('hasLoaded'); // 为已经加载过的面板添加 .hasLoaded 标记 - if (me.settings.LOCAL_DATA) { - SQ.store.localStorage.set(api, data); - } - if (me.loadFun) { - me.loadFun(data, $activePanel, tabIndex); - } - }, - error : function () { - me._showReloadTips($activePanel, tabIndex); - } - }); - }, - _showReloadTips: function ($activePanel, tabIndex) { - var me = this; - var $tip = $activePanel.find('.sq-tabs-loading-tip'); - $tip.show().empty(); - var reloadHTML = '
' + - '

抱歉,加载失败,请重试

' + - '
重新加载
' + - '
'; - $tip.append(reloadHTML); - $activePanel.find('.J_reload').off('click').on('click', function () { - me._load($activePanel, tabIndex); - }); - } - }; - - $.fn.tab = function ( options ) { - var isZepto = typeof Zepto !== 'undefined' ? true : false; - var isJQuery = typeof jQuery !== 'undefined' ? true : false; - var plugin; - - options = options || {}; - options.selector = this.selector; - - if (!this.length) { - console.warn('SQ.tab: 未找到'+ this.selector +'元素'); - } - - this.each(function() { - if (isJQuery) { - if ( !$.data( this, scope ) ) { - $.data( this, scope, new Tab( this, options ) ); - } - } else if (isZepto) { - if (!$(this).data(scope)) { - plugin = new Tab( this, options ); - $(this).data(scope, 'initialized'); - } - } - }); - // chain jQuery functions - return this; - }; -})($); -/** - * @file SQ.TouchSlip 触摸滑动组件 - * @data 2013.7.10 - * @version 1.0.0 - */ - -/*global $, SQ, console, jQuery */ - -(function (window, document) { - 'use strict'; - var _fun = { - ios: function () { // 作用:判断是否为苹果的IOS设备 - var regularResult = navigator.userAgent.match(/.*OS\s([\d_]+)/), - isiOS = !!regularResult; - if (!this._versionValue && isiOS) { - this._versionValue = regularResult[1].replace(/_/g, '.'); - } - this.ios = function () { - return isiOS; - }; - return isiOS; - }, - version: function () { // 作用:返回IOS的版本号 - return this._versionValue; - }, - clone: function (object) { // 作用:用于原型继承 - function F() {} - F.prototype = object; - return new F(); - } - }; - - var slipjs = { - _refreshCommon: function (wideHigh, parentWideHigh) { // 作用:当尺寸改变时,需要重新取得相关的值 - var me = this; - me.wideHigh = wideHigh || me.core[me.offset] - me.upRange; - me.parentWideHigh = parentWideHigh || me.core.parentNode[me.offset]; - me._getCoreWidthSubtractShellWidth(); - }, - _initCommon: function (core, param) { // 作用:初始化 - var me = this; - me.core = core; - me.startFun = param.startFun; - me.moveFun = param.moveFun; - me.touchEndFun = param.touchEndFun; - me.endFun = param.endFun; - me.DIRECTION = param.DIRECTION; - me.upRange = param.upRange || 0; - me.downRange = param.downRange || 0; - if (me.DIRECTION === 'x') { - me.offset = 'offsetWidth'; - me._pos = me.__posX; - } else { - me.offset = 'offsetHeight'; - me._pos = me.__posY; - } - me.wideHigh = param.wideHigh || me.core[me.offset] - me.upRange; - me.parentWideHigh = param.parentWideHigh || me.core.parentNode[me.offset]; - me._getCoreWidthSubtractShellWidth(); - - me._bind('touchstart'); - me._bind('touchmove'); - me._bind('touchend'); - me._bind('webkitTransitionEnd'); - - me.xy = 0; - me.y = 0; - me._pos(-me.upRange); - }, - _getCoreWidthSubtractShellWidth: function () { // 作用:取得滑动对象和它父级元素的宽度或者高度的差 - var me = this; - me.widthCutCoreWidth = me.parentWideHigh - me.wideHigh; - me.coreWidthCutWidth = me.wideHigh - me.parentWideHigh; - }, - handleEvent: function (e) { // 作用:简化addEventListener的事件绑定 - switch (e.type) { - case 'touchstart': - this._start(e); - break; - case 'touchmove': - this._move(e); - break; - case 'touchend': - case 'touchcancel': - this._end(e); - break; - case 'webkitTransitionEnd': - this._transitionEnd(e); - break; - } - }, - _bind: function (type, boole) { // 作用:事件绑定 - this.core.addEventListener(type, this, !!boole); - }, - _unBind: function (type, boole) { // 作用:事件移除 - this.core.removeEventListener(type, this, !!boole); - }, - __posX: function (x) { // 作用:当设置滑动的方向为“X”时用于设置滑动元素的坐标 - this.xy = x; - this.core.style.webkitTransform = 'translate3d(' + x + 'px, 0px, 0px)'; - //this.core.style['webkitTransform'] = 'translate('+x+'px, 0px) scale(1) translateZ(0px)'; - }, - __posY: function (x) { // 作用:当设置滑动的方向为“Y”时用于设置滑动元素的坐标 - this.xy = x; - this.core.style.webkitTransform = 'translate3d(0px, ' + x + 'px, 0px)'; - //this.core.style['webkitTransform'] = 'translate(0px, '+x+'px) scale(1) translateZ(0px)'; - }, - _posTime: function (x, time) { // 作用:缓慢移动 - this.core.style.webkitTransitionDuration = time + 'ms'; - this._pos(x); - } - }; - - var SlipPage = _fun.clone(slipjs); - //function SlipPage() {} - //SQ.util.extend(SlipPage, slipjs); - - SlipPage._init = function (core, param) { // 作用:初始化 - var me = this; - me._initCommon(core, param); - me.NUM_PAGES = param.NUM_PAGES; - me.page = 0; - me.AUTO_TIMER = param.AUTO_TIMER; - me.lastPageFun = param.lastPageFun; - me.firstPageFun = param.firstPageFun; - if (param.AUTO_TIMER) { - me._autoChange(); - } - param.noFollow ? (me._move = me._moveNoMove, me.nextTime = 500) : me.nextTime = 300; - }; - SlipPage._start = function(evt) { // 触摸开始 - var me = this; - var e = evt.touches[0]; - me._abruptX = 0; - me._abruptXAbs = 0; - me._startX = me._startXClone = e.pageX; - me._startY = e.pageY; - me._movestart = undefined; - if (me.AUTO_TIMER) { - me._stop(); - } - if (me.startFun) { - me.startFun(e); - } - }; - SlipPage._move = function(evt) { // 触摸中,跟随移动 - var me = this; - me._moveShare(evt); - if(!me._movestart){ - var e = evt.touches[0]; - evt.preventDefault(); - me.offsetX = (me.xy > 0 || me.xy < me.widthCutCoreWidth) ? me._disX/2 + me.xy : me._disX + me.xy; - me._startX = e.pageX; - if (me._abruptXAbs < 6) { - me._abruptX += me._disX; - me._abruptXAbs = Math.abs(me._abruptX); - return; - } - me._pos(me.offsetX); - if (me.moveFun) { - me.moveFun(e); - } - } - }; - SlipPage._moveNoMove = function(evt) { // 触摸中,不跟随移动,只记录必要的值 - var me = this; - me._moveShare(evt); - if(!me._movestart){ - evt.preventDefault(); - me.moveFun && me.moveFun(e); - } - }; - SlipPage._moveShare = function(evt) { // 不跟随移动和跟随移动的公共操作 - var me = this, - e = evt.touches[0]; - me._disX = e.pageX - me._startX; - me._disY = e.pageY - me._startY; - typeof me._movestart === 'undefined' && (me._movestart = !!(me._movestart || Math.abs(me._disX) < Math.abs(me._disY))); - }; - SlipPage._end = function(e) { // 触摸结束 - if (!this._movestart) { - var me = this; - me._endX = e.changedTouches[0].pageX; - me._range = me._endX - me._startXClone; - if(me._range > 35){ - me.page !== 0 ? me.page -= 1 : (me.firstPageFun && me.firstPageFun(e)); - }else if(Math.abs(me._range) > 35){ - me.page !== me.NUM_PAGES - 1 ? me.page += 1 : (me.lastPageFun && me.lastPageFun(e)); - } - me.toPage(me.page, me.nextTime); - me.touchEndFun && me.touchEndFun(e); - } - }; - SlipPage._transitionEnd = function(e) { // 动画结束 - var me = this; - e.stopPropagation(); - me.core.style.webkitTransitionDuration = '0'; - me._stopIng && me._autoChange(), me._stopIng = false; - me.endFun && me.endFun(); - }; - SlipPage.toPage = function(num, time) { // 可在外部调用的函数,指定轮换到第几张,只要传入:“轮换到第几张”和“时间”两个参数。 - this._posTime(-this.parentWideHigh * num, time || 0); - this.page = num; - }; - SlipPage._stop = function() { // 作用:停止自动轮换 - clearInterval(this._autoChangeSet); - this._stopIng = true; - }; - SlipPage._autoChange = function() { // 作用:自动轮换 - var me = this; - me._autoChangeSet = setInterval(function() { - me.page !== me.NUM_PAGES - 1 ? me.page += 1 : me.page = 0; - me.toPage(me.page, me.nextTime); - },me.AUTO_TIMER); - }; - SlipPage.refresh = function(wideHigh, parentWideHigh) { // 可在外部调用,作用:当尺寸改变时(如手机横竖屏时),需要重新取得相关的值。这时候就可以调用该函数 - this._refreshCommon(wideHigh, parentWideHigh); - }; - - var SlipPx = _fun.clone(slipjs); - //function SlipPx() {} - //SQ.util.extend(SlipPx, slipjs); - - SlipPx._init = function(core,param) { // 作用:初始化 - var me = this; - me._initCommon(core,param); - me.perfect = param.perfect; - me.SHOW_SCROLL_BAR = param.SHOW_SCROLL_BAR; - if(me.DIRECTION === 'x'){ - me.pageX = 'pageX'; - me.pageY = 'pageY'; - me.widthOrHeight = 'width'; - me._real = me._realX; - me._posBar = me.__posBarX; - }else{ - me.pageX = 'pageY'; - me.pageY = 'pageX'; - me.widthOrHeight = 'height'; - me._real = me._realY; - me._posBar = me.__posBarY; - } - if(me.perfect){ - me._transitionEnd = function(){}; - me._stop = me._stopPerfect; - me._slipBar = me._slipBarPerfect; - me._posTime = me._posTimePerfect; - me._barUpRange = me.upRange; - me.noBar = false; - me._slipBarTime = function(){}; - }else{ - me.noBar = param.noBar; - me.core.style.webkitTransitionTimingFunction = 'cubic-bezier(0.33, 0.66, 0.66, 1)'; - } - if(me.SHOW_SCROLL_BAR){ - me._hideBar = function(){}; - me._showBar = function(){}; - } - if(_fun.ios()){ - me.radius = 11; - }else{ - me.radius = 0; - } - if(!me.noBar){ - me._insertSlipBar(param); - if(me.coreWidthCutWidth <= 0){ - me._barShellOpacity = 0; - me._showBarStorage = me._showBar; - me._showBar = function(){}; - } - }else{ - me._hideBar = function(){}; - me._showBar = function(){}; - } - }; - SlipPx._start = function(evt) { // 触摸开始 - var me = this; - var e = evt.touches[0]; - me._animating = false; - me._steps = []; - me._abruptX = 0; - me._abruptXAbs = 0; - me._startX = me._startXClone = e[me.pageX]; - me._startY = e[me.pageY]; - me._startTime = e.timeStamp || Date.now(); - me._movestart = undefined; - !me.perfect && me._needStop && me._stop(); - me.core.style.webkitTransitionDuration = '0'; - me.startFun && me.startFun(e); - }; - SlipPx._move = function(evt) { // 触摸中 - var me = this; - var e = evt.touches[0]; - var _ePage = e[me.pageX]; - var _ePageOther = e[me.pageY]; - var thatX = me.xy; - me._disX = _ePage - me._startX; - me._disY = _ePageOther - me._startY; - (me.DIRECTION === 'x' && typeof me._movestart === 'undefined') && (me._movestart = !!(me._movestart || (Math.abs(me._disX) < Math.abs(me._disY)))); - - if(!me._movestart){ - evt.preventDefault(); - me._moveTime = e.timeStamp || Date.now(); - me.offsetX = (thatX > 0 || thatX < me.widthCutCoreWidth - me.upRange) ? me._disX/2 + thatX : me._disX + thatX; - me._startX = _ePage; - me._startY = _ePageOther; - me._showBar(); - if (me._abruptXAbs < 6 ) { - me._abruptX += me._disX; - me._abruptXAbs = Math.abs(me._abruptX); - return; - } - me._pos(me.offsetX); - me.noBar || me._slipBar(); - if (me._moveTime - me._startTime > 300) { - me._startTime = me._moveTime; - me._startXClone = _ePage; - } - me.moveFun && me.moveFun(e); - } - }; - SlipPx._end = function(evt) { // 触摸结束 - if (!this._movestart) { - var me = this, - e = evt.changedTouches[0], - duration = (e.timeStamp || Date.now()) - me._startTime, - fastDistX = e[me.pageX] - me._startXClone; - me._needStop = true; - if(duration < 300 && Math.abs(fastDistX) > 10) { - if (me.xy > -me.upRange || me.xy < me.widthCutCoreWidth) { - me._rebound(); - }else{ - var _momentum = me._momentum(fastDistX, duration, -me.xy - me.upRange, me.coreWidthCutWidth + (me.xy), me.parentWideHigh); - me._posTime(me.xy + _momentum.dist, _momentum.time); - me.noBar || me._slipBarTime(_momentum.time); - } - }else{ - me._rebound(); - } - me.touchEndFun && me.touchEndFun(e); - } - }; - SlipPx._transitionEnd = function(e) { // 滑动结束 - var me = this; - if (e.target !== me.core) { - return; - } - me._rebound(); - me._needStop = false; - }; - SlipPx._rebound = function(time) { // 作用:滑动对象超出时复位 - var me = this, - _reset = (me.coreWidthCutWidth <= 0) ? 0 : (me.xy >= -me.upRange ? -me.upRange : me.xy <= me.widthCutCoreWidth - me.upRange ? me.widthCutCoreWidth - me.upRange : me.xy); - if (_reset === me.xy) { - me.endFun && me.endFun(); - me._hideBar(); - return; - } - me._posTime(_reset, time || 400); - me.noBar || me._slipBarTime(time); - }; - SlipPx._insertSlipBar = function(param) { // 插入滚动条 - var me = this; - me._bar = document.createElement('div'); - me._barShell = document.createElement('div'); - var _barCss; - var _barShellCss; - if(me.DIRECTION === 'x'){ - _barCss = 'height: 5px; position: absolute;z-index: 10; pointer-events: none;'; - _barShellCss = 'opacity: '+me._barShellOpacity+'; left:2px; bottom: 2px; right: 2px; height: 5px; position: absolute; z-index: 10; pointer-events: none;'; - }else{ - _barCss = 'width: 5px; position: absolute;z-index: 10; pointer-events: none;'; - _barShellCss = 'opacity: '+me._barShellOpacity+'; top:2px; bottom: 2px; right: 2px; width: 5px; position: absolute; z-index: 10; pointer-events: none;'; - } - var _defaultBarCss = ' background-color: rgba(0, 0, 0, 0.5); border-radius: '+me.radius+'px; -webkit-transition: cubic-bezier(0.33, 0.66, 0.66, 1);' ; - _barCss = _barCss + _defaultBarCss + param.barCss; - - me._bar.style.cssText = _barCss; - me._barShell.style.cssText = _barShellCss; - me._countAboutBar(); - me._countBarSize(); - me._setBarSize(); - me._countWidthCutBarSize(); - me._barShell.appendChild(me._bar); - me.core.parentNode.appendChild(me._barShell); - setTimeout(function(){me._hideBar();}, 500); - }; - SlipPx._posBar = function(pos) {}; - SlipPx.__posBarX = function(pos) { // 作用:当设置滑动的方向为“X”时用于设置滚动条的坐标 - var me = this; - me._bar.style.webkitTransform = 'translate3d('+pos+'px, 0px, 0px)'; - //me._bar.style['webkitTransform'] = 'translate('+pos+'px, 0px) translateZ(0px)'; - }; - SlipPx.__posBarY = function(pos) { // 作用:当设置滑动的方向为“Y”时用于设置滚动条的坐标 - var me = this; - //me._bar.style['webkitTransform'] = 'translate(0px, '+pos+'px) translateZ(0px)'; - me._bar.style.webkitTransform = 'translate3d(0px, '+pos+'px, 0px)'; - }; - SlipPx._slipBar = function() { // 流畅模式下滚动条的滑动 - var me = this; - var pos = me._aboutBar * (me.xy + me.upRange); - if (pos <= 0) { - pos = 0; - }else if(pos >= me._widthCutBarSize){ - pos = Math.round(me._widthCutBarSize); - } - me._posBar(pos); - me._showBar(); - }; - SlipPx._slipBarPerfect = function() { // 完美模式下滚动条的滑动 - var me = this; - var pos = me._aboutBar * (me.xy + me._barUpRange); - me._bar.style[me.widthOrHeight] = me._barSize + 'px'; - if (pos < 0) { - var size = me._barSize + pos * 3; - me._bar.style[me.widthOrHeight] = Math.round(Math.max(size, 5)) + 'px'; - pos = 0; - }else if (pos >= me._widthCutBarSize) { - var size = me._barSize - (pos - me._widthCutBarSize) * 3; - if(size < 5) {size = 5;} - me._bar.style[me.widthOrHeight] = Math.round(size) + 'px'; - pos = Math.round(me._widthCutBarSize + me._barSize - size); - } - me._posBar(pos); - }; - SlipPx._slipBarTime = function(time) { // 作用:指定时间滑动滚动条 - this._bar.style.webkitTransitionDuration = ''+time+'ms'; - this._slipBar(); - }; - SlipPx._stop = function() { // 流畅模式下的动画停止 - var me = this; - var _realX = me._real(); - me._pos(_realX); - if(!me.noBar){ - me._bar.style.webkitTransitionDuration = '0'; - me._posBar(me._aboutBar * _realX); - } - }; - SlipPx._stopPerfect = function() { // 完美模式下的动画停止 - clearTimeout(this._aniTime); - this._animating = false; - }; - SlipPx._realX = function() { // 作用:取得滑动X坐标 - var _realXy = getComputedStyle(this.core, null).webkitTransform.replace(/[^0-9-.,]/g, '').split(','); - return _realXy[4] * 1; - }; - SlipPx._realY = function() { // 作用:取得滑动Y坐标 - var _realXy = getComputedStyle(this.core, null).webkitTransform.replace(/[^0-9-.,]/g, '').split(','); - return _realXy[5] * 1; - }; - SlipPx._countBarSize = function() { // 作用:根据比例计算滚动条的高度 - this._barSize = Math.round(Math.max(this.parentWideHigh * this.parentWideHigh / this.wideHigh, 5)); - }; - SlipPx._setBarSize = function() { // 作用:设置滚动条的高度 - this._bar.style[this.widthOrHeight] = this._barSize + 'px'; - }; - SlipPx._countAboutBar = function() { // 作用:计算一个关于滚动条的的数值 - this._aboutBar = ((this.parentWideHigh-4) - (this.parentWideHigh-4) * this.parentWideHigh / this.wideHigh)/this.widthCutCoreWidth; - }; - SlipPx._countWidthCutBarSize = function() { // 作用:计算一个关于滚动条的的数值 - this._widthCutBarSize = (this.parentWideHigh-4) - this._barSize; - }; - SlipPx.refresh = function(wideHigh, parentWideHigh) {// 可在外部调用,作用:当尺寸改变时(如手机横竖屏时),需要重新取得相关的值。这时候就可以调用该函数 - var me = this; - me._refreshCommon(wideHigh, parentWideHigh); - if(!me.noBar){ - if(me.coreWidthCutWidth <= 0) { - me._barShellOpacity = 0; - me._showBar = function(){}; - }else{ - me._showBar = me._showBarStorage || me._showBar; - me._countAboutBar(); - me._countBarSize(); - me._setBarSize(); - me._countWidthCutBarSize(); - } - } - me._rebound(0); - }; - SlipPx._posTimePerfect = function (x, time) { // 作用:完美模式下的改变坐标函数 - var me = this, - step = x, - i, l; - me._steps.push({ x: x, time: time || 0 }); - me._startAni(); - }; - SlipPx._startAni = function () {// 作用:完美模式下的改变坐标函数 - var me = this, - startX = me.xy, - startTime = Date.now(), - step, easeOut, - animate; - if (me._animating) { - return; - } - if (!me._steps.length) { - me._rebound(); - return; - } - step = me._steps.shift(); - if (step.x === startX) { - step.time = 0; - } - me._animating = true; - animate = function () { - var now = Date.now(), - newX; - if (now >= startTime + step.time) { - me._pos(step.x); - me._animating = false; - me._startAni(); - return; - } - now = (now - startTime) / step.time - 1; - easeOut = Math.sqrt(1 - now * now); - newX = (step.x - startX) * easeOut + startX; - me._pos(newX); - if (me._animating) { - me._slipBar(); - me._aniTime = setTimeout(animate, 1); - } - }; - animate(); - }; - SlipPx._momentum = function (dist, time, maxDistUpper, maxDistLower, size) { // 作用:计算惯性 - var deceleration = 0.001, - speed = Math.abs(dist) / time, - newDist = (speed * speed) / (2 * deceleration), - newTime = 0, outsideDist = 0; - if (dist > 0 && newDist > maxDistUpper) { - outsideDist = size / (6 / (newDist / speed * deceleration)); - maxDistUpper = maxDistUpper + outsideDist; - speed = speed * maxDistUpper / newDist; - newDist = maxDistUpper; - } else if (dist < 0 && newDist > maxDistLower) { - outsideDist = size / (6 / (newDist / speed * deceleration)); - maxDistLower = maxDistLower + outsideDist; - speed = speed * maxDistLower / newDist; - newDist = maxDistLower; - } - newDist = newDist * (dist < 0 ? -1 : 1); - newTime = speed / deceleration; - return { dist: newDist, time: newTime }; - }; - SlipPx._showBar = function() {// 作用:显示滚动条 - var me = this; - me._barShell.style.webkitTransitionDelay = '0ms'; - me._barShell.style.webkitTransitionDuration = '0ms'; - me._barShell.style.opacity = '1'; - }; - SlipPx._hideBar = function() {// 作用:隐藏滚动条 - var me = this; - me._barShell.style.opacity = '0'; - me._barShell.style.webkitTransitionDelay = '300ms'; - me._barShell.style.webkitTransitionDuration = '300ms'; - }; - - function TouchSlip(config) { - var me = this; - var i; - - me.config = { - - }; - - for (i in config) { - if (config.hasOwnProperty(i)) { - me.config[i] = config[i]; - } - } - - me.triggerTarget = $(me.config.DOM_TRIGGER_TARGET)[0]; - - if (_fun.ios() && (parseInt(_fun.version()) >= 5 && config.DIRECTION === 'x') && config.wit) { - me.triggerTarget.parentNode.style.cssText += 'overflow:scroll; -webkit-overflow-scrolling:touch;'; - return; - } - - switch (me.config.MODE) { - case 'page': - config.DIRECTION = 'x'; - if (!this.SlipPage) { - this.SlipPage = true; - SlipPage._init(me.triggerTarget, config); - return SlipPage; - } else { - var page = _fun.clone(SlipPage); - page._init(me.triggerTarget, config); - return page; - } - break; - case 'px': - if (!this.SlipPx) { - this.SlipPx = true; - SlipPx._init(me.triggerTarget, config); - return SlipPx; - } else { - var Px = _fun.clone(SlipPx); - Px._init(me.triggerTarget, config); - return Px; - } - break; - } - - } - SQ.TouchSlip = TouchSlip; -})(window, document); \ No newline at end of file diff --git a/dist/css/squirrel-min.css b/dist/css/squirrel-min.css deleted file mode 100644 index 29f5cf2..0000000 --- a/dist/css/squirrel-min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Squirrel v0.9.10 (http://hisquirrel.com) - * Copyright 2011-2014-12-16 05:28:15 iinterest - * Licensed under MIT (https://github.com/iinterest/Squirrel-3/blob/master/LICENSE.md) - */ - -/*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*,:after,:before{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%}body{-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;font-family:"Segoe UI",Helvetica,"Lucida Grande",Arial,"Microsoft YaHei",FreeSans,Arimo,"Droid Sans","wenquanyi micro hei","Hiragino Sans GB","Hiragino Sans GB W3",Arial,sans-serif;font-size:1.6rem;color:#333;word-wrap:break-word;break-word:break-all}h1,h2,h3,h4,h5{font-weight:400}menu,ol,ul{margin:0;padding:0}a{text-decoration:none}input,select,textarea{-webkit-font-smoothing:antialiased}.sq-fl{float:left}.sq-fr{float:right}.sq-m10{margin:10px}.sq-p10{padding:10px}.sq-hide{display:none}.sq-unvisible{visibility:hidden}.sq-clearfix:after,.sq-clearfix:before{content:" ";display:table}.sq-clearfix:after{clear:both}.col2>*,.col3>*,.col4>*,.col5>*{float:left}.col2>::after:after,.col2>::after:before,.col3>::after:after,.col3>::after:before,.col4>::after:after,.col4>::after:before,.col5>::after:after,.col5>::after:before{content:" ";display:table}.col2>::after:after,.col3>::after:after,.col4>::after:after,.col5>::after:after{clear:both}.col2>*{width:50%}.col3>*{width:33.3333%}.col4>*{width:25%}.col5>*{width:20%}.col6>*{width:16.6666%}.sq-box .hd{height:40px;padding:0 10px;line-height:40px}.sq-content{margin:16px}.sq-ucweb-anchor,.sq-ucweb-anchor li{position:relative}.sq-ucweb-anchor a{position:absolute!important;top:0;right:0;bottom:0;left:0}.sq-badge{border-radius:10px;padding:3px 7px;font-weight:400;font-size:1.2rem;overflow:hidden}.sq-badge:empty{display:none}.sq-badge.red{background:#e34541;color:#fff}.sq-badge.blue{background:#009bd8;color:#fff}.sq-badge.green{background:#6eb82c;color:#fff}.sq-badge.grey{background:#a9a7a7;color:#fff}.sq-badge.black{background:#444;color:#fff}.sq-badge.orange{background:#faa800;color:#fff}.sq-bars{height:49px}.sq-bars.nav,.sq-bars.pagination,.sq-bars.search,.sq-bars.toolbar{position:relative;display:-webkit-box;-webkit-box-align:center;-webkit-box-pack:justify;padding:0 4px;z-index:100}.sq-bars.nav .col,.sq-bars.pagination .col,.sq-bars.search .col,.sq-bars.toolbar .col{display:-webkit-box}.sq-bars.nav .align-end,.sq-bars.nav.align-end,.sq-bars.pagination .align-end,.sq-bars.pagination.align-end,.sq-bars.search .align-end,.sq-bars.search.align-end,.sq-bars.toolbar .align-end,.sq-bars.toolbar.align-end{-webkit-box-pack:end}.sq-bars.nav .align-start,.sq-bars.nav.align-start,.sq-bars.pagination .align-start,.sq-bars.pagination.align-start,.sq-bars.search .align-start,.sq-bars.search.align-start,.sq-bars.toolbar .align-start,.sq-bars.toolbar.align-start{-webkit-box-pack:start}.sq-bars.nav .sq-btn,.sq-bars.pagination .sq-btn,.sq-bars.search .sq-btn,.sq-bars.toolbar .sq-btn{display:block;z-index:1}.sq-bars.nav .extend,.sq-bars.nav .title{-webkit-box-flex:1;height:49px;margin:0 .5rem}.sq-bars.nav .title{font-size:1.8rem;line-height:49px;text-align:center;overflow:hidden}.sq-bars.nav .extend{display:-webkit-box;-webkit-box-align:center;-webkit-box-pack:justify}.sq-bars.nav .extend .sq-btn-group{width:100%}.sq-bars.nav .sq-btn{min-width:40px;padding:6px .5rem}.sq-bars.nav .sq-btn+.extend,.sq-bars.nav .sq-btn+.title{margin:0 1rem}.sq-bars.pagination .pages{position:absolute;top:0;right:80px;bottom:0;left:80px;font-size:1.4rem;text-align:center;line-height:49px}.sq-bars.pagination .disable{pointer-events:none;opacity:.4;cursor:not-allowed}.sq-bars.pagination select{min-height:39px;line-height:1}.sq-bars.nav-tabs{font-size:1.4rem}.sq-bars.nav-tabs a{display:-webkit-box;-webkit-box-pack:justify;-webkit-box-align:center;position:relative;height:49px;text-align:center}.sq-bars.nav-tabs span{display:block;-webkit-box-flex:1}.sq-bars.nav-tabs.icons a{font-size:1.2rem}.sq-bars.nav-tabs.icons .sq-icon{display:block}.sq-bars.nav-tabs.icons .sq-badge{left:60%;right:auto}.sq-bars.nav-tabs .sq-badge{position:absolute;top:-2px;right:10%;padding:4px;min-width:20px;border-radius:999px;line-height:1;z-index:1}.sq-bars.search{padding:0 8px}.sq-bars.search input[type=search],.sq-bars.search input[type=text]{display:block;width:100%;height:28px;border:0;outline:0}.sq-bars.search input[type=button],.sq-bars.search input[type=submit]{border:0;outline:0}.sq-bars.search .label{position:relative;-webkit-box-flex:1;background:#fff}.sq-bars.search .label.icon-search{padding:0 5px 0 24px}.sq-bars.search .label.icon-search::before{position:absolute;top:7px;left:4px;content:'\e801'}.sq-bars.search .clear{display:none;position:absolute;top:0;right:0;width:30px;height:28px;cursor:pointer}.sq-bars.search .clear::after{content:"×";position:absolute;top:5px;left:6px;width:18px;height:18px;background:#ccc;border-radius:999px;text-align:center;line-height:16px;color:#fff}.sq-bars.search .sq-btn{min-height:30px}.sq-btn{display:inline-block;position:relative;border-radius:3px;border:1px solid transparent;text-align:center;white-space:nowrap;line-height:1;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;padding:9px 1rem}.sq-btn.large{padding:12px 1rem;font-size:1.8rem}.sq-btn.small{padding:6px 1rem;font-size:1.4rem}.sq-btn.mini{padding:4px 1rem;font-size:1.2rem}.sq-btn.block{display:block}button.sq-btn.block,input[type=button].sq-btn.block,input[type=submit].sq-btn.block{width:100%}.sq-btn.block+.block{margin-top:10px}.sq-btn>.sq-icon::before{opacity:.8;margin-right:.5rem}.sq-btn.right-icon>.sq-icon::before{margin-right:0;margin-left:.5rem}.sq-btn.disabled,.sq-btn[disabled]{pointer-events:none;opacity:.7;cursor:not-allowed}.sq-btn .dropdown-menu{display:none;position:absolute;top:100%;left:-1px;right:-1px;min-width:100px;background:#fff;box-shadow:0 3px 5px rgba(0,0,0,.2);border-radius:3px;border:1px solid #d7d7d7;line-height:30px}.sq-btn .dropdown-menu a{display:block;padding:3px 0;color:#333;border-bottom:1px solid #efefef}.sq-btn .dropdown-menu.right{left:auto;right:0}.sq-btn-group{display:-webkit-box;-webkit-box-orient:horizontal}.sq-btn-group .active{z-index:1}.sq-btn-group .active+.sq-btn{border-left-color:transparent}.sq-btn-group .sq-btn{display:block;-webkit-box-flex:1;margin-left:-1px;border-radius:0}.sq-btn-group .sq-btn:first-child{margin-left:0;border-radius:3px 0 0 3px}.sq-btn-group .sq-btn:last-child{border-radius:0 3px 3px 0}.sq-btn-group.vertical{-webkit-box-orient:vertical}.sq-btn-group.vertical .sq-btn{margin:-1px 0 0 0}.sq-btn-group.vertical .sq-btn:first-child{margin-top:0;border-radius:3px 3px 0 0}.sq-btn-group.vertical .sq-btn:last-child{border-radius:0 0 3px 3px}.sq-btn.mt-white{background:#f7f7f7;color:#333;border-color:#ddd}.sq-btn.mt-white a{color:#333}.sq-btn.mt-grey{background:#e1e1e1;border-color:#e1e1e1;color:#333}.sq-btn.mt-grey a{color:#333}.sq-btn.mt-grey-dark{background:#a9a7a7;border-color:#a9a7a7;color:#fff}.sq-btn.mt-grey-dark a{color:#fff}.sq-btn.mt-black{background:#444;border-color:#444;color:#fff}.sq-btn.mt-black a{color:#fff}.sq-btn.mt-blue{background:#4285f4;border-color:#4285f4;color:#fff}.sq-btn.mt-blue a{color:#fff}.sq-btn.mt-blue:hover{background:#3367d6}.sq-btn.mt-green{background:#6eb82c;border-color:#6eb82c;color:#fff}.sq-btn.mt-green a{color:#fff}.sq-btn.mt-orange{background:#faa800;border-color:#faa800;color:#fff}.sq-btn.mt-orange a{color:#fff}.sq-btn.mt-red{background:#e34541;border-color:#e34541;color:#fff}.sq-btn.mt-red a{color:#fff}.col-tb-visible{display:none}.row:after,.row:before{content:" ";display:table}.row:after{clear:both}.col-mb-1,.col-mb-10,.col-mb-11,.col-mb-12,.col-mb-2,.col-mb-3,.col-mb-4,.col-mb-5,.col-mb-6,.col-mb-7,.col-mb-8,.col-mb-9,.col-tb-1,.col-tb-10,.col-tb-11,.col-tb-12,.col-tb-2,.col-tb-3,.col-tb-4,.col-tb-5,.col-tb-6,.col-tb-7,.col-tb-8,.col-tb-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-mb-1,.col-mb-10,.col-mb-11,.col-mb-12,.col-mb-2,.col-mb-3,.col-mb-4,.col-mb-5,.col-mb-6,.col-mb-7,.col-mb-8,.col-mb-9{float:left}.col-mb-12{width:100%}.col-mb-11{width:91.66666667%}.col-mb-10{width:83.33333333%}.col-mb-9{width:75%}.col-mb-8{width:66.66666667%}.col-mb-7{width:58.33333333%}.col-mb-6{width:50%}.col-mb-5{width:41.66666667%}.col-mb-4{width:33.33333333%}.col-mb-3{width:25%}.col-mb-2{width:16.66666667%}.col-mb-1{width:8.33333333%}.col-mb-pull-12{right:100%}.col-mb-pull-11{right:91.66666667%}.col-mb-pull-10{right:83.33333333%}.col-mb-pull-9{right:75%}.col-mb-pull-8{right:66.66666667%}.col-mb-pull-7{right:58.33333333%}.col-mb-pull-6{right:50%}.col-mb-pull-5{right:41.66666667%}.col-mb-pull-4{right:33.33333333%}.col-mb-pull-3{right:25%}.col-mb-pull-2{right:16.66666667%}.col-mb-pull-1{right:8.33333333%}.col-mb-pull-0{right:0}.col-mb-push-12{left:100%}.col-mb-push-11{left:91.66666667%}.col-mb-push-10{left:83.33333333%}.col-mb-push-9{left:75%}.col-mb-push-8{left:66.66666667%}.col-mb-push-7{left:58.33333333%}.col-mb-push-6{left:50%}.col-mb-push-5{left:41.66666667%}.col-mb-push-4{left:33.33333333%}.col-mb-push-3{left:25%}.col-mb-push-2{left:16.66666667%}.col-mb-push-1{left:8.33333333%}.col-mb-push-0{left:0}.col-mb-offset-12{margin-left:100%}.col-mb-offset-11{margin-left:91.66666667%}.col-mb-offset-10{margin-left:83.33333333%}.col-mb-offset-9{margin-left:75%}.col-mb-offset-8{margin-left:66.66666667%}.col-mb-offset-7{margin-left:58.33333333%}.col-mb-offset-6{margin-left:50%}.col-mb-offset-5{margin-left:41.66666667%}.col-mb-offset-4{margin-left:33.33333333%}.col-mb-offset-3{margin-left:25%}.col-mb-offset-2{margin-left:16.66666667%}.col-mb-offset-1{margin-left:8.33333333%}.col-mb-offset-0{margin-left:0}@media (min-width:768px){.col-tb-1,.col-tb-10,.col-tb-11,.col-tb-12,.col-tb-2,.col-tb-3,.col-tb-4,.col-tb-5,.col-tb-6,.col-tb-7,.col-tb-8,.col-tb-9{float:left}.col-tb-12{width:100%}.col-tb-11{width:91.66666667%}.col-tb-10{width:83.33333333%}.col-tb-9{width:75%}.col-tb-8{width:66.66666667%}.col-tb-7{width:58.33333333%}.col-tb-6{width:50%}.col-tb-5{width:41.66666667%}.col-tb-4{width:33.33333333%}.col-tb-3{width:25%}.col-tb-2{width:16.66666667%}.col-tb-1{width:8.33333333%}.col-tb-pull-12{right:100%}.col-tb-pull-11{right:91.66666667%}.col-tb-pull-10{right:83.33333333%}.col-tb-pull-9{right:75%}.col-tb-pull-8{right:66.66666667%}.col-tb-pull-7{right:58.33333333%}.col-tb-pull-6{right:50%}.col-tb-pull-5{right:41.66666667%}.col-tb-pull-4{right:33.33333333%}.col-tb-pull-3{right:25%}.col-tb-pull-2{right:16.66666667%}.col-tb-pull-1{right:8.33333333%}.col-tb-pull-0{right:0}.col-tb-push-12{left:100%}.col-tb-push-11{left:91.66666667%}.col-tb-push-10{left:83.33333333%}.col-tb-push-9{left:75%}.col-tb-push-8{left:66.66666667%}.col-tb-push-7{left:58.33333333%}.col-tb-push-6{left:50%}.col-tb-push-5{left:41.66666667%}.col-tb-push-4{left:33.33333333%}.col-tb-push-3{left:25%}.col-tb-push-2{left:16.66666667%}.col-tb-push-1{left:8.33333333%}.col-tb-push-0{left:0}.col-tb-offset-12{margin-left:100%}.col-tb-offset-11{margin-left:91.66666667%}.col-tb-offset-10{margin-left:83.33333333%}.col-tb-offset-9{margin-left:75%}.col-tb-offset-8{margin-left:66.66666667%}.col-tb-offset-7{margin-left:58.33333333%}.col-tb-offset-6{margin-left:50%}.col-tb-offset-5{margin-left:41.66666667%}.col-tb-offset-4{margin-left:33.33333333%}.col-tb-offset-3{margin-left:25%}.col-tb-offset-2{margin-left:16.66666667%}.col-tb-offset-1{margin-left:8.33333333%}.col-tb-offset-0{margin-left:0}.col-tb-visible{display:block}}@font-face{font-family:fontello;src:url(../fonts/sq-fontello.woff) format("woff"),url(../fonts/sq-fontello.ttf) format("truetype");font-weight:400;font-style:normal}.sq-icon::before{font-family:fontello;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;min-width:.5rem;text-align:center;font-variant:normal;text-transform:none;position:relative}.sq-icon.x2::before{font-size:2rem}.sq-icon.x3::before{font-size:2.7rem}.sq-icon.x4::before{font-size:4rem}.sq-icon.x5::before{font-size:5rem}.icon-download:before,.icon-left-open:before,.icon-right-open:before{top:.1rem}.icon-group .sq-icon::before{margin-right:.1em}.icon-music:before{content:'\e800'}.icon-camera:before{content:'\e808'}.icon-heart:before{content:'\e802'}.icon-heart-empty:before{content:'\e889'}.icon-star:before{content:'\e803'}.icon-star-empty:before{content:'\e804'}.icon-star-half:before{content:'\e805'}.icon-star-half-alt:before{content:'\e806'}.icon-male:before{content:'\e807'}.icon-female:before{content:'\e80a'}.icon-videocam:before{content:'\e80b'}.icon-picture:before{content:'\e80c'}.icon-th-large:before{content:'\e80e'}.icon-th:before{content:'\e80f'}.icon-th-list:before{content:'\e810'}.icon-ok:before{content:'\e811'}.icon-ok-circled:before{content:'\e813'}.icon-cancel:before{content:'\e812'}.icon-cancel-circled:before{content:'\e814'}.icon-plus-circled:before{content:'\e818'}.icon-minus-circled:before{content:'\e819'}.icon-help-circled:before{content:'\e816'}.icon-info-circled:before{content:'\e817'}.icon-home:before{content:'\e815'}.icon-link-ext:before{content:'\e81a'}.icon-attach:before{content:'\e81b'}.icon-lock:before{content:'\e81c'}.icon-lock-open:before{content:'\e81d'}.icon-pin:before{content:'\e894'}.icon-eye:before{content:'\e81e'}.icon-eye-off:before{content:'\e81f'}.icon-tag:before{content:'\e820'}.icon-bookmark:before{content:'\e821'}.icon-bookmark-empty:before{content:'\e822'}.icon-flag-checkered:before{content:'\e895'}.icon-thumbs-up:before{content:'\e823'}.icon-thumbs-down:before{content:'\e824'}.icon-thumbs-up-alt:before{content:'\e825'}.icon-thumbs-down-alt:before{content:'\e826'}.icon-download:before{content:'\e827'}.icon-upload:before{content:'\e828'}.icon-download-cloud:before{content:'\e829'}.icon-upload-cloud:before{content:'\e82a'}.icon-pencil:before{content:'\e82b'}.icon-keyboard:before{content:'\e82c'}.icon-gamepad:before{content:'\e82d'}.icon-comment:before{content:'\e82e'}.icon-chat:before{content:'\e82f'}.icon-comment-empty:before{content:'\e830'}.icon-chat-empty:before{content:'\e831'}.icon-bell:before{content:'\e832'}.icon-bell-alt:before{content:'\e833'}.icon-attention:before{content:'\e834'}.icon-attention-circled:before{content:'\e835'}.icon-location:before{content:'\e836'}.icon-direction:before{content:'\e837'}.icon-trash:before{content:'\e838'}.icon-doc:before{content:'\e839'}.icon-doc-inv:before{content:'\e83a'}.icon-folder-open:before{content:'\e83b'}.icon-folder-open-empty:before{content:'\e83c'}.icon-rss:before{content:'\e83d'}.icon-phone:before{content:'\e842'}.icon-menu:before{content:'\e83e'}.icon-cog:before{content:'\e83f'}.icon-cog-alt:before{content:'\e840'}.icon-wrench:before{content:'\e841'}.icon-basket:before{content:'\e843'}.icon-calendar:before{content:'\e844'}.icon-calendar-empty:before{content:'\e845'}.icon-mic:before{content:'\e846'}.icon-mute:before{content:'\e847'}.icon-volume-off:before{content:'\e848'}.icon-volume-down:before{content:'\e849'}.icon-volume-up:before{content:'\e84a'}.icon-search:before{content:'\e801'}.icon-lightbulb:before{content:'\e84b'}.icon-block:before{content:'\e84d'}.icon-zoom-in:before{content:'\e84e'}.icon-zoom-out:before{content:'\e84f'}.icon-down-open:before{content:'\e850'}.icon-left-open:before{content:'\e851'}.icon-right-open:before{content:'\e852'}.icon-up-open:before{content:'\e853'}.icon-angle-circled-left:before{content:'\e854'}.icon-angle-circled-right:before{content:'\e855'}.icon-angle-circled-up:before{content:'\e856'}.icon-angle-circled-down:before{content:'\e857'}.icon-angle-double-left:before{content:'\e858'}.icon-angle-double-right:before{content:'\e859'}.icon-angle-double-up:before{content:'\e85a'}.icon-angle-double-down:before{content:'\e85b'}.icon-cw:before{content:'\e85c'}.icon-arrows-cw:before{content:'\e85d'}.icon-target:before{content:'\e85f'}.icon-signal:before{content:'\e85e'}.icon-award:before{content:'\e860'}.icon-desktop:before{content:'\e861'}.icon-laptop:before{content:'\e862'}.icon-tablet:before{content:'\e863'}.icon-mobile:before{content:'\e864'}.icon-globe:before{content:'\e865'}.icon-sun:before{content:'\e866'}.icon-cloud:before{content:'\e867'}.icon-flash:before{content:'\e868'}.icon-moon:before{content:'\e869'}.icon-umbrella:before{content:'\e86a'}.icon-flight:before{content:'\e86b'}.icon-leaf:before{content:'\e86c'}.icon-align-justify:before{content:'\e86d'}.icon-list:before{content:'\e86e'}.icon-list-bullet:before{content:'\e86f'}.icon-list-numbered:before{content:'\e870'}.icon-crop:before{content:'\e871'}.icon-scissors:before{content:'\e872'}.icon-briefcase:before{content:'\e873'}.icon-suitcase:before{content:'\e874'}.icon-ellipsis:before{content:'\e875'}.icon-ellipsis-vert:before{content:'\e876'}.icon-qrcode:before{content:'\e877'}.icon-barcode:before{content:'\e878'}.icon-book:before{content:'\e879'}.icon-tint:before{content:'\e87b'}.icon-check:before{content:'\e87c'}.icon-check-empty:before{content:'\e87d'}.icon-circle-empty:before{content:'\e881'}.icon-dot-circled:before{content:'\e882'}.icon-gift:before{content:'\e87e'}.icon-fire:before{content:'\e87f'}.icon-magnet:before{content:'\e880'}.icon-credit-card:before{content:'\e883'}.icon-megaphone:before{content:'\e884'}.icon-rocket:before{content:'\e885'}.icon-bug:before{content:'\e886'}.icon-certificate:before{content:'\e887'}.icon-tasks:before{content:'\e888'}.icon-filter:before{content:'\e88a'}.icon-beaker:before{content:'\e88b'}.icon-magic:before{content:'\e88c'}.icon-truck:before{content:'\e88d'}.icon-gauge:before{content:'\e88f'}.icon-spinner:before{content:'\e890'}.icon-coffee:before{content:'\e88e'}.icon-food:before{content:'\e891'}.icon-eraser:before{content:'\e892'}.icon-puzzle:before{content:'\e893'}.icon-user:before{content:'\e809'}.icon-users:before{content:'\e897'}.icon-user-add:before{content:'\e898'}.icon-clock:before{content:'\e84c'}.sq-form{margin:1rem 0}.sq-form label{display:block;margin:0 0 1rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.sq-form .checkbox,.sq-form .radio{min-width:20px;margin-bottom:1.5rem;padding:0 20px 0 21px}.sq-form .checkbox .sq-checkbox,.sq-form .checkbox .sq-radio,.sq-form .checkbox input[type=checkbox],.sq-form .checkbox input[type=radio],.sq-form .radio .sq-checkbox,.sq-form .radio .sq-radio,.sq-form .radio input[type=checkbox],.sq-form .radio input[type=radio]{margin-left:-20px}.sq-form .checkbox.inline,.sq-form .radio.inline{display:inline-block;float:left}.sq-form input[type=checkbox],.sq-form input[type=radio]{margin:2px .7rem 0 0}.sq-form .sq-checkbox,.sq-form .sq-radio{display:inline-block;position:relative;width:21px;height:21px;margin-right:.7rem;text-align:center;vertical-align:middle;overflow:hidden}.sq-form .sq-checkbox>span,.sq-form .sq-radio>span{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;border:2px solid #ccc;border-radius:3px;text-indent:-999em}.sq-form .sq-checkbox input[type=checkbox],.sq-form .sq-radio input[type=checkbox]{visibility:hidden}.sq-form .sq-checkbox input[type=checkbox]:checked+span,.sq-form .sq-radio input[type=checkbox]:checked+span{background:rgba(76,176,80,.9);border-color:#4CAF50;color:#fff;text-indent:0}.sq-form .sq-checkbox input[type=radio],.sq-form .sq-radio input[type=radio]{visibility:hidden}.sq-form .sq-checkbox input[type=radio]:checked+span,.sq-form .sq-radio input[type=radio]:checked+span{background:rgba(76,176,80,.6);border-color:#4CAF50;color:#fff;text-indent:0}.sq-form .sq-radio>span{border-radius:999em}.sq-form input[type=email],.sq-form input[type=number],.sq-form input[type=password],.sq-form input[type=search],.sq-form input[type=tel],.sq-form input[type=text],.sq-form select,.sq-form textarea{width:100%;height:36px;padding:4px 6px;margin-bottom:10px;background-color:#fff;border:1px solid #ccc;border-radius:3px;outline:0;line-height:1;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.sq-form input[type=email]::-webkit-input-placeholder,.sq-form input[type=number]::-webkit-input-placeholder,.sq-form input[type=password]::-webkit-input-placeholder,.sq-form input[type=search]::-webkit-input-placeholder,.sq-form input[type=tel]::-webkit-input-placeholder,.sq-form input[type=text]::-webkit-input-placeholder,.sq-form select::-webkit-input-placeholder,.sq-form textarea::-webkit-input-placeholder{color:#999}.sq-form textarea{min-height:88px}.sq-form input[type=search]{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sq-form .form-item{clear:both}.sq-form .help-block{display:block;margin-top:-5px;margin-bottom:10px;color:#999;font-size:1.2rem;clear:both}.sq-form.inline{display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:center;overflow:hidden}.sq-form.inline input,.sq-form.inline select{margin-bottom:0}.sq-form.inline label{margin:0 .5rem;padding-right:0;line-height:1}.sq-form.inline input[type=button],.sq-form.inline input[type=submit]{width:100%}.sq-form.inline .form-item{display:block;-webkit-box-flex:1;padding-right:4px}.sq-form.inline .form-item:last-of-type{padding-right:0}.sq-form.horizontal .form-item{display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:center}.sq-form.horizontal .form-item.align-top{-webkit-box-align:start}.sq-form.horizontal .form-item.align-top label:first-of-type{padding-top:4px}.sq-form.horizontal label{min-width:3em}.sq-form.horizontal input[type=email],.sq-form.horizontal input[type=number],.sq-form.horizontal input[type=password],.sq-form.horizontal input[type=search],.sq-form.horizontal input[type=tel],.sq-form.horizontal input[type=text],.sq-form.horizontal select,.sq-form.horizontal textarea{display:block;width:100%;-webkit-box-flex:1;margin-right:.5rem}.sq-form.horizontal input[type=email]+input,.sq-form.horizontal input[type=number]+input,.sq-form.horizontal input[type=password]+input,.sq-form.horizontal input[type=search]+input,.sq-form.horizontal input[type=tel]+input,.sq-form.horizontal input[type=text]+input,.sq-form.horizontal select+input,.sq-form.horizontal textarea+input{margin-left:.5rem}.sq-form.horizontal input[type=email]:last-of-type,.sq-form.horizontal input[type=number]:last-of-type,.sq-form.horizontal input[type=password]:last-of-type,.sq-form.horizontal input[type=search]:last-of-type,.sq-form.horizontal input[type=tel]:last-of-type,.sq-form.horizontal input[type=text]:last-of-type,.sq-form.horizontal select:last-of-type,.sq-form.horizontal textarea:last-of-type{margin-right:0}.sq-form.horizontal .wd-4,.sq-form.horizontal .wd-6,.sq-form.horizontal .wd-8{width:9em;text-align:right}.sq-form.horizontal .wd-4{width:5em}.sq-form.horizontal .wd-6{width:7em}.sq-list .group-hd,.sq-list .list-item{display:block;position:relative;padding:15px 16px;border:1px solid transparent;border-width:1px 0;font-size:1.4rem}.sq-list .group-hd+.group-hd,.sq-list .group-hd+.list-item,.sq-list .list-item+.group-hd,.sq-list .list-item+.list-item{margin-top:-1px}.sq-list .tit{display:block}.sq-list .icon,.sq-list .thumb{display:block;position:relative}.sq-list .icon img,.sq-list .thumb img{display:block;width:100%}.sq-list .icon .sq-badge,.sq-list .thumb .sq-badge{position:absolute;top:-5px;left:-5px}.sq-list .icon{width:60px;height:60px}.sq-list .digest{margin-top:.5rem;margin-bottom:0}.sq-list .linked-Range{position:absolute;top:0;right:0;bottom:0;left:0;z-index:11;cursor:pointer}.sq-list .v-middle{display:-webkit-box;-webkit-box-align:center}.sq-list .row{display:block;max-height:1.4em;line-height:1.4;overflow:hidden}.sq-list .row-ellipsis{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sq-list.text .sq-badge{margin:-2px 0;margin-left:1rem}.sq-list.text .data{margin-left:1rem}.sq-list.text .sq-icon:not(.fr){display:inline-block;text-align:center;width:48px;margin:-3px 0 -3px -15px}.sq-list.media .list-item{display:-webkit-box;-webkit-box-orient:horizontal}.sq-list.media .desc{-webkit-box-flex:1;margin:0 16px}.sq-list.media .desc .tit{margin:0;margin-bottom:.5rem;font-size:1.6rem}.sq-list.media .desc .digest{margin:0;margin-bottom:.5rem;font-size:1.4rem}.sq-list.media .desc :last-child.digest,.sq-list.media .desc :last-child.tit{margin-bottom:0}.sq-list.media :first-child.desc{margin-left:0}.sq-list.media .extend{position:relative;z-index:12;letter-spacing:-4px}.sq-list.media .extend .sq-btn{margin:0;letter-spacing:0}.sq-list.media .extend .sq-btn.block{margin-bottom:5px}.sq-list.media .extend .sq-btn:not(.block){margin-right:5px}.sq-list.media .extend :last-child.sq-btn{margin-bottom:0;margin-right:0}.sq-list.media.col2 .list-item,.sq-list.media.col3 .list-item,.sq-list.media.col4 .list-item{padding:16px 10px;margin-top:0;margin-bottom:-1px}.sq-list.media.col2 .desc,.sq-list.media.col3 .desc,.sq-list.media.col4 .desc{margin-left:10px}.sq-list.tile{letter-spacing:-4px}.sq-list.tile .list-item{float:left;padding:10px 5px;text-align:center;letter-spacing:0}.sq-list.tile .icon{margin:0 auto}.sq-list.tile .tit{display:block;margin:5px 0}.sq-list.tile.col2 .list-item,.sq-list.tile.col3 .list-item,.sq-list.tile.col4 .list-item,.sq-list.tile.col5 .list-item,.sq-list.tile.col6 .list-item{float:none;display:inline-block;vertical-align:top;margin-top:0;border:0}.sq-loadMore-state{position:relative;height:40px;line-height:40px;color:#333;text-align:center;cursor:pointer;overflow:hidden}.sq-loadMore-state .state-icon{display:inline-block}.sq-loadMore-state .state-icon::before{font-family:fontello;font-style:normal;font-weight:400;speak:none}.sq-loadMore-state .state-txt{padding:0 8px}.sq-loadMore-state.click .state-icon::before{content:'\e85b'}.sq-loadMore-state.loading .state-icon{position:relative;top:-1px;-webkit-animation:spin 2s infinite linear}.sq-loadMore-state.loading .state-icon::before{content:'\e85c'}.sq-panel{background:#333}.sq-panel .close-btn{position:absolute;top:0;left:0;width:30px;height:30px;background:#d7d7d7;border-radius:3px;text-align:center;line-height:30px;cursor:pointer;z-index:3}.sq-showPanel{-webkit-animation-name:showPanel}.sq-hidePanel{-webkit-animation-name:hidePanel}.sq-hideWrap{-webkit-animation-name:hideWrap}.sq-showWrap{-webkit-animation-name:showWrap}.sq-modal{background:#fff;border-radius:5px}.sq-modal .close-btn{position:absolute;top:0;right:0;width:30px;height:30px;background:#d7d7d7;border-radius:3px;text-align:center;line-height:30px;cursor:pointer;z-index:3}.sq-modal .cancel,.sq-modal .ok{float:left;width:50%;height:40px;background:#efefef;border-top:1px solid #d7d7d7;border-radius:0 0 5px;line-height:40px;text-align:center;cursor:pointer}.sq-modal .ok{border-right:1px solid #d7d7d7;border-radius:0 0 0 5px}.suggest-panel{display:none;position:absolute;top:44px;left:0;right:0;background:#f9f9f9;border:1px solid #d7d7d7;z-index:1;box-shadow:0 6px 9px #999}.suggest-panel li:last-of-type{border-bottom:0}.suggest-panel .sq-list{border-bottom:1px solid #d7d7d7}.suggest-panel .sq-list li{padding:5px 10px}.suggest-panel .sq-list .icon,.suggest-panel .sq-list img{width:35px;height:35px}.suggest-panel .sq-list .description{margin-top:1px}.suggest-panel .sq-list .description dt{margin-bottom:2px}.suggest-panel .sq-list .description dd{color:#999}.suggest-panel .sq-list .description em{margin-left:8px;padding-left:8px;border-left:1px solid #ddd}.suggest-panel .sq-list .sq-btn{width:45px}.suggest-panel .sq-list .trigger-area{right:80px}.suggest-panel .keyword{height:30px;padding:0 10px;line-height:30px;border-bottom:1px solid #d7d7d7}.suggest-panel .keyword a{display:block;height:30px;line-height:30px;color:#555;overflow:hidden;text-overflow:ellipsis}.sq-nav-tabs{height:39px;border-bottom:1px solid #d7d7d7}.sq-nav-tabs>li{min-width:40px;height:40px;padding:0 10px;border-bottom:3px solid transparent;line-height:40px;text-align:center;cursor:pointer}.sq-nav-tabs>li.active{border-bottom-color:#d7d7d7}.sq-tab-content{display:none;border:1px solid transparent;min-height:100px}.sq-tab-content.active{display:block}.sq-tabs-loading-tip{padding:30px 0;text-align:center}.sq-tabs-loading-tip .reload>p{margin-bottom:.8em}a{color:#333}.sq-bars.nav,.sq-bars.nav-tabs,.sq-bars.pagination,.sq-bars.search,.sq-bars.toolbar{background:#f9f9f9}.badge.red{background:#e34541;color:#fff}.badge.blue{background:#009bd8;color:#fff}.badge.green{background:#6eb82c;color:#fff}.badge.grey{background:#a9a7a7;color:#fff}.badge.black{background:#444;color:#fff}.badge.orange{background:#faa800;color:#fff}.sq-list .list-item{border-top-color:#e5e5e5;border-bottom-color:#e5e5e5}.sq-list.text .group-hd{background:#efeff4;border-top-color:#e5e5e5;border-bottom-color:#e5e5e5}.sq-list.text .data,.sq-list.text .digest{color:#999}.sq-list.media.col2 .list-item,.sq-list.media.col3 .list-item,.sq-list.media.col4 .list-item{border-right:1px solid #e5e5e5}.sq-list.media.col2 .list-item:nth-child(even),.sq-list.media.col3 .list-item:nth-child(even),.sq-list.media.col4 .list-item:nth-child(even){border-right:0}/*! Animate */.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.fast{-webkit-animation-duration:.3s;animation-duration:.3s}.animated.quick{-webkit-animation-duration:.6s;animation-duration:.6s}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.1);transform:scale(1.1)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.1);transform:scale(1.1)}100%{-webkit-transform:scale(1);transform:scale(1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}100%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}100%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.3);transform:scale(.3)}50%{opacity:1;-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.3);transform:scale(.3)}50%{opacity:1;-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(1);transform:scale(1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceOut{0%{-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(1.1);transform:scale(1.1)}100%{opacity:0;-webkit-transform:scale(.3);transform:scale(.3)}}@keyframes bounceOut{0%{-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(1.1);transform:scale(1.1)}100%{opacity:0;-webkit-transform:scale(.3);transform:scale(.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}100%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}100%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}100%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}100%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) translateZ(0) rotateY(0) scale(1);transform:perspective(400px) translateZ(0) rotateY(0) scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(170deg) scale(1);transform:perspective(400px) translateZ(150px) rotateY(170deg) scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(190deg) scale(1);transform:perspective(400px) translateZ(150px) rotateY(190deg) scale(1);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) translateZ(0) rotateY(360deg) scale(.95);transform:perspective(400px) translateZ(0) rotateY(360deg) scale(.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px) translateZ(0) rotateY(360deg) scale(1);transform:perspective(400px) translateZ(0) rotateY(360deg) scale(1);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) translateZ(0) rotateY(0) scale(1);transform:perspective(400px) translateZ(0) rotateY(0) scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(170deg) scale(1);transform:perspective(400px) translateZ(150px) rotateY(170deg) scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(190deg) scale(1);transform:perspective(400px) translateZ(150px) rotateY(190deg) scale(1);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) translateZ(0) rotateY(360deg) scale(.95);transform:perspective(400px) translateZ(0) rotateY(360deg) scale(.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px) translateZ(0) rotateY(360deg) scale(1);transform:perspective(400px) translateZ(0) rotateY(360deg) scale(1);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}50%{-webkit-transform:perspective(400px) rotateX(-10deg);transform:perspective(400px) rotateX(-10deg)}100%{-webkit-transform:perspective(400px) rotateX(0deg);transform:perspective(400px) rotateX(0deg);opacity:1}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}50%{-webkit-transform:perspective(400px) rotateX(-10deg);transform:perspective(400px) rotateX(-10deg)}100%{-webkit-transform:perspective(400px) rotateX(0deg);transform:perspective(400px) rotateX(0deg);opacity:1}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}50%{-webkit-transform:perspective(400px) rotateY(-10deg);transform:perspective(400px) rotateY(-10deg)}100%{-webkit-transform:perspective(400px) rotateY(0deg);transform:perspective(400px) rotateY(0deg);opacity:1}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}50%{-webkit-transform:perspective(400px) rotateY(-10deg);transform:perspective(400px) rotateY(-10deg)}100%{-webkit-transform:perspective(400px) rotateY(0deg);transform:perspective(400px) rotateY(0deg);opacity:1}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px) rotateX(0deg);transform:perspective(400px) rotateX(0deg);opacity:1}100%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px) rotateX(0deg);transform:perspective(400px) rotateX(0deg);opacity:1}100%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px) rotateY(0deg);transform:perspective(400px) rotateY(0deg);opacity:1}100%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px) rotateY(0deg);transform:perspective(400px) rotateY(0deg);opacity:1}100%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes slideInDown{0%{opacity:0;-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes slideInDown{0%{opacity:0;-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{opacity:0;-webkit-transform:translateX(-2000px);transform:translateX(-2000px)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft{0%{opacity:0;-webkit-transform:translateX(-2000px);transform:translateX(-2000px)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{opacity:0;-webkit-transform:translateX(2000px);transform:translateX(2000px)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight{0%{opacity:0;-webkit-transform:translateX(2000px);transform:translateX(2000px)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-2000px);transform:translateX(-2000px)}}@keyframes slideOutLeft{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-2000px);transform:translateX(-2000px)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(2000px);transform:translateX(2000px)}}@keyframes slideOutRight{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(2000px);transform:translateX(2000px)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}}@keyframes slideOutUp{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp} \ No newline at end of file diff --git a/dist/css/squirrel.min.css b/dist/css/squirrel.min.css new file mode 100644 index 0000000..ad365e9 --- /dev/null +++ b/dist/css/squirrel.min.css @@ -0,0 +1,3 @@ +html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:62.5%}body{-webkit-touch-callout:none;font-family:"Segoe UI",Helvetica,"Lucida Grande",Arial,"Microsoft YaHei",FreeSans,Arimo,"Droid Sans","wenquanyi micro hei","Hiragino Sans GB","Hiragino Sans GB W3",Arial,sans-serif;font-size:1.6rem;color:#333;word-wrap:break-word;break-word:break-all}h1,h2,h3,h4,h5{font-weight:400}ul,ol,menu{list-style:none}input,textarea,select{-webkit-font-smoothing:antialiased}a{color:#333;text-decoration:none}b,i,em{font-weight:normal;font-style:normal}.sq-fl{float:left}.sq-fr{float:right}.sq-hide{display:none}.sq-unvisible{visibility:hidden}.sq-clearfix:before,.sq-clearfix:after{content:" ";display:table}.sq-clearfix:after{clear:both}.sq-a-line{display:block;max-height:1.4em;line-height:1.4em;overflow:hidden}.sq-a-line-ellipsis{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sq-btn{display:inline-block;position:relative;border-radius:3px;border:1px solid transparent;text-align:center;white-space:nowrap;line-height:1;cursor:pointer;outline:none;-webkit-user-select:none;user-select:none;padding:9px 1rem}.sq-btn.large{padding:12px 1rem;font-size:1.8rem}.sq-btn.small{padding:6px 1rem;font-size:1.4rem}.sq-btn.mini{padding:4px 1rem;font-size:1.2rem}.sq-btn.block{display:block;width:100%;clear:both}.sq-btn.disabled,.sq-btn[disabled]{pointer-events:none;cursor:not-allowed;opacity:.7}.sq-btn.mt-white{background:#f7f7f7;color:#333;border-color:#ddd}.sq-btn.mt-white>a{color:#333}.sq-btn.mt-grey{background:#e1e1e1;border-color:#e1e1e1;color:#333}.sq-btn.mt-grey>a{color:#333}.sq-btn.mt-black{background:#444;border-color:#444;color:#fff}.sq-btn.mt-black>a{color:#fff}.sq-btn.mt-blue{background:#4285f4;border-color:#4285f4;color:#fff}.sq-btn.mt-blue>a{color:#fff}.sq-btn.mt-blue:hover{background:#3367d6}.sq-btn.mt-green{background:#6eb82c;border-color:#6eb82c;color:#fff}.sq-btn.mt-green>a{color:#fff}.sq-btn.mt-orange{background:#faa800;border-color:#faa800;color:#fff}.sq-btn.mt-orange>a{color:#fff}.sq-btn.mt-red{background:#e34541;border-color:#e34541;color:#fff}.sq-btn.mt-red>a{color:#fff}.sq-btn-group{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}.sq-btn-group .active{z-index:1}.sq-btn-group>.sq-btn{-webkit-box-flex:1;-webkit-flex:1;flex:1;margin-left:-1px;border-radius:0;display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sq-btn-group>.sq-btn:first-child{margin-left:0;border-radius:3px 0 0 3px}.sq-btn-group>.sq-btn:last-child{border-radius:0 3px 3px 0}.sq-btn-group.vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.sq-btn-group.vertical>.sq-btn{margin:-1px 0 0 0}.sq-btn-group.vertical>.sq-btn:first-child{margin-top:0;border-radius:3px 3px 0 0}.sq-btn-group.vertical>.sq-btn:last-child{border-radius:0 0 3px 3px}[class*="sq-col-"]{display:block;padding:0;margin:0}[class*="sq-col-"]:before,[class*="sq-col-"]:after{content:" ";display:table}[class*="sq-col-"]:after{clear:both}[class*="sq-col-"]>li,[class*="sq-col-"]>a{display:block;float:left;height:auto}@media only screen{.sq-col-mb-1>li,.sq-col-mb-1>a{width:100%}.sq-col-mb-1>li:nth-of-type(n),.sq-col-mb-1>a:nth-of-type(n){clear:none}.sq-col-mb-1>li:nth-of-type(1n+1),.sq-col-mb-1>a:nth-of-type(1n+1){clear:both}.sq-col-mb-2>li,.sq-col-mb-2>a{width:50%}.sq-col-mb-2>li:nth-of-type(n),.sq-col-mb-2>a:nth-of-type(n){clear:none}.sq-col-mb-2>li:nth-of-type(2n+1),.sq-col-mb-2>a:nth-of-type(2n+1){clear:both}.sq-col-mb-3>li,.sq-col-mb-3>a{width:33.33333333%}.sq-col-mb-3>li:nth-of-type(n),.sq-col-mb-3>a:nth-of-type(n){clear:none}.sq-col-mb-3>li:nth-of-type(3n+1),.sq-col-mb-3>a:nth-of-type(3n+1){clear:both}.sq-col-mb-4>li,.sq-col-mb-4>a{width:25%}.sq-col-mb-4>li:nth-of-type(n),.sq-col-mb-4>a:nth-of-type(n){clear:none}.sq-col-mb-4>li:nth-of-type(4n+1),.sq-col-mb-4>a:nth-of-type(4n+1){clear:both}.sq-col-mb-5>li,.sq-col-mb-5>a{width:20%}.sq-col-mb-5>li:nth-of-type(n),.sq-col-mb-5>a:nth-of-type(n){clear:none}.sq-col-mb-5>li:nth-of-type(5n+1),.sq-col-mb-5>a:nth-of-type(5n+1){clear:both}.sq-col-mb-6>li,.sq-col-mb-6>a{width:16.66666667%}.sq-col-mb-6>li:nth-of-type(n),.sq-col-mb-6>a:nth-of-type(n){clear:none}.sq-col-mb-6>li:nth-of-type(6n+1),.sq-col-mb-6>a:nth-of-type(6n+1){clear:both}.sq-col-mb-7>li,.sq-col-mb-7>a{width:14.28571429%}.sq-col-mb-7>li:nth-of-type(n),.sq-col-mb-7>a:nth-of-type(n){clear:none}.sq-col-mb-7>li:nth-of-type(7n+1),.sq-col-mb-7>a:nth-of-type(7n+1){clear:both}.sq-col-mb-8>li,.sq-col-mb-8>a{width:12.5%}.sq-col-mb-8>li:nth-of-type(n),.sq-col-mb-8>a:nth-of-type(n){clear:none}.sq-col-mb-8>li:nth-of-type(8n+1),.sq-col-mb-8>a:nth-of-type(8n+1){clear:both}.sq-col-mb-9>li,.sq-col-mb-9>a{width:11.11111111%}.sq-col-mb-9>li:nth-of-type(n),.sq-col-mb-9>a:nth-of-type(n){clear:none}.sq-col-mb-9>li:nth-of-type(9n+1),.sq-col-mb-9>a:nth-of-type(9n+1){clear:both}.sq-col-mb-10>li,.sq-col-mb-10>a{width:10%}.sq-col-mb-10>li:nth-of-type(n),.sq-col-mb-10>a:nth-of-type(n){clear:none}.sq-col-mb-10>li:nth-of-type(10n+1),.sq-col-mb-10>a:nth-of-type(10n+1){clear:both}.sq-col-mb-11>li,.sq-col-mb-11>a{width:9.09090909%}.sq-col-mb-11>li:nth-of-type(n),.sq-col-mb-11>a:nth-of-type(n){clear:none}.sq-col-mb-11>li:nth-of-type(11n+1),.sq-col-mb-11>a:nth-of-type(11n+1){clear:both}.sq-col-mb-12>li,.sq-col-mb-12>a{width:8.33333333%}.sq-col-mb-12>li:nth-of-type(n),.sq-col-mb-12>a:nth-of-type(n){clear:none}.sq-col-mb-12>li:nth-of-type(12n+1),.sq-col-mb-12>a:nth-of-type(12n+1){clear:both}}@media only screen and (min-width: 768px){.sq-col-tb-1>li,.sq-col-tb-1>a{width:100%}.sq-col-tb-1>li:nth-of-type(n),.sq-col-tb-1>a:nth-of-type(n){clear:none}.sq-col-tb-1>li:nth-of-type(1n+1),.sq-col-tb-1>a:nth-of-type(1n+1){clear:both}.sq-col-tb-2>li,.sq-col-tb-2>a{width:50%}.sq-col-tb-2>li:nth-of-type(n),.sq-col-tb-2>a:nth-of-type(n){clear:none}.sq-col-tb-2>li:nth-of-type(2n+1),.sq-col-tb-2>a:nth-of-type(2n+1){clear:both}.sq-col-tb-3>li,.sq-col-tb-3>a{width:33.33333333%}.sq-col-tb-3>li:nth-of-type(n),.sq-col-tb-3>a:nth-of-type(n){clear:none}.sq-col-tb-3>li:nth-of-type(3n+1),.sq-col-tb-3>a:nth-of-type(3n+1){clear:both}.sq-col-tb-4>li,.sq-col-tb-4>a{width:25%}.sq-col-tb-4>li:nth-of-type(n),.sq-col-tb-4>a:nth-of-type(n){clear:none}.sq-col-tb-4>li:nth-of-type(4n+1),.sq-col-tb-4>a:nth-of-type(4n+1){clear:both}.sq-col-tb-5>li,.sq-col-tb-5>a{width:20%}.sq-col-tb-5>li:nth-of-type(n),.sq-col-tb-5>a:nth-of-type(n){clear:none}.sq-col-tb-5>li:nth-of-type(5n+1),.sq-col-tb-5>a:nth-of-type(5n+1){clear:both}.sq-col-tb-6>li,.sq-col-tb-6>a{width:16.66666667%}.sq-col-tb-6>li:nth-of-type(n),.sq-col-tb-6>a:nth-of-type(n){clear:none}.sq-col-tb-6>li:nth-of-type(6n+1),.sq-col-tb-6>a:nth-of-type(6n+1){clear:both}.sq-col-tb-7>li,.sq-col-tb-7>a{width:14.28571429%}.sq-col-tb-7>li:nth-of-type(n),.sq-col-tb-7>a:nth-of-type(n){clear:none}.sq-col-tb-7>li:nth-of-type(7n+1),.sq-col-tb-7>a:nth-of-type(7n+1){clear:both}.sq-col-tb-8>li,.sq-col-tb-8>a{width:12.5%}.sq-col-tb-8>li:nth-of-type(n),.sq-col-tb-8>a:nth-of-type(n){clear:none}.sq-col-tb-8>li:nth-of-type(8n+1),.sq-col-tb-8>a:nth-of-type(8n+1){clear:both}.sq-col-tb-9>li,.sq-col-tb-9>a{width:11.11111111%}.sq-col-tb-9>li:nth-of-type(n),.sq-col-tb-9>a:nth-of-type(n){clear:none}.sq-col-tb-9>li:nth-of-type(9n+1),.sq-col-tb-9>a:nth-of-type(9n+1){clear:both}.sq-col-tb-10>li,.sq-col-tb-10>a{width:10%}.sq-col-tb-10>li:nth-of-type(n),.sq-col-tb-10>a:nth-of-type(n){clear:none}.sq-col-tb-10>li:nth-of-type(10n+1),.sq-col-tb-10>a:nth-of-type(10n+1){clear:both}.sq-col-tb-11>li,.sq-col-tb-11>a{width:9.09090909%}.sq-col-tb-11>li:nth-of-type(n),.sq-col-tb-11>a:nth-of-type(n){clear:none}.sq-col-tb-11>li:nth-of-type(11n+1),.sq-col-tb-11>a:nth-of-type(11n+1){clear:both}.sq-col-tb-12>li,.sq-col-tb-12>a{width:8.33333333%}.sq-col-tb-12>li:nth-of-type(n),.sq-col-tb-12>a:nth-of-type(n){clear:none}.sq-col-tb-12>li:nth-of-type(12n+1),.sq-col-tb-12>a:nth-of-type(12n+1){clear:both}}label{display:block;margin:0 0 5px 0}input[type="checkbox"],input[type="radio"]{margin:4px .7rem 0 0;line-height:normal}input[type="search"]{box-sizing:border-box}input[type="file"]{display:block}.sq-form input[type="text"],.sq-form input[type="file"],.sq-form input[type="search"],.sq-form input[type="password"],.sq-form input[type="number"],.sq-form input[type="email"],.sq-form input[type="tel"],.sq-form textarea,.sq-form select{width:100%;height:36px;padding:4px 6px;border:1px solid #ccc;margin:0 0 5px 0;border-radius:3px;outline:none;line-height:1}.sq-form input[type="text"]::-webkit-input-placeholder,.sq-form input[type="file"]::-webkit-input-placeholder,.sq-form input[type="search"]::-webkit-input-placeholder,.sq-form input[type="password"]::-webkit-input-placeholder,.sq-form input[type="number"]::-webkit-input-placeholder,.sq-form input[type="email"]::-webkit-input-placeholder,.sq-form input[type="tel"]::-webkit-input-placeholder,.sq-form textarea::-webkit-input-placeholder,.sq-form select::-webkit-input-placeholder{color:#999}.sq-form textarea{height:auto}.sq-form .form-item{margin:0 0 1.5rem 0;clear:both;-webkit-user-select:none;user-select:none}.sq-form .help-block{display:block;margin-bottom:10px;color:#999;font-size:1.2rem;clear:both}.sq-form .radio,.sq-form .checkbox{min-width:20px;margin-bottom:1.5rem;padding:0 20px 0 21px}.sq-form .radio input[type="radio"],.sq-form .checkbox input[type="radio"],.sq-form .radio input[type="checkbox"],.sq-form .checkbox input[type="checkbox"],.sq-form .radio .sq-checkbox,.sq-form .checkbox .sq-checkbox,.sq-form .radio .sq-radio,.sq-form .checkbox .sq-radio{margin-left:-20px}.sq-form .radio.inline,.sq-form .checkbox.inline{display:inline-block;float:left}.sq-form.inline{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;overflow:hidden}.sq-form.inline select,.sq-form.inline input{margin-bottom:0}.sq-form.inline label{margin:0 .5rem;padding-right:0;line-height:1}.sq-form.inline input[type="submit"],.sq-form.inline input[type="button"]{width:100%}.sq-form.inline .form-item{display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;padding-right:4px;margin-bottom:0}.sq-form.inline .form-item:last-of-type{padding-right:0}.sq-form.horizontal .form-item{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.sq-form.horizontal .form-item.align-top{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.sq-form.horizontal .form-item.align-top label:first-of-type{padding-top:4px}.sq-form.horizontal label{min-width:3em}.sq-form.horizontal input[type="text"],.sq-form.horizontal input[type="search"],.sq-form.horizontal input[type="password"],.sq-form.horizontal input[type="number"],.sq-form.horizontal input[type="email"],.sq-form.horizontal input[type="tel"],.sq-form.horizontal textarea,.sq-form.horizontal select{display:block;width:100%;-webkit-box-flex:1;-webkit-flex:1;flex:1;margin-right:.5rem}.sq-form.horizontal input[type="text"]+input,.sq-form.horizontal input[type="search"]+input,.sq-form.horizontal input[type="password"]+input,.sq-form.horizontal input[type="number"]+input,.sq-form.horizontal input[type="email"]+input,.sq-form.horizontal input[type="tel"]+input,.sq-form.horizontal textarea+input,.sq-form.horizontal select+input{margin-left:.5rem}.sq-form.horizontal input[type="text"]:last-of-type,.sq-form.horizontal input[type="search"]:last-of-type,.sq-form.horizontal input[type="password"]:last-of-type,.sq-form.horizontal input[type="number"]:last-of-type,.sq-form.horizontal input[type="email"]:last-of-type,.sq-form.horizontal input[type="tel"]:last-of-type,.sq-form.horizontal textarea:last-of-type,.sq-form.horizontal select:last-of-type{margin-right:0}.sq-form.horizontal .wd-4,.sq-form.horizontal .wd-6,.sq-form.horizontal .wd-8{width:9em;text-align:right}.sq-form.horizontal .wd-4{width:5em}.sq-form.horizontal .wd-6{width:7em}.sq-checkbox,.sq-radio{display:inline-block;position:relative;width:21px;height:21px;margin-right:.7rem;text-align:center;vertical-align:middle;overflow:hidden}.sq-checkbox>span,.sq-radio>span{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;border:2px solid #ccc;border-radius:3px;text-indent:-999em}.sq-checkbox input[type=checkbox],.sq-radio input[type=checkbox],.sq-checkbox input[type=radio],.sq-radio input[type=radio]{visibility:hidden}.sq-checkbox input[type=checkbox]:checked+span,.sq-radio input[type=checkbox]:checked+span{background:rgba(76,176,80,0.9);border-color:#4caf50;color:#fff;text-indent:0}.sq-checkbox input[type=radio]:checked+span,.sq-radio input[type=radio]:checked+span{background:rgba(76,176,80,0.6);border-color:#4caf50;color:#fff;text-indent:0}.sq-radio>span{border-radius:999rem}.col-tb-visible{display:none}.col-mb-1, .col-tb-1, .col-mb-2, .col-tb-2, .col-mb-3, .col-tb-3, .col-mb-4, .col-tb-4, .col-mb-5, .col-tb-5, .col-mb-6, .col-tb-6, .col-mb-7, .col-tb-7, .col-mb-8, .col-tb-8, .col-mb-9, .col-tb-9, .col-mb-10, .col-tb-10, .col-mb-11, .col-tb-11, .col-mb-12, .col-tb-12{position:relative;min-height:1px;padding-left:1.5rem;padding-right:1.5rem}@media only screen{.col-mb-1, .col-mb-2, .col-mb-3, .col-mb-4, .col-mb-5, .col-mb-6, .col-mb-7, .col-mb-8, .col-mb-9, .col-mb-10, .col-mb-11, .col-mb-12{float:left}.col-mb-12{width:100%}.col-mb-11{width:91.66666667%}.col-mb-10{width:83.33333333%}.col-mb-9{width:75%}.col-mb-8{width:66.66666667%}.col-mb-7{width:58.33333333%}.col-mb-6{width:50%}.col-mb-5{width:41.66666667%}.col-mb-4{width:33.33333333%}.col-mb-3{width:25%}.col-mb-2{width:16.66666667%}.col-mb-1{width:8.33333333%}.col-mb-pull-12{right:100%}.col-mb-pull-11{right:91.66666667%}.col-mb-pull-10{right:83.33333333%}.col-mb-pull-9{right:75%}.col-mb-pull-8{right:66.66666667%}.col-mb-pull-7{right:58.33333333%}.col-mb-pull-6{right:50%}.col-mb-pull-5{right:41.66666667%}.col-mb-pull-4{right:33.33333333%}.col-mb-pull-3{right:25%}.col-mb-pull-2{right:16.66666667%}.col-mb-pull-1{right:8.33333333%}.col-mb-pull-0{right:0}.col-mb-push-12{left:100%}.col-mb-push-11{left:91.66666667%}.col-mb-push-10{left:83.33333333%}.col-mb-push-9{left:75%}.col-mb-push-8{left:66.66666667%}.col-mb-push-7{left:58.33333333%}.col-mb-push-6{left:50%}.col-mb-push-5{left:41.66666667%}.col-mb-push-4{left:33.33333333%}.col-mb-push-3{left:25%}.col-mb-push-2{left:16.66666667%}.col-mb-push-1{left:8.33333333%}.col-mb-push-0{left:0}.col-mb-offset-12{margin-left:100%}.col-mb-offset-11{margin-left:91.66666667%}.col-mb-offset-10{margin-left:83.33333333%}.col-mb-offset-9{margin-left:75%}.col-mb-offset-8{margin-left:66.66666667%}.col-mb-offset-7{margin-left:58.33333333%}.col-mb-offset-6{margin-left:50%}.col-mb-offset-5{margin-left:41.66666667%}.col-mb-offset-4{margin-left:33.33333333%}.col-mb-offset-3{margin-left:25%}.col-mb-offset-2{margin-left:16.66666667%}.col-mb-offset-1{margin-left:8.33333333%}.col-mb-offset-0{margin-left:0}}@media only screen and (min-width: 768px){.col-tb-1, .col-tb-2, .col-tb-3, .col-tb-4, .col-tb-5, .col-tb-6, .col-tb-7, .col-tb-8, .col-tb-9, .col-tb-10, .col-tb-11, .col-tb-12{float:left}.col-tb-12{width:100%}.col-tb-11{width:91.66666667%}.col-tb-10{width:83.33333333%}.col-tb-9{width:75%}.col-tb-8{width:66.66666667%}.col-tb-7{width:58.33333333%}.col-tb-6{width:50%}.col-tb-5{width:41.66666667%}.col-tb-4{width:33.33333333%}.col-tb-3{width:25%}.col-tb-2{width:16.66666667%}.col-tb-1{width:8.33333333%}.col-tb-pull-12{right:100%}.col-tb-pull-11{right:91.66666667%}.col-tb-pull-10{right:83.33333333%}.col-tb-pull-9{right:75%}.col-tb-pull-8{right:66.66666667%}.col-tb-pull-7{right:58.33333333%}.col-tb-pull-6{right:50%}.col-tb-pull-5{right:41.66666667%}.col-tb-pull-4{right:33.33333333%}.col-tb-pull-3{right:25%}.col-tb-pull-2{right:16.66666667%}.col-tb-pull-1{right:8.33333333%}.col-tb-pull-0{right:0}.col-tb-push-12{left:100%}.col-tb-push-11{left:91.66666667%}.col-tb-push-10{left:83.33333333%}.col-tb-push-9{left:75%}.col-tb-push-8{left:66.66666667%}.col-tb-push-7{left:58.33333333%}.col-tb-push-6{left:50%}.col-tb-push-5{left:41.66666667%}.col-tb-push-4{left:33.33333333%}.col-tb-push-3{left:25%}.col-tb-push-2{left:16.66666667%}.col-tb-push-1{left:8.33333333%}.col-tb-push-0{left:0}.col-tb-offset-12{margin-left:100%}.col-tb-offset-11{margin-left:91.66666667%}.col-tb-offset-10{margin-left:83.33333333%}.col-tb-offset-9{margin-left:75%}.col-tb-offset-8{margin-left:66.66666667%}.col-tb-offset-7{margin-left:58.33333333%}.col-tb-offset-6{margin-left:50%}.col-tb-offset-5{margin-left:41.66666667%}.col-tb-offset-4{margin-left:33.33333333%}.col-tb-offset-3{margin-left:25%}.col-tb-offset-2{margin-left:16.66666667%}.col-tb-offset-1{margin-left:8.33333333%}.col-tb-offset-0{margin-left:0}.col-tb-visible{display:block}}.animated.quick{-webkit-animation-duration:.6s;animation-duration:.6s}.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}@-webkit-keyframes bounce{0%,20%,53%,80%,100%{-webkit-transition-timing-function:cubic-bezier(.215, .61, .355, 1);transition-timing-function:cubic-bezier(.215, .61, .355, 1);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(.755, .05, .855, .06);transition-timing-function:cubic-bezier(.755, .05, .855, .06);-webkit-transform:translate3d(0, -30px, 0);transform:translate3d(0, -30px, 0)}70%{-webkit-transition-timing-function:cubic-bezier(.755, .05, .855, .06);transition-timing-function:cubic-bezier(.755, .05, .855, .06);-webkit-transform:translate3d(0, -15px, 0);transform:translate3d(0, -15px, 0)}90%{-webkit-transform:translate3d(0, -4px, 0);transform:translate3d(0, -4px, 0)}}@keyframes bounce{0%,20%,53%,80%,100%{-webkit-transition-timing-function:cubic-bezier(.215, .61, .355, 1);transition-timing-function:cubic-bezier(.215, .61, .355, 1);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(.755, .05, .855, .06);transition-timing-function:cubic-bezier(.755, .05, .855, .06);-webkit-transform:translate3d(0, -30px, 0);transform:translate3d(0, -30px, 0)}70%{-webkit-transition-timing-function:cubic-bezier(.755, .05, .855, .06);transition-timing-function:cubic-bezier(.755, .05, .855, .06);-webkit-transform:translate3d(0, -15px, 0);transform:translate3d(0, -15px, 0)}90%{-webkit-transform:translate3d(0, -4px, 0);transform:translate3d(0, -4px, 0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}50%{-webkit-transform:scale3d(1.05, 1.05, 1.05);transform:scale3d(1.05, 1.05, 1.05)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}@keyframes pulse{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}50%{-webkit-transform:scale3d(1.05, 1.05, 1.05);transform:scale3d(1.05, 1.05, 1.05)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}30%{-webkit-transform:scale3d(1.25, .75, 1);transform:scale3d(1.25, .75, 1)}40%{-webkit-transform:scale3d(.75, 1.25, 1);transform:scale3d(.75, 1.25, 1)}50%{-webkit-transform:scale3d(1.15, .85, 1);transform:scale3d(1.15, .85, 1)}65%{-webkit-transform:scale3d(.95, 1.05, 1);transform:scale3d(.95, 1.05, 1)}75%{-webkit-transform:scale3d(1.05, .95, 1);transform:scale3d(1.05, .95, 1)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}@keyframes rubberBand{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}30%{-webkit-transform:scale3d(1.25, .75, 1);transform:scale3d(1.25, .75, 1)}40%{-webkit-transform:scale3d(.75, 1.25, 1);transform:scale3d(.75, 1.25, 1)}50%{-webkit-transform:scale3d(1.15, .85, 1);transform:scale3d(1.15, .85, 1)}65%{-webkit-transform:scale3d(.95, 1.05, 1);transform:scale3d(.95, 1.05, 1)}75%{-webkit-transform:scale3d(1.05, .95, 1);transform:scale3d(1.05, .95, 1)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,100%{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px, 0, 0);transform:translate3d(-10px, 0, 0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px, 0, 0);transform:translate3d(10px, 0, 0)}}@keyframes shake{0%,100%{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px, 0, 0);transform:translate3d(-10px, 0, 0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px, 0, 0);transform:translate3d(10px, 0, 0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes swing{20%{-webkit-transform:rotate3d(0, 0, 1, 15deg);transform:rotate3d(0, 0, 1, 15deg)}40%{-webkit-transform:rotate3d(0, 0, 1, -10deg);transform:rotate3d(0, 0, 1, -10deg)}60%{-webkit-transform:rotate3d(0, 0, 1, 5deg);transform:rotate3d(0, 0, 1, 5deg)}80%{-webkit-transform:rotate3d(0, 0, 1, -5deg);transform:rotate3d(0, 0, 1, -5deg)}100%{-webkit-transform:rotate3d(0, 0, 1, 0deg);transform:rotate3d(0, 0, 1, 0deg)}}@keyframes swing{20%{-webkit-transform:rotate3d(0, 0, 1, 15deg);transform:rotate3d(0, 0, 1, 15deg)}40%{-webkit-transform:rotate3d(0, 0, 1, -10deg);transform:rotate3d(0, 0, 1, -10deg)}60%{-webkit-transform:rotate3d(0, 0, 1, 5deg);transform:rotate3d(0, 0, 1, 5deg)}80%{-webkit-transform:rotate3d(0, 0, 1, -5deg);transform:rotate3d(0, 0, 1, -5deg)}100%{-webkit-transform:rotate3d(0, 0, 1, 0deg);transform:rotate3d(0, 0, 1, 0deg)}}.swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}10%,20%{-webkit-transform:scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);transform:scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}@keyframes tada{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}10%,20%{-webkit-transform:scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);transform:scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);transform:translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg)}30%{-webkit-transform:translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);transform:translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)}45%{-webkit-transform:translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);transform:translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)}60%{-webkit-transform:translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);transform:translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)}75%{-webkit-transform:translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);transform:translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)}100%{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);transform:translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg)}30%{-webkit-transform:translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);transform:translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)}45%{-webkit-transform:translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);transform:translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)}60%{-webkit-transform:translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);transform:translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)}75%{-webkit-transform:translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);transform:translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)}100%{-webkit-transform:none;transform:none}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,100%{-webkit-transition-timing-function:cubic-bezier(.215, .61, .355, 1);transition-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;-webkit-transform:scale3d(.3, .3, .3);transform:scale3d(.3, .3, .3)}20%{-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}40%{-webkit-transform:scale3d(.9, .9, .9);transform:scale3d(.9, .9, .9)}60%{opacity:1;-webkit-transform:scale3d(1.03, 1.03, 1.03);transform:scale3d(1.03, 1.03, 1.03)}80%{-webkit-transform:scale3d(.97, .97, .97);transform:scale3d(.97, .97, .97)}100%{opacity:1;-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,100%{-webkit-transition-timing-function:cubic-bezier(.215, .61, .355, 1);transition-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;-webkit-transform:scale3d(.3, .3, .3);transform:scale3d(.3, .3, .3)}20%{-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}40%{-webkit-transform:scale3d(.9, .9, .9);transform:scale3d(.9, .9, .9)}60%{opacity:1;-webkit-transform:scale3d(1.03, 1.03, 1.03);transform:scale3d(1.03, 1.03, 1.03)}80%{-webkit-transform:scale3d(.97, .97, .97);transform:scale3d(.97, .97, .97)}100%{opacity:1;-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(.215, .61, .355, 1);transition-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;-webkit-transform:translate3d(0, -3000px, 0);transform:translate3d(0, -3000px, 0)}60%{opacity:1;-webkit-transform:translate3d(0, 25px, 0);transform:translate3d(0, 25px, 0)}75%{-webkit-transform:translate3d(0, -10px, 0);transform:translate3d(0, -10px, 0)}90%{-webkit-transform:translate3d(0, 5px, 0);transform:translate3d(0, 5px, 0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInDown{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(.215, .61, .355, 1);transition-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;-webkit-transform:translate3d(0, -3000px, 0);transform:translate3d(0, -3000px, 0)}60%{opacity:1;-webkit-transform:translate3d(0, 25px, 0);transform:translate3d(0, 25px, 0)}75%{-webkit-transform:translate3d(0, -10px, 0);transform:translate3d(0, -10px, 0)}90%{-webkit-transform:translate3d(0, 5px, 0);transform:translate3d(0, 5px, 0)}100%{-webkit-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(.215, .61, .355, 1);transition-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;-webkit-transform:translate3d(-3000px, 0, 0);transform:translate3d(-3000px, 0, 0)}60%{opacity:1;-webkit-transform:translate3d(25px, 0, 0);transform:translate3d(25px, 0, 0)}75%{-webkit-transform:translate3d(-10px, 0, 0);transform:translate3d(-10px, 0, 0)}90%{-webkit-transform:translate3d(5px, 0, 0);transform:translate3d(5px, 0, 0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(.215, .61, .355, 1);transition-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;-webkit-transform:translate3d(-3000px, 0, 0);transform:translate3d(-3000px, 0, 0)}60%{opacity:1;-webkit-transform:translate3d(25px, 0, 0);transform:translate3d(25px, 0, 0)}75%{-webkit-transform:translate3d(-10px, 0, 0);transform:translate3d(-10px, 0, 0)}90%{-webkit-transform:translate3d(5px, 0, 0);transform:translate3d(5px, 0, 0)}100%{-webkit-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(.215, .61, .355, 1);transition-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;-webkit-transform:translate3d(3000px, 0, 0);transform:translate3d(3000px, 0, 0)}60%{opacity:1;-webkit-transform:translate3d(-25px, 0, 0);transform:translate3d(-25px, 0, 0)}75%{-webkit-transform:translate3d(10px, 0, 0);transform:translate3d(10px, 0, 0)}90%{-webkit-transform:translate3d(-5px, 0, 0);transform:translate3d(-5px, 0, 0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInRight{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(.215, .61, .355, 1);transition-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;-webkit-transform:translate3d(3000px, 0, 0);transform:translate3d(3000px, 0, 0)}60%{opacity:1;-webkit-transform:translate3d(-25px, 0, 0);transform:translate3d(-25px, 0, 0)}75%{-webkit-transform:translate3d(10px, 0, 0);transform:translate3d(10px, 0, 0)}90%{-webkit-transform:translate3d(-5px, 0, 0);transform:translate3d(-5px, 0, 0)}100%{-webkit-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(.215, .61, .355, 1);transition-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;-webkit-transform:translate3d(0, 3000px, 0);transform:translate3d(0, 3000px, 0)}60%{opacity:1;-webkit-transform:translate3d(0, -20px, 0);transform:translate3d(0, -20px, 0)}75%{-webkit-transform:translate3d(0, 10px, 0);transform:translate3d(0, 10px, 0)}90%{-webkit-transform:translate3d(0, -5px, 0);transform:translate3d(0, -5px, 0)}100%{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}@keyframes bounceInUp{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(.215, .61, .355, 1);transition-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;-webkit-transform:translate3d(0, 3000px, 0);transform:translate3d(0, 3000px, 0)}60%{opacity:1;-webkit-transform:translate3d(0, -20px, 0);transform:translate3d(0, -20px, 0)}75%{-webkit-transform:translate3d(0, 10px, 0);transform:translate3d(0, 10px, 0)}90%{-webkit-transform:translate3d(0, -5px, 0);transform:translate3d(0, -5px, 0)}100%{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9, .9, .9);transform:scale3d(.9, .9, .9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}100%{opacity:0;-webkit-transform:scale3d(.3, .3, .3);transform:scale3d(.3, .3, .3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9, .9, .9);transform:scale3d(.9, .9, .9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}100%{opacity:0;-webkit-transform:scale3d(.3, .3, .3);transform:scale3d(.3, .3, .3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0, 10px, 0);transform:translate3d(0, 10px, 0)}40%,45%{opacity:1;-webkit-transform:translate3d(0, -20px, 0);transform:translate3d(0, -20px, 0)}100%{opacity:0;-webkit-transform:translate3d(0, 2000px, 0);transform:translate3d(0, 2000px, 0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0, 10px, 0);transform:translate3d(0, 10px, 0)}40%,45%{opacity:1;-webkit-transform:translate3d(0, -20px, 0);transform:translate3d(0, -20px, 0)}100%{opacity:0;-webkit-transform:translate3d(0, 2000px, 0);transform:translate3d(0, 2000px, 0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px, 0, 0);transform:translate3d(20px, 0, 0)}100%{opacity:0;-webkit-transform:translate3d(-2000px, 0, 0);transform:translate3d(-2000px, 0, 0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px, 0, 0);transform:translate3d(20px, 0, 0)}100%{opacity:0;-webkit-transform:translate3d(-2000px, 0, 0);transform:translate3d(-2000px, 0, 0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px, 0, 0);transform:translate3d(-20px, 0, 0)}100%{opacity:0;-webkit-transform:translate3d(2000px, 0, 0);transform:translate3d(2000px, 0, 0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px, 0, 0);transform:translate3d(-20px, 0, 0)}100%{opacity:0;-webkit-transform:translate3d(2000px, 0, 0);transform:translate3d(2000px, 0, 0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0, -10px, 0);transform:translate3d(0, -10px, 0)}40%,45%{opacity:1;-webkit-transform:translate3d(0, 20px, 0);transform:translate3d(0, 20px, 0)}100%{opacity:0;-webkit-transform:translate3d(0, -2000px, 0);transform:translate3d(0, -2000px, 0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0, -10px, 0);transform:translate3d(0, -10px, 0)}40%,45%{opacity:1;-webkit-transform:translate3d(0, 20px, 0);transform:translate3d(0, 20px, 0)}100%{opacity:0;-webkit-transform:translate3d(0, -2000px, 0);transform:translate3d(0, -2000px, 0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0, -2000px, 0);transform:translate3d(0, -2000px, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0, -2000px, 0);transform:translate3d(0, -2000px, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px, 0, 0);transform:translate3d(-2000px, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px, 0, 0);transform:translate3d(-2000px, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px, 0, 0);transform:translate3d(2000px, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px, 0, 0);transform:translate3d(2000px, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0, 2000px, 0);transform:translate3d(0, 2000px, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0, 2000px, 0);transform:translate3d(0, 2000px, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}}@keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, 2000px, 0);transform:translate3d(0, 2000px, 0)}}@keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, 2000px, 0);transform:translate3d(0, 2000px, 0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}}@keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px, 0, 0);transform:translate3d(-2000px, 0, 0)}}@keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px, 0, 0);transform:translate3d(-2000px, 0, 0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}}@keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px, 0, 0);transform:translate3d(2000px, 0, 0)}}@keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px, 0, 0);transform:translate3d(2000px, 0, 0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0)}}@keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, -2000px, 0);transform:translate3d(0, -2000px, 0)}}@keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, -2000px, 0);transform:translate3d(0, -2000px, 0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -360deg);transform:perspective(400px) rotate3d(0, 1, 0, -360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95, .95, .95);transform:perspective(400px) scale3d(.95, .95, .95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -360deg);transform:perspective(400px) rotate3d(0, 1, 0, -360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95, .95, .95);transform:perspective(400px) scale3d(.95, .95, .95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;-ms-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 90deg);transform:perspective(400px) rotate3d(1, 0, 0, 90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -20deg);transform:perspective(400px) rotate3d(1, 0, 0, -20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 10deg);transform:perspective(400px) rotate3d(1, 0, 0, 10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -5deg);transform:perspective(400px) rotate3d(1, 0, 0, -5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 90deg);transform:perspective(400px) rotate3d(1, 0, 0, 90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -20deg);transform:perspective(400px) rotate3d(1, 0, 0, -20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 10deg);transform:perspective(400px) rotate3d(1, 0, 0, 10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -5deg);transform:perspective(400px) rotate3d(1, 0, 0, -5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible !important;-ms-backface-visibility:visible !important;backface-visibility:visible !important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, 90deg);transform:perspective(400px) rotate3d(0, 1, 0, 90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -20deg);transform:perspective(400px) rotate3d(0, 1, 0, -20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, 10deg);transform:perspective(400px) rotate3d(0, 1, 0, 10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -5deg);transform:perspective(400px) rotate3d(0, 1, 0, -5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, 90deg);transform:perspective(400px) rotate3d(0, 1, 0, 90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -20deg);transform:perspective(400px) rotate3d(0, 1, 0, -20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, 10deg);transform:perspective(400px) rotate3d(0, 1, 0, 10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -5deg);transform:perspective(400px) rotate3d(0, 1, 0, -5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible !important;-ms-backface-visibility:visible !important;backface-visibility:visible !important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -20deg);transform:perspective(400px) rotate3d(1, 0, 0, -20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 90deg);transform:perspective(400px) rotate3d(1, 0, 0, 90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -20deg);transform:perspective(400px) rotate3d(1, 0, 0, -20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 90deg);transform:perspective(400px) rotate3d(1, 0, 0, 90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible !important;-ms-backface-visibility:visible !important;backface-visibility:visible !important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -15deg);transform:perspective(400px) rotate3d(0, 1, 0, -15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, 90deg);transform:perspective(400px) rotate3d(0, 1, 0, 90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -15deg);transform:perspective(400px) rotate3d(0, 1, 0, -15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, 90deg);transform:perspective(400px) rotate3d(0, 1, 0, 90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible !important;-ms-backface-visibility:visible !important;backface-visibility:visible !important;-webkit-animation-name:flipOutY;animation-name:flipOutY;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%, 0, 0) skewX(-30deg);transform:translate3d(100%, 0, 0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%, 0, 0) skewX(-30deg);transform:translate3d(100%, 0, 0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%, 0, 0) skewX(30deg);transform:translate3d(100%, 0, 0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%, 0, 0) skewX(30deg);transform:translate3d(100%, 0, 0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0, 0, 1, -200deg);transform:rotate3d(0, 0, 1, -200deg);opacity:0}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0, 0, 1, -200deg);transform:rotate3d(0, 0, 1, -200deg);opacity:0}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, -90deg);transform:rotate3d(0, 0, 1, -90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, -90deg);transform:rotate3d(0, 0, 1, -90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0, 0, 1, 200deg);transform:rotate3d(0, 0, 1, 200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0, 0, 1, 200deg);transform:rotate3d(0, 0, 1, 200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0, 0, 1, 45deg);transform:rotate(0, 0, 1, 45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0, 0, 1, 45deg);transform:rotate(0, 0, 1, 45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, 90deg);transform:rotate3d(0, 0, 1, 90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, 90deg);transform:rotate3d(0, 0, 1, 90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0, 0, 1, 80deg);transform:rotate3d(0, 0, 1, 80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0, 0, 1, 60deg);transform:rotate3d(0, 0, 1, 60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0, 700px, 0);transform:translate3d(0, 700px, 0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0, 0, 1, 80deg);transform:rotate3d(0, 0, 1, 80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0, 0, 1, 60deg);transform:rotate3d(0, 0, 1, 60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0, 700px, 0);transform:translate3d(0, 700px, 0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);transform:translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);transform:translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg)}100%{opacity:1;-webkit-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);transform:translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg)}}@keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);transform:translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3, .3, .3);transform:scale3d(.3, .3, .3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3, .3, .3);transform:scale3d(.3, .3, .3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1, .1, .1) translate3d(0, -1000px, 0);transform:scale3d(.1, .1, .1) translate3d(0, -1000px, 0);-webkit-animation-timing-function:cubic-bezier(.55, .055, .675, .19);animation-timing-function:cubic-bezier(.55, .055, .675, .19)}60%{opacity:1;-webkit-transform:scale3d(.475, .475, .475) translate3d(0, 60px, 0);transform:scale3d(.475, .475, .475) translate3d(0, 60px, 0);-webkit-animation-timing-function:cubic-bezier(.175, .885, .32, 1);animation-timing-function:cubic-bezier(.175, .885, .32, 1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1, .1, .1) translate3d(0, -1000px, 0);transform:scale3d(.1, .1, .1) translate3d(0, -1000px, 0);-webkit-animation-timing-function:cubic-bezier(.55, .055, .675, .19);animation-timing-function:cubic-bezier(.55, .055, .675, .19)}60%{opacity:1;-webkit-transform:scale3d(.475, .475, .475) translate3d(0, 60px, 0);transform:scale3d(.475, .475, .475) translate3d(0, 60px, 0);-webkit-animation-timing-function:cubic-bezier(.175, .885, .32, 1);animation-timing-function:cubic-bezier(.175, .885, .32, 1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);transform:scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);-webkit-animation-timing-function:cubic-bezier(.55, .055, .675, .19);animation-timing-function:cubic-bezier(.55, .055, .675, .19)}60%{opacity:1;-webkit-transform:scale3d(.475, .475, .475) translate3d(10px, 0, 0);transform:scale3d(.475, .475, .475) translate3d(10px, 0, 0);-webkit-animation-timing-function:cubic-bezier(.175, .885, .32, 1);animation-timing-function:cubic-bezier(.175, .885, .32, 1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);transform:scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);-webkit-animation-timing-function:cubic-bezier(.55, .055, .675, .19);animation-timing-function:cubic-bezier(.55, .055, .675, .19)}60%{opacity:1;-webkit-transform:scale3d(.475, .475, .475) translate3d(10px, 0, 0);transform:scale3d(.475, .475, .475) translate3d(10px, 0, 0);-webkit-animation-timing-function:cubic-bezier(.175, .885, .32, 1);animation-timing-function:cubic-bezier(.175, .885, .32, 1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1, .1, .1) translate3d(1000px, 0, 0);transform:scale3d(.1, .1, .1) translate3d(1000px, 0, 0);-webkit-animation-timing-function:cubic-bezier(.55, .055, .675, .19);animation-timing-function:cubic-bezier(.55, .055, .675, .19)}60%{opacity:1;-webkit-transform:scale3d(.475, .475, .475) translate3d(-10px, 0, 0);transform:scale3d(.475, .475, .475) translate3d(-10px, 0, 0);-webkit-animation-timing-function:cubic-bezier(.175, .885, .32, 1);animation-timing-function:cubic-bezier(.175, .885, .32, 1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1, .1, .1) translate3d(1000px, 0, 0);transform:scale3d(.1, .1, .1) translate3d(1000px, 0, 0);-webkit-animation-timing-function:cubic-bezier(.55, .055, .675, .19);animation-timing-function:cubic-bezier(.55, .055, .675, .19)}60%{opacity:1;-webkit-transform:scale3d(.475, .475, .475) translate3d(-10px, 0, 0);transform:scale3d(.475, .475, .475) translate3d(-10px, 0, 0);-webkit-animation-timing-function:cubic-bezier(.175, .885, .32, 1);animation-timing-function:cubic-bezier(.175, .885, .32, 1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1, .1, .1) translate3d(0, 1000px, 0);transform:scale3d(.1, .1, .1) translate3d(0, 1000px, 0);-webkit-animation-timing-function:cubic-bezier(.55, .055, .675, .19);animation-timing-function:cubic-bezier(.55, .055, .675, .19)}60%{opacity:1;-webkit-transform:scale3d(.475, .475, .475) translate3d(0, -60px, 0);transform:scale3d(.475, .475, .475) translate3d(0, -60px, 0);-webkit-animation-timing-function:cubic-bezier(.175, .885, .32, 1);animation-timing-function:cubic-bezier(.175, .885, .32, 1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1, .1, .1) translate3d(0, 1000px, 0);transform:scale3d(.1, .1, .1) translate3d(0, 1000px, 0);-webkit-animation-timing-function:cubic-bezier(.55, .055, .675, .19);animation-timing-function:cubic-bezier(.55, .055, .675, .19)}60%{opacity:1;-webkit-transform:scale3d(.475, .475, .475) translate3d(0, -60px, 0);transform:scale3d(.475, .475, .475) translate3d(0, -60px, 0);-webkit-animation-timing-function:cubic-bezier(.175, .885, .32, 1);animation-timing-function:cubic-bezier(.175, .885, .32, 1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3, .3, .3);transform:scale3d(.3, .3, .3)}100%{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3, .3, .3);transform:scale3d(.3, .3, .3)}100%{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475, .475, .475) translate3d(0, -60px, 0);transform:scale3d(.475, .475, .475) translate3d(0, -60px, 0);-webkit-animation-timing-function:cubic-bezier(.55, .055, .675, .19);animation-timing-function:cubic-bezier(.55, .055, .675, .19)}100%{opacity:0;-webkit-transform:scale3d(.1, .1, .1) translate3d(0, 2000px, 0);transform:scale3d(.1, .1, .1) translate3d(0, 2000px, 0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175, .885, .32, 1);animation-timing-function:cubic-bezier(.175, .885, .32, 1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475, .475, .475) translate3d(0, -60px, 0);transform:scale3d(.475, .475, .475) translate3d(0, -60px, 0);-webkit-animation-timing-function:cubic-bezier(.55, .055, .675, .19);animation-timing-function:cubic-bezier(.55, .055, .675, .19)}100%{opacity:0;-webkit-transform:scale3d(.1, .1, .1) translate3d(0, 2000px, 0);transform:scale3d(.1, .1, .1) translate3d(0, 2000px, 0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175, .885, .32, 1);animation-timing-function:cubic-bezier(.175, .885, .32, 1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475, .475, .475) translate3d(42px, 0, 0);transform:scale3d(.475, .475, .475) translate3d(42px, 0, 0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px, 0, 0);transform:scale(.1) translate3d(-2000px, 0, 0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475, .475, .475) translate3d(42px, 0, 0);transform:scale3d(.475, .475, .475) translate3d(42px, 0, 0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px, 0, 0);transform:scale(.1) translate3d(-2000px, 0, 0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475, .475, .475) translate3d(-42px, 0, 0);transform:scale3d(.475, .475, .475) translate3d(-42px, 0, 0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px, 0, 0);transform:scale(.1) translate3d(2000px, 0, 0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475, .475, .475) translate3d(-42px, 0, 0);transform:scale3d(.475, .475, .475) translate3d(-42px, 0, 0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px, 0, 0);transform:scale(.1) translate3d(2000px, 0, 0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475, .475, .475) translate3d(0, 60px, 0);transform:scale3d(.475, .475, .475) translate3d(0, 60px, 0);-webkit-animation-timing-function:cubic-bezier(.55, .055, .675, .19);animation-timing-function:cubic-bezier(.55, .055, .675, .19)}100%{opacity:0;-webkit-transform:scale3d(.1, .1, .1) translate3d(0, -2000px, 0);transform:scale3d(.1, .1, .1) translate3d(0, -2000px, 0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175, .885, .32, 1);animation-timing-function:cubic-bezier(.175, .885, .32, 1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475, .475, .475) translate3d(0, 60px, 0);transform:scale3d(.475, .475, .475) translate3d(0, 60px, 0);-webkit-animation-timing-function:cubic-bezier(.55, .055, .675, .19);animation-timing-function:cubic-bezier(.55, .055, .675, .19)}100%{opacity:0;-webkit-transform:scale3d(.1, .1, .1) translate3d(0, -2000px, 0);transform:scale3d(.1, .1, .1) translate3d(0, -2000px, 0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175, .885, .32, 1);animation-timing-function:cubic-bezier(.175, .885, .32, 1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}.sq-badge{border-radius:10px;padding:3px 7px;font-weight:normal;font-size:1.2rem;overflow:hidden}.sq-badge:empty{display:none}.sq-badge.black{background:#444;color:#fff}.sq-badge.blue{background:#009bd8;color:#fff}.sq-badge.green{background:#6eb82c;color:#fff}.sq-badge.grey{background:#a9a7a7;color:#fff}.sq-badge.red{background:#e34541;color:#fff}.sq-badge.orange{background:#faa800;color:#fff}.sq-bar{height:49px;padding:0 4px}.sq-bar .flex{display:-webkit-box;display:-webkit-flex;display:flex}.sq-bar .sq-btn{display:block;z-index:1}.sq-bar.toolbar,.sq-bar.sq-bar.nav,.sq-bar.sq-bar.pagination,.sq-bar.sq-bar.search{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;z-index:100}.sq-bar.toolbar.align-start,.sq-bar.toolbar .align-start,.sq-bar.sq-bar.nav.align-start,.sq-bar.sq-bar.nav .align-start,.sq-bar.sq-bar.pagination.align-start,.sq-bar.sq-bar.pagination .align-start,.sq-bar.sq-bar.search.align-start,.sq-bar.sq-bar.search .align-start{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.sq-bar.toolbar.align-end,.sq-bar.toolbar .align-end,.sq-bar.sq-bar.nav.align-end,.sq-bar.sq-bar.nav .align-end,.sq-bar.sq-bar.pagination.align-end,.sq-bar.sq-bar.pagination .align-end,.sq-bar.sq-bar.search.align-end,.sq-bar.sq-bar.search .align-end{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.sq-bar.nav>.title{-webkit-box-flex:1;-webkit-flex:1;flex:1;height:49px;margin:0 .5rem;font-size:1.8rem;line-height:49px;text-align:center;overflow:hidden}.sq-bar.nav>.extend{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-flex:1;-webkit-flex:1;flex:1;height:49px;margin:0 .5rem}.sq-bar.nav>.extend .sq-btn-group{width:100%}.sq-bar.pagination select{min-height:39px;line-height:1}.sq-bar.pagination>.pagination-select{position:absolute;top:0;right:80px;bottom:0;left:80px;font-size:1.4rem;text-align:center;line-height:49px}.sq-bar.pagination .disabled{pointer-events:none;opacity:.4;cursor:not-allowed}.sq-bar.nav-tabs{font-size:1.4rem}.sq-bar.nav-tabs>a{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;position:relative;height:49px;text-align:center}.sq-bar.nav-tabs span{display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1}.sq-bar.nav-tabs.icons>a{font-size:1.2rem}.sq-bar.nav-tabs.icons .sq-icon{display:block}.sq-bar.nav-tabs.icons .sq-badge{left:60%;right:auto}.sq-bar.nav-tabs .sq-badge{position:absolute;top:-2px;right:10%;padding:4px;min-width:20px;border-radius:999rem;line-height:1;z-index:1}.sq-bar.search{padding:0 8px}.sq-bar.search [type="text"],.sq-bar.search [type="search"],.sq-bar.search [type="submit"],.sq-bar.search [type="button"]{border:none;outline:none}.sq-bar.search [type="text"],.sq-bar.search [type="search"]{display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;height:32px;line-height:32px}.sq-bar.search [type="text"]+.sq-btn,.sq-bar.search [type="search"]+.sq-btn{margin-left:4px}.sq-bar.search form{display:-webkit-box;display:-webkit-flex;display:flex;width:100%}.sq-bar.search .label{position:relative;-webkit-box-flex:1;-webkit-flex:1;flex:1;background:#fff}.sq-bar.search .label.icon-search{line-height:32px}.sq-bar.search .label.icon-search::before{position:relative;top:1px;padding:0 8px;content:\f002}.sq-bar.search .sq-btn{max-height:34px;overflow:hidden}.sq-gallery{width:100%;overflow:hidden}.sq-gallery ul{margin:-3px}.sq-gallery a{display:block;position:relative}.sq-gallery img{display:block;width:100%}.sq-gallery .gallery-item{position:relative;padding:3px}.sq-gallery .title{font-size:1.4rem}.sq-gallery .desc{font-size:1.4rem}.sq-gallery.overlay .title{position:absolute;right:0;bottom:0;left:0;margin:0;padding:3px;background:rgba(0,0,0,0.6);color:#fff}.sq-gallery.overlay .desc{display:none}.sq-list .group-hd,.sq-list .list-item{display:block;position:relative;padding:12px;border-top:1px solid transparent;border-bottom:1px solid transparent;font-size:1.4rem;line-height:1.4}.sq-list .group-hd:before,.sq-list .list-item:before,.sq-list .group-hd:after,.sq-list .list-item:after{content:" ";display:table}.sq-list .group-hd:after,.sq-list .list-item:after{clear:both}.sq-list .group-hd+.group-hd,.sq-list .list-item+.group-hd,.sq-list .group-hd+.list-item,.sq-list .list-item+.list-item{margin-top:-1px}.sq-list .group-hd.divider,.sq-list .list-item.divider{border-bottom-color:#e5e5e5}.sq-list.divider>.list-item{border-color:#e5e5e5}.sq-list .icon,.sq-list .thumb{display:block;position:relative}.sq-list .icon img,.sq-list .thumb img{display:block;width:100%}.sq-list .icon .sq-badge,.sq-list .thumb .sq-badge{position:absolute;top:-5px;left:-5px}.sq-list .title{display:block;margin-bottom:.5rem}.sq-list .overlay{position:absolute;top:0;right:0;bottom:0;left:0;text-indent:-999em;z-index:11;cursor:pointer}.sq-list .align-middle{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.sq-list.text .list-item{padding:0}.sq-list.text .list-item>a{display:block;padding:12px}.sq-list.text .title{font-size:1.4rem}.sq-list.text .data{display:inline-block;float:right;width:80px;margin-left:1rem}.sq-list.text .sq-badge{margin:-2px 0;margin-left:1rem}.sq-list.text .sq-icon{display:inline-block;margin-right:12px}.sq-list.text .sq-icon.sq-fr{margin-right:0}.sq-list.media .list-item{display:-webkit-box;display:-webkit-flex;display:flex}.sq-list.media .desc{-webkit-box-flex:1;-webkit-flex:1;flex:1;margin:0 12px}.sq-list.media .desc .title{font-size:1.6rem}.sq-list.media .desc .digest{margin-bottom:.5rem;font-size:1.4rem}.sq-list.media .desc :last-child{margin-bottom:0}.sq-list.media :first-child{margin-left:0}.sq-list.media :last-child{margin-right:0}.sq-list.media .extend{position:relative;z-index:12}.sq-list.media .extend .sq-btn{float:left}.sq-list.media .extend .sq-btn+.sq-btn{margin-left:.5rem}.sq-list.media .extend .sq-btn+.sq-btn.block{margin-left:0;margin-top:.5rem}.sq-list.media[class*="sq-col-"]{border-bottom:1px solid #e5e5e5;border-left:1px solid #e5e5e5}.sq-list.media[class*="sq-col-"] .list-item{margin:0 0 0 -1px;border-bottom:none;border-left:1px solid #e5e5e5;border-right:1px solid #e5e5e5}.sq-list.tile .list-item{float:left;margin:0;padding:10px 5px;text-align:center;border:none}.sq-list.tile .icon{margin:0 auto .5rem}@font-face{font-family:"FontAwesome";src:url("../fonts/fontawesome-webfont.woff") format("woff"),url("../fonts/fontawesome-webfont.ttf") format("truetype");font-weight:normal;font-style:normal}.sq-icon{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-width:14px}.sq-icon.x2::before{font-size:2rem}.sq-icon.x3::before{font-size:2.7rem}.sq-icon.x4::before{font-size:4rem}.sq-icon.x5::before{font-size:5rem}.sq-icon.icon-left{margin-right:.5rem}.sq-icon.icon-right{margin-left:.5rem}.sq-list .icon-chevron-right:before,.sq-list .icon-chevron-left:before,.sq-list .icon-download:before{position:relative;top:.3rem}.icon-group .sq-icon::before{margin-right:.1em}.icon-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.icon-2x{font-size:2em}.icon-3x{font-size:3em}.icon-4x{font-size:4em}.icon-5x{font-size:5em}.icon-fw{width:1.28571429em;text-align:center}.icon-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.icon-ul>li{position:relative}.icon-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.icon-li.icon-lg{left:-1.85714286em}.icon-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.sq-icon.pull-left{margin-right:.3em}.sq-icon.pull-right{margin-left:.3em}.icon-spin{-webkit-animation:icon-spin 2s infinite linear;animation:icon-spin 2s infinite linear}@-webkit-keyframes icon-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes icon-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.icon-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);transform:rotate(90deg)}.icon-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);transform:rotate(180deg)}.icon-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);transform:rotate(270deg)}.icon-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.icon-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);transform:scale(1, -1)}:root .icon-rotate-90,:root .icon-rotate-180,:root .icon-rotate-270,:root .icon-flip-horizontal,:root .icon-flip-vertical{-webkit-filter:none;filter:none}.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.icon-stack-1x,.icon-stack-2x{position:absolute;left:0;width:100%;text-align:center}.icon-stack-1x{line-height:inherit}.icon-stack-2x{font-size:2em}.icon-inverse{color:#fff}.icon-glass:before{content:"\f000"}.icon-music:before{content:"\f001"}.icon-search:before{content:"\f002"}.icon-envelope-o:before{content:"\f003"}.icon-heart:before{content:"\f004"}.icon-star:before{content:"\f005"}.icon-star-o:before{content:"\f006"}.icon-user:before{content:"\f007"}.icon-film:before{content:"\f008"}.icon-th-large:before{content:"\f009"}.icon-th:before{content:"\f00a"}.icon-th-list:before{content:"\f00b"}.icon-check:before{content:"\f00c"}.icon-remove:before,.icon-close:before,.icon-times:before{content:"\f00d"}.icon-search-plus:before{content:"\f00e"}.icon-search-minus:before{content:"\f010"}.icon-power-off:before{content:"\f011"}.icon-signal:before{content:"\f012"}.icon-gear:before,.icon-cog:before{content:"\f013"}.icon-trash-o:before{content:"\f014"}.icon-home:before{content:"\f015"}.icon-file-o:before{content:"\f016"}.icon-clock-o:before{content:"\f017"}.icon-road:before{content:"\f018"}.icon-download:before{content:"\f019"}.icon-arrow-circle-o-down:before{content:"\f01a"}.icon-arrow-circle-o-up:before{content:"\f01b"}.icon-inbox:before{content:"\f01c"}.icon-play-circle-o:before{content:"\f01d"}.icon-rotate-right:before,.icon-repeat:before{content:"\f01e"}.icon-refresh:before{content:"\f021"}.icon-list-alt:before{content:"\f022"}.icon-lock:before{content:"\f023"}.icon-flag:before{content:"\f024"}.icon-headphones:before{content:"\f025"}.icon-volume-off:before{content:"\f026"}.icon-volume-down:before{content:"\f027"}.icon-volume-up:before{content:"\f028"}.icon-qrcode:before{content:"\f029"}.icon-barcode:before{content:"\f02a"}.icon-tag:before{content:"\f02b"}.icon-tags:before{content:"\f02c"}.icon-book:before{content:"\f02d"}.icon-bookmark:before{content:"\f02e"}.icon-print:before{content:"\f02f"}.icon-camera:before{content:"\f030"}.icon-font:before{content:"\f031"}.icon-bold:before{content:"\f032"}.icon-italic:before{content:"\f033"}.icon-text-height:before{content:"\f034"}.icon-text-width:before{content:"\f035"}.icon-align-left:before{content:"\f036"}.icon-align-center:before{content:"\f037"}.icon-align-right:before{content:"\f038"}.icon-align-justify:before{content:"\f039"}.icon-list:before{content:"\f03a"}.icon-dedent:before,.icon-outdent:before{content:"\f03b"}.icon-indent:before{content:"\f03c"}.icon-video-camera:before{content:"\f03d"}.icon-photo:before,.icon-image:before,.icon-picture-o:before{content:"\f03e"}.icon-pencil:before{content:"\f040"}.icon-map-marker:before{content:"\f041"}.icon-adjust:before{content:"\f042"}.icon-tint:before{content:"\f043"}.icon-edit:before,.icon-pencil-square-o:before{content:"\f044"}.icon-share-square-o:before{content:"\f045"}.icon-check-square-o:before{content:"\f046"}.icon-arrows:before{content:"\f047"}.icon-step-backward:before{content:"\f048"}.icon-fast-backward:before{content:"\f049"}.icon-backward:before{content:"\f04a"}.icon-play:before{content:"\f04b"}.icon-pause:before{content:"\f04c"}.icon-stop:before{content:"\f04d"}.icon-forward:before{content:"\f04e"}.icon-fast-forward:before{content:"\f050"}.icon-step-forward:before{content:"\f051"}.icon-eject:before{content:"\f052"}.icon-chevron-left:before{content:"\f053"}.icon-chevron-right:before{content:"\f054"}.icon-plus-circle:before{content:"\f055"}.icon-minus-circle:before{content:"\f056"}.icon-times-circle:before{content:"\f057"}.icon-check-circle:before{content:"\f058"}.icon-question-circle:before{content:"\f059"}.icon-info-circle:before{content:"\f05a"}.icon-crosshairs:before{content:"\f05b"}.icon-times-circle-o:before{content:"\f05c"}.icon-check-circle-o:before{content:"\f05d"}.icon-ban:before{content:"\f05e"}.icon-arrow-left:before{content:"\f060"}.icon-arrow-right:before{content:"\f061"}.icon-arrow-up:before{content:"\f062"}.icon-arrow-down:before{content:"\f063"}.icon-mail-forward:before,.icon-share:before{content:"\f064"}.icon-expand:before{content:"\f065"}.icon-compress:before{content:"\f066"}.icon-plus:before{content:"\f067"}.icon-minus:before{content:"\f068"}.icon-asterisk:before{content:"\f069"}.icon-exclamation-circle:before{content:"\f06a"}.icon-gift:before{content:"\f06b"}.icon-leaf:before{content:"\f06c"}.icon-fire:before{content:"\f06d"}.icon-eye:before{content:"\f06e"}.icon-eye-slash:before{content:"\f070"}.icon-warning:before,.icon-exclamation-triangle:before{content:"\f071"}.icon-plane:before{content:"\f072"}.icon-calendar:before{content:"\f073"}.icon-random:before{content:"\f074"}.icon-comment:before{content:"\f075"}.icon-magnet:before{content:"\f076"}.icon-chevron-up:before{content:"\f077"}.icon-chevron-down:before{content:"\f078"}.icon-retweet:before{content:"\f079"}.icon-shopping-cart:before{content:"\f07a"}.icon-folder:before{content:"\f07b"}.icon-folder-open:before{content:"\f07c"}.icon-arrows-v:before{content:"\f07d"}.icon-arrows-h:before{content:"\f07e"}.icon-bar-chart-o:before,.icon-bar-chart:before{content:"\f080"}.icon-twitter-square:before{content:"\f081"}.icon-facebook-square:before{content:"\f082"}.icon-camera-retro:before{content:"\f083"}.icon-key:before{content:"\f084"}.icon-gears:before,.icon-cogs:before{content:"\f085"}.icon-comments:before{content:"\f086"}.icon-thumbs-o-up:before{content:"\f087"}.icon-thumbs-o-down:before{content:"\f088"}.icon-star-half:before{content:"\f089"}.icon-heart-o:before{content:"\f08a"}.icon-sign-out:before{content:"\f08b"}.icon-linkedin-square:before{content:"\f08c"}.icon-thumb-tack:before{content:"\f08d"}.icon-external-link:before{content:"\f08e"}.icon-sign-in:before{content:"\f090"}.icon-trophy:before{content:"\f091"}.icon-github-square:before{content:"\f092"}.icon-upload:before{content:"\f093"}.icon-lemon-o:before{content:"\f094"}.icon-phone:before{content:"\f095"}.icon-square-o:before{content:"\f096"}.icon-bookmark-o:before{content:"\f097"}.icon-phone-square:before{content:"\f098"}.icon-twitter:before{content:"\f099"}.icon-facebook:before{content:"\f09a"}.icon-github:before{content:"\f09b"}.icon-unlock:before{content:"\f09c"}.icon-credit-card:before{content:"\f09d"}.icon-rss:before{content:"\f09e"}.icon-hdd-o:before{content:"\f0a0"}.icon-bullhorn:before{content:"\f0a1"}.icon-bell:before{content:"\f0f3"}.icon-certificate:before{content:"\f0a3"}.icon-hand-o-right:before{content:"\f0a4"}.icon-hand-o-left:before{content:"\f0a5"}.icon-hand-o-up:before{content:"\f0a6"}.icon-hand-o-down:before{content:"\f0a7"}.icon-arrow-circle-left:before{content:"\f0a8"}.icon-arrow-circle-right:before{content:"\f0a9"}.icon-arrow-circle-up:before{content:"\f0aa"}.icon-arrow-circle-down:before{content:"\f0ab"}.icon-globe:before{content:"\f0ac"}.icon-wrench:before{content:"\f0ad"}.icon-tasks:before{content:"\f0ae"}.icon-filter:before{content:"\f0b0"}.icon-briefcase:before{content:"\f0b1"}.icon-arrows-alt:before{content:"\f0b2"}.icon-group:before,.icon-users:before{content:"\f0c0"}.icon-chain:before,.icon-link:before{content:"\f0c1"}.icon-cloud:before{content:"\f0c2"}.icon-flask:before{content:"\f0c3"}.icon-cut:before,.icon-scissors:before{content:"\f0c4"}.icon-copy:before,.icon-files-o:before{content:"\f0c5"}.icon-paperclip:before{content:"\f0c6"}.icon-save:before,.icon-floppy-o:before{content:"\f0c7"}.icon-square:before{content:"\f0c8"}.icon-navicon:before,.icon-reorder:before,.icon-bars:before{content:"\f0c9"}.icon-list-ul:before{content:"\f0ca"}.icon-list-ol:before{content:"\f0cb"}.icon-strikethrough:before{content:"\f0cc"}.icon-underline:before{content:"\f0cd"}.icon-table:before{content:"\f0ce"}.icon-magic:before{content:"\f0d0"}.icon-truck:before{content:"\f0d1"}.icon-pinterest:before{content:"\f0d2"}.icon-pinterest-square:before{content:"\f0d3"}.icon-google-plus-square:before{content:"\f0d4"}.icon-google-plus:before{content:"\f0d5"}.icon-money:before{content:"\f0d6"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-columns:before{content:"\f0db"}.icon-unsorted:before,.icon-sort:before{content:"\f0dc"}.icon-sort-down:before,.icon-sort-desc:before{content:"\f0dd"}.icon-sort-up:before,.icon-sort-asc:before{content:"\f0de"}.icon-envelope:before{content:"\f0e0"}.icon-linkedin:before{content:"\f0e1"}.icon-rotate-left:before,.icon-undo:before{content:"\f0e2"}.icon-legal:before,.icon-gavel:before{content:"\f0e3"}.icon-dashboard:before,.icon-tachometer:before{content:"\f0e4"}.icon-comment-o:before{content:"\f0e5"}.icon-comments-o:before{content:"\f0e6"}.icon-flash:before,.icon-bolt:before{content:"\f0e7"}.icon-sitemap:before{content:"\f0e8"}.icon-umbrella:before{content:"\f0e9"}.icon-paste:before,.icon-clipboard:before{content:"\f0ea"}.icon-lightbulb-o:before{content:"\f0eb"}.icon-exchange:before{content:"\f0ec"}.icon-cloud-download:before{content:"\f0ed"}.icon-cloud-upload:before{content:"\f0ee"}.icon-user-md:before{content:"\f0f0"}.icon-stethoscope:before{content:"\f0f1"}.icon-suitcase:before{content:"\f0f2"}.icon-bell-o:before{content:"\f0a2"}.icon-coffee:before{content:"\f0f4"}.icon-cutlery:before{content:"\f0f5"}.icon-file-text-o:before{content:"\f0f6"}.icon-building-o:before{content:"\f0f7"}.icon-hospital-o:before{content:"\f0f8"}.icon-ambulance:before{content:"\f0f9"}.icon-medkit:before{content:"\f0fa"}.icon-fighter-jet:before{content:"\f0fb"}.icon-beer:before{content:"\f0fc"}.icon-h-square:before{content:"\f0fd"}.icon-plus-square:before{content:"\f0fe"}.icon-angle-double-left:before{content:"\f100"}.icon-angle-double-right:before{content:"\f101"}.icon-angle-double-up:before{content:"\f102"}.icon-angle-double-down:before{content:"\f103"}.icon-angle-left:before{content:"\f104"}.icon-angle-right:before{content:"\f105"}.icon-angle-up:before{content:"\f106"}.icon-angle-down:before{content:"\f107"}.icon-desktop:before{content:"\f108"}.icon-laptop:before{content:"\f109"}.icon-tablet:before{content:"\f10a"}.icon-mobile-phone:before,.icon-mobile:before{content:"\f10b"}.icon-circle-o:before{content:"\f10c"}.icon-quote-left:before{content:"\f10d"}.icon-quote-right:before{content:"\f10e"}.icon-spinner:before{content:"\f110"}.icon-circle:before{content:"\f111"}.icon-mail-reply:before,.icon-reply:before{content:"\f112"}.icon-github-alt:before{content:"\f113"}.icon-folder-o:before{content:"\f114"}.icon-folder-open-o:before{content:"\f115"}.icon-smile-o:before{content:"\f118"}.icon-frown-o:before{content:"\f119"}.icon-meh-o:before{content:"\f11a"}.icon-gamepad:before{content:"\f11b"}.icon-keyboard-o:before{content:"\f11c"}.icon-flag-o:before{content:"\f11d"}.icon-flag-checkered:before{content:"\f11e"}.icon-terminal:before{content:"\f120"}.icon-code:before{content:"\f121"}.icon-mail-reply-all:before,.icon-reply-all:before{content:"\f122"}.icon-star-half-empty:before,.icon-star-half-full:before,.icon-star-half-o:before{content:"\f123"}.icon-location-arrow:before{content:"\f124"}.icon-crop:before{content:"\f125"}.icon-code-fork:before{content:"\f126"}.icon-unlink:before,.icon-chain-broken:before{content:"\f127"}.icon-question:before{content:"\f128"}.icon-info:before{content:"\f129"}.icon-exclamation:before{content:"\f12a"}.icon-superscript:before{content:"\f12b"}.icon-subscript:before{content:"\f12c"}.icon-eraser:before{content:"\f12d"}.icon-puzzle-piece:before{content:"\f12e"}.icon-microphone:before{content:"\f130"}.icon-microphone-slash:before{content:"\f131"}.icon-shield:before{content:"\f132"}.icon-calendar-o:before{content:"\f133"}.icon-fire-extinguisher:before{content:"\f134"}.icon-rocket:before{content:"\f135"}.icon-maxcdn:before{content:"\f136"}.icon-chevron-circle-left:before{content:"\f137"}.icon-chevron-circle-right:before{content:"\f138"}.icon-chevron-circle-up:before{content:"\f139"}.icon-chevron-circle-down:before{content:"\f13a"}.icon-html5:before{content:"\f13b"}.icon-css3:before{content:"\f13c"}.icon-anchor:before{content:"\f13d"}.icon-unlock-alt:before{content:"\f13e"}.icon-bullseye:before{content:"\f140"}.icon-ellipsis-h:before{content:"\f141"}.icon-ellipsis-v:before{content:"\f142"}.icon-rss-square:before{content:"\f143"}.icon-play-circle:before{content:"\f144"}.icon-ticket:before{content:"\f145"}.icon-minus-square:before{content:"\f146"}.icon-minus-square-o:before{content:"\f147"}.icon-level-up:before{content:"\f148"}.icon-level-down:before{content:"\f149"}.icon-check-square:before{content:"\f14a"}.icon-pencil-square:before{content:"\f14b"}.icon-external-link-square:before{content:"\f14c"}.icon-share-square:before{content:"\f14d"}.icon-compass:before{content:"\f14e"}.icon-toggle-down:before,.icon-caret-square-o-down:before{content:"\f150"}.icon-toggle-up:before,.icon-caret-square-o-up:before{content:"\f151"}.icon-toggle-right:before,.icon-caret-square-o-right:before{content:"\f152"}.icon-euro:before,.icon-eur:before{content:"\f153"}.icon-gbp:before{content:"\f154"}.icon-dollar:before,.icon-usd:before{content:"\f155"}.icon-rupee:before,.icon-inr:before{content:"\f156"}.icon-cny:before,.icon-rmb:before,.icon-yen:before,.icon-jpy:before{content:"\f157"}.icon-ruble:before,.icon-rouble:before,.icon-rub:before{content:"\f158"}.icon-won:before,.icon-krw:before{content:"\f159"}.icon-bitcoin:before,.icon-btc:before{content:"\f15a"}.icon-file:before{content:"\f15b"}.icon-file-text:before{content:"\f15c"}.icon-sort-alpha-asc:before{content:"\f15d"}.icon-sort-alpha-desc:before{content:"\f15e"}.icon-sort-amount-asc:before{content:"\f160"}.icon-sort-amount-desc:before{content:"\f161"}.icon-sort-numeric-asc:before{content:"\f162"}.icon-sort-numeric-desc:before{content:"\f163"}.icon-thumbs-up:before{content:"\f164"}.icon-thumbs-down:before{content:"\f165"}.icon-youtube-square:before{content:"\f166"}.icon-youtube:before{content:"\f167"}.icon-xing:before{content:"\f168"}.icon-xing-square:before{content:"\f169"}.icon-youtube-play:before{content:"\f16a"}.icon-dropbox:before{content:"\f16b"}.icon-stack-overflow:before{content:"\f16c"}.icon-instagram:before{content:"\f16d"}.icon-flickr:before{content:"\f16e"}.icon-adn:before{content:"\f170"}.icon-bitbucket:before{content:"\f171"}.icon-bitbucket-square:before{content:"\f172"}.icon-tumblr:before{content:"\f173"}.icon-tumblr-square:before{content:"\f174"}.icon-long-arrow-down:before{content:"\f175"}.icon-long-arrow-up:before{content:"\f176"}.icon-long-arrow-left:before{content:"\f177"}.icon-long-arrow-right:before{content:"\f178"}.icon-apple:before{content:"\f179"}.icon-windows:before{content:"\f17a"}.icon-android:before{content:"\f17b"}.icon-linux:before{content:"\f17c"}.icon-dribbble:before{content:"\f17d"}.icon-skype:before{content:"\f17e"}.icon-foursquare:before{content:"\f180"}.icon-trello:before{content:"\f181"}.icon-female:before{content:"\f182"}.icon-male:before{content:"\f183"}.icon-gittip:before{content:"\f184"}.icon-sun-o:before{content:"\f185"}.icon-moon-o:before{content:"\f186"}.icon-archive:before{content:"\f187"}.icon-bug:before{content:"\f188"}.icon-vk:before{content:"\f189"}.icon-weibo:before{content:"\f18a"}.icon-renren:before{content:"\f18b"}.icon-pagelines:before{content:"\f18c"}.icon-stack-exchange:before{content:"\f18d"}.icon-arrow-circle-o-right:before{content:"\f18e"}.icon-arrow-circle-o-left:before{content:"\f190"}.icon-toggle-left:before,.icon-caret-square-o-left:before{content:"\f191"}.icon-dot-circle-o:before{content:"\f192"}.icon-wheelchair:before{content:"\f193"}.icon-vimeo-square:before{content:"\f194"}.icon-turkish-lira:before,.icon-try:before{content:"\f195"}.icon-plus-square-o:before{content:"\f196"}.icon-space-shuttle:before{content:"\f197"}.icon-slack:before{content:"\f198"}.icon-envelope-square:before{content:"\f199"}.icon-wordpress:before{content:"\f19a"}.icon-openid:before{content:"\f19b"}.icon-institution:before,.icon-bank:before,.icon-university:before{content:"\f19c"}.icon-mortar-board:before,.icon-graduation-cap:before{content:"\f19d"}.icon-yahoo:before{content:"\f19e"}.icon-google:before{content:"\f1a0"}.icon-reddit:before{content:"\f1a1"}.icon-reddit-square:before{content:"\f1a2"}.icon-stumbleupon-circle:before{content:"\f1a3"}.icon-stumbleupon:before{content:"\f1a4"}.icon-delicious:before{content:"\f1a5"}.icon-digg:before{content:"\f1a6"}.icon-pied-piper:before{content:"\f1a7"}.icon-pied-piper-alt:before{content:"\f1a8"}.icon-drupal:before{content:"\f1a9"}.icon-joomla:before{content:"\f1aa"}.icon-language:before{content:"\f1ab"}.icon-fax:before{content:"\f1ac"}.icon-building:before{content:"\f1ad"}.icon-child:before{content:"\f1ae"}.icon-paw:before{content:"\f1b0"}.icon-spoon:before{content:"\f1b1"}.icon-cube:before{content:"\f1b2"}.icon-cubes:before{content:"\f1b3"}.icon-behance:before{content:"\f1b4"}.icon-behance-square:before{content:"\f1b5"}.icon-steam:before{content:"\f1b6"}.icon-steam-square:before{content:"\f1b7"}.icon-recycle:before{content:"\f1b8"}.icon-automobile:before,.icon-car:before{content:"\f1b9"}.icon-cab:before,.icon-taxi:before{content:"\f1ba"}.icon-tree:before{content:"\f1bb"}.icon-spotify:before{content:"\f1bc"}.icon-deviantart:before{content:"\f1bd"}.icon-soundcloud:before{content:"\f1be"}.icon-database:before{content:"\f1c0"}.icon-file-pdf-o:before{content:"\f1c1"}.icon-file-word-o:before{content:"\f1c2"}.icon-file-excel-o:before{content:"\f1c3"}.icon-file-powerpoint-o:before{content:"\f1c4"}.icon-file-photo-o:before,.icon-file-picture-o:before,.icon-file-image-o:before{content:"\f1c5"}.icon-file-zip-o:before,.icon-file-archive-o:before{content:"\f1c6"}.icon-file-sound-o:before,.icon-file-audio-o:before{content:"\f1c7"}.icon-file-movie-o:before,.icon-file-video-o:before{content:"\f1c8"}.icon-file-code-o:before{content:"\f1c9"}.icon-vine:before{content:"\f1ca"}.icon-codepen:before{content:"\f1cb"}.icon-jsfiddle:before{content:"\f1cc"}.icon-life-bouy:before,.icon-life-buoy:before,.icon-life-saver:before,.icon-support:before,.icon-life-ring:before{content:"\f1cd"}.icon-circle-o-notch:before{content:"\f1ce"}.icon-ra:before,.icon-rebel:before{content:"\f1d0"}.icon-ge:before,.icon-empire:before{content:"\f1d1"}.icon-git-square:before{content:"\f1d2"}.icon-git:before{content:"\f1d3"}.icon-hacker-news:before{content:"\f1d4"}.icon-tencent-weibo:before{content:"\f1d5"}.icon-qq:before{content:"\f1d6"}.icon-wechat:before,.icon-weixin:before{content:"\f1d7"}.icon-send:before,.icon-paper-plane:before{content:"\f1d8"}.icon-send-o:before,.icon-paper-plane-o:before{content:"\f1d9"}.icon-history:before{content:"\f1da"}.icon-circle-thin:before{content:"\f1db"}.icon-header:before{content:"\f1dc"}.icon-paragraph:before{content:"\f1dd"}.icon-sliders:before{content:"\f1de"}.icon-share-alt:before{content:"\f1e0"}.icon-share-alt-square:before{content:"\f1e1"}.icon-bomb:before{content:"\f1e2"}.icon-soccer-ball-o:before,.icon-futbol-o:before{content:"\f1e3"}.icon-tty:before{content:"\f1e4"}.icon-binoculars:before{content:"\f1e5"}.icon-plug:before{content:"\f1e6"}.icon-slideshare:before{content:"\f1e7"}.icon-twitch:before{content:"\f1e8"}.icon-yelp:before{content:"\f1e9"}.icon-newspaper-o:before{content:"\f1ea"}.icon-wifi:before{content:"\f1eb"}.icon-calculator:before{content:"\f1ec"}.icon-paypal:before{content:"\f1ed"}.icon-google-wallet:before{content:"\f1ee"}.icon-cc-visa:before{content:"\f1f0"}.icon-cc-mastercard:before{content:"\f1f1"}.icon-cc-discover:before{content:"\f1f2"}.icon-cc-amex:before{content:"\f1f3"}.icon-cc-paypal:before{content:"\f1f4"}.icon-cc-stripe:before{content:"\f1f5"}.icon-bell-slash:before{content:"\f1f6"}.icon-bell-slash-o:before{content:"\f1f7"}.icon-trash:before{content:"\f1f8"}.icon-copyright:before{content:"\f1f9"}.icon-at:before{content:"\f1fa"}.icon-eyedropper:before{content:"\f1fb"}.icon-paint-brush:before{content:"\f1fc"}.icon-birthday-cake:before{content:"\f1fd"}.icon-area-chart:before{content:"\f1fe"}.icon-pie-chart:before{content:"\f200"}.icon-line-chart:before{content:"\f201"}.icon-lastfm:before{content:"\f202"}.icon-lastfm-square:before{content:"\f203"}.icon-toggle-off:before{content:"\f204"}.icon-toggle-on:before{content:"\f205"}.icon-bicycle:before{content:"\f206"}.icon-bus:before{content:"\f207"}.icon-ioxhost:before{content:"\f208"}.icon-angellist:before{content:"\f209"}.icon-cc:before{content:"\f20a"}.icon-shekel:before,.icon-sheqel:before,.icon-ils:before{content:"\f20b"}.icon-meanpath:before{content:"\f20c"}.sq-dropdown{position:relative;display:inline-block;vertical-align:middle}.sq-dropdown .dropdown-content{display:none;position:absolute;top:100%;left:0;min-width:100px;margin-top:-1px;background:#fff;box-shadow:0 1px 6px rgba(0,0,0,0.12);border-radius:3px;border:1px solid #e5e5e5;z-index:100}.sq-dropdown .dropdown-content>li{padding:7px 10px;border-bottom:1px solid #e5e5e5}.sq-dropdown .dropdown-content>li:hover{background:#efefef}.sq-dropdown .dropdown-content>li:last-of-type{border-bottom:none}.sq-dropdown .dropdown-content a{display:block;white-space:nowrap;line-height:1.42857143}.sq-dropdown .dropdown-content.align-right{left:auto;right:0}.sq-loadmore-state{position:relative;padding:8px;line-height:1.42857143;color:#333;text-align:center;cursor:pointer;overflow:hidden}.sq-loadmore-state .state-icon::before{font-family:"FontAwesome"}.sq-loadmore-state .state-txt{padding:0 8px}.sq-loadmore-state.click>.state-icon::before{content:'\f103'}.sq-loadmore-state.loading>.state-icon{position:relative;top:-1px;-webkit-animation:icon-spin 2s infinite linear;animation:icon-spin 2s infinite linear}.sq-loadmore-state.loading>.state-icon::before{content:'\f110'}.sq-loadmore-state.no-more>.state-icon::before{content:''}.sq-panel{background:#333}.animate-showPanel{-webkit-animation-name:showPanel;animation-name:showPanel}.animate-hidePanel{-webkit-animation-name:hidePanel;animation-name:hidePanel}.animate-hideWrap{-webkit-animation-name:hideWrap;animation-name:hideWrap}.animate-showWrap{-webkit-animation-name:showWrap;animation-name:showWrap}.sq-modal{background:#fff;border-radius:3px}.sq-modal .close-btn{position:absolute;top:0;right:0;width:30px;height:30px;background:#d7d7d7;border-radius:3px;text-align:center;line-height:30px;cursor:pointer;z-index:3}.sq-modal .ok-btn,.sq-modal .cancel-btn{position:absolute;width:50%;padding:8px;background:#efefef;border-top:1px solid #d7d7d7;text-align:center;cursor:pointer}.sq-modal .ok-btn{left:0;bottom:0;border-radius:0 0 0 3px}.sq-modal .cancel-btn{right:0;bottom:0;border-left:1px solid #d7d7d7;border-radius:0 0 3px 0}.sq-nav-tabs{height:39px;border-bottom:1px solid #d7d7d7}.sq-nav-tabs>li{min-width:40px;height:40px;padding:0 10px;border-bottom:3px solid transparent;line-height:40px;text-align:center;cursor:pointer}.sq-nav-tabs>li.active{border-bottom-color:#d7d7d7}.sq-tab-content{display:none;border:1px solid transparent;min-height:100px}.sq-tab-content.active{display:block}.sq-tabs-loading-tip{padding:30px 0;text-align:center}.sq-tabs-loading-tip .reload>p{margin-bottom:.8em}.sq-slider{display:block}.sq-slider img{display:block;margin:0 auto}.bx-wrapper{position:relative}.bx-wrapper .bx-pager{position:absolute;right:10px;bottom:10px;text-align:right}.bx-wrapper .bx-pager-item{display:inline-block;padding:0 3px}.bx-wrapper .bx-pager-link{display:inline-block;width:8px;height:8px;background:rgba(0,0,0,0.6);border-radius:999rem;font-size:0;overflow:hidden}.bx-wrapper .bx-pager-link.active{background:#38c483}.bx-wrapper .bx-controls-direction{display:none}.sq-screenshot .screenshot-horizontal{margin-top:20px;max-height:400px;overflow:hidden}.sq-screenshot .screenshot-horizontal ul{list-style:none;margin:0;padding:0;overflow:hidden}.sq-screenshot .screenshot-horizontal li{float:left;width:320px;margin:0 10px 0 0;padding:0;background:#e5e5e5;text-align:center;cursor:pointer}.sq-screenshot .screenshot-horizontal li img{display:block;width:100%}.sq-screenshot .screenshot-horizontal li.active{color:#fff;background:#e5e5e5}.sq-screenshot .screenshot-horizontal .portrait-view li{width:200px}.sq-screenshot .screenshot-scrollbar{margin:10px 0 0 0;height:5px;background:#e5e5e5;line-height:0}.sq-screenshot .screenshot-scrollbar .handle{width:100px;height:100%;background:#38c483;cursor:pointer}.sq-screenshot .screenshot-scrollbar .handle .mousearea{position:absolute;top:-9px;left:0;width:100%;height:20px} +/* squirrel @version v0.10.0 @date 2015-01-19 10:22:59 */ +/*# sourceMappingURL=../maps/squirrel.min.css.map */ \ No newline at end of file diff --git a/dist/fonts/fontawesome-webfont.ttf b/dist/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..96a3639cdde5e8ab459c6380e3b9524ee81641dc GIT binary patch literal 112160 zcmd4434B%6xi`Gm+S8fmAvrlo&PmRY0RtpCNq`UzVTOQAPJkFt6hRae1aUelRlymQ zQd>1@rP6DAZLNJ>jTzMP+(K$0`&E{uGiX<@$^0Bj* zjc>h+@9aaq0r~!mH?7(H>b_@IA%CYN@h@Js=9BfD_WmjBx>B6P4J;=|L z*gaogzi!PXmP@^_OKdN0OC9TR!Og9|M7|68#QIHJcSI9`oyen3edvm-E?&cKe&o2s z9zGv+@J(xWZ06_ksKg${eJOV3noaBa>b7N(zd@4ZuFY3nvvrH}S6d|Z_?ILpuy*^p zwU<8k`DH^A`*H=!Yxt+$N|`HdFIzhD?}cbPXDv{x~s2|vQq5-paCaQM3Y!OPNF5nCt@Opaig)5 z&_BA)o4HFf>Tp`)&&HAj1n zE;_pU=#@urI(qNXM~{B~=ogP3Ir^)k?;bUdxsKHwYdO|)Y|*jR$F4kf)3JMxJ$mf( z$6h>kj(U#9k7kc9KH7hD^U>VV`;QJBefDVn z=qpDDj~+cH9rGNE9h-10du;Ks{$rbu<&NEdY~a|l$MVNsIW~Cg=z9{q;pA^lUUKrn zlNX#^esadi)Z$TndMZ3&PskJW1U!C^&*Swd9@)b^ z%p1J>)*&KJNa&{Wtet-S4~qkNYp~KfB*^A9Ejd(476h{=)!ErPnZm4*DWq8ivN!G>WO*aInGbAM zW5+jZ(sA*Q(y)olL>k5mPfFU8YEG&~CZIEKyfqZi>f?2(_Kvo=m!&f8J*+L>TEny_ zn+tccY$TP64CUy^vV}XF6AfWC7j8(Xv+HrYAf?(<_>(2Rqq#m@WwBI=slq!XyrUTz zZ@|UtT6lX8Z)**E)zR7Zj!xFm)*8~Jnd>iGaoPHrIGuI*d4|O7qHh3RB82$ls}LvjK^85rm)(IkZ8S;^@3biqStqSL@OYheV2dd>x6H z67mHx3?U_Fd|=#be86;ewXFBGcO;BM&%JSQ(-7IY6 z+WS)M+#5zpTy@wuao-!y8HbVrBv0maAQ34dO_df(QqrsGitggg7!a0DB~xi{AcV2* z@OJYS8FQco1L07(Mw!A}d*sfJ&K}n3H76(IrRl*yM-Y+`j!K}loSkUi;_VLTWff@N5+KGn92{g`wI8l>ifFK8-qQ!T(vlnSbWtjJ%h$u zg$HszzQU5Y=#qP9yz#f@dD%oFJFod~Z~Vtwg{RHBKZm&+l z2~0ba{*KnLU&WY2jEBx;!GJ$#Of#loLWBHV$N@+k< z5klH~R2u(QT4*(@Ix~bOQWgol!W6OH2Q`gPzhy`^c z|EBTHH{WDEx9zy=t{s_m+b+3iMniL^8Gj8kF1lpfI{EkJ{Wm4aPHRf1_qy@s@zONu zZ0REDD(PnFKIt*(UnNP+w5OU`omR~Pp(zYt{SkTQZBGfPFD?T%ru-@Sk0}39?;E?A zSS}S2nC%P)MM^~q5}`gB$06iO1=X@A4Wvg(eN>%Th98K9q+uatOZBDL!>3CYA{;MH zMGQJBBSlV(B<1oV#>n;4SNOtl@orTtVzChk99f!A!q#FhD50B5LYUYaO8JkvFH3#x zhSc8I*UrUpBrWI8bcaiXM*G?s9r+K+GDGE=QFkPZ!~`n%*(_ zvG@O{^JCw~rLG1e-_X_7z_N54N%LHJt}rS$`rhc=hm|a^k;TMo>A-$IoGgqa<&k9B z)w1O23zSu6Qu^3t$KZwk@mcu$M^(jm4~dbM(dQGRMt}6Z@^b&=SdAJAiAmQcP4N+)S%WTX7hVsynTt>kkEVD^q=mBAHyLZ;cOFw6P>;Di1AzFe;dC&vh(r1&6n54+)ZmYF4=SVmBV|MY+T#q zj@52x+WUAR*SEe8e?0doD!KCri+<|Mtanq))!cM>Z2oK4tw(V@wf?%-=Ep8?YIemo z887nr1%byo9f_6#;VbCha(Y2Z3YaNDN^2;I)`4aaI}8EM*gUnq{QfC<$>++ueB!`z z|5&=e^q}u*LnK)iHN965X-;W&^$?w0GF@Wt9TypuGDTVu^8vi4OIIS_o~qLVp;lTD zSf4s(B!C&I#~Rgi{8BHlT+=!&gjAX+SkU*l)WQhZfFL?cSKELkIza!6WmL;T;ZBg& z;0%bYb}>Cv3wA`2_P@G+|Eqkz$MIEvpnk5+T6KTO;o389yvM0m|H>6)(TR=s*xWAr zO=;cYp6jb}{V%7-V}HR_*)YRqjXV%?I!712*XnjUZb^v35jP6+5WQhP+w?0(h(|k; zt>-%;w&cCmE5hzOTccj*S3JRuR{PZ*HmAcLTv^#Vv5E(sqHIgcq$LiA&6&8*wz0gh zZF`%=Wfq z)lU$@GPB)_Xn$Yip3O2YpByU#Bi9+yg&O%wLw$gGZ&I1R&C0p;Av9#DZ`pO*mdRfc zP5Vr;y*>FE0ypp`5e(R+sx0}%`WIb8$BXn?#>zsS05m`sc7`;;8gbVEr6N8Kdc)vi zL9H6Olc2dGDaNPqY3x6HEKb>JDfAWk91f?Y$HHy=hq3cxe-Vr6mp0C0Mht~>MCh_X zrZD!pk>b$Irc3;ZE$!# zOwuf@d*i7zOF<4nI3Vs-zaDMqYB(-v6*9Ujm|Xgtah+Tj^jQBJ3Si^f)9GPxi$mXf5w>*Rl@62z<7wIC3#v{%*8x4EY=}; zIIt;%0+0#FKqMwc7!;Gh2KF8|etvxK-s7y{IJ^3Y@tCpNcOR4sQ00&GoruIj7O#am5JJ~A@UB=hEwMN$0;WM(eUT+hV0GZ&CnACJo$fHcD z6pM{e+IMz!-Py&xjnzih?`Qey#x%?o zcK8&~IZa!E7cscz7HLXHh|*+dZtLo@7TVY}G@E7JKmO3BJ{T|tsDZ5C=W;mMG^^Ff zd)Nmb(p1PO2)P5sonqz3A@GvpGB&SxI8J-KiIgGAF|l#jACgb9ZYHx=3*E2c#JVqH zS>B(D90#JReAkwV$k|B7_HHH5$~KuDH9XwG^G_HxG>PojJyUr@WnEom;pbD!#>g#I zk%WZkaIxuvjqU8f*qmY6D+95@pxf*5#A5MU9{bQm&!3v_GxAo8Kgn}Rzt3;vzyD#Y zo(k=SXMg#!hJh07*#tIBtTG-%k(3N32XDaha zanbhHkotR;HP##N?lt~<<1KzH&j_tN|L!?oT66m!X4{(pj!u6i^$%Ckz2e31IQ`Sv z!_2>z1vcJ_$Jn6CjlUSrU3uv(ezS^HyMK4@+*_~qUJ~}petH~N_Utwjtoqr*Q*T^#*Sx%O)a!|)YJ-#C{_4gTZc4Rw+4p z9hr6x3WEm&wX~fNlV&CgpGrIeN3V*i2`$$h_-bhP`6E>7oNMc5RzC}I@fVGsJzG7q z?%Fvc_s-uP`f8y2_CeOp`dItm?R?L{2PejtZHy7_7W|AWHmBQh(b@-@_Nh-9#~)mK zk)wN#xN8!qv5m{(6CXVIaaQs2&YdqCe=z$MlO<&kG@QU&*shE8W?LK^O-ROG?Khq? zjte}jv4vQw%D@R);cOw+X%4&cLURogyu_58sOzlL*9Iv8O(X`OM{aMCF*?NeobDYg zcg}2^JCdrXtE-^@RK#tYeVP{=z5};K)nrw$I#}5q>8fN5H<)mswR@7Z&Gq6JBD^Cy4*D0CV}jKUN(6-fuG-5pPU<;f0r zbs!DspYmm+-MD!r?j*vBQ>l!sWFFSaJS!uW$c7UrvQl!;APPMM=^^c){rr%jR6#dT z5A8skSgXPMj357T{4;PW^h;-k1S?(#@0O|e)_dc@whUdTUzWp zsgP50xR66eoC~=ER$W0{k|kWr4Ka2z6VEVQFXVX65Z6i0jHft?$P!(qf9isV4nlr; zYCqDDbeVmb0)2y0-Qa{PpzQR9ibu{5>*l8vbq)f2*fWJG^=| z6`M9q%^kl*z4@Q|CtPIi=?|%YLRu${@34%bND+a9C~ZR^i&!4Walr=V+N2Row`Y=t zOezDp{6Hp`;@?jycDlL1$Yzp8AerPpNaiwZpuI1XDs&K$B@xf{kiN0_E=Z_8{B5e) z25^7CiBKT2dcxNq)e4pqjZ3uDu-B5*!dzzX?`R)-gGNVd@ep3dzn99G&6Xt__{8hb z=H=2Q(pF#q@Fc+9z;WqRC)Cp&sm>lwf*MMYL~V2ex3sVh_NBG-oUUQd0s98lI~`Jq zb!#QrP6|~PS-G;jc3DHnc*lRu^r3YN?~7K1G=@EqJAztxoJCf-9F>Dj3ey!Oq4>uu z%)+@Vq*=U9e;}TQ)Y!>Cn7=q=yqlPF;m{|m>~>ql4*8SS9TqlD=cyC#C=M6zcUCGv zBnksatUu+7Qa5St(6!m~HZGdct+co-Rhm6eWlL>L*%~bNIxVre&f20n>($7%l%?Kk z2}CT8WISCNVw!B-Jb&og?X%pTs@b&>`In)3cMa{Af?6<$S}>CsQozN>RbUFz6|+_d zAxH`!#9$CqKwM!0A@*zK?r<=kPRIR~6Y7mQ#+<}>GarP_fz{bncl@t)T~14kJ#CyH zr@U%KUZ{cym*>R(D+4bDq;3dFO=KeEKJgMLk_u3WtWAoIwi>ZL7r9TOzXhkqfPIGW zKLC+KPRW^!C_05@ZzMjMXZ&ao)bKC9P(UAA~OsaVKC^<(MD>X*|K4Am1N4%J@UMF4;^~< zkUU5v)A1Y~2iyGXGF-~6^S2c)8w}00>CTKwoicw(jW3+=Eyt&2aq8Zb=PP zO^w_}QcAk1)oc8xpN;=;l0S9c(D!(_cS2jr@eZq4kg>=w$M-h6&#ex){d?RRn`UJD zj6bH8+gR8Vv^v$ErOfDwtcy-b^~sD+{;$cFq`X-Ekvo$zUCY<=S6#Xh zTV#CVqPqW>e3rvqt)={mPw}`|bA43B{%mttJdb}<=97(gDnqqCaBFF+FJN(*xC$5& zFc}1fUjr?As4eDgPq%>g($TqqR>NdLJEChKEA@crb3kB#9;KUQJSaP!btHhapyrT+ z0hg=;cyIzxVPtso{9d-Bv1(TDMe`=li!#nETGNcBJJ+^NzGQ1}>tYKl{Fb}#PUv<` zg#ag!X=ziHwd}XIg;$1Vf9!@;UGcM)_hcS^dG@x)o?bQX*>M|;E8Q`6_SL=Py5nBO zmU*?^vVH!A{53r?ZR_&cmrsd0Tff&zQh{-uX5dF;|zQ7t6aXHKE@IZ2X&0>yQ9L|8i0!qc6^ngZ#OZb3&6 zHI5@mq%|G$i;mJfd$o@zqE5DR1FM+2$nTGT{>I4@*4-0TT{ZV5Ee_4ftFH6%5X1+} z`?Tz|H`}YXM)%BY`^rt{@U*YKSLf~AUSH|7tMX;ss;X9=ZnY)d{_*k2&Ib!`F1M~- zdXC$tRE_JD100f26IPF-y;ahUn7P&vsl!Oz326=5M5;D4kpv?ERWPeGML^I!5OyL( z;Hl{#$9TF$ralnc8VPry(LJI`s-{EcNB%vo5r|!an2akKTSK_|FO@Yby z_r(`4F3)`MqYlS+FlUMT5-h3J*n=)hlM+z4ny#*_mOW0UIsAGx_g>t(C}w4fs@fW! zPN;HSpYhx2m_^xp!4(yLjd4Y`e>}b;;ID~Cnq0YL!MlAVwE{#in640b>T~od#;)r4>o%mY%VwB0bd)lR>dN&CU(v`_Taj0 zyeb?GD2@u3bNgjH;$vWnX^dr|+gKw#1OaYw91}`7G-ePp*eHvG2uU-9@Mj#y9^MZ6 zmuP!z_T?kV$ZUv|C0IHw80btq5DH)u21A#IdXo%_YG8;EjJK!o>=JWqXG8cZZI6e` z2i9fts#9xjT6{&5m0`i1c3gF<42vF&m}38U<6k`H*s3*-?#`?di7465ZimyY%0rT@ zLLD;ZszO)Qn=$4ba`0H$kT0CgoEqnfx}@_!d*@3}%su^(d$#`T9nZ*mwMCylcS(op zsIoh@uNPx}{A7AuhaBt*${pjLT;At-k-ertDLul5_UCk7&kCjt=R9=US z=>xE9sR#_JQY7p@AyH1nkp!&AMNY#}+{@8D1;@Nd(Scq15y}6L+HIOE%4m#ew`i1# zqp;KwIgaE1bi2peCwx?X^mvz#cKKN2x@hq~Jko#HSbtO-$KD^?<`H-)hn@2DKQzi8 zDyJK(Ii|Le*xR%@Xbp|cpAO#3%a6T3wy$IJOoHNr$l5a;G~7Qf?x|U)|9DyH(Ra#A zm8S=X>t)xRE;;n);j79>fwHToe@y7%$KZ;yLE#aRNxB!Pm1u+fM@Qq7(aHIpE~_yJ zg+|N@!I_Hu2N(yxQxnZTA&!c;Ql1_uBM*`p1w9_6ga0FYR@Pq$iiT7BSd{w;H8h`>BIMD(FHJ)kFVi7x|GW)nJ;6AZ1v^sL-LTGpA2t%8GrIAYq~T6C6~jPbD_K zn$dKIL%NiP+{kBaI<&oz-G1oMcAnpUi0$)LIh<({5H)#KKihY(bm!3ar`TS<3N3&s z7Xxns`bvkdN{!TlYl1iFXa!4^VHim8vfxq#Z;KbF!etx_QCd8=d0_MA0cG>?9Lo-H zP!k`Bj%r!-bYHmzq~f81n+q^q&x@ig=69Z;Von8*#7>Z5(9@GM}v(LOI^unfF9SyF`9#+83snd8@nYI*z{DwX;pBprhO6!fwV zdDkc@hYR=!Yf1>cWz#@|?T;G|dZx{t<~H`l**Nwz8z&d-Dx^)bhmOZnskp4o-t;OP zXS{0GU9>5I#5L)y6YA+v%4z9A(k{ynj!{GRD_K(^$B&(=H$+HSC?p8F1Rvk zZEbI}M6bMHi?)R25^>fX?+kl9;m&w7izgs8fBsbi{d)C*Tdhyt^@|H@;5T#OFYbEM zdb7D+wZ8$zG{D#-sYjZNR++OYr7)MFPUZ)KFY&>EDzbk8VGhEv4ElilLGFiSG37cY zoaQ?q@7Q`^Yd@D_UgHUG%*$3UIkbHU@PBB#oSoJIV-CkemoFS5KY4jGS2g1IFQNwx1=3EsDox z3r%XO*Ms#_7G1UH`3(a=84*9r`FXujDD~6ttWqO&N~xEx`EAY$kHyN~Fmk{bP5Ik) z8_$OA-07;jtbbS6#O3{qmrb9X4haNhxraC(1pZFsYe_^s!8L@{~tm-v>N91@m z;_&mAthT}m!8r)ZwXni&G3ysHc6e2cuKx_L5rsNBwc)p&`cD3mKXS^OC!e7SDC~$7 zCX2T0EXoSuq;*PLXmUh9wPj{M;m(EL`q3|cM750Rr};L_#z^&|uQ#YStGmc!0uoL^ ze~2}@{`f25cs#652=g_C8fPG)<|6?oQVD`7v9Ac+PquKh!OJ)<`-NdmhP46Mt1t!9Jbf5YbvNRYeKdPRQXEi*Fu?r7(Ee!c7^$>^~ zz18%yXz2J$G;|mk8a@miK?pkRK-OaCFNp+34mTYU{*ui)Tz?5pPN|<>L#kAgkeU`R z+G*ctf#OQ^90%2M=C`962Wgnh4)cRHYk6bDIF;7K=(db)#BhJh-#fa$V_t;LlGm%G z!D|a}0)?dCL<(ZgSyB8;#1wVbg;6ZR7_Bk&rI9I0@v}-p94Y(`8dr&WbP`8%JRd&! zuyRoS9VjNr%0s5*xJmVkty0-nc!&G_{)03V5kUFxkT~d9eo}a+@Qz5DmvEiRn02l| zotGBtG(~S^M(6+oWf`iXYW&=fT14fjfbXL>(3?1Z%>qM|!C=`jgc8r@NHSm!)97bd^BB^pd`)7G z%yyMpb7~vP{D4mTRueoJhLx(~TZwr$*8dvEl`yH^KyBo;zM(NKlIx;AG~KxT*XWHe3Pxr>fT`9ue@q)l z=UBpJlcm|9m;pHiG$kK22B|HW0}W&$T4Nf8U{8iPyHo=EFSHzqvR0D$XI_{%l2!0k z2haO+&K=&RJ3Q7*ysmx1f`$pxE*B-5TG&jJ!Dc&&ZO`90lYl||tKU@~ifl4yvI?z1~m&J3aL;2h$TDqHJk6$5{(-n`$ z#$I68q$2kv|Ma-H|M;Jh_t67mE^re=oaX7_>ex6SiZeW3tdH>F$b1p*nt~A!PCw#6 zjz5rLn<|MScjCs%4RoBz265hATg0||Hx7GkbjE2^{^c^O%TtU>*>_L>&~PP{A7-RD zsxL*mX>u|mV%F?|saXk}(SUNFv4WQO>wf>GIKvJR$4mV?Kdj08CwK-9y`rRegq|fs z>kl!Z9v<_L!4uFY{DfgbfEC`uRbf*JpaNbr{bP!L-fHZ;f@}A{Ro~rv?ocKF^Bqrt zjaFkYbNUVZVSYmfPe2J>tomhs+vB$v+!vg;_xoSx@2%WB^xzXvP`+gRS~$Ygu*s~N zQkZ7grDZ@zEs$c!0D9}=*!zI{gj|j6wL66P0aOvTaZQ@uUdXa!Dz$)25DMF1LU9-A zLl&e`#xHrkeL5^tG7F5?6IUeqaPMwmsIVuMnxEQ$0%TSOT$fSv#rF}dMZP7(O@LaU z)dGtwF;RjeRP)Kgwsd=28uhbeA=^HEdOOb>zr_1f?U@w6E6KARD3VMrzzbM%K?ZMU zDZCvI6t>mV`!c|-3)C!m(33nxbZnUPGB^HWH-YT61*nPqv|blgiH@Kueph{G2fCW% znGb0TwUyQqz4LjzGgtEcE)6E&kGeHX02apR%IJTiV`f<*A5RPmZI@nkmPyX z+e+g}GM)v=r13h&8t$f;ixm2fx6-)gKy&8FPoT)lWq@E^@E{2by)W4)@H8B)I(_jr zG{NN83}VOz*M9O7Th{i}tE$)Sap(@Wd~@ar{@p=vWn6*>ydR~A9C6fkoU?6UUFS@# z-s%o`tr6^$)d#lX?sePEoqCFY`uUL=6z&gA_ zh5-m8rovvs=b<=7q+ZSBHokuC-UH{f%An6h7-fhR5jCW=PYPQr-5_|tHbS0cEDu`K7OkDy_Tv- zHgZ{u@xFj`xDvNNVZ1E7t=m3q^i67wJ zEc^>X;FjkTmE?t;A@mX-Rk0y++Z`~AW#!T{`cQrIeZv18gdlm#$SHlTRY`>tUzH;Ghw_Uh#YA!c* zBc<3^T)r=Lu~+kXV_a8dRh7K%@!GD%UHGeg9JPX?>Ng<`<`7wz@3t3iTlmyd3vu!h z|6kN$1QA(*-f=cFU3jUxp z=kTP7JY&4^o1Iwn6~U_2f!$31a)hS>EykaI`P$%vd)#}&p7G5+)iq54FSp2Y&-|V! zx1RU$7dLf&>A5dHl(wY{x(7p)yMzPag&@#_3+ zUp5q}R$Q7>uV2_P*{{sBwPmjP@nhQ)KDTU5Cv9nO*t%-hRw3iSx`Eux4GU3;eDr8K z%-suGsDMDa>97!Rs=(mkbd5r~q!G>9NonHQ{rzW8oT0E4ckf=&Y36!mGdCb~2Xs*U zi*{YOZ0_8ZZT&gM8kcXq<(ajmE30oUUZEie{YK-iUvE8=^bU4aipn z?l#he_l)%2fxzAD7qAci#oavn_O|uceU*aFeD%8Z+unZp&wu8V8lunL7>Gs#=k7Fq zJhT3H#-CW|t@@euZ?TZ^$G1psesTb99R%G|2~VpT(m8j!$!w9ww+08r@3*1 z)Ic$_#So?ww3CeA4_*l7M<_>rCjc=xp>~4M=FN-FTZ_JYhVLHf1-pY?Zmilc(dKjP z^o+aj*!h9LC)i8OdBMsKn@^1-YT~jd`RJ{z!ou=_^z8k{wqMPEm0f<_HJ_Pw(Z5dm z?mg4;8>yd$!LJjlT*3p}$??Skn)-(A~R`zPk{uJJhFSHo?_guC8qW$&N0 zYj$0B$ulqR^1b`@=dRhD{UTTmnmZ5h=}`esae^r9`X7OlWSDpkTX+J;f}@Z|l)Au5 zPWu~nXAvtoWvM>toln@|y=5)%>9?wmi zR$W(DO{TlGi3IRHe$*?}D%%(UWP*VwoMl&Ome{u%Gl+-df^NVy?#gbS1 z$7TB-A5gtH-J!^C&G;{)kWroeRu^|$4-eTnvmveVZ!+0XTr#)kTps?3fxf)j-=6P# zyfD}A>era;WJ5;bn_gGHmD`67>mH|Ljg@8KWfiu-BRJ<&9~|RprRv~A!eWST7h`$zjH^7xVx+A!25}tvoG5~Z#!zDT^1>4mRjuOKPdb@?^Vlbu z`zzM7ItVVN6Lz5ze8pQ7?4d>WmoN>{-N-@{*rKI7I%||R8X2O7eZx27*b1V zA0^W@m?saH<_~u-4Ar!?Ef_aQJJ;ZGRf8WN>9b=Sx>mIJwf448u9{LTLf+6NS3fFp zQkt-+yQw19Qr$RX>UkILm}%BA=3?n7rFPZxXLZhPtQKODAs5u%d8obfjLEtyT-P!+ zec_kHeQbzuos_qi3e1uvlb@M{&z8ZpnnZTIM!fz_k6hzVpnwe=+9`D@Dyg^3^81 zc!L2!6_s`}NIGg{MDZ%+KU$jqZR2rcuJQP{L7qeGFur?fOH<3z?(t@pf)A0)wwa^A zL?bz#&wbZ;@%iUj?{`HBKy50dC?R5m@C3hfq-gnLG;kQl6;e<;sKiJGIJ1GB2$ehdM2gBMsjRe7_yqPK= zmIm{mqYkPo<45hLU>dcfPLnpuDLH8U!3vu(uUh18giauhn&3jQAjn9UbZR8prifia zb|KIR{L8^B)4D-yJ2?tgpLBI9F#k~2V%HU(kEGlzi+Ex1hD}BCJnOLz=sf2(@-Xp) zV=t~1@^sDbl=G!0u*MY|>|X`c135(7b2;Q@aquIERgetRFRZ- z>eUrC&jd1MkGR@qDsm^1PG4;(si$b|f%eV;_5m|v;TkGVic+_0)rst?UAtB>9QnYi zUGhLd@L3Cg>3Py;oi2C*OYK>=` zKiPXCUze$6i;+^Ybs6K(P=581sm8ymtoY&>UOue&+f*VO&+*tuCY~9 zyh>SPNR}h%j%MxH{V6?0D6xDbVq550js8*LFk1~Tj7Y-x9s&G^^1+ey8u)ta~26> zOnbT$6mF2_4E8bfAB4i%Od-c}7y(?|Su?U!PsQa(w2JdDS6jB)Dj_PCW~dj{aN}$%Mc5$t3u@A#?fLK5{8!h^UH!}N{Pf^pVNlo+pcw<(5ApuN z`#L7GA6g%O;NW0k00t+xerP+!9`6x)O^P#AgBgnAkJW{$xx^-X$M!QAJs-IL3m5D%zy6!Se- z+lToMl8-oAFJ_whU@}KExfC>xY`1mcD1r$W6bzhN$yowOjCGb=J8Kj<3-d33W7A?X z1EaJ2t+ifjx~^I7e{0M%+$vthhHMSu*Vbw z`~ZmoL;oY;eMD_$a38z_HB$W;$y6GMf!-rx27x;OO##Y|Ha&{<7zzVVz{L!vGANH$ zK?L&8KP=}26v_J${s~)xc{Fk^>nH8Ox-MN0Z};16*CZS44n6#W-N(Xpjo0c_D&A;o)RY}co7ef!KU%&R!sw(RzyZLpn*t?{gmM2@ZGKi!-#B50&F0W+w(BeW zjw{AjxNV=X1uxJoAFHz3T#G{EQWeZ=A1-RQIxIEU>MMM%D_TYs_4I`%)P=dXFnG7e zT~)cIQjzDZ4ssq`Jx5lMt#W&CqdH7C;QxIgZp~@rv*}*A+ASabXPzSX75G=s!AT)A z@=)-IG=U?*4csNbMJhr(K(TJIF!dTGT%!@(lEZRZtB=u&O#oJbkSRRS*Nw0J+qo-l zcsS82+x>7Mk+~|vNFm{=4%%+G_v>sHyNS)>-S^&L3s!p)DjWgfr-)(!M{DBY8&;fa z9Q*F%n#Wng)*EjR-?Cr6%lPBlyFKSOSiyC|eMnPu85>?Im~5z+`{V6*y}f&PVfT(7 z&8=ui22&ctO-0jm+2vunwc&ivE@j2?RYz}MxM0p}!!$RRtPcOaO(RieuuALWa2vsC zmPy5dG?by(8U5q7zGmmI?i92*is)7%{4WdYHUD!CR3V3n?sNM*teAT{*a@ z)fni{_D3p`jiF8@RXHxvm`0osXR>;Hc!K(q+pf#2HTAwsz#VJOO|+&!nLcw*;==x~ zUB5MC3=+a+zQnr86Dz{0=5*Wg+h#WMDUbZT6!Tfk);f!Et-NL&bKdZT6L5Alt3o33~kg2?G zS5tEOo^2Oid;oAkG$oK5@U#vo(dJPY4WmGtFNTB01XxRVse<0AQOUiJhe^nl%8(B$ zZHP2f0{f7~D1PH5!70fkNr|fmhevdHxSC_`K*m>Jqpm$KciT^3@HD5RoZ>Bhvk z%9PR>YD`u{FrKWxby4oX`e!H9*WbRpEnU}OukcTpvMyn~E5qJFNM#_-tS26F@%2}; zVy0${=iqteMg%D$d?=b!F-wvU76S_MYBoh4@D~Qj+%YTIkvyr(V*N@i7;&1W>ahQ& z%pHvQ{4j|T4I+yg0BbLWpG=L_|w5m2^r{yrW&la|t`bU2EvzS6MSmgaCgviBD^^Dy#2vRGJ2_&e&@nczDtWO&$muq6vy8Crruf+SEfkZ(&-phSRD;)dDx=AV=f zE8jXP&A;bxZrMFAZ)wV;s;ACau+8Th!jx=VFk@pm&iz}@Ry!K&7PfWFUpb4W!Iho0a(+kK!n(!|_3W+p&&fgS zB_xacqj9i;_=8Y9ojzV@rG>e zlUA;o-gtKMtmuYx>cW>U^klBC9+y13F}r5vqy}qnLhtmje@Y+_^k@!U4>j9t&Yrn5 zD0oFEG+5#WzhZURE%?tkbSiwTOy})fwpl7sA@>=($NXn0@D^B)|OJVvZB@c znWFRkOYq{UOqzOeko}7Y(APu;nPiQ5Qlh|RERS$~EMIGG;pP!ic<51!VX^1Vg_^a$ zp|m3)Y#GbL0x(+xP@{E^IH4zjLnk6m2li9)-^L;Ulo0O;Vi(F#*j>Rl8>H?Q53BV*n>cIw=Ptfn3p?u(Zk=|+5P*;{=UGH z`8KX7Rs@ygFO9paswR3?1m68gAG1yfSA;qy&ik+bzNKNHF?`;*>QHUste>&KT~8Tb zJJC6=y85bl73YT=9&fzrr$@d#eah5D6Kw02hgXDcUau{rH9SIN!ssAk7(iPL9EILv zAWSL^s!7Br0Eb8)ksvP$qU%V4NaI6E1`i)IG!`Y{ejSE6M8F0N$N_!0X z{0x*lg0Nr(e3>yyG-1mM;aF#w`9CyRNe-%@&s=Z;`;6m^QA?x~DYpNdbBqn@iVu%p zBH&xlFtbRbOa58Fa1?ohNN);NFrwwBqzYn2M0*C0BZX`5a$&;vT^i9w{ zZG5Mj`*f$O&TPrZlgg zJ0N51(3a1*i1mH)HRH$67{}hMZ+`RH%MaGZqs>j5_sv|?yJ*~XY~@Rq!?)kvzo|cY z`Gv~*wX8r2^D!Zsx(kGpr-`3oL;&X!8te)!Vhq-&IO#e>=)(KqHNI-GtDmM2dC2RQaKDaTOn>fRBT zR9qe$box&~iNyO6V9AfrVmXquQ$wf?^zEUk$dqKdpoWM*!8Bq$3n?BV>tF@@)Zsf^ zN{rldz(T;sOlMlYnfra!cT^^L$oSe@m9TV*r~@pqNuk((pw-|3cQ56W(SN@FM#;U*Q zWXa0=z-%~Q``QaeoW_y_q&N}nP>U!<;1)`KDe0!*k^{negj>KWX)(hVmtmu_D6fiV zeDC=2y$t{Od#v2q_e87msYjFw*U)>e3Pt&XInthQdslVJuFh57Z+qApdZzeyv=pcq zYIgPx`?b^SbrxX{b!IaSFv?@sZ~ zLG~PjX*dmgMfo;Gq7GA@dPX`c@d2Wf`p()Flhu=a7jpIh+OuO zL>LhnNwS4tHZ`(*zh}xhvCHNau2loZ`x91t;)PGFn4sj*kt`ONk%h*8>G@OBe|*sb z>om)Ye@st3f9bQabEbGa^Dbi(*f<_&yJGFMX=|@&E4*#I+TKU2uCKjm)xOWZch>=? zM*RVz-4GDkIC0>v_ddIC71|F^M9^u5dZXZP;D!zYo{r;*HUo7+X9`VDN3x7JkDU-- z6T?78c;+z-V@F~j=xIE!_V1~&IU2s6anx2fzA(Yo=+J8ecia(eYP3ywp|QHwk@E*L)*|{1mV7j+M3S4*NEOn^LcS(ZbHN+D0-B1!z89~c%ns}@?Y^y|#l9HF;J5Cf$7^FM#df5D7 zyFr@;1SLftMUe1_Gz_{nMJ^(=5y!<**s?*eO-!-cAB)vb?{28(5KYf*a8)qBFBG)Q zxd0Ab>K6|4x`SS+(3$8!~}O>tS)_>yc0RChcTo;ss>S!PmTA?#>}#gi4W zbCzbaCci^5Co>DC%=+ZrYTu=y;G~`dmtS_Ed*;sD>$5#egPrqb45HU>g@FT&9dNIZ zbqm;1N+Us`4j|dm!SHB0Az#A17*#Qrv{>jD#0r_dK)^_1oYF4aq87OVkT2v)DTEAA zA0gKPQwVbuMoo2l+rlx>zyS?8ns(~RX{P+E7=`j7>Ps5W(#84t?KC}y=9UqlBPL_*bCBqmMYG5$8?(Oj``Q!F=noXD0<2) zo&_Y%Eds7ZIRn_%lT2M%BTp4WTbOBrYK{KkpjrfM44cVE3wpFxP)0-q#XCESu6w!$ z4?{-L`RNLfQ@L*;*%BMJ!+!YfA@2Tuc<-%b8<0feFngaoDu>Oy5t<8T-<H{g-CZP!s{y^1=Mgc>R<6B!?G%*Cf!p?G!JyjKTn~gDSLZYMtHMgyVBUK&@Rz18mwWjRPkYhQSDMr?fLM_ zm}_jSE`@|-0}U+3>D0ayKB`@i%c5Dp2_Q1D?oCI`Kp0yn8p%e@CHyeOGz>R}d@;oo zu??rT>k_juG|Q)f0qNwJh85RmPQaO+{hU|eO1a+vBsCONkkoA*VSJ^e2L>HlDjk5G zk4Bz0g4rd`H-*)V!Vm=N9jSDixTQnv7Yxx3LAMaI51I)83GFB;o&KpbR9vW**N0Gd zX9t8@Aw**pCA4tL1qPa>>!`{Oq)-hBKq#!A7Sf6DB-tWrLgSFb-YhB!cZR|#;1v|% zco+%DO*%t*2O(TMhKDOankggwU?e z_Ecx6Q@k8lkJ{M-V`J8y!2>irXi;k?90=+==ux~)oH|H70u+G3>qyfW(K#h|5KE36 zO#UL=%Jf4SynX*J|L=LbCvC~+hfzLvaT|BK(@5wtTSg+kt4FI>zrvS!X)|? z-5S=^L}gslbO%JKR_4&Ni-hA$n<8-t*abHfR(C@o~br&x9AqcKV;0U!ynA$Rf6~`EyHkIA)!{SkXEa; zvd(2C#J#fYbJ{$z!zz2ZJLEll?3zwf#aYm;I;;p}%CVSK*==QVW%SN{wfaHI!p`3pgZH+%*$*Jrdu@4;^!d-um~}a6ClMg^wtVlwNn&V)n%{z7)^mquBKQmT(v5i)h}xo&W5PcD2q=wv;s>SL=)Ki8JH)&y-ShquQ zs}&ea8#yQV@B%AFC=9r(WNwR#IoudC-HJ%d%%&hVBuBVTwNgQ>NQLVb3@C=%9YGVU z%%!Uyt0HTfLz7(?$;J2TjCs%nJBxZ1%$W<*$YN=QInI*h2E=o=TQ#*_)1vrbl8c_< zfu>4D4JtC;rUyMCu2ltWmV~A|HGFN!D=X-0o#MAJr_U~HK21?A6*`3g5SNUWZpI~NHmko*o z?zQU{Xhviog086+#qY7=O?G_w8@{Rn@}m3N#dWE#`pRGL7I#gU|DfZ1r%3mSh;p?mGL2Q%!#elS?jHIhZMca0*Y3af+vI8O+r2rBu~N; zl`o<}V-o{;548^LK}q(B@a&*dDLkke3=4ZFW|CI?vxRfX$8!TroDZcx&ff@+|I zKYc(+m70`a;M+(D0U`p!N&X1?9eW4gkik$W=6HyiBilvH*yu4JB_?T&5TYuG_;3)Y z5nm>lv!cN+Yyu=hQXoB}Z%~sen?cOi54E`T0fh1l9(DB557ytiT9sg5YQ#*D$^dnG z07EcHUjcy3o+J(ftErzQ-6O0Jt=Pz5{ASJxNfgMl2D~CkM(9f*sn#H?C33|8c7jOt4haAS;3kmroNQ0J1 zE75gf+m-Qe%TXC)ZQ6Wb}Z0tFbxPf zpm50|wx+2$oUFd9;5x(SrPWqpcWTrYzcO8TY|)bI)opiGC&SH6Y=gK-;75L5_iLMB zrx}O0#pM_UVp+fn*MQ5z)V9cEYAk|$fO09`1XWnP)>$&Kk;5I5>B(;5nKYh7iozQR zUwz0~h##(H>a)>TU_x3W$LxN+tHE6van#E3=#i?%hUmU%VS4mPv>{!+FB*NNs&Q;7 z`Q~%>E!%P3vLnmRKmXjFJC?t)d`upn2}JENxz-V>bT@SAeml~zb^T#gWN(!J0f}hU z-e?+ys%l3UD!h4g+1_R6{BYTh>(4#^eAGNTOX~u-D+k#H{S9z%RTlc91?f^vLot7@V;m7?b*L!!L*tm zfp@$H`hF+s4r3M&F%PT_z-3!dbvkaDRkj@aSQlLXbjcFo#wBDY~y7yB#Lk7@S- z0l)FKag_gW<7gmv{slMRe1Tla?lW<;v1O*QjD4;)$?h|@Bt=&wCS+`ckQYg-qz%#z z>2~RE+@iO^QUp>1)}fh<(e zxhWFXVW)v^2edThT)-nRXGXLVR6;f54^O3`r6d9$)(5PU-YOpy{5ZRUorub6P0s1@ zx(bV~v?!p7*Dl-jz@6u=u3+ zxs-_9pDXs8pq2@CJZEMK(z`o4QJ%WIw1dGoB!+U1#h z`=(rxK6`oly$dHyWJ)i)&7x;L^@+fqrd@4Q5_Bj`Y1`G55C=Xm*`5ek#z$li$RhS% zF`msDOSbe|pz8K05hI^v2lmL=G_VN)e@Vb!wTR}Bgk=c6%D@D^E#hVqLE}>y&`}FS z+|h1zs%KBqw5`ZK$8#!p!@wpbkhopl>I^3>;2 zgZy(dso;X?lFwqr?>69J)M0$3;itw=`M(%HH9n2+&kc}!Hohh!HS`btP05)#KpR7( z^>J6j=A@3uAn<;oSosLA_6v0s#5<;@#gJ_Uv3a6w|<<%P=-FC+%Lx0`!#$%6O z!!NW=^*C*XC(gcf!`?pGGHq#g`Lx2jnz zLbUVuXCPsM{jV7AP8u zE=_$iwLfMw=?}|~j+0jkA*bdD%^ept6jUEW)~_K49%Dq#J+^#Hta(*G#*fhV&r=$%yy}6!s&3kOcYU7DR{_ zatN_eLArsDLXGJ>+?FzJ?L=*AdK#9VWAC3b2sdt8vY~g<#7Wi7mq#oU6MoNh&jz;e zqPA{s?AONk_KvTvY^gt|;-bm(E}6M>7Q0#fqd5*f7sVhxo-@9%k#S4YoI5wDZ9Wme^f8_}aQ-!p`8@kr!q>LEy?I=?vTE{_wn@w8v@UDutn4j4mi^iHJ*e0=uk;#u4E0^3s z+%O_3Zfw9r*xT?c$B6n=h;Ghwk|2zJL0Dp|1QttagJcKzfv^T---?DO z-2O49v~KIY%4T<|j^(b_%=tU7o;jnp_ouVgPfou5|M2!6fNhm$+pwN9wD-2;Az7B> zc*aAv;}s=whBKX=kdT;6XFxUqG7w2vDTNRqP)1`Y6ey%nHgD6`ZGqCVDRk1-w3Lt1 zGCC+Uu};40evV|zP6E8||NbAuXX%V*-p@U+o86`xev(bibGIce5== z>O?M5#A8su#Xv1GI_lbn(NVo<3AWZBC|)pUdtp-{6Izq4$OFWz+R8}VqQyN6o61K! zN*o@Y4KlZ@xO|mWnD^53iy-S)#yhn(QE%0Hklk+Tv<>GUzIVsY);6!*ktZ*3T8C1Q z%V9xS#1Kyb8Q+>T81k$aTH@M2EAQ=|*%GeKcZN&yo0>aspS9wK1uYXi5hwx{7@@_8 zS#*9gGihxBU8%{XT>0bkr&o<@9uo>zRZp9~v+E8v<9J@liGA6=fh#=u!)Ul4he|66 z1z@>`a%WzrISR@-qVA3n=Of$ZfBSso_lEm3A}SV<>}oP+?pd63Jp31B*nPu)8-DhA zcjkVJ#N9p;WaT78*FKs@v|-l{9x6kJ;vnRpGv{i~;hAs9c^R9To1K&BaPZV^89WCU zf9T3hia{yuXh{q@X&_+9?&n+^0V9&Mm!ozGp*pDSFU4Djb#pGhyvToDR0 z2N-rzCif@t|8|XEGh;|w#0X27L_8jZNWppl5|UyOS~B5LOG*mHTIPeIlkg76J4{QK zxYssqXmJ@T-Rs*f{(jHSKVG};iA$H1cg-l&1NT7dsC(`HoA1ARL)%oVK8pCk_62z> z9n#B6Hlz7$ZqW&yJGuBf@iA9_d}QnMdz-uWTrr{N>mhSUHyV2VwsUU&_1*iw_2I&{ z$d1KDwd1$W@2pXlP1>-8?fwh*0n4o$kS+%K{%q}>YGSQS<>)GG2%l3qZkk2iCGKFI zE}!o+RCw04KK|!PyPjCz^Z1@~%4f~6cqF5&b=1Cc?@jk!xxSSu=S|eK&G)bHJDw!| zkH;#26TD8fC?*TUG86y+m?Nircn)kZR^~TF7N>SmD9KASBaQs1vD!$Si~2D#XkJKnM5~ zT7#&w$Y???I^=>p zspDG`U6EvKVs>QxBIVQhx2(Nvnb%_}eP~Ygm}u+F8L`%j*N-o4ZZ0jVs3@weWf!JW zN&I7}T<(~)Pw#ZaIx4Cv+5MM2BeVhVFa@+X+mhPnP7ECL+0}jW0|YJLBh@*J_}kxZ{58pFTz8{E2E%;##*(zm zQ=>v9MFCAEaNfoc!wAEOVh9r=Dn}tgNQ~7ma@C^<{nXYQXOvk;_gXe%?~%PT%G8}u zw*JV;6wxLrb>w}hp+U=H0Ufq1)y?{@?uxpV{&%lAw0q{v-G|hjQij~kctGJ>F?ljY zk5En`5HZj&mPBT(6rx(-AE?H(skjtCR#KAi0Kg^|Ktd+*9DeMAXMa7BKmIH#E)tF# zp5;PL24#UjP6qG=els?V`;*WaUZ*~r)TD%z#J@|^g=BL6Fpw}1bcBzpACi)}@8QXa zQD!`wRG%G;BI1Y(LXwvm&Kr1|LVdD@2TEg7ga0@mJ{ZRXynNtNhv5Sd#THudkv)O= zkVdM6^O0`08!n=`Jb{!t*$ea?srzKgCA~D{Sh|e!uzkQDr*?rRZ+NRhDkRZ#u$_2$ zhl)9(*?yDL5@%>b$e*xIXui1bSni9c9nglz46T;&3;GWIuC`~k?>LVR8BwDN5W?{g zvGe*6pDeTp+&>`NK=5Q5xbh%U7b@Nu`Nk4Sh4MiMy8#&!D#oz&SB{x{VI5<27fv4Y zEjDFL`HD{Es-?zpatzGkFy1{4%I0qle+4H5~s7Ipjwywz+ZO5*qJ@cc%MHEn!gc8HtF+v0=#~`Oy zaLpr4703}$C`Z_7hx?2tLYeEl>|Esuww$ey#&FFBm)DV^W@kXv8{U z4V=7o>;tcg*A0ZlKd{=)6)QTYo_F5B@6yi;&UHH{))m&Jf61<6ACDe=C^WjM=uerp zÄ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 V*eEM;|ho{trTA6=?tf literal 0 HcmV?d00001 diff --git a/dist/fonts/fontawesome-webfont.woff b/dist/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..628b6a52a87e62c6f22426e17c01f6a303aa194e GIT binary patch literal 65452 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 q%u^)w#YX9ZIvhtu?9Cy6YRi6f6G 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 literal 0 HcmV?d00001 diff --git a/dist/fonts/sq-fontello.ttf b/dist/fonts/sq-fontello.ttf deleted file mode 100644 index 9593887564e31eeb6633f93fcff29ec674f689ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49732 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�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 ah*+@(0Yq6@Sy{LN|Anvwjj;s)L;wKC&8S2G diff --git a/dist/js/jquery.min.js b/dist/js/jquery.min.js new file mode 100644 index 0000000..18bdbed --- /dev/null +++ b/dist/js/jquery.min.js @@ -0,0 +1,5 @@ +/*! jQuery v2.1.3 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.3",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=hb(),z=hb(),A=hb(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},eb=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fb){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function gb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+rb(o[l]);w=ab.test(a)&&pb(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function hb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ib(a){return a[u]=!0,a}function jb(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function kb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function lb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function nb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function ob(a){return ib(function(b){return b=+b,ib(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pb(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=gb.support={},f=gb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=gb.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",eb,!1):e.attachEvent&&e.attachEvent("onunload",eb)),p=!f(g),c.attributes=jb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=jb(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=jb(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(jb(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),jb(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&jb(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return lb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?lb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},gb.matches=function(a,b){return gb(a,null,null,b)},gb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return gb(b,n,null,[a]).length>0},gb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},gb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},gb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=gb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=gb.selectors={cacheLength:50,createPseudo:ib,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||gb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&gb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=gb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||gb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ib(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ib(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ib(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ib(function(a){return function(b){return gb(a,b).length>0}}),contains:ib(function(a){return a=a.replace(cb,db),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ib(function(a){return W.test(a||"")||gb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:ob(function(){return[0]}),last:ob(function(a,b){return[b-1]}),eq:ob(function(a,b,c){return[0>c?c+b:c]}),even:ob(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:ob(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:ob(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:ob(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function tb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ub(a,b,c){for(var d=0,e=b.length;e>d;d++)gb(a,b[d],c);return c}function vb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wb(a,b,c,d,e,f){return d&&!d[u]&&(d=wb(d)),e&&!e[u]&&(e=wb(e,f)),ib(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ub(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:vb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=vb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=vb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sb(function(a){return a===b},h,!0),l=sb(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sb(tb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wb(i>1&&tb(m),i>1&&rb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xb(a.slice(i,e)),f>e&&xb(a=a.slice(e)),f>e&&rb(a))}m.push(c)}return tb(m)}function yb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=vb(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&gb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ib(f):f}return h=gb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,yb(e,d)),f.selector=a}return f},i=gb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&pb(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&rb(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&pb(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=jb(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),jb(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||kb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&jb(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||kb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),jb(function(a){return null==a.getAttribute("disabled")})||kb(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),gb}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c) +},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthx",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*\s*$/g,ib={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n(" + +
+ + + + \ No newline at end of file diff --git a/doc_tpl/index.html b/doc_tpl/index.html new file mode 100644 index 0000000..a77ea91 --- /dev/null +++ b/doc_tpl/index.html @@ -0,0 +1,209 @@ + + + + + + + + + + + Squirrel 前端开发框架 + + + +
+
+ +
+ +
+
+

框架特性

+

Squirrel 框架包含许多实用特性,帮助你快速构建移动 Web 应用。

+
+
+
    +
  • +
    +
    +

    组件丰富

    +

    Squirrel 框架提供丰富的样式及交互组件,能帮助您轻松构建 Web 应用。

    +
    +
  • +
  • +
    +
    +

    多系统支持

    +

    默认支持 Android、iOS 操作系统,也可方便的扩展支持 WP8、Firefox OS 等系统。

    +
    +
  • +
  • +
    +
    +

    响应式设计

    +

    能适应各种屏幕尺寸、分辨率的设备,并针对触摸操作体验进行了优化。

    +
    +
  • +
  • +
    +
    +

    扩展简便

    +

    采用 LESS 技术、CMD 规范、jQuery 插件开发模式,无论扩展还是移植都方便。

    +
    +
  • +
  • +
    +
    +

    定制灵活

    +

    提供定制工具,可以根据实际需要灵活的定制框架。

    +
    +
  • +
  • +
    +
    +

    开源协议

    +

    Squirrel 框架遵循 MIT 协议,无论公司还是个人,都可以免费、自由使用。

    +
    +
  • +
+
+
+
+
+

演示

+

借助 Squirrel,您可以非常方便的构建移动 Web 应用,下面是由 Squirrel 框架构建演示案例。

+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+ 二维码 +

使用手机浏览体验

+
+
+
+
+
+

合作伙伴

+

Squirrel 为以团队下提供了技术支持。

+
    +
  • +
  • +
+
+
+
+
+

贡献者

+

感谢所有为 Squirrel 贡献力量的朋友们,因为你们她才会不断成长。这里也欢迎更多的朋友加入 Squirrel 开源项目!

+
+ +
    +
  • +

    iinterest

    + iinterest +

    Developer

    + +
  • +
  • +

    薛小小

    + xuexiaoxiao +

    Designer

    + +
  • +
+ +
+
    +
  • +

    插件

    +

    欢迎您为 Squirrel 贡献高实用性的功能插件,以方便其他使用者。开始之前请先阅读插件开发流程

    +
  • +
  • +

    主题

    +

    如果您制作了一款基于 Squirrel 的主题并且符合主题的开发规范,我们非常欢迎您将它提交至主题库

    +
  • +
  • +

    模式库

    +

    模式库(DPL)组件与业务结合紧密,具备高质量且完整的交互体验,如果您为您的项目开发了类似的组件,欢迎提交至设计模式库

    +
  • +
  • +

    用户体验

    +

    希望您能将任何体验相关的意见或建议,甚至新的功能需求提交至 github issues「体验」。

    +
  • +
  • +

    缺陷

    +

    如果使用中发现任何缺陷(BUG),请提交至 github issues「BUG」,同时也请报告您的使用版本、环境,我们会尽快确认、修复。

    +
  • +
+
+
+ +
+ + diff --git a/example/animate.html b/example/animate.html new file mode 100644 index 0000000..75e3082 --- /dev/null +++ b/example/animate.html @@ -0,0 +1,118 @@ + + + + + + + + + + Squirrel Animate + + +
+ +
+ +
+
Animate Demo
+
+
+

引起注意(Attention Seekers)

+ bounce + flash + pulse + rubberBand + shake + swing + tada + wobble +

弹入(Bouncing Entrances)

+ bounceIn + bounceInDown + bounceInLeft + bounceInRight + bounceInUp +

弹出(Bouncing Exits)

+ bounceOut + bounceOutDown + bounceOutLeft + bounceOutRight + bounceOutUp +

淡入(Fading Entrances)

+ fadeIn + fadeInDown + fadeInDownBig + fadeInLeft + fadeInLeftBig + fadeInRight + fadeInRightBig + fadeInUp + fadeInUpBig +

淡出(Fading Exits)

+ fadeOut + fadeOutDown + fadeOutDownBig + fadeOutLeft + fadeOutLeftBig + fadeOutRight + fadeOutRightBig + fadeOutUp + fadeOutUpBig +

Flippers

+ flip + flipInX + flipInY + flipOutX + flipOutY +

Lightspeed

+ lightSpeedIn + lightSpeedOut +

Rotating Entrances

+ rotateIn + rotateInDownLeft + rotateInDownRight + rotateInUpLeft + rotateInUpRight +

Rotating Exits

+ rotateOut + rotateOutDownLeft + rotateOutDownRight + rotateOutUpLeft + rotateOutUpRight +

Specials

+ hinge + rollIn + rollOut +

Zoom Entrances

+ zoomIn + zoomInDown + zoomInLeft + zoomInRight + zoomInUp +

Zoom Exits

+ zoomOut + zoomOutDown + zoomOutLeft + zoomOutRight + zoomOutUp +
+
+
+Top + + + + + diff --git a/example/badge.html b/example/badge.html new file mode 100644 index 0000000..ffb30c3 --- /dev/null +++ b/example/badge.html @@ -0,0 +1,43 @@ + + + + + + + + + + Squirrel Badge + + +
+ +
+

Badge

+ Hot + 29 + 最新 + 首发 + badge + badge + +
+
+Top + + + + + + diff --git a/example/bar.html b/example/bar.html new file mode 100644 index 0000000..36db729 --- /dev/null +++ b/example/bar.html @@ -0,0 +1,122 @@ + + + + + + + + + + Squirrel Example Bars + + + +Top + + + + + diff --git a/example/button.html b/example/button.html new file mode 100644 index 0000000..04fba61 --- /dev/null +++ b/example/button.html @@ -0,0 +1,147 @@ + + + + + + + + + + Squirrel Example Button + + +
+ +
+

按钮

+
+ Anchor +
Div
+ +
+ + + +

尺寸

+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+ + + + +

禁用

+
+ + 按钮 +
+ + + +

按钮组

+ +
+
+ +
+ + + +

图标

+
+ + +
+
+ Button + Button + Button +
+
+ Button + Button +
+
+ Button + Button + Button +
+
+ Button + Button + Button +
+ + + +

样式

+
+ Button + Button + Button +
+
+ Button + Button + Button +
+
+ + Button +
+
+
+Top + + + + + diff --git a/example/column.html b/example/column.html new file mode 100644 index 0000000..49cd64f --- /dev/null +++ b/example/column.html @@ -0,0 +1,45 @@ + + + + + + + + + + Squirrel Column + + +
+ +
+

Column

+
+
    +
  • 1
  • +
  • 2
  • +
  • 3
  • +
  • 4
  • +
  • 5
  • +
+
+
+
+Top + + + + + + diff --git a/example/core-function.html b/example/core-function.html new file mode 100644 index 0000000..4a40224 --- /dev/null +++ b/example/core-function.html @@ -0,0 +1,49 @@ + + + + + + + + + + Squirrel Example CoreFun + + +
+ +
+
+
+ + +
+
+ + +
+
+
+ + + + + +
+ diff --git a/example/css/example-material.css b/example/css/example-material.css new file mode 100644 index 0000000..1eb212f --- /dev/null +++ b/example/css/example-material.css @@ -0,0 +1,8 @@ +.mb--1{ margin-bottom:-1px !important;} + +/*common*/ +.example{ padding:0 10px 40px;} +.example-title{ position:relative; margin:2em 0 .5em; padding:.5em; background:rgba(255, 255, 255, .8); border-bottom:1px solid #3f51b5; font-size:18px; color:#3f51b5; z-index:1; clear:both;} +.example-title:first-of-type{ margin-top:.5em;} +.example-row{ padding:5px;} +.example hr{ margin:20px 0; border:none; border-bottom:1px dashed #eee;} \ No newline at end of file diff --git a/example/css/example-theme.css b/example/css/example-theme.css new file mode 100644 index 0000000..342a0e0 --- /dev/null +++ b/example/css/example-theme.css @@ -0,0 +1,10 @@ +/*theme example*/ +.sq-bar{ background:#38c483; color:#fff; z-index:101;} +.sq-bar a{ color:#fff;} + +/*.sq-list .list-item,*/ +/*.sq-list .list-item{ border-top-color:#e5e5e5; border-bottom-color:#e5e5e5;}*/ +.sq-list.text .sq-icon{ color:#999;} + +.sq-list .icon{ width:60px; height:60px;} + diff --git a/example/css/example.css b/example/css/example.css new file mode 100644 index 0000000..1b8bb33 --- /dev/null +++ b/example/css/example.css @@ -0,0 +1,34 @@ +.mb--1{ margin-bottom:-1px !important;} + +/*common*/ +.example{ padding:0 10px 40px;} +.example-title{ position:relative; margin:2em 0 .5em; padding:.5em; background:rgba(255, 255, 255, .8); border-bottom:1px solid #38c483; font-size:18px; color:#38c483; z-index:1; clear:both;} +.example-title:first-of-type{ margin-top:.5em;} +.example-row{ padding:5px;} +.example hr{ margin:20px 0; border:none; border-bottom:1px dashed #eee;} +.footer{ height:20px; margin-top:50px; background:#eee; text-align:center; font-size:12px; line-height:20px;} +.example-space{ height:700px;} +.go-top-btn{ display:none; padding:10px; border-radius:999em; background:#38c483; color:#fff;} +/*animate*/ +.example .animate-box{ padding:10px; height:150px;} +.example #animate-demo{ position:fixed; top:70px; left:50%; width:240px; height:130px; margin-left:-120px; background:rgba(0, 0, 0, .6); line-height:130px; text-align:center; border-radius:4px; color:#fff; z-index:10;} +.example .animate-effect h3{ font-size:16px;} +.example .animate-effect .sq-btn{ margin-bottom:5px;} +/*bar*/ +.example .sq-bar{ background:#eee; color:#333;} +.example .sq-bar a{ color:#333;} +.example .sq-bar .active{ color:#fff;} +/*glyphicon*/ +.example .fontawesome-icon-list > div{ margin:10px 0; font-size:12px;} +/*grid*/ +.example-grid > .row > div{ background:#eee; border:1px solid #38c483;} + + +.sq-slider{ height:150px; background:#eee; overflow:hidden;} +.sq-slider li{ height:150px;} +.bx-wrapper{} +.bx-wrapper .bx-pager{} +.bx-wrapper .bx-pager-item{} +.bx-wrapper .bx-pager-link{} +.bx-wrapper .bx-pager-link.active{ background:#38c483;} +.bx-wrapper .bx-controls-direction{} \ No newline at end of file diff --git a/example/data/list.json b/example/data/list.json new file mode 100644 index 0000000..ebb18c8 --- /dev/null +++ b/example/data/list.json @@ -0,0 +1,12 @@ +{ + "code": 200, + "data": [ + {"title":"Loadmore 内容1", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容2", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容3", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容4", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容5", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容6", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容7", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"} + ] +} \ No newline at end of file diff --git a/example/data/loadmore/0/list.json b/example/data/loadmore/0/list.json new file mode 100644 index 0000000..3c31d36 --- /dev/null +++ b/example/data/loadmore/0/list.json @@ -0,0 +1,12 @@ +{ + "code": 900, + "data": [ + {"title":"Loadmore 内容1", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容2", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容3", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容4", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容5", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容6", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容7", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"} + ] +} \ No newline at end of file diff --git a/example/data/loadmore/1/list.json b/example/data/loadmore/1/list.json new file mode 100644 index 0000000..ebb18c8 --- /dev/null +++ b/example/data/loadmore/1/list.json @@ -0,0 +1,12 @@ +{ + "code": 200, + "data": [ + {"title":"Loadmore 内容1", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容2", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容3", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容4", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容5", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容6", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容7", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"} + ] +} \ No newline at end of file diff --git a/example/data/loadmore/2/list.json b/example/data/loadmore/2/list.json new file mode 100644 index 0000000..ebb18c8 --- /dev/null +++ b/example/data/loadmore/2/list.json @@ -0,0 +1,12 @@ +{ + "code": 200, + "data": [ + {"title":"Loadmore 内容1", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容2", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容3", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容4", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容5", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容6", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容7", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"} + ] +} \ No newline at end of file diff --git a/example/data/loadmore/3/list.json b/example/data/loadmore/3/list.json new file mode 100644 index 0000000..ebb18c8 --- /dev/null +++ b/example/data/loadmore/3/list.json @@ -0,0 +1,12 @@ +{ + "code": 200, + "data": [ + {"title":"Loadmore 内容1", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容2", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容3", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容4", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容5", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容6", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容7", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"} + ] +} \ No newline at end of file diff --git a/example/data/loadmore/4/list.json b/example/data/loadmore/4/list.json new file mode 100644 index 0000000..ebb18c8 --- /dev/null +++ b/example/data/loadmore/4/list.json @@ -0,0 +1,12 @@ +{ + "code": 200, + "data": [ + {"title":"Loadmore 内容1", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容2", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容3", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容4", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容5", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容6", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"}, + {"title":"Loadmore 内容7", "desc":"知识总是从爱好开始,犹如光总是从火开始一样。", "icon":"images/sq-logo.jpg"} + ] +} \ No newline at end of file diff --git a/example/dropdown.html b/example/dropdown.html new file mode 100644 index 0000000..1358e53 --- /dev/null +++ b/example/dropdown.html @@ -0,0 +1,69 @@ + + + + + + + + + + Squirrel Dropdown + + + +Top + + + + + + diff --git a/example/example.html b/example/example.html new file mode 100644 index 0000000..3619720 --- /dev/null +++ b/example/example.html @@ -0,0 +1,36 @@ + + + + + + + + + + Squirrel Example + + +
+ +
+

Example

+
+
+Top + + + + + + diff --git a/example/form.html b/example/form.html new file mode 100644 index 0000000..a3b5633 --- /dev/null +++ b/example/form.html @@ -0,0 +1,237 @@ + + + + + + + + + + Squirrel Example Form + + +
+ +
+

基础表单

+
+
+
+ + +

推荐使用手机号作为用户名。

+
+
+ + + +
+
+ +
+
+
+ + + + +

表单控件

+
+
+
+ + + + +
+
+ + + +
+
+ + + + +
+
+ + + +
+
+ + +
+
+ +
+
+ +
+
+ + +
+
+
提交
+
+
+
+ + + + +

行内表单

+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+ + + + +

水平表单

+
+
+
+ + +
+
+ + +
+
+ + - + +
+
+
-固定电话请加区号
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + +
+
+
+
+
+Top + + + + + diff --git a/example/gallery.html b/example/gallery.html new file mode 100644 index 0000000..729d6ea --- /dev/null +++ b/example/gallery.html @@ -0,0 +1,89 @@ + + + + + + + + + + Squirrel Gallery + + +
+ +
+

Gallery

+ + +
+ + +
+
+Top + + + + + + diff --git a/example/grid.html b/example/grid.html new file mode 100644 index 0000000..c407b82 --- /dev/null +++ b/example/grid.html @@ -0,0 +1,52 @@ + + + + + + + + + + Squirrel Grid + + +
+ +
+

Grid

+
+
+
col-mb-4
+
col-mb-4
+
col-mb-4
+
+
+
col-mb-6
+
col-mb-6
+
+
+
col-mb-8
+
col-mb-2
+
col-mb-2
+
+
+
+
+Top + + + + + + diff --git a/example/icon.html b/example/icon.html new file mode 100644 index 0000000..529143d --- /dev/null +++ b/example/icon.html @@ -0,0 +1,1419 @@ + + + + + + + + + + Squirrel Example Icon + + +
+ +
+
+

40 New Icons in 4.2

+
+
+ icon-angellist
+
+ icon-area-chart
+
icon-at
+
+ icon-bell-slash
+
icon-bell-slash-o
+
+ icon-bicycle
+
+ icon-binoculars
+
icon-birthday-cake
+
icon-bus
+
+ icon-calculator
+
icon-cc
+
+ icon-cc-amex
+
+ icon-cc-discover
+
icon-cc-mastercard
+
+ icon-cc-paypal
+
+ icon-cc-stripe
+
+ icon-cc-visa
+
+ icon-copyright
+
+ icon-eyedropper
+
+ icon-futbol-o
+
icon-google-wallet
+
icon-ils
+
+ icon-ioxhost
+
icon-lastfm +
+
icon-lastfm-square
+
+ icon-line-chart
+
+ icon-meanpath
+
+ icon-newspaper-o
+
+ icon-paint-brush
+
icon-paypal +
+
+ icon-pie-chart
+
icon-plug +
+
icon-shekel + (alias)
+
icon-sheqel + (alias)
+
+ icon-slideshare
+
+ icon-soccer-ball-o (alias)
+
+ icon-toggle-off
+
+ icon-toggle-on
+
icon-trash +
+
icon-tty
+
icon-twitch +
+
icon-wifi +
+
icon-yelp +
+
+
+
+

Web Application Icons

+
+
icon-adjust +
+
icon-anchor +
+
+ icon-archive
+
+ icon-area-chart
+
icon-arrows +
+
+ icon-arrows-h
+
+ icon-arrows-v
+
+ icon-asterisk
+
icon-at
+
+ icon-automobile (alias)
+
icon-ban
+
icon-bank + (alias)
+
+ icon-bar-chart
+
+ icon-bar-chart-o (alias)
+
+ icon-barcode
+
icon-bars +
+
icon-beer +
+
icon-bell +
+
icon-bell-o +
+
+ icon-bell-slash
+
icon-bell-slash-o
+
+ icon-bicycle
+
+ icon-binoculars
+
icon-birthday-cake
+
icon-bolt +
+
icon-bomb +
+
icon-book +
+
+ icon-bookmark
+
+ icon-bookmark-o
+
+ icon-briefcase
+
icon-bug
+
+ icon-building
+
+ icon-building-o
+
+ icon-bullhorn
+
+ icon-bullseye
+
icon-bus
+
icon-cab (alias)
+
+ icon-calculator
+
+ icon-calendar
+
+ icon-calendar-o
+
icon-camera +
+
icon-camera-retro
+
icon-car
+
icon-caret-square-o-down
+
icon-caret-square-o-left
+
icon-caret-square-o-right
+
icon-caret-square-o-up
+
icon-cc
+
+ icon-certificate
+
icon-check +
+
icon-check-circle
+
icon-check-circle-o
+
icon-check-square
+
icon-check-square-o
+
icon-child +
+
icon-circle +
+
+ icon-circle-o
+
icon-circle-o-notch
+
+ icon-circle-thin
+
+ icon-clock-o
+
icon-close + (alias)
+
icon-cloud +
+
icon-cloud-download
+
icon-cloud-upload
+
icon-code +
+
+ icon-code-fork
+
icon-coffee +
+
icon-cog
+
icon-cogs +
+
+ icon-comment
+
+ icon-comment-o
+
+ icon-comments
+
+ icon-comments-o
+
+ icon-compass
+
+ icon-copyright
+
+ icon-credit-card
+
icon-crop +
+
+ icon-crosshairs
+
icon-cube +
+
icon-cubes +
+
+ icon-cutlery
+
+ icon-dashboard (alias)
+
+ icon-database
+
+ icon-desktop
+
icon-dot-circle-o
+
+ icon-download
+
+ icon-edit (alias)
+
+ icon-ellipsis-h
+
+ icon-ellipsis-v
+
+ icon-envelope
+
+ icon-envelope-o
+
icon-envelope-square
+
icon-eraser +
+
+ icon-exchange
+
+ icon-exclamation
+
icon-exclamation-circle
+
icon-exclamation-triangle
+
icon-external-link
+
icon-external-link-square
+
icon-eye
+
+ icon-eye-slash
+
+ icon-eyedropper
+
icon-sq-iconx
+
icon-female +
+
+ icon-fighter-jet
+
icon-file-archive-o
+
icon-file-audio-o
+
+ icon-file-code-o
+
icon-file-excel-o
+
icon-file-image-o
+
icon-file-movie-o (alias) +
+
+ icon-file-pdf-o
+
icon-file-photo-o (alias) +
+
icon-file-picture-o (alias) +
+
icon-file-powerpoint-o
+
icon-file-sound-o (alias) +
+
icon-file-video-o
+
+ icon-file-word-o
+
icon-file-zip-o (alias)
+
icon-film +
+
icon-filter +
+
icon-fire +
+
icon-fire-extinguisher
+
icon-flag +
+
icon-flag-checkered
+
icon-flag-o +
+
icon-flash + (alias)
+
icon-flask +
+
icon-folder +
+
+ icon-folder-o
+
+ icon-folder-open
+
icon-folder-open-o
+
+ icon-frown-o
+
+ icon-futbol-o
+
+ icon-gamepad
+
icon-gavel +
+
icon-gear (alias)
+
icon-gears + (alias)
+
icon-gift +
+
icon-glass +
+
icon-globe +
+
icon-graduation-cap
+
icon-group + (alias)
+
icon-hdd-o +
+
+ icon-headphones
+
icon-heart +
+
+ icon-heart-o
+
+ icon-history
+
icon-home +
+
icon-image + (alias)
+
icon-inbox +
+
icon-info +
+
+ icon-info-circle
+
+ icon-institution (alias)
+
icon-key
+
+ icon-keyboard-o
+
+ icon-language
+
icon-laptop +
+
icon-leaf +
+
icon-legal + (alias)
+
+ icon-lemon-o
+
+ icon-level-down
+
+ icon-level-up
+
+ icon-life-bouy (alias)
+
+ icon-life-buoy (alias)
+
+ icon-life-ring
+
+ icon-life-saver (alias)
+
+ icon-lightbulb-o
+
+ icon-line-chart
+
icon-location-arrow
+
icon-lock +
+
icon-magic +
+
icon-magnet +
+
+ icon-mail-forward (alias)
+
+ icon-mail-reply (alias)
+
+ icon-mail-reply-all (alias)
+
icon-male +
+
+ icon-map-marker
+
icon-meh-o +
+
+ icon-microphone
+
icon-microphone-slash
+
icon-minus +
+
icon-minus-circle
+
icon-minus-square
+
icon-minus-square-o
+
icon-mobile +
+
+ icon-mobile-phone (alias)
+
icon-money +
+
icon-moon-o +
+
icon-mortar-board (alias) +
+
icon-music +
+
icon-navicon + (alias)
+
+ icon-newspaper-o
+
+ icon-paint-brush
+
+ icon-paper-plane
+
icon-paper-plane-o
+
icon-paw
+
icon-pencil +
+
icon-pencil-square
+
icon-pencil-square-o
+
icon-phone +
+
icon-phone-square
+
icon-photo + (alias)
+
+ icon-picture-o
+
+ icon-pie-chart
+
icon-plane +
+
icon-plug +
+
icon-plus +
+
+ icon-plus-circle
+
+ icon-plus-square
+
icon-plus-square-o
+
+ icon-power-off
+
icon-print +
+
icon-puzzle-piece
+
icon-qrcode +
+
+ icon-question
+
icon-question-circle
+
+ icon-quote-left
+
+ icon-quote-right
+
icon-random +
+
+ icon-recycle
+
+ icon-refresh
+
icon-remove + (alias)
+
icon-reorder + (alias)
+
icon-reply +
+
+ icon-reply-all
+
+ icon-retweet
+
icon-road +
+
icon-rocket +
+
icon-rss
+
+ icon-rss-square
+
icon-search +
+
icon-search-minus
+
+ icon-search-plus
+
icon-send + (alias)
+
+ icon-send-o (alias)
+
icon-share +
+
+ icon-share-alt
+
icon-share-alt-square
+
icon-share-square
+
icon-share-square-o
+
icon-shield +
+
icon-shopping-cart
+
+ icon-sign-in
+
+ icon-sign-out
+
icon-signal +
+
+ icon-sitemap
+
+ icon-sliders
+
+ icon-smile-o
+
+ icon-soccer-ball-o (alias)
+
icon-sort +
+
icon-sort-alpha-asc
+
icon-sort-alpha-desc
+
icon-sort-amount-asc
+
icon-sort-amount-desc
+
+ icon-sort-asc
+
+ icon-sort-desc
+
+ icon-sort-down (alias)
+
icon-sort-numeric-asc
+
icon-sort-numeric-desc
+
+ icon-sort-up (alias)
+
icon-space-shuttle
+
+ icon-spinner
+
icon-spoon +
+
icon-square +
+
+ icon-square-o
+
icon-star +
+
+ icon-star-half
+
icon-star-half-empty (alias)
+
icon-star-half-full (alias) +
+
+ icon-star-half-o
+
icon-star-o +
+
+ icon-suitcase
+
icon-sun-o +
+
+ icon-support (alias)
+
icon-tablet +
+
+ icon-tachometer
+
icon-tag
+
icon-tags +
+
icon-tasks +
+
icon-taxi +
+
+ icon-terminal
+
+ icon-thumb-tack
+
+ icon-thumbs-down
+
icon-thumbs-o-down
+
+ icon-thumbs-o-up
+
+ icon-thumbs-up
+
icon-ticket +
+
icon-times +
+
icon-times-circle
+
icon-times-circle-o
+
icon-tint +
+
icon-toggle-down (alias)
+
icon-toggle-left (alias)
+
+ icon-toggle-off
+
+ icon-toggle-on
+
icon-toggle-right (alias) +
+
icon-toggle-up (alias)
+
icon-trash +
+
+ icon-trash-o
+
icon-tree +
+
icon-trophy +
+
icon-truck +
+
icon-tty
+
+ icon-umbrella
+
+ icon-university
+
icon-unlock +
+
+ icon-unlock-alt
+
+ icon-unsorted (alias)
+
icon-upload +
+
icon-user +
+
icon-users +
+
icon-video-camera
+
+ icon-volume-down
+
+ icon-volume-off
+
+ icon-volume-up
+
icon-warning (alias)
+
+ icon-wheelchair
+
icon-wifi +
+
icon-wrench +
+
+
+
+

File Type Icons

+ +
+
icon-file +
+
icon-file-archive-o
+
icon-file-audio-o
+
+ icon-file-code-o
+
icon-file-excel-o
+
icon-file-image-o
+
icon-file-movie-o (alias) +
+
icon-file-o +
+
+ icon-file-pdf-o
+
icon-file-photo-o (alias) +
+
icon-file-picture-o (alias) +
+
icon-file-powerpoint-o
+
icon-file-sound-o (alias) +
+
+ icon-file-text
+
+ icon-file-text-o
+
icon-file-video-o
+
+ icon-file-word-o
+
icon-file-zip-o (alias)
+
+
+
+

Spinner Icons

+ + +
+
icon-circle-o-notch
+
icon-cog
+
icon-gear (alias)
+
+ icon-refresh
+
+ icon-spinner
+
+
+
+

Form Control Icons

+ +
+
icon-check-square
+
icon-check-square-o
+
icon-circle +
+
+ icon-circle-o
+
icon-dot-circle-o
+
icon-minus-square
+
icon-minus-square-o
+
+ icon-plus-square
+
icon-plus-square-o
+
icon-square +
+
+ icon-square-o
+
+
+
+

Payment Icons

+ +
+
+ icon-cc-amex
+
+ icon-cc-discover
+
icon-cc-mastercard
+
+ icon-cc-paypal
+
+ icon-cc-stripe
+
+ icon-cc-visa
+
+ icon-credit-card
+
icon-google-wallet
+
icon-paypal +
+
+
+
+

Chart Icons

+ +
+
+ icon-area-chart
+
+ icon-bar-chart
+
+ icon-bar-chart-o (alias)
+
+ icon-line-chart
+
+ icon-pie-chart
+
+
+
+

Currency Icons

+ +
+
icon-bitcoin + (alias)
+
icon-btc
+
icon-cny (alias)
+
icon-dollar + (alias)
+
icon-eur
+
icon-euro (alias)
+
icon-gbp
+
icon-ils
+
icon-inr
+
icon-jpy
+
icon-krw
+
icon-money +
+
icon-rmb (alias)
+
icon-rouble + (alias)
+
icon-rub
+
icon-ruble (alias)
+
icon-rupee (alias)
+
icon-shekel + (alias)
+
icon-sheqel + (alias)
+
icon-try
+
+ icon-turkish-lira (alias)
+
icon-usd
+
icon-won (alias)
+
icon-yen (alias)
+
+
+
+

Text Editor Icons

+ +
+
icon-align-center
+
icon-align-justify
+
+ icon-align-left
+
+ icon-align-right
+
icon-bold +
+
icon-chain + (alias)
+
icon-chain-broken
+
+ icon-clipboard
+
+ icon-columns
+
icon-copy + (alias)
+
icon-cut + (alias)
+
icon-dedent + (alias)
+
icon-eraser +
+
icon-file +
+
icon-file-o +
+
+ icon-file-text
+
+ icon-file-text-o
+
+ icon-files-o
+
+ icon-floppy-o
+
icon-font +
+
icon-header +
+
icon-indent +
+
icon-italic +
+
icon-link +
+
icon-list +
+
+ icon-list-alt
+
+ icon-list-ol
+
+ icon-list-ul
+
+ icon-outdent
+
+ icon-paperclip
+
+ icon-paragraph
+
icon-paste + (alias)
+
icon-repeat +
+
+ icon-rotate-left (alias)
+
+ icon-rotate-right (alias)
+
icon-save + (alias)
+
+ icon-scissors
+
icon-strikethrough
+
+ icon-subscript
+
+ icon-superscript
+
icon-table +
+
+ icon-text-height
+
+ icon-text-width
+
icon-th
+
+ icon-th-large
+
+ icon-th-list
+
+ icon-underline
+
icon-undo +
+
+ icon-unlink (alias)
+
+
+
+

Directional Icons

+ +
+
icon-angle-double-down
+
icon-angle-double-left
+
icon-angle-double-right
+
icon-angle-double-up
+
+ icon-angle-down
+
+ icon-angle-left
+
+ icon-angle-right
+
+ icon-angle-up
+
icon-arrow-circle-down
+
icon-arrow-circle-left
+
icon-arrow-circle-o-down
+
icon-arrow-circle-o-left
+
icon-arrow-circle-o-right
+
icon-arrow-circle-o-up
+
icon-arrow-circle-right
+
icon-arrow-circle-up
+
+ icon-arrow-down
+
+ icon-arrow-left
+
+ icon-arrow-right
+
+ icon-arrow-up
+
icon-arrows +
+
+ icon-arrows-alt
+
+ icon-arrows-h
+
+ icon-arrows-v
+
+ icon-caret-down
+
+ icon-caret-left
+
+ icon-caret-right
+
icon-caret-square-o-down
+
icon-caret-square-o-left
+
icon-caret-square-o-right
+
icon-caret-square-o-up
+
+ icon-caret-up
+
icon-chevron-circle-down
+
icon-chevron-circle-left
+
icon-chevron-circle-right
+
icon-chevron-circle-up
+
icon-chevron-down
+
icon-chevron-left
+
icon-chevron-right
+
+ icon-chevron-up
+
+ icon-hand-o-down
+
+ icon-hand-o-left
+
icon-hand-o-right
+
+ icon-hand-o-up
+
icon-long-arrow-down
+
icon-long-arrow-left
+
icon-long-arrow-right
+
icon-long-arrow-up
+
icon-toggle-down (alias)
+
icon-toggle-left (alias)
+
icon-toggle-right (alias) +
+
icon-toggle-up (alias)
+
+
+
+

Video Player Icons

+ +
+
+ icon-arrows-alt
+
+ icon-backward
+
+ icon-compress
+
icon-eject +
+
icon-expand +
+
icon-sq-iconst-backward
+
icon-sq-iconst-forward
+
+ icon-forward
+
icon-pause +
+
icon-play +
+
+ icon-play-circle
+
icon-play-circle-o
+
icon-step-backward
+
icon-step-forward
+
icon-stop +
+
icon-youtube-play
+
+
+
+

Brand Icons

+
+
icon-adn
+
+ icon-android
+
+ icon-angellist
+
icon-apple +
+
+ icon-behance
+
icon-behance-square
+
+ icon-bitbucket
+
icon-bitbucket-square
+
icon-bitcoin + (alias)
+
icon-btc
+
+ icon-cc-amex
+
+ icon-cc-discover
+
icon-cc-mastercard
+
+ icon-cc-paypal
+
+ icon-cc-stripe
+
+ icon-cc-visa
+
+ icon-codepen
+
icon-css3 +
+
+ icon-delicious
+
+ icon-deviantart
+
icon-digg +
+
+ icon-dribbble
+
+ icon-dropbox
+
icon-drupal +
+
icon-empire +
+
+ icon-sq-iconcebook
+
icon-sq-iconcebook-square
+
icon-flickr +
+
+ icon-foursquare
+
icon-ge (alias)
+
icon-git
+
+ icon-git-square
+
icon-github +
+
+ icon-github-alt
+
icon-github-square
+
icon-gittip +
+
icon-google +
+
+ icon-google-plus
+
icon-google-plus-square
+
icon-google-wallet
+
+ icon-hacker-news
+
icon-html5 +
+
+ icon-instagram
+
+ icon-ioxhost
+
icon-joomla +
+
+ icon-jsfiddle
+
icon-lastfm +
+
icon-lastfm-square
+
+ icon-linkedin
+
icon-linkedin-square
+
icon-linux +
+
icon-maxcdn +
+
+ icon-meanpath
+
icon-openid +
+
+ icon-pagelines
+
icon-paypal +
+
+ icon-pied-piper
+
icon-pied-piper-alt
+
+ icon-pinterest
+
icon-pinterest-square
+
icon-qq
+
icon-ra (alias)
+
icon-rebel +
+
icon-reddit +
+
icon-reddit-square
+
icon-renren +
+
+ icon-share-alt
+
icon-share-alt-square
+
icon-skype +
+
icon-slack +
+
+ icon-slideshare
+
+ icon-soundcloud
+
+ icon-spotify
+
icon-stack-exchange
+
icon-stack-overflow
+
icon-steam +
+
icon-steam-square
+
+ icon-stumbleupon
+
icon-stumbleupon-circle
+
icon-tencent-weibo
+
icon-trello +
+
icon-tumblr +
+
icon-tumblr-square
+
icon-twitch +
+
+ icon-twitter
+
icon-twitter-square
+
icon-vimeo-square
+
icon-vine +
+
icon-vk
+
icon-wechat + (alias)
+
icon-weibo +
+
icon-weixin +
+
+ icon-windows
+
+ icon-wordpress
+
icon-xing +
+
+ icon-xing-square
+
icon-yahoo +
+
icon-yelp +
+
+ icon-youtube
+
icon-youtube-play
+
icon-youtube-square
+
+
+
+

Medical Icons

+ +
+
+ icon-ambulance
+
+ icon-h-square
+
+ icon-hospital-o
+
icon-medkit +
+
+ icon-plus-square
+
+ icon-stethoscope
+
+ icon-user-md
+
+ icon-wheelchair
+
+
+ +

Size

+ +
5种尺寸,x1-x5
+
+ + + + + +
+
+
+Top + + + + + diff --git a/example/images/gallery-1.jpg b/example/images/gallery-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9fd5949696ec1af79182d949b6e12335660521ab GIT binary patch literal 257438 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 z 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

!}jZ`uCVprMPpMR;uuk{i@p+t37a5%SO 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 F{||Me`|kh% literal 0 HcmV?d00001 diff --git a/example/images/gallery-2.jpg b/example/images/gallery-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5cbdf409f7870b80e03eeb4eaf82e109a9c46f51 GIT binary patch literal 175097 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℞Bq01@|Z;Mw(VK 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

-D@3ii2sTN*tVp8Y;v|-9c>^BQJ$D1# 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�Be*eAC1W2*xJ&9Q`(Uo2DhF_|@T$vQ3F1co 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�h`~tYB^9ZoiK}~k z#_Ye`a5?#40^iIH3B7r4W~|-pxxg7J?|J~Aoo-I$wh)v4E~ zI_fOUNj??EURN@orW7{D>Dx^;!q`DDS>jjJ?m_#1O-7~}FB%W7CX#cV8{=;6+xru{ zc1`{+*W0_7Z`$sX^80Jv{b{&cr398TG6)`u!%GbSu&js|8?w>srt5;W6m^DDEH8@T&wMxJLsw~6lVO|(%B zMYYc~o`Djre^O={1+8)zin`2&PnmY?KIk2%-P;E3wC%fg=$l64ZFO;Ny;}>5ZN;K+ z?H$}16A9uX1b>@6Iaw8{my-DxSMoj#b{9CDF&w=?@FqLIe%p6$hWC^sd0yq26C(jz+a!ApCAoI@0eF6VjEV zxFu)0W3EepO<6^KK}qpBj7N(Va{b$kHmlerOL~Ys6Hk_qIB5!aig;qzXjLqd%4OUn zYhcL$ko#z~(0xD$@faoE3vDb0Yq|ZjZA~`%g6cITKgUbz*mf43J53K4@8w@D|OWJqF*sU(`cF`yo;Rq(~#3zSyOu3brSbdYx@ z@wE3w+uC-h8ryK&OmIAGO;+)vW3AD0qMRt?Kbnn2JJ-+{S@1-Mxqeo^-L`G2JKM;& z0b|s(v3S;re9*m8?&3NPD58X?=4>tdg~fQ4kDxK+zr_3^j?mj=EiUnSBV2CR?k19V zU<*MhI=X>@2)Pp9vkO$Xd7oPGE^itb;7FZ1a>UmVF>^{YjOm}G)_?(!#oWw5mLH0( z_C}9tyzXH?@<+UB?qS3hCzqv8vQhR9EaDinGfKUc#~#LqqNzYctz z*xMe-@+We3h3?ncedo7Z$+7nh#6mcpc$!6MUZqNs2DG4~BUEE19L3#~f-BS=e;Lef zo2C_S9)BIKb4ev<_YMb22Ph#8nc<~~2DzMu8;}AfaG()#xw0u}b+aT=-d$pgo?{aw-e{U5TWT8}c zVyem)m^8-+-#eLb;U^m1YTIZhr2Rkb>)C&-(2IYn4eHkCxp&>uX4!V`+&gGnD{;3h z#@bmT3mZ9Uq?1&Sq&d&&g%=RARJ-@AZdHw!p#O$b`E z#)%;mSvo?fS$K@Txa==z)i9g}>kHGws@uq3?rBR1*~_$mQ#{KG{y4*$yiF1a=jq6d ztEs@Nu3);JCq5XVv>?)6kveGMR)D5i`A}lv$N;O*H64|>jPf6|I$}ZR4YQx7jTVs4 za7*TBS4s5gJhKGijGU*zK~|N)ju!npog#!DS^@qq-HSU3P|8ap2qd;-jxsee9HIvx zYH|n2@i>yE0-JVcj&-<|NQg8J&-&9uvD zD3N6%fqC&f5B&^g>~&K*HZ~ti3NwT5-rT*+4UL6{pP@Tn{{SHW06un)YTNerY|pGsEO@yg-HFz7Im8f5>e6+b0qPY4kAd+Vu$JDZ zajc6Xp&M*zCg&ue7~puN3J@BE&~+bIKd(GgCp3aCh0WCQ!oi}FDl|a11W-Tta0a~_s{{VlMCBs{&$8U*ZV+6!W1l37MIg0ZhV~D`9(gsbmj}>h;W{Irk zQzVL9+{nkKrj??B#=NV~6gHWFe1PAGzB`M3bIKU2ea^v6C{0Zlm*8=AD~~NCYk310 z7Hd_KFzodVbvm4=NZ)ttc-NIFi>Sn<-Vt%unPM#^ zWIAPIte{;jy>S7rJs{*G>Euh!oJ~{f!rS8Mruy(znSMDGu>Kui*E3f|mi8UzS z)erSs56o7U{ju8iQ$^dJ{O-5=&DsT;^5I#EDnt*WJxo}ZH71z>j+eCbd$}_X&wGGn z2ZAQNIsRhJxjuu$ul;lX0IlToHBYqA+8JkixT7!ohv`cCXsmMwB3H*gI0gVjX26UthLM)JnHp)QcDISN(7Sq@ z%Dl0Rfpe9`Z;F9tLmzNop)lLYL~83(>QbjH!&DqI`*3%S9RzJyYw(+k%RM3PEJ8e` zhq#N=s)vrA6c}K}K&yt>G9da|$E4cY;?4mp!F02kq%A2bRrq8n<@+$y`ewXJ^{Ar) zd&{YF3#(BhLlDVY^X4nd2F^E{c>2Z7{-aD(LNWxPCsuTz2ZkzKnQqYQ{Q{+wimqI^ z1H<-WaWYLV$qjC4POZA0Gyvv4ys;rceZzHO69Dlk6lD}6>CECuCz+!~VH~Plt#Zng z@IE>4#f{{+qD5lV4b(1ZK=HweVotg(g;eX2hp2zq%j<#jE=J7ZLbC=S{glWLKO9^U zBn}9HLIsU#qlH+U>UsS!C5f3N&9n_&Iv@iuX_bE*Npd|hgk@56$)qtE04rJ_JV{gK zmrj}^X04{DiT?l$PB$(?)qmiR{{RpDxSS-KKioK1o}M4O5*x_diKiO=>@oz|DeC?_ z352t3ys7)}GUvxnKezH?#G^D?RN$l&Zb#{f1Wga&_+m*ie$n;Bl5ZA@jdi6(Y2k?p ze9n{F{{Zn_2US0t)AYUdI#vGwC*`mG>@hh0GY4btUYmS3mifP#^yTU4_Z>6-ui4X~ zrkZ*2t{wG6HyWI)dj5H@{{ZG4UXFFq_VMS8xjBC{*N5%b(-S6-Mx9zK`n9I2emP(x z;WBBh-?y(zQftvq;m=KT;ir2RkP>1jW2{{U@xbHz$+rq;BgXw~g> zOQMvoU-H+Mt{Q2J5)G!-+P$*r;i6A%N^AFZ^Zx)Z3|W^Ymsj%POd(p0B`OW-0|V3(^}`J`~Lt8NhH=fzn0x}dc7Wup4UY>on1rR zQn}Zo!kOv(aSqZQq_J!FkyA&v)fT-p(bCiY*IhHEe(X?#08WiAYhPuf{kDqq{{Yk- zU0;oBU(5Jn;X@a#*R|{a0Pgg+z16G#0B_bET|B?jr78Jv&*qEzWIw0Uxvx{%)_PO# z*VJC7s^?CXDNa~hZwhrwFZfULU7z0n05#F>uYcv8KW);{rY~*mwP*Kz`m(2<1$pyp z{Io0QG^g0$F8(r|2e#_l`;MpCCcRvA^-ir?bLsH=bEX_NnRUHAAlIMFIv$VxhNbpB z8v9*TYSzD-sZYDrfilHFhMGMoqOtTfS5I1konP|srz{DUWyj+$_;38rxBmd={eSp( zy@UQkqgJkk2ELb1)&BsgO&^+-^w$h&9~UY@_u>uT4gr&kZnT31&t7>2Zv zN$;urx)0>NU*!Eb{pPCm{l=gC{{Ssj>C@BU>cfTBn@cdx*7m>7EIrLSol)&I>*;IL z`T9SpN^z!j3gRNUK}}j<9q%ynpk@}+w1A;*X!ti1w}mR$NTWv$z7$h za{gPFLcI+hntk7Xb+4;ek1Slc#vk?J(Ov?-#abHb{_I>Y5=s5%LgU+M>*rcikNIoM z!wy)pzLK9G+n$YDeRcb_XRD9z!okTJrpSaK($s3{6x`Rr06Z z!#^w>TsZy5UY;JGt$jQ*t}nzTkM^(Sp5=d===MED;r8jvS65bCd~nQFTEOh{;q-4D ze8v3Z{yM(LtN#EV=r{A9XHKq-C#9!WS~XKuFs|<|ANI^W9v^f5P3Mw(WBGSlAAi)* zs^6ur{XV9z%jZrQMybASEv4|>i+RmqDum0Y&ri~t*6vkow@74D{=M6aWt{?t2ukW6dyY{}$E?36> zo&NwY#{U4C=bih*{x$C`f8t-w{{WHuX!ZX9$UUdKuA@)?0N4JPPMkUMu6VWO$Lgz` zY@ch8`**jQMziXFDT7v@aqcAQaHhVaYNnjN-ZaG5#7?zR5_ z$NvDFKep)C+k3qUO*PKF8d99N2(gSj~uI7anJCt3@$uz zn0kA0s=Q8*rFIIm z{#`%j;Y?VI^BKq0>mHX+SN?XtyIxh*Up^jqCf*B6w)O9{?;p&x^u4{duB~bAv<({d zXRl3sv49ddh~TSxBeYppN~3Ih6^t$`l6+FT{E5#ez|?r%C+&&1EjGX!~Te_ zojT5~Rn=Pa^WpenNhXI^RM)4XyzBSp_kVTY#KhCrsy()idGxjE;r{?%yA|eiaQ;yt zyXy2})$Qr5)}QKd6xB?$_+XCE+h}&x{L`Ux?Y+md=?`=5_2}dO0GX$icvmbnIoHBs z%l3IMtU)zB)Y|p*{WaIZw935cg*|>VYkpXLkK4Oeolj#ov8UUnqgVd`(^}U6Hi>`b z`N6GqYhP=psqNoYYpS|Uc==)-GT--~!nbSr4?FJbSWU3BUl zZaOJX%S`LxOf7c!Mh&%-?w;G)9)X;i*czNplF>$T5l{Dy&MQPF>ZFJVYtzLD-G(&GJ7hcAe9@|Eqn)P}* z_3NqrEUEOvj~WtWt|l9C{;&I;eM%3$nyE~*R}05iq*fobe;BPjkLzlsYP8qGM=F1Q zD@%{XUN(YX^m@tA`}B^d(wS3EFHaGsZMXFLlJ&If(EU37+UuU0bEX%P>q(ch%a7B& z$+v#4i*Aqp&qt?E8h&cmop6jCEZ*}MPmP{mn&49C(`(Yx)6n{MI6mC;UG{{YKgI3wab?HTSA_g|K^JwA`q zEi}rN!9N;;l>mBvjdkkP{{WZ5zIX|5w3RxV2U3;Qm2}sSs=9Of;y`|1%Lu*pp5Dt> zTD?DADXT?KA3vuoScEy;5B-O>x#(Bi>CdZL>F3j?TB*XgD98si(czzkd2!|Ai6*`# z@o4Gg{=TEHSMc-U%f}R9>0cQvKGuh+uc=Q*(?76xH<8(@Jx%@l%)g;>Pm)L!j5CE2mX`6{R?H^1+xZAd9C#C+y4M=DiPiT`k&|h*pjFJ*`Fsw3;+NC literal 0 HcmV?d00001 diff --git a/example/images/pic-home.jpg b/example/images/pic-home.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a9678f115d01980a71a4229804caf3426bfc7c20 GIT binary patch literal 70008 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 tYpXyq~`QpjEEpQL;^v0iJ2PJ<@{Rbsk4Ltw= literal 0 HcmV?d00001 diff --git a/example/images/sq-icon.png b/example/images/sq-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3714ccec3b7970cdba84653123d6d65a0f80d923 GIT binary patch literal 3844 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 + + + + + + + + + Squirrel Example + + +

+Top + + + + + \ No newline at end of file diff --git a/example/js/example.js b/example/js/example.js new file mode 100644 index 0000000..b848737 --- /dev/null +++ b/example/js/example.js @@ -0,0 +1,34 @@ +(function init() { + 'use strict'; + $('.J_menu').dropdown({ + ANIMATE: '.fadeIn quick' + }); + + $('.J_fixedGoTop').sticky({ + ARRY_FIXED_POSITION: ['auto', 10, 20, 'auto'], + NUM_TRIGGER_POSITION: 300, + fixedIn: function () { + this.$element.show(); + }, + fixedOut: function () { + this.$element.hide(); + } + }); + + $('.J_goBack').on('click', function (e) { + e.preventDefault(); + history.go(-1); + }); +}()); + +var $animateDemo = $('#animate-demo'); +$('.animate-effect').on('click', '.sq-btn', function (e) { + 'use strict'; + e.preventDefault(); + var $btn = $(this); + var animateEffect = $btn.attr('data-effect'); + $btn.addClass('mt-green').siblings().removeClass('mt-green'); + $animateDemo.removeClass().addClass('animated ' + animateEffect); +}); + + diff --git a/example/lazyload.html b/example/lazyload.html new file mode 100644 index 0000000..9cfd12b --- /dev/null +++ b/example/lazyload.html @@ -0,0 +1,147 @@ + + + + + + + + + + Squirrel Lazyload + + +
+ +
+

Lazyload

+
    +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
+
+
+Top + + + + + + diff --git a/example/list.html b/example/list.html new file mode 100644 index 0000000..547f992 --- /dev/null +++ b/example/list.html @@ -0,0 +1,253 @@ + + + + + + + + + + Squirrel Example List + + +
+ + +
+

文本列表

+ + +
+ + + +
+ + +
+ +

媒体列表

+ +
    +
  • +
    +
    + 《当我谈跑步时,我谈些什么》 +

    在早晨的马拉松村咖啡馆里,我尽情享用了冰镇的阿姆斯特尔啤酒。啤酒诚然好喝,却远不似我在奔跑时热切向往的那般美妙。失去理智的人怀抱的美好的幻想,在现实世界中根本是子虚乌有。

    +
    +
  • +
  • + +
    +

    左图右文,垂直居中

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • +
    +

    左文右图,垂直居中

    +

    Love is ever the beginning of knowledge as fire is of light.

    +
    + +
  • +
  • + +
    +

    超长文本隐藏

    +

    所有幸福的家庭都相似,而每个不幸的家庭各不同。

    +
    +
  • +
  • + +
    +

    UC Browser

    +

    UC Browser is the leading mobile internet browser.

    +
    + +
  • +
  • + Hot +
    +

    UC 浏览器

    +
    + +
  • +
  • + RunKeeper - GPS Track Running Walking Cycling + +
    +

    RunKeeper - GPS Track Running Walking Cycling

    +

    Version 4.1, 26.5 MB

    +

    What's New

    +
    + +
  • +
+ + +

排列方式

+ + + +

排列方式

+ +
+
+Top + + + + + diff --git a/example/loadmore.html b/example/loadmore.html new file mode 100644 index 0000000..0886244 --- /dev/null +++ b/example/loadmore.html @@ -0,0 +1,173 @@ + + + + + + + + + + Squirrel Loadmore + + +
+ +
+

Loadmore

+
    +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
  • + +
    +

    左图右文

    +

    知识总是从爱好开始,犹如光总是从火开始一样。

    +
    +
  • +
+
+
+Top + + + + + + diff --git a/example/material.html b/example/material.html new file mode 100644 index 0000000..2bd9573 --- /dev/null +++ b/example/material.html @@ -0,0 +1,178 @@ + + + + + + + + + Squirrel Material + + +
+ + +
+
+

Welcome back

+

It's been a while.
Read and new books lately?

+
+
+ NO + YES +
+
+ +
+
+
  • + +
    +

    Title

    +

    Subhead

    +
    +
  • +
    + +
    +

    Each of these cards contains a unique data set: + a checklist with an action, a note with an action, a note with a photo.

    +
    + +
    + +

    单行文本

    +
    + +
    + +
    + +
    + +

    多行文本

    +
    +
      +
    • 带头像文本
    • +
    • + +
      +

      Single-line item

      +
      +
      + +
      +
    • +
    • + +
      +

      Single-line item

      +
      +
    • +
    • + + + +
      +

      Janet Perkins

      +
      + +
    • +
    +
      +
    • 多行
    • +
    • + +
      +

      Two-line item

      +

      Secondary text

      +
      +
      + +
      +
    • +
    • + +
      +

      Two-line item

      +

      Secondary text

      +
      +
    • +
    • + +
      +

      Three-line item

      +

      Secondary line text lorem ipsum dolor sit amet, consectetur adipiscing elit hasellus.

      +
      +
    • +
    +
    + + + + + +
    + + + + + diff --git a/example/modal.html b/example/modal.html new file mode 100644 index 0000000..67b9044 --- /dev/null +++ b/example/modal.html @@ -0,0 +1,56 @@ + + + + + + + + + + Squirrel Modal + + +
    + +
    +

    Modal

    + +
    +
    +Top + + + + + + + + + diff --git a/example/panel.html b/example/panel.html new file mode 100644 index 0000000..5aa9292 --- /dev/null +++ b/example/panel.html @@ -0,0 +1,47 @@ + + + + + + + + + + Squirrel Panel + + +
    + +
    +

    Panel

    + +
    +
    +Top + + + + + + diff --git a/example/screenshot.html b/example/screenshot.html new file mode 100644 index 0000000..141df2d --- /dev/null +++ b/example/screenshot.html @@ -0,0 +1,109 @@ + + + + + + + + + + Squirrel Screenshot + + + +
    + +
    +

    Screenshot

    +
    +
    +
    +
    +
    + +
    +
    +
      +
    • + 1 +
    • +
    • + 2 +
    • +
    • + 3 +
    • +
    • + 4 +
    • +
    • + 5 +
    • +
    +
    + +
    +
    +
    + + + + + + \ No newline at end of file diff --git a/example/slider.html b/example/slider.html new file mode 100644 index 0000000..d57d23b --- /dev/null +++ b/example/slider.html @@ -0,0 +1,48 @@ + + + + + + + + + + Squirrel Slider + + +
    + +
    +

    Slider

    +
      +
    • +
    • +
    • +
    +
    +
    +
    +Top + + + + + + + diff --git a/example/sticky.html b/example/sticky.html new file mode 100644 index 0000000..86ddf8e --- /dev/null +++ b/example/sticky.html @@ -0,0 +1,149 @@ + + + + + + + + + + Squirrel Sticky + + +
    + +
    +

    Sticky

    +
      +
    • + +
      +

      左图右文

      +

      知识总是从爱好开始,犹如光总是从火开始一样。

      +
      +
    • +
    • + +
      +

      左图右文

      +

      知识总是从爱好开始,犹如光总是从火开始一样。

      +
      +
    • +
    • + +
      +

      左图右文

      +

      知识总是从爱好开始,犹如光总是从火开始一样。

      +
      +
    • +
    • + +
      +

      左图右文

      +

      知识总是从爱好开始,犹如光总是从火开始一样。

      +
      +
    • +
    • + +
      +

      左图右文

      +

      知识总是从爱好开始,犹如光总是从火开始一样。

      +
      +
    • +
    • + +
      +

      左图右文

      +

      知识总是从爱好开始,犹如光总是从火开始一样。

      +
      +
    • +
    • + +
      +

      左图右文

      +

      知识总是从爱好开始,犹如光总是从火开始一样。

      +
      +
    • +
    • + +
      +

      左图右文

      +

      知识总是从爱好开始,犹如光总是从火开始一样。

      +
      +
    • +
    • + +
      +

      左图右文

      +

      知识总是从爱好开始,犹如光总是从火开始一样。

      +
      +
    • +
    • + +
      +

      左图右文

      +

      知识总是从爱好开始,犹如光总是从火开始一样。

      +
      +
    • +
    • + +
      +

      左图右文

      +

      知识总是从爱好开始,犹如光总是从火开始一样。

      +
      +
    • +
    • + +
      +

      左图右文

      +

      知识总是从爱好开始,犹如光总是从火开始一样。

      +
      +
    • +
    • + +
      +

      左图右文

      +

      知识总是从爱好开始,犹如光总是从火开始一样。

      +
      +
    • +
    • + +
      +

      左图右文

      +

      知识总是从爱好开始,犹如光总是从火开始一样。

      +
      +
    • +
    • + +
      +

      左图右文

      +

      知识总是从爱好开始,犹如光总是从火开始一样。

      +
      +
    • +
    +
    +
    +Top + + + + + + diff --git a/example/tab.html b/example/tab.html new file mode 100644 index 0000000..001e5aa --- /dev/null +++ b/example/tab.html @@ -0,0 +1,58 @@ + + + + + + + + + + Squirrel Tab + + +
    + +
    +

    Tab

    +
    +
      +
    • tab 1
    • +
    • tab 2
    • +
    • tab 3
    • +
    +
    +

    Proin elit arcu, ...

    +
    +
    +

    Morbi tincidunt, ...

    +
    +
    +

    Duis cursus ...

    +
    +
    +
    +
    +Top + + + + + + diff --git a/fonts/sq-fontello.ttf b/fonts/sq-fontello.ttf deleted file mode 100644 index 9593887564e31eeb6633f93fcff29ec674f689ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49732 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�yDqO1yMr4Lv%D{<70cW=2Ri*+S$RLL2D3w0xjQ#9-dXB4N>mec$(sqd8hbI<*wQFgKPukV0TjwTzK$8z)w`boL zcYRFXxT<**N2(d;YPM;x3;BNj@A=S58qyEbVy2Mb!D7b{xaBXTdjl4I(9JR!>77y( z@>??Loh7BIzGiaXr-e|-hiJDFm2#GTxJoBIG^^CA>`wl5?5|U!6Idab-HgbC!;>{{^?U;Ua#TVCp7R@5x}Y7Y!HFZ^UNljC%D=#jPzvT9^ajxb{+MB&;)7;JVm9D} zwuO4pi7T8&`py^fL#xPkZ#UU#u)mM`H9QXcx!9eqYVkU3@0Ei zLR{PrBezQDNx?HNPX;5Z)`9RHgpqXnsexq^%z0WDSavpu;yyINh<`ER`1~_Lr<_YG zU3vxp4o;?;_QI^fVTzgt4V$Go4#&Pe=g!1OPUkYpu(WArQfV?Jg6+FB`bbd1(98$> zgQ0&tWSzBjT0io$_UGipdOrsBUtx)ft!^CRaBlnSIJ(JJ*T!-a8q<@qobq5r{2FOS zFZE5QCWFa>_6=3b`y{0zXnT>=dA_ld)y1TQcX{Gh^|8D7=JyK9iMR8Z&dCRqltlRX88-k5k2}ClVos)j5rwc{_vFP5qdE0U zsAws%Fq= z%1BcOJl*#R^mps41GMe?3S;dx^Ydk@ZsL+flfn_L7Z5o+e|YccbQY_Z<*?Id{o_}A zy+;ge5Nl_o(h`$(SULQ*VM&Jfuul~G;wY6$AuXay5^k2fjd4za)QhC6XLTfLn_4mv zvGJx!kuya#uwoyNkjAJsY2zhE`Yi1FNA`}5O-d+tlX^W9F?diy9MT95qmq=n55e!_ zZf~x1iWGm`5x9j|DyaS7aRRq(s6ZhP@Kn&mii;+5%Va8+`a8>8;^;w6jc zZ$ymF0B;NI&93{Sx`~-;f?SL`jMPXNS&AmroS!S;C9BQ8=NurLo3;$(A3x6oqarmT{l)m1j(Z;)K1 z9MX|oTb_Ajn0hKvcELmz8st_HdAS;4g6aJNrya!8!?-gdKLLE9NIbLEfOo3DwggW; zn~b|ymvqJV>AP>3j*Bc_lAUn|l7wwva3F$RA%tVOaR$4nb#OJ~(PCs~pVJ=O-96vU zGHjW~*x_;|DW-QYO3_sg9c-urYIcG;Nk{ZO*B*j_&F@0A9#o>#UR0a%H` z$sMIfgl9*sun4$Gt$O<@5#WV&MJ9E$wOL8m!Fgf*YNm)Uwnl*|*KOUn!D5~$&^;w7 z3*I{J$sEQ_|Jsv?GLd&jCe#}i;~r_L;8P__GdHT$l+!@fr4tyf zVVcoXbbkPMI4FwXbFMeQu#l_MX4R6p0rH9Wg`h!}HS_2^+{(K)r?2R{>bT?bpfWFJ zsgl3Ky$+5hBTh{Ud>?$|Ig(y+4&hn;DM=T-QDWzJ&R;`JrAdLlsGr!}0S)~I!MZuv z^N|3tjt>JxiPt8EB`j~7ZQx|s2G}Wa;za*C(RM2aYKq<8EDq#?vI%JPGZu~dXoKWN z$4g6+Xg)y}WR8yhP}@8P;Lb})Dj!fCm`GeGiW}i; zchICc3bO=-P35SAqTu{wVq5 z$XAGYLMIcZArp_Mx{^S`8AWT-5p)-{k?Xawt&Tz}8Q>Vq%DPIK-`kEwP1;A~Iq+SB zAif7@X>|@CzCT+_l0fy%LrV&3^ShOY-K_9eWk*(A0ZvV9ZnXgc&^~P06p88qLd(w( ze*AyOa9X?5?&Tzk_L1I8w-rqv)+`g_Y-g19-{AI9B}v~re9oXrvu14!U=yhB5sO^y zSI;tq{X*$(?i7ut8{+)n42bWr#PzQf`I7w;Jj;C<=tI2W9pOJh3^5~w%Rk_f1`HmS zZ<+C>?mzOs!5t*q_`aN`g=(Zu%2H`KBwIrsq`PVceyuN=kmOz)Q8(kwa!jr?tv1!P zO#dB&+qU@o-lN+lTN_lHxQn(bKEnpXxy(m^_QE#JI>nc1;k@5(^D;eqz0qNEc{1VF z;z)f3(GG4*B7Tw$*nZaS-D0MObVpI76jB$IRX0&n5uMW!F`)uuoem!g#qL0*Qe>d^ z-7|K%*t)qcJ-M+yQQcl}Lr`$mtLwXbN6_-pOxaH>)wg<^7Rw*~170-CefV@9qCjNE zr~Lzx6YSR9GwcrlLSz6GnPrtuBi5<_C2RQ}E(pFjq@SG{0S~JsaFJbC$*zji`SPNj zW)a`U?&dt+ED>$;X)T;!du_EPfLo`6^ixb#{n=-DP>|>f5)M974y7I}&!;mPSuPs) z=bjkL{bgJ(2oJlf+^kRmEJ;=*Q>G`f{;TZZ$FzTbZy@>c@A~f-DLH`EHc1hDz>3s} zZ{CAO=97XWM8fw3WXNN3dR4G!ILr_6I(#~*1N)}fbr}|HSiKt&r!2^!m!eX=Q!VWo zl*l5tB*dLT0HBQaATN3d@Ekz_^-P(wgf{&AR>p(Fk-`y7I_$l6BY}#4otRZA?A}&f z4|84g+mh^W4`$>ZehV0MV;F;*-wkU*7!xoWc;$w+=4M57W-I%w{uS zDOY(Gkz8({kAsh&A1~8>Qm-%72P_uWmQ>8wLJzTg(o`;m8cgIMldTT7o4OFR_IL?Y z8%ZbwE{ww3MqDEWQp1&eGh2~Zx4fDS`I9_S;2yS0auq33BSkk2mrvxSpKnslnk?K! z!phyp>mfp(!jeY}|NQ)D!K&=2XEy0bgO_~Q?_@#hO?0v%062^h+izGZ$2x1j&$3If zm9@<^^JDq!bKi8LXs8(ZKobC6HepMuLy_K&X$7c*tji zHwZpk^52V+vMsyVF*XCDE!YvUJ(`r-iOy)ECJK1uX_X&2@}0h0l0+!ph!Y@SoFb$u z{qKZSg;VPmBYLLqa6-}@ts_{iP=n0R@y#}2gxQ%lyyyO~K99c^ z5?^<`hW?kMptNVH_m_bA_}kK1&30ou=sl3GXS>(yd*0U9(c7I*?d|)SH`0#=hvht* z*pB8f!IizXlnqBt=|4O!HF+?osU+eV4k&qj@rFt`3|&(JQR~?tvBjxGdzOdo?3S9D zO`wclMfF3{gNu&mMW9K>8n(o9C_Lc3C+K{Z7Yau|>`v7f)Qtc)7oF7!S!`ymdSwp@ zp_6cq2xkn{1Z2^uGB936pb}Y>L{LSzbn?D|qn&rXG&zN54AzQPO|D|dk)R7uUB!wj z$q5{kVx%|f_k?CE=HPZ7OY6+!--%GZSVVS}vdrOB?d&GxJRyr3@tiFAmMtu3C1LNs z?xY1eA4hY(B8xPL#^y2P6xwyvzF76;Hdj{cEuHt;?ZJ5pd6#~7P7DNIZ~#7nN{hal z%RdXb+iH60SM1M}@7m1+1#kXR`P)sV9xLTF{3aO}@M!2usD(&Oh$UVw6E_#ae!S2* z1Xl6sF^ZwKrmuKYwHYV8y(>B+*=TJkQ@2btpKX@|bTVYpTq>C;wMB$Zr$1dD16#4i ziiEq>w>3(v_X!nqd?^IHF5XTwx_A<5L_7FBPX$DpxY(wKt(C$-{*(m}f@jS8*FLC~ zSNrer-^O<*2Ku@|yzln(sGmxTs}g|2FW@ePB7ONL+<$w5>k zhzG+_s$EU&e&h%iPFSZBB{}gX)Jz={)-ye&<;U1OjQN&4OEH-9JkzbYP3wDG-xUB9 z)$!k_^!Z*f3OrB5{iF%D|M=bdy*liAPqjE`dT#IVAKK6i`Hj@uZSE`5Im^qdh{j`H zOSwksQf|B_r*=@4q|74YG{kC+U z&bPsAWqWRLpI>NNu*-<{FVz1-chKl9(!COqB7=LS-M?&Kab>9e=xjQ*WgOBRy| zK8GIyqW1s+ClI~5)dk}^L4&@P1=lSl=z%KW`c9!&4LersGty~M^zB-0ewrYMK|(C0 z>*&4LschGY z>@vk%DK*~V%c=0~kme*F-s|Yczv+lGSnx419?psr(eGq|xn<_o?E(pYQo_-KJt`4* zcaX}^x9*B2U?6C+9n8LQy|n47R$heXS>gj|Ymy&cAK&@sx2e)tTae@et|?Nrxd zA2uWQpG*b{+&(~?ip}{2&_6jHDU-L))a2yIls`@Z0x!2F`K}<8R4rYD%4|QSV(Uw|JhHzFpGu!>8K1WN9oB zwb=ky`6KuhpTb3Dj7VCX!3QjeYgjXe7UezJD3;p{L2|mh*nx zWM0$^7X>O#o-(GWYgLYv*f;T>pEmryk!mY*6ML0JuT)X@OT;9C+dol|n5OzRm{)hjY2OvW=at2+`;fF8p?W{>wwpoe=+ z5Xq1gBom2oDSM{{QJ@-ISW(Qigo-I~qLQhl_V=Wsb_*IOupQnX=wo*;73nPzOyzn# zsQg2Qr2COL+mOAguMq2bOFblUPZo}nSHy06D~HQxU=Xlj^9Y}M^XR7Ni8P|@_=cm5 zU#{M7@rI}U^EK5<1kEdzX`3$QgnuOpuufM~Dl4I@;cT$5F()Jw)`FtU)K8bHQ}@~YN5q< z6LA>5x#5}F@RoPi-m#H+S?4oUu*%qN|D%@7*6Owx+H!a#s?}4eO`R4B5w)G+s!_?B z5$@64HWI!bCNeM@5a?RX$)h_n*C#y1sC!3CANJiPPHJgoV5dupimF$Yn-;!3t}dch z(12M|el)RI*5`WiH!V}A{WL*hCYKu&F;~FvB|(CqX{magwB(xqU}=4^Or$iISPh3$ z;d#WsGZoK5r9_uQgGXn=T#+_U7R@7Dz>ml0{U}(jfKuym~}!-juB)2+_YW3Fa&n?gmTdjZAPh! z-r(SHBQjbte?9Oq1I7hFpCpi~(A8+ex&z45#{5r}! zx#6M&#s0h3P<9k>WKKywp#?hWv`ok7c8)6ubKET-JftS!N;gbz&a4I?G%c>9ubWCN zF%tqGU#Cu1t%}&5Z-jak;`Uok2TZt%vW5>_&1(Tt04|n{V=;SFJ?~evFj$ zqyv7?dSZN{%DK7U-vkOU>KJ_}?U$MzYZ+Hs*k~dmgNo*hle2JYq zJ|l9w_=B*ms}Jv?w;w}Yp?(5VDcv0UcmkVGRS!-R#=uAEk8C92mTRqECT8UZYNpB4 zlKEy2BwC_WD7aw|85Qy^c{mBx$%!p7%CF|s`u@(ZDVNrVHsTT+MH#l^^?DX+DV2GO z6xiJRG5|h$GOZiYFz6OFXQ{o6V<8(DxF;uMGTllT_(T>Nu6=)9Y3KH_MqgjLU$Da6 z3vIlDy>6H4$tMp3d&w{Ee#&l3Uq=_MuF}@8?;B6HS!Ds1bC$C~D<_XFkFJ$=rk3VT zPEI}{kmuNTPOOHZkr6lWfCkN<(3@qyg1h51J@<}{+NYXcXFG{q&%s@*Pe6ib|D|1A z+lUtpj>D@rXhis~gU82Vi?Q!@$}-?kYlq)iXiYBd5yEaIq*EFCogr;Jk|EOgPFx9Y z_-Y3>%2+g8(v)jecAZzFBR?S@x1?Tm82A_|JFlOHgDGanbK)Z*+{$U&4R)Wsx#fA?-Z#CE#V$YS z7bI?N-|Ik}Zd-%`9^g)dkVpLwz^C-mCoI&wwh!WlFw^Vy@7LFjPu{Vidq$l{+odJ>csi>AXyWG_Bmn}RbnV(u zb-XT1_GaGgE=B33?JoKDq0N^_wS}4e5e0wb)=G5>!fhaTK4_SfT#*4F)m2y8hzpnE zP*{&H35?~fE9cf<0U@<6W;pr{b?S9l;EAqD9XJkbU-|1Lwg_!@D`nQ`X~(fg@T z1;eiIhid&fnr;zxJd~P<(IET78e%nnlpMTSMv~n!D={=+$6JTX-R!1#v-7-hA7R4p zthin2=ysK)Vc>P^rs8}(+I8Zw(_&6j9~5x!mDfa4Z>RIKA|iokcTGrLm2aEmcku*g z%k{CZ;Qw|OdcUkvaL1i@-Ce%RDy6*rfu|9}ZUUNEC_VvKb?7;cS{_y&Sv$k}ha~|n zgrqfHbe;gd$CNwCZ*f$YTZ7?r%3WRcE9x!SU-FqNON~)g&^@tp^Dc%xDpU=OAyv?xLFdplO_pjmO^LJCxZn2up7pTk-L}Z<9zV&4t%U^20ej$v$G3t z{dGwU_lYrWp@Lu7r}@3+<5Uc85zM}?;VHU&9kXbVcm_6ZF;I2DE-EkYq~G6N%kDF` zV~QkoaQc_x+HmJG?MGu}J!85g4n^Lp;u2G#i1Rf}WGQhcT1YiaB!}0tn#RpWFTDXZ zhVy$+Qe(VjD(uX&h*8G}wmgi{Zt+c#{^mGHwD_n|O%?B3aKsdSNGK;mnj$WxiIGS| zKkhxncL6)sK`(m&zlpu!&|2;sj*&Lk?NZ)GAbvvD>DD3tZS>!83f7knl^KLSP$f?CcEk#Q zCZqhw5EnTU7g>!!8J^`NR4KZmqX{|OP+0leY=^jD%a`M+a;1Hz(G^i^^5ZE| zj|Th%!F6T41e(&w>J@91^Gc3G|KI2e_y>f%%S|Ruk9#X7HiZ+CL^-tb`2tFWOVbg# zzC3$m#x`}k0#MYaJJJ{{$I@jL@w;F1&bz&vlM<((pF3>p{H#jJN%M|Q&0MOE@QWb@ z2a*O* zq&q&^gn{b;&t(9#J;ea$4mb+ep*GQ>51<*5x0?kkK8x2fb{t#&ZOjVO_vH@d3a!f| z=ZRh_PuT?chV>2E-#~d>8lO5Imnzsqta2$WUZ|qF{NHS#m!IBU%KZ=;PYBO7bfzjJ zwZ<$rYoU{h==X0vRj0~TRD&#_zuK&oI|9M5?1!P$rY04k%M$qi{fDKKGC66c%4^Z| zWscgNH=93Tp5mwpzC#S9vqtO4aC>61W0pkb*6tFa$ye%wtt_~pCur$Z1PjaQ4A#9* z$7pWYa~QDx*~5X&j2I{B#u&rErlMRN0ACgqB_bTU?-_pXm?dh{lQUaznTi-$oBj)K zlEYm$Zbdr(yjiY|*j~vVyNC8-DHKiPORH1S(J|<}#}o&n`i0llodnSqQEo1$@+L}Z z&=XZ-YGY#pp;%&(@KM36HLv|AFDp}_>1=}zT`!9+O&uYPT7qACy*sA4Oq`JEl;xtd+GSSzC@3j<%zt7pAByh7+k zF(-a8BQrxyNvmU`iM4NxYbYAuAv52b=h#0~Tt`+PoL9MvRjMS9@!2&}X#8W#xfx-a zI5JT{`r!IT`r_9b*TPJ*zc{tA*VjmxNHgud54W=#n0;{QDCir^KlF{D^Hfi=1xjez zH|*isMDPaGO}L4n$=MC5L#YY81MU!Zc&FYDyaVSDbh!`j2qw$4=CT&YC(~bZr{jop z8{5R!oys5QL8*nu@CSPh>=JncZE7HHuj>w9GeiPF2fF)*a<6JGN`h8X@Czk3urK6x zDCth_4Ir+msukoLg!s(F$`e6=QnuT#I!CTvaExE@lh3{5yvY24V8FlM z2i{;P;N8zc;b17dz)ag?o1R7HF>H^qzzh}FLrPnP|(HEGm z*}AsCv^HC7TVQRyc3bZP>*aPY74GV=dB+0lXtz7s7g&4IZZ9sdVvk+ySztZgc2D;L z>n_;cg#}hf*oDLbOXTfDeu3rVsr)_`PulV10!wz<$<77VnX@}{3oMtibEyTEO?9QR zU5l(Mlj_PWuuOj{vyb(!NcFE+U@Ow873l?*?n|Zju|7!k!NLHl8381=d8Dzh6%5bU z;!&_-PDHXz%bsVcETnd@R0?)6NCD*mo0mqC6XCXH2JHRJ^jM~60g+|7$g*5ySuV0H z7g?5zEXzff+k!88avRq_YF0w2aS(b||%SD#uBFl1-Wx2?*T9IYB$g*5ySuV1y z{|K^bDHimGgF9jnMr_$(>tcxVv>+s&xim9z}EX-?{_B zru5hFSMYWC8vGf20Um|Vz$f7o@L~8pxC?$4?u6fgYhVF(!7NO}W*CPxFbqSGhaBn* z2?#@o+)`!0KmeVu)ceU|+(dzd}MKE*!CKEWPj_p|%hN7+Z% z@3RlH53;-1``MlBeeAvLUF=r&4t5he!H%=HvbV4|vTNBPb`9H$y32Z8vq#u!R$*n- zcLpi%ivmnh8?uD(G|0|R;Y4t>A=IuZ9wC~iw0AXMwzX1TE%(dhuJA!5pQhGYrI6Pu zrNS_k-g4a+Y7(gKpGv{UD)}@-EQv<{hVt4tWGEWB;8fk9&P&KL>RIWs;(Y&arMlmUA+)Hx1>S!WwL@VS~ zXP6$;i4axQPASQwDm}1_tq_PpKQB`*fSTmP2>4J^?vzA5BD}ep7Uji~5UrH)DYzjM ze7+JLs$h4qU$z>_RLHoE=e4xvlPD~Pjtdp{BPo^q05}zV5<=`$lN`}gsX9^e9Ouhq z2&+^@RzhJ2Tci=1aTs>QPt~d9$01s+Wazk(FI0xgh!Uw%&8G)|o=bmzD(e@?Q<_a) zC9LNwdBS}~jo=XVgQzS@Cflg3I_IU`BGu_s`&|k~!l+K;B8j6W%ci2rM2aBGGM7=& z<+`EBiXu_X5GAg0j#quaHA9kRkU8FEa#``p-1dcKGJOG83=Uxf?^aY((q&DNxN6|D z6hl@di7PVrG>=~nklj(%2@Dl_TyIS=D4!H#J#N6^keXFIooTMZr!;K`!|;70*is*Gx$TpKRh273`QP zYnldzqH8(@*AhCBB1}p0aRpzb$QlPzr@UE?ou`T^k|rUk0j$^|Q&~b;^_w`pNM=4< zR5+;Z9HI!1q}Y-aKt#*BqRZfk`lv*oEL*xy_JQfKH60X0I}SuhGG*CNuqP%V+2R2s zjGdAZ5>xYu@kEpd6u-ie8a;?{nMTfM_!I+VGT2i2DhVfw!u@8$E{XIPmAQ^1;OC~P z;0f7dC`2GQ2-uQ{76}V)#~#v$<*3H1BJ;X8aygE#OtpY%J|JyyLTtD59fIkgg$ zg*Z{-deHD07MBCsxjH9*C0&L*dILpEts16JL9OZU$=E8eWE+j#M5A1yWUggL{vkIMred})ARgwGmUU%Ddd;8_e zt{eC0Qu*VCM=Jleru}wV@)#d4<0R5$TgYsD zTac7VN5mlPJ7-jM^O-wpk;Vr%&Obl*=}ga%h~8K(!{&x9w$x#h2O2fkW@_-UW4mup z7b>FW+BZdowduDc{l>A69oU}PHCoIBk2d^_hu~KTUy8h>ag)<09>^HXDe0A*Zfv1p z@MIpgp-?FZ2eqStn!zQa8Wsh9^VKkg^$I8?Dsl_Ynri*8w194y{Mx6vV&YW0j{EdS zJwCqwhYF6dA5Sg%(&XV8R6?PJ;Lnsy`f&Upw zT@Nn6$aS~F$i7>qX5M>$`P;|I-N|d$-o2|W92y*go$uZ`u_hYS<+myaK6&u)-mcHz zu=(bFV|>FKe&f~+M?ZY!`1OPmWFGy9VQ$7a4ln?Vmri{R3~?8-n_5 zwB50jHr!nQ+{iAzdzA>oju&}iX$U; zaG2_QQk{57i#B!#IHlgBgcGgi#9maXj)TNv>ApRCBy&>MaJ9PUeMw0#D>|+X*StsN zYDLkMBk!yK6c?yT-GDdE^&aBCP8=!jsUP=f6gW*#>X?we$ND9G^!?4MrT3Pokh7< zlsqEBP}$_vmuW{K#`g%k@+}?q_c`hscV$vrf>i^L9I-4q9nqksctWz zz`T}MRFn>roIh^+_uu!n4IZb%@|UcwcTyqUgs1)Px887KcALJ_GTLL=RE+$&>0%lJ zpbYLhGTM3Iz=567KrkrxaVHzF;H!QcR_)tj#cl9-OP-A*&WUpM#F?=*9lV$=W-VVZ zh$>exm9%(XjVEizc2C%*soG8;5HRDO(sZr)4YyVw`R3ZDK~OcyWRC?n&L=_{6*^|B zLMdmjkk($#=kYI}CC|qNiS5;k9A{b*+p8CZQA*D^z8Chp$?R@L-dB0ln)d#cmi@0z zkq1vC!2jiPGQ7idr2AhTW_xN^j-qJT3%Y?)HibFh!k~Igifsbw6{tha;3$h+$>np9DwC77Pek!{j_1Tz(e!6QM|(alR~ZEV0_^pE_N1L z4{CiiKDKv^*ZwcJo<;qat(auZlg$tl6P$BMbn$iw=fXCe32WFkb`^UAJHZpR!9Cy) z%t6F|E%+jXC|c|rC`x8{JdV;{!pA)*=F*2x7#I`Luv_4ae8CIMABY6}kwpj0aL6$C zBlGY`@_xo~mhk;7;`2s!M1$OCgID)?_mYPstZVb+b1}jp8V^-5)IE%npLd{+$vj-~ z%rj(Q>l>p%5>&^QhjRF~*T2l$JjC?>^IliP*Dap+y095q{Gau{+BKJWm1prk`(1N$ zbF~%Qx2ICafAi?|N3J>Wn(bF@ziRLNl~?S%Y-Y#S%^TLG)}+>qjb=NXV5ktzq+_vO zw~l9(lGDm1O&B+-<+NIeWXi)46rjVAjL1i+(ic&*f`|+g@hrn-<$|dIbWgcdEoW4% zP#un3c>Thu@}2R%v215N6^M4T8T%U7;bi!d=~n~DBpEavqE zAk`I5^>@en+mrtEnP!NV1^={a)rS6vX4=KcAAk1}v+i8IK#%YsR@s``$S{B^agq0J zPzlOII;iwrJ{9Pz%%m?ezSk{YSt$+lhlg{S%y2dwpxW$RK?Ay=`JrAnMomN*WG={( zNkA9H=-GY<(wb3)t@V5G->3OWkxqf&)suQNr9yn|?ECLh0;X~sp1KtqejWe4>+rc2 z@U&=kg8F&lHpSyp-&N0H549JcN8RHWBCcYZ?MD6QP3$Ii3%jlMTQ?l5jmxI-h9eV_ z*SvA@^($o6d-6Anh79bcw;U~m6p!-GcW_HmCz#h%O|QDhB#-5hEJ}knOv*|zk#CtQ zMG6tWCK<&e5pAQ|Z0(@WmB>2sa?7GfD@&ey)Ab7nuD)vb6_@R3@9r+-?e=iM7o!hV z`%s!kVbyVk`y2{&PE)qai}b5uQH`Tfrjl~pD%D03oTGI@j&$WDXi5d;KKihpL!~gK zaS%s7Q5Z8ErP3Y+p)zDT0SZb)>*P)+C{=u)#$%$gLP&0Z1Udpra8e6v^|z0sHpAu0 z!1T=4!C_6V^iN;bpI7t^8+0Y#f7x_@MV6elfo(I>{i{&>(Z=B&c-v%92`pXH9$!(a z79;pGysD>dMZDeVSv8D5kz)0CDtk2F->KgaM)06f8_Bv2uAEk{V zH0l55>DIHd{M{UnxA)E@2Kojz7V#&fE8RVc792>-6uZWpzJbK{zK#wl_gzKK8U<@x zY&za$$EK29^*6_-qjnc<;D#>E_Q>r%jxT;^2-ao)sa94bO#%Oz%ulx=!HbwG@hvw= z&%9EAb`REI=QtnI1sQB{MmvSZk#i{yi{W%IL0&7l4o^z9vU_JFzt~4hKrOlNZ zHP}h!rbvShmZK^Uq^aQ4o-;g}VoEBR2evi$8J{JSA>)%ipDbt7U7fxTUq>tw3I_bL zSGLl@fE5zG(t??098s_E-9-C?a56S7_ES}}ZCnuN6 z)5Gws;pwF^e`1a*xy_xZ58$OIrio7>vkJjKG-TzjT9PUWicjN8ytRUt2%4pDuwC#C zT;&2ew|U(B`qSCQ$7SiWvXF3p+*6(Ir)I^OM_WEa>s(@gxh@-fYFW1LrBW)dpusdD zuU_yqU+IFLNEdv)_v|acL;IKf;O+(A(zS$M77{daVI7PCQ3>MN?)!ef-@P9^-jT;6MNt%We900;F?>n3X_=;FQIRFviPXf39mh^> zM{;U6>C$dZ<1S76N6@u)(*kJ_7sG;jL5tN`i*##IWW}(gLs1NCx~_7E73%{X=3+>f zJ~FIZ#P0k39Z9K9QWR|^k@x!D>F#&G$M^a9C_G)&h!Q8UfD&8fWH%r$ac-D%m%M0X zSO{=o5(uv*2njJD@YNAJ6%-`Hke2*4$+*q2Ox}=;1J!D&l*y!0i9{@>C;~LwDkcEe zN|jQjd`o6BGg+J{jF0VrAvBvxr_$a?VmL9}>u_BV3oB>_3`JLTO$D`ImP8Exv$Gb| zZn_4NL2U#(U8RQeep*Br3&fLWqJw`NI;CBSRBFT?VZR$~=ukhO??9irew|#~*tp!e zLf=1seSZFWyS>rwT$(;b-$J8~B6!$(ha%+IV_$qrE}SV2RGt-e*t6Nr=d=7<4$o8qE%++G$;y3c2Ge~6G;vQ0|xqUFkDs? z2;-<^L9&>9$xB_D&TVviZ$E$EnS1WO^DPJG5485|swoy4PWc`>?p_8jUqd)v>m{7||zOiUrp)XJvOAOUnGmT;pl2ncdtR zKLV|rU>K_q3dBSz2(o6lJbDwffEMQksz{nDN|G)*junx~r*{;Lr<~DhXE11p=6=ds zN#RohiEMs}N(xz4OlrXV-MJ>4bQiD4WLY*rzQa8V)KWV&+L1FQ(kNuTU_cg4=&tcd zBO|q0N9cAxm*eJ{1Caghgtgu*=h+V?)ve%=xIc$2!tKV5GxV$&o`rX-vB}~Mw2`= zY?9Q8VoH`k9U@qUqUwldmU#BZ&yopYczR$aC?=9|$!b&^;>6dTun|#HhN=dVj&6jV zp|PXd$?jd)CyM~UOd6Km;1Ir#NaA&`?+ubRfC8!=>i2cIEC;;;X!xe zWz<4t6hF>#qQr|Bt$jgq5fM*_55lBbYjU z{pr8ke+T7EccPJet(>b>)Y#2rwai7sq}7`kYZ;ha)D8D@-L`1goo$4*FQtdnmJ%Z2``oo3R>ZV~ z4Y0GzG+$xm19)NpuF!o);qKf#*32X5{2L~cQZ6~@hBcWB(x4awNoVWfFa$no|0-oK zeQ?{oS0CAWyw*wjLjT_I;A;QK34~Se*+W<9e}KAdb8+qfcTe;9E*8&k5M2OyLFbQ& zLCX9{0gZC1${jWtv>{PJ10k}^ZX6S2h}_n-*;Z@c3{pIm%cXG;NK;9eAsjQH*}7e^ zEqgo*Bd{-k@|8S8FU(faOAkAuJq6BJdHcGX58pOSeC9(bk7+T|bB=Yt<^1yeT(Fp; z3G!5OGI#*QjBjX4E#+=L^cFkf_Ju9zc!men#QWU1D{?J^j=A-$ffFNy~AvP@0AIsXMM4>u8 zmdH|4IkZ?#k;GV{9xvc_`Ou+~cXBIFp3W8K>xDw5K3H!@i>#*&PM@Gv-)msT+ zyZT%Scd`7rDmRPy|FtYbi$SL>CWWm*sdb4kE)5KN;FmFNhi~t1?w+o|>r9X29ofcL zWKtij)W>mh7|>kZouR#bWSi`Wvf_5B7q|J<3oris@83pz43oI$W=uC;OeNS3ck@Mm zKl`Q)$J#(cHXI<2%|Gz@({$~#@95gIhsIn{fq5rnmIr*K*E=>?W>fzRf7Q>^>E$IG z+`zBxe}s#=b{EfGWNZ&Ki5`t2{go{4Ys)<>4dKuwa%?-E#--aoboE2Gv#-ueZ^-Yi zu&i>#{}3@wMBEO$(4!0U6QwjYH5?zXf@(yIghN>Wj)dS+WjFuEH`a%R{m7f%U=NJ) z)i=3Mv76JRgOnJD_A<&9xOlz3jAY*84l$d)tT%TdGa1r{(TyuYk2x6IVLIozT$)FDNzR-#gx)+2t zDl)7G9xX3W0Th9VL=l^gNZasmc`p?XTM~O3M6H5PE^iVyiu}J(ln#nQeJb4_60*>R zcpD13JR@T*B!2XrR8DYo!H6Xt`}oNLA+DK%qRjfqJ;u)n85$$=-+Aeu$jf7mQL+JB ze;3lKGfp^@@LW5UFk^vvuT^X&tJ(Xr)$4`C=D$$qQ_+t{d-BdB%=V^m6WoJMBW}Xe z4FoZT7DR?PO!t{SzfR9#h)8K?w}{_-n9i{`DTb`kP?V)k;&3Q(?bR=2qN520)VYms zz;`8gy~)f>l=j!^KDH8Sotac21%DUsxObunBGiU}vKv47i7P~q#f&Cjl+mhFnL+!S9KzDoO~D-GPeR6 zrp(RH9oXM$&g`77*CI|XZ`&YlvXWFZzZk@3rnIg0X-5l-rVy!S5jwO>7@ zB^~Y5Dfma)sjDujF08HjIpzQN%WM1z-U2Cepy}@2S)JUG86F7hA`Gfc%z~dJprJ(Z zt})gQAFfB@jL`%5y%!P9yD>L;P*sKrOD3PHyZD7pb&%_1o?Eg5?s`(Pt?1gI7?lNE zKe!l-Ma99jsAbDT>u$haVr7P8zf93uJZKgD<5CijlM}E*8oV!Rh2-RVR3-s9LzJWI zNjYRi?;Dhg*1@e3Lu=7M2nra{wW0oT-$%4vPaXu_csF;Vd8|N0y-GA8L3q_65+|U4 zO%!wyEp(v&Yv_c)@QYQ%$CIgoem7_#WR*jQ`%)KUk(1iHrVtY|m&^K!FOp)8)JF2~ z$s*$AO^E2>n_Qvcn_QiAH!ArXw6XajIdlCwN&d#3^Q$3Qhl+Sgu}fG#eR9^E7jGdUm>A9&_kAnI*I9?MFL* zt|hh3)u1-!#V=j-=4Xmwr_h{BU%W)c;_O(=5MrfNC=dwd#*$P@W){ZpUhjOBOt0Vl zo<}>M(=>79ot+bSfytzu~#7&G5ln5A5GLT`Gn`p@DF8#0>>} zT3w_aBOz<5B0#EwQIAF;KIiabV(_2RcTj>_VB zk$$ZUj{F2n#abW^a^wbl_6nA$3JP_C7zZ7=pnKM;Ytr2?stmE>LXqse4Cl+8Z}fK1 zhc~~Xn36;YvQ6QK@)B<JSycNJUSRFT z=gyqrj-aG5L8w$$DKBS242Ywp5DclK@){@elFXk~yX;@6oJbst=98$7Fm(h*slzCR zXe-bZwE3mQ1Fb!cozvAyX%gg4KQ<$bNa&zf!;9{vVn?UyMHI8pw}+Y8^;|zooAk@{ zS8)6q@%%_G7=1UoZ~HuZWA)O1?&Pg_f}b9#D|+GRLO_j^JGwlTou|5G{=2*U%fp)U z+D{$r@R1KZ|JCO|aOCS$zc3{PLu6o_r%Ws3QN-tIyR~nt&YiIT8w$oSsFty_ zN11vyL;MIBWG^FIdratNb;PCbs&HGn9G;CuBBfT5mYb!Y^eXi)>hpD4UM$nOOx>fo z@@S{H>-K5dI5a~@^XLq1t;~{%WHCv-G4Ea7RQl5+B~qL%7C+pp&09fNTBue#-;ZZ9 z)eIda-`RneXwd0aH$>)wFFXG*l%TOuSMs{C*CFUa6I=^>ThVjT4<8Va;GzX03|*En znqS+`@TXQp!VDj^bPZ$H3QXQE66j!kC}bb*H@aC}!w129aglV%XZ%AKWo>N%L=(Q)x#CUhoh61C@SHyFAtOCZaW~K$aO39H z*WT|V3xGQK<%M&^;8v#@GR#}z+S;C<9u91M_+_0fC_YT7KPmRa~ z=3n9mndKO(84jL5f4;N)JpTh#GLfjNvmEg>MFOEak|Nh4ndbHDbTvE{+2x`#H)dlSH^e;ba54Fp5aiVnG6{XkVnO3phF5A6PTX>>RzLrOz8~aKw2YuPSym*Fe`W5ND$+h= z4U5W|D1f#w^WxZlERd)nUBzYV9iJ@5<{9&-c ze+>~$B0)O-eUJl=P7Q(ZF-Xo}SDiXa9{69h>*CknfL_x1sjMJyrxQGIfh0jrVf-+i zA6)3hMEY?DBHTS<)y#2kCx@Hkd+U@lN(Ggd0>gyxjXzJmF8@}`6&isQX3o>FgTn|BtF2nDl}2hj>A7!by3}hO+Dzx z3Le^aQE0knf7h!v590+To~-?zt_YoDM3T;}oq6l((YGugT0Ah@*f}{dHVWeY5GeS% zq(_6G>(?YX0%9Y6i!~`rjQq@z zgXsk<+W^H6yE?@bKfhZ|)m`$^nFrr-`sBO*h)#ZBS=acKlvEN%!b)g?puY3;9!-x8 z?muw6_$jdc6ev(PSGF3%m}mYadO*~aea zXi!vqc0e3sql{+s#FmnII|Fx|8*I8=Kf_H2R-5X+W?|e3TY@z%rjh@mj$c^8$g>0z zMv%A>6A}9`00`4AqgjlHW2{iUqKIqvy2AX8?=>D7jY~8}4QNpH$EO9wfDI`=HvK>d z#DGrhuQwM~7N>I(O$m~Ke+!>q5HwRrQ7Jcl*OT@7OtNlyo?>}1$&2TX9LY7Lm}e=T zXN{F&MNc_b+Bj7F;1>&CsyXeH3L1=BA%PY%<#XrCw=2m)Oe>U}>1Jryt)2iV8 zs>oI%7&V2_8x{Jt&%gG)O!35AQK4gkCJ2fk9sl8R!3tU`&_ng3ikCs@%%Pl8Mv8W07V$iXU#5y(8*^1zy8l;F=7q|ayb~7K%xLjoD3OwoMT{QU|`(JLFY+3* zJAgE1-{C#oqI{@6vH#_d zpaI+hIs&!>Is=RZA_Qmz+yzbsJO<G!fnsN)omcI22YDJQa)Y8U_*Vi?F7Fd1waq#9fr zup0CmVjJunTpYq3h977j@F0dE1|lFLx+63r@+2lCh$T`b{w7`~uqQkxrYGJg7AR0C zhA7l2A}MewzA73jb}G~>G%K7eEG)JyWG(0}UM|)zMlY~9mN^(XXgRbx7&^o|Bs;!5 zKs_ow#y^5T@<9kectO@eE<%b!L__XG$VDne{6Qb@{4KuN+%UP{ZxBv{L|6pi~e50RR91mjUi$Ysk=(e*eN@=`cH-aEobklC6xGgcpBoZ?+ z83kXX@6dO__8v^RosiOfm&^K6of|B26fqPwmNdUm5M4#+*rD66Dpm`zMQMX_;IWpPc8R6_Jeio z>V3GMC%#T2mB^OU+^dnF_}Vr8Y*#(q1Z`vHa<0`<4sC{9X|?b@kKg5y zACm&^k6A?@tsce`((a5X^OAiz?CvmYL`t$uH?y-Iq1)W|Jm8W@g`AkC~a7NtR_> zwQRY9Y?EVVhW_1?yt`?0-}(Ejc{B2i#!pWgt&JAXWc2^fiO~pa7$ZQ42r&|*m|%)^ z%&>t?9Ksg1aTurJbew@RaTdj|cD|9>T+T1drk|JdP*uB%Z?4cm~hn zIXsUS@FHHq%XkH^;x)XEH}EFj!rOQU@8UhYj}JhQgQ5UKi3&A1j-r7;iw+V!jzK}g zz+wk;9LFy9@F70J$M^)F;xl}XFYqP4!q@l)-{L!bk00p)1_q<+X`&$=<&WwCoRS(al%sw9`PX^Cn! zR$%$>rnYUaGuuy>sF3q+wjcF8Y@RaX{lo(yNfFuJn~jy9Q6X)yzKAZI$n`?GNE)`A zOQMRna&-2jh^cH_)|r6T#LSk?qNRxsEntu{Are3MbyN4J?kg_4t$lQo4!0dXkQQ7q z>QQJE(e=2HG-UMx0NS_iHTJEpR7{Z)R=Xs+B3)L~!Cjzu}q z4KoRK66gw|HdbI+pyf1ZtznZLDQr7%KV3pkQM$yoPX(`PlUtF8)Nfgs`!U{=vUPnX zgO%2#1LMBKRIt(vXrg@T0Asg3-fokw5^Tjp=081rFf`;GIvBJ4fAaidTZ>R3ZSIV( zw0$5l6xuuxvi-p%UuKQYQ=*idJGssy&8v=x$oTVNLNfO?1*XZwzs%CTeBQ z1q&-7b2iqt3kMB_rEnV=v{H776QXi*AW=C`7zjqn8F9GFj#_Paxf}SiH}ym22zFIx z1MXZVQ|`o3CHq8EuC-J;%@t=QC7LDLax(x|p7)yT*$QMkOquAIqOxFdP6iwJV-y(P znUL0uHq&8TsMkCqJ?5AswqmjFdDk%&lu{Ov zyUg5G7WH;-Pq49@*>Ln$+0efyDE2p<&WCj#;?~ z00;nMAg}==M6d%RaIyp_2}M#wvI+tRDzOFuM6o0Rh*4OuK!{ke1_MN~CIN_1ShxfL ah*+@(0Yq6@Sy{LN|Anvwjj;s)L;wKC&8S2G diff --git a/fonts/sq-fontello/LICENSE.txt b/fonts/sq-fontello/LICENSE.txt deleted file mode 100644 index cd137b6..0000000 --- a/fonts/sq-fontello/LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -Font license info - - -## Font Awesome - - Copyright (C) 2012 by Dave Gandy - - Author: Dave Gandy - License: SIL () - Homepage: http://fortawesome.github.com/Font-Awesome/ - - -## Entypo - - Copyright (C) 2012 by Daniel Bruce - - Author: Daniel Bruce - License: CC BY-SA (http://creativecommons.org/licenses/by-sa/2.0/) - Homepage: http://www.entypo.com - - diff --git a/fonts/sq-fontello/README.txt b/fonts/sq-fontello/README.txt deleted file mode 100644 index 43e23f2..0000000 --- a/fonts/sq-fontello/README.txt +++ /dev/null @@ -1,75 +0,0 @@ -This webfont is generated by http://fontello.com open source project. - - -================================================================================ -Please, note, that you should obey original font licences, used to make this -webfont pack. Details available in LICENSE.txt file. - -- Usually, it's enough to publish content of LICENSE.txt file somewhere on your - site in "About" section. - -- If your project is open-source, usually, it will be ok to make LICENSE.txt - file publically available in your repository. - -- Fonts, used in Fontello, don't require to make clickable links on your site. - But any kind of additional authors crediting is welcome. -================================================================================ - - -Comments on archive content ---------------------------- - -- /font/* - fonts in different formats - -- /css/* - different kinds of css, for all situations. Should be ok with - twitter bootstrap. Also, you can skip style and assign icon classes - directly to text elements, if you don't mind about IE7. - -- demo.html - demo file, to show your webfont content - -- LICENSE.txt - license info about source fonts, used to build your one. - -- config.json - keeps your settings. You can import it back to fontello anytime, - to continue your work - - -Why so many CSS files ? ------------------------ - -Because we like to fit all your needs :) - -- basic file, .css - is usually enougth, in contains @font-face - and character codes definition - -- *-ie7.css - if you need IE7 support, but still don't wish to put char codes - directly into html - -- *-codes.css and *-ie7-codes.css - if you like to use your own @font-face - rules, but still wish to benefit of css generation. That can be very - convenient for automated assets build systems. When you need to update font - - no needs to manually edit files, just override old version with archive - content. See fontello source codes for example. - -- *-embedded.css - basic css file, but with embedded WOFF font, to avoid - CORS issues in Firefox and IE9+, when fonts are hosted on the separate domain. - We strongly recommend to resolve this issue by `Access-Control-Allow-Origin` - server headers. But if you ok with dirty hack - this file is for you. Note, - that data url moved to separate @font-face to avoid problems with - - - - - - - - - - -
    -

    - fontello - font demo -

    - -
    -
    -
    -
    icon-music0xe800
    -
    icon-camera0xe808
    -
    icon-heart0xe802
    -
    icon-heart-empty0xe889
    -
    -
    -
    icon-star0xe803
    -
    icon-star-empty0xe804
    -
    icon-star-half0xe805
    -
    icon-star-half-alt0xe806
    -
    -
    -
    icon-male0xe807
    -
    icon-female0xe80a
    -
    icon-videocam0xe80b
    -
    icon-picture0xe80c
    -
    -
    -
    icon-th-large0xe80e
    -
    icon-th0xe80f
    -
    icon-th-list0xe810
    -
    icon-ok0xe811
    -
    -
    -
    icon-ok-circled0xe813
    -
    icon-cancel0xe812
    -
    icon-cancel-circled0xe814
    -
    icon-plus-circled0xe818
    -
    -
    -
    icon-minus-circled0xe819
    -
    icon-help-circled0xe816
    -
    icon-info-circled0xe817
    -
    icon-home0xe815
    -
    -
    -
    icon-link-ext0xe81a
    -
    icon-attach0xe81b
    -
    icon-lock0xe81c
    -
    icon-lock-open0xe81d
    -
    -
    -
    icon-pin0xe894
    -
    icon-eye0xe81e
    -
    icon-eye-off0xe81f
    -
    icon-tag0xe820
    -
    -
    -
    icon-bookmark0xe821
    -
    icon-bookmark-empty0xe822
    -
    icon-flag-checkered0xe895
    -
    icon-thumbs-up0xe823
    -
    -
    -
    icon-thumbs-down0xe824
    -
    icon-thumbs-up-alt0xe825
    -
    icon-thumbs-down-alt0xe826
    -
    icon-download0xe827
    -
    -
    -
    icon-upload0xe828
    -
    icon-download-cloud0xe829
    -
    icon-upload-cloud0xe82a
    -
    icon-pencil0xe82b
    -
    -
    -
    icon-keyboard0xe82c
    -
    icon-gamepad0xe82d
    -
    icon-comment0xe82e
    -
    icon-chat0xe82f
    -
    -
    -
    icon-comment-empty0xe830
    -
    icon-chat-empty0xe831
    -
    icon-bell0xe832
    -
    icon-bell-alt0xe833
    -
    -
    -
    icon-attention0xe834
    -
    icon-attention-circled0xe835
    -
    icon-location0xe836
    -
    icon-direction0xe837
    -
    -
    -
    icon-trash0xe838
    -
    icon-doc0xe839
    -
    icon-doc-inv0xe83a
    -
    icon-folder-open0xe83b
    -
    -
    -
    icon-folder-open-empty0xe83c
    -
    icon-rss0xe83d
    -
    icon-phone0xe842
    -
    icon-menu0xe83e
    -
    -
    -
    icon-cog0xe83f
    -
    icon-cog-alt0xe840
    -
    icon-wrench0xe841
    -
    icon-basket0xe843
    -
    -
    -
    icon-calendar0xe844
    -
    icon-calendar-empty0xe845
    -
    icon-mic0xe846
    -
    icon-mute0xe847
    -
    -
    -
    icon-volume-off0xe848
    -
    icon-volume-down0xe849
    -
    icon-volume-up0xe84a
    -
    icon-search0xe801
    -
    -
    -
    icon-lightbulb0xe84b
    -
    icon-block0xe84d
    -
    icon-zoom-in0xe84e
    -
    icon-zoom-out0xe84f
    -
    -
    -
    icon-down-open0xe850
    -
    icon-left-open0xe851
    -
    icon-right-open0xe852
    -
    icon-up-open0xe853
    -
    -
    -
    icon-angle-circled-left0xe854
    -
    icon-angle-circled-right0xe855
    -
    icon-angle-circled-up0xe856
    -
    icon-angle-circled-down0xe857
    -
    -
    -
    icon-angle-double-left0xe858
    -
    icon-angle-double-right0xe859
    -
    icon-angle-double-up0xe85a
    -
    icon-angle-double-down0xe85b
    -
    -
    -
    icon-cw0xe85c
    -
    icon-arrows-cw0xe85d
    -
    icon-target0xe85f
    -
    icon-signal0xe85e
    -
    -
    -
    icon-award0xe860
    -
    icon-desktop0xe861
    -
    icon-laptop0xe862
    -
    icon-tablet0xe863
    -
    -
    -
    icon-mobile0xe864
    -
    icon-globe0xe865
    -
    icon-sun0xe866
    -
    icon-cloud0xe867
    -
    -
    -
    icon-flash0xe868
    -
    icon-moon0xe869
    -
    icon-umbrella0xe86a
    -
    icon-flight0xe86b
    -
    -
    -
    icon-leaf0xe86c
    -
    icon-align-justify0xe86d
    -
    icon-list0xe86e
    -
    icon-list-bullet0xe86f
    -
    -
    -
    icon-list-numbered0xe870
    -
    icon-crop0xe871
    -
    icon-scissors0xe872
    -
    icon-briefcase0xe873
    -
    -
    -
    icon-suitcase0xe874
    -
    icon-ellipsis0xe875
    -
    icon-ellipsis-vert0xe876
    -
    icon-qrcode0xe877
    -
    -
    -
    icon-barcode0xe878
    -
    icon-book0xe879
    -
    icon-tint0xe87b
    -
    icon-check0xe87c
    -
    -
    -
    icon-check-empty0xe87d
    -
    icon-circle-empty0xe881
    -
    icon-dot-circled0xe882
    -
    icon-gift0xe87e
    -
    -
    -
    icon-fire0xe87f
    -
    icon-magnet0xe880
    -
    icon-credit-card0xe883
    -
    icon-megaphone0xe884
    -
    -
    -
    icon-rocket0xe885
    -
    icon-bug0xe886
    -
    icon-certificate0xe887
    -
    icon-tasks0xe888
    -
    -
    -
    icon-filter0xe88a
    -
    icon-beaker0xe88b
    -
    icon-magic0xe88c
    -
    icon-truck0xe88d
    -
    -
    -
    icon-gauge0xe88f
    -
    icon-spinner0xe890
    -
    icon-coffee0xe88e
    -
    icon-food0xe891
    -
    -
    -
    icon-eraser0xe892
    -
    icon-puzzle0xe893
    -
    icon-user-10xe809
    -
    icon-users-10xe897
    -
    -
    -
    icon-user-add0xe898
    -
    icon-clock0xe84c
    -
    -
    - - - \ No newline at end of file diff --git a/fonts/sq-fontello/font/fontello.eot b/fonts/sq-fontello/font/fontello.eot deleted file mode 100644 index 9587374fbc74d7b8a13d6aab17a40d52f1507f79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49900 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

    ;sZ7!o@LN8JETv3S0&IWKhQWGrLcw0%BF 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 diff --git a/fonts/sq-fontello/font/fontello.svg b/fonts/sq-fontello/font/fontello.svg deleted file mode 100644 index b1546d3..0000000 --- a/fonts/sq-fontello/font/fontello.svg +++ /dev/null @@ -1,161 +0,0 @@ - - - -Copyright (C) 2014 by original authors @ fontello.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/fonts/sq-fontello/font/fontello.ttf b/fonts/sq-fontello/font/fontello.ttf deleted file mode 100644 index 9593887564e31eeb6633f93fcff29ec674f689ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49732 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�yDqO1yMr4Lv%D{<70cW=2Ri*+S$RLL2D3w0xjQ#9-dXB4N>mec$(sqd8hbI<*wQFgKPukV0TjwTzK$8z)w`boL zcYRFXxT<**N2(d;YPM;x3;BNj@A=S58qyEbVy2Mb!D7b{xaBXTdjl4I(9JR!>77y( z@>??Loh7BIzGiaXr-e|-hiJDFm2#GTxJoBIG^^CA>`wl5?5|U!6Idab-HgbC!;>{{^?U;Ua#TVCp7R@5x}Y7Y!HFZ^UNljC%D=#jPzvT9^ajxb{+MB&;)7;JVm9D} zwuO4pi7T8&`py^fL#xPkZ#UU#u)mM`H9QXcx!9eqYVkU3@0Ei zLR{PrBezQDNx?HNPX;5Z)`9RHgpqXnsexq^%z0WDSavpu;yyINh<`ER`1~_Lr<_YG zU3vxp4o;?;_QI^fVTzgt4V$Go4#&Pe=g!1OPUkYpu(WArQfV?Jg6+FB`bbd1(98$> zgQ0&tWSzBjT0io$_UGipdOrsBUtx)ft!^CRaBlnSIJ(JJ*T!-a8q<@qobq5r{2FOS zFZE5QCWFa>_6=3b`y{0zXnT>=dA_ld)y1TQcX{Gh^|8D7=JyK9iMR8Z&dCRqltlRX88-k5k2}ClVos)j5rwc{_vFP5qdE0U zsAws%Fq= z%1BcOJl*#R^mps41GMe?3S;dx^Ydk@ZsL+flfn_L7Z5o+e|YccbQY_Z<*?Id{o_}A zy+;ge5Nl_o(h`$(SULQ*VM&Jfuul~G;wY6$AuXay5^k2fjd4za)QhC6XLTfLn_4mv zvGJx!kuya#uwoyNkjAJsY2zhE`Yi1FNA`}5O-d+tlX^W9F?diy9MT95qmq=n55e!_ zZf~x1iWGm`5x9j|DyaS7aRRq(s6ZhP@Kn&mii;+5%Va8+`a8>8;^;w6jc zZ$ymF0B;NI&93{Sx`~-;f?SL`jMPXNS&AmroS!S;C9BQ8=NurLo3;$(A3x6oqarmT{l)m1j(Z;)K1 z9MX|oTb_Ajn0hKvcELmz8st_HdAS;4g6aJNrya!8!?-gdKLLE9NIbLEfOo3DwggW; zn~b|ymvqJV>AP>3j*Bc_lAUn|l7wwva3F$RA%tVOaR$4nb#OJ~(PCs~pVJ=O-96vU zGHjW~*x_;|DW-QYO3_sg9c-urYIcG;Nk{ZO*B*j_&F@0A9#o>#UR0a%H` z$sMIfgl9*sun4$Gt$O<@5#WV&MJ9E$wOL8m!Fgf*YNm)Uwnl*|*KOUn!D5~$&^;w7 z3*I{J$sEQ_|Jsv?GLd&jCe#}i;~r_L;8P__GdHT$l+!@fr4tyf zVVcoXbbkPMI4FwXbFMeQu#l_MX4R6p0rH9Wg`h!}HS_2^+{(K)r?2R{>bT?bpfWFJ zsgl3Ky$+5hBTh{Ud>?$|Ig(y+4&hn;DM=T-QDWzJ&R;`JrAdLlsGr!}0S)~I!MZuv z^N|3tjt>JxiPt8EB`j~7ZQx|s2G}Wa;za*C(RM2aYKq<8EDq#?vI%JPGZu~dXoKWN z$4g6+Xg)y}WR8yhP}@8P;Lb})Dj!fCm`GeGiW}i; zchICc3bO=-P35SAqTu{wVq5 z$XAGYLMIcZArp_Mx{^S`8AWT-5p)-{k?Xawt&Tz}8Q>Vq%DPIK-`kEwP1;A~Iq+SB zAif7@X>|@CzCT+_l0fy%LrV&3^ShOY-K_9eWk*(A0ZvV9ZnXgc&^~P06p88qLd(w( ze*AyOa9X?5?&Tzk_L1I8w-rqv)+`g_Y-g19-{AI9B}v~re9oXrvu14!U=yhB5sO^y zSI;tq{X*$(?i7ut8{+)n42bWr#PzQf`I7w;Jj;C<=tI2W9pOJh3^5~w%Rk_f1`HmS zZ<+C>?mzOs!5t*q_`aN`g=(Zu%2H`KBwIrsq`PVceyuN=kmOz)Q8(kwa!jr?tv1!P zO#dB&+qU@o-lN+lTN_lHxQn(bKEnpXxy(m^_QE#JI>nc1;k@5(^D;eqz0qNEc{1VF z;z)f3(GG4*B7Tw$*nZaS-D0MObVpI76jB$IRX0&n5uMW!F`)uuoem!g#qL0*Qe>d^ z-7|K%*t)qcJ-M+yQQcl}Lr`$mtLwXbN6_-pOxaH>)wg<^7Rw*~170-CefV@9qCjNE zr~Lzx6YSR9GwcrlLSz6GnPrtuBi5<_C2RQ}E(pFjq@SG{0S~JsaFJbC$*zji`SPNj zW)a`U?&dt+ED>$;X)T;!du_EPfLo`6^ixb#{n=-DP>|>f5)M974y7I}&!;mPSuPs) z=bjkL{bgJ(2oJlf+^kRmEJ;=*Q>G`f{;TZZ$FzTbZy@>c@A~f-DLH`EHc1hDz>3s} zZ{CAO=97XWM8fw3WXNN3dR4G!ILr_6I(#~*1N)}fbr}|HSiKt&r!2^!m!eX=Q!VWo zl*l5tB*dLT0HBQaATN3d@Ekz_^-P(wgf{&AR>p(Fk-`y7I_$l6BY}#4otRZA?A}&f z4|84g+mh^W4`$>ZehV0MV;F;*-wkU*7!xoWc;$w+=4M57W-I%w{uS zDOY(Gkz8({kAsh&A1~8>Qm-%72P_uWmQ>8wLJzTg(o`;m8cgIMldTT7o4OFR_IL?Y z8%ZbwE{ww3MqDEWQp1&eGh2~Zx4fDS`I9_S;2yS0auq33BSkk2mrvxSpKnslnk?K! z!phyp>mfp(!jeY}|NQ)D!K&=2XEy0bgO_~Q?_@#hO?0v%062^h+izGZ$2x1j&$3If zm9@<^^JDq!bKi8LXs8(ZKobC6HepMuLy_K&X$7c*tji zHwZpk^52V+vMsyVF*XCDE!YvUJ(`r-iOy)ECJK1uX_X&2@}0h0l0+!ph!Y@SoFb$u z{qKZSg;VPmBYLLqa6-}@ts_{iP=n0R@y#}2gxQ%lyyyO~K99c^ z5?^<`hW?kMptNVH_m_bA_}kK1&30ou=sl3GXS>(yd*0U9(c7I*?d|)SH`0#=hvht* z*pB8f!IizXlnqBt=|4O!HF+?osU+eV4k&qj@rFt`3|&(JQR~?tvBjxGdzOdo?3S9D zO`wclMfF3{gNu&mMW9K>8n(o9C_Lc3C+K{Z7Yau|>`v7f)Qtc)7oF7!S!`ymdSwp@ zp_6cq2xkn{1Z2^uGB936pb}Y>L{LSzbn?D|qn&rXG&zN54AzQPO|D|dk)R7uUB!wj z$q5{kVx%|f_k?CE=HPZ7OY6+!--%GZSVVS}vdrOB?d&GxJRyr3@tiFAmMtu3C1LNs z?xY1eA4hY(B8xPL#^y2P6xwyvzF76;Hdj{cEuHt;?ZJ5pd6#~7P7DNIZ~#7nN{hal z%RdXb+iH60SM1M}@7m1+1#kXR`P)sV9xLTF{3aO}@M!2usD(&Oh$UVw6E_#ae!S2* z1Xl6sF^ZwKrmuKYwHYV8y(>B+*=TJkQ@2btpKX@|bTVYpTq>C;wMB$Zr$1dD16#4i ziiEq>w>3(v_X!nqd?^IHF5XTwx_A<5L_7FBPX$DpxY(wKt(C$-{*(m}f@jS8*FLC~ zSNrer-^O<*2Ku@|yzln(sGmxTs}g|2FW@ePB7ONL+<$w5>k zhzG+_s$EU&e&h%iPFSZBB{}gX)Jz={)-ye&<;U1OjQN&4OEH-9JkzbYP3wDG-xUB9 z)$!k_^!Z*f3OrB5{iF%D|M=bdy*liAPqjE`dT#IVAKK6i`Hj@uZSE`5Im^qdh{j`H zOSwksQf|B_r*=@4q|74YG{kC+U z&bPsAWqWRLpI>NNu*-<{FVz1-chKl9(!COqB7=LS-M?&Kab>9e=xjQ*WgOBRy| zK8GIyqW1s+ClI~5)dk}^L4&@P1=lSl=z%KW`c9!&4LersGty~M^zB-0ewrYMK|(C0 z>*&4LschGY z>@vk%DK*~V%c=0~kme*F-s|Yczv+lGSnx419?psr(eGq|xn<_o?E(pYQo_-KJt`4* zcaX}^x9*B2U?6C+9n8LQy|n47R$heXS>gj|Ymy&cAK&@sx2e)tTae@et|?Nrxd zA2uWQpG*b{+&(~?ip}{2&_6jHDU-L))a2yIls`@Z0x!2F`K}<8R4rYD%4|QSV(Uw|JhHzFpGu!>8K1WN9oB zwb=ky`6KuhpTb3Dj7VCX!3QjeYgjXe7UezJD3;p{L2|mh*nx zWM0$^7X>O#o-(GWYgLYv*f;T>pEmryk!mY*6ML0JuT)X@OT;9C+dol|n5OzRm{)hjY2OvW=at2+`;fF8p?W{>wwpoe=+ z5Xq1gBom2oDSM{{QJ@-ISW(Qigo-I~qLQhl_V=Wsb_*IOupQnX=wo*;73nPzOyzn# zsQg2Qr2COL+mOAguMq2bOFblUPZo}nSHy06D~HQxU=Xlj^9Y}M^XR7Ni8P|@_=cm5 zU#{M7@rI}U^EK5<1kEdzX`3$QgnuOpuufM~Dl4I@;cT$5F()Jw)`FtU)K8bHQ}@~YN5q< z6LA>5x#5}F@RoPi-m#H+S?4oUu*%qN|D%@7*6Owx+H!a#s?}4eO`R4B5w)G+s!_?B z5$@64HWI!bCNeM@5a?RX$)h_n*C#y1sC!3CANJiPPHJgoV5dupimF$Yn-;!3t}dch z(12M|el)RI*5`WiH!V}A{WL*hCYKu&F;~FvB|(CqX{magwB(xqU}=4^Or$iISPh3$ z;d#WsGZoK5r9_uQgGXn=T#+_U7R@7Dz>ml0{U}(jfKuym~}!-juB)2+_YW3Fa&n?gmTdjZAPh! z-r(SHBQjbte?9Oq1I7hFpCpi~(A8+ex&z45#{5r}! zx#6M&#s0h3P<9k>WKKywp#?hWv`ok7c8)6ubKET-JftS!N;gbz&a4I?G%c>9ubWCN zF%tqGU#Cu1t%}&5Z-jak;`Uok2TZt%vW5>_&1(Tt04|n{V=;SFJ?~evFj$ zqyv7?dSZN{%DK7U-vkOU>KJ_}?U$MzYZ+Hs*k~dmgNo*hle2JYq zJ|l9w_=B*ms}Jv?w;w}Yp?(5VDcv0UcmkVGRS!-R#=uAEk8C92mTRqECT8UZYNpB4 zlKEy2BwC_WD7aw|85Qy^c{mBx$%!p7%CF|s`u@(ZDVNrVHsTT+MH#l^^?DX+DV2GO z6xiJRG5|h$GOZiYFz6OFXQ{o6V<8(DxF;uMGTllT_(T>Nu6=)9Y3KH_MqgjLU$Da6 z3vIlDy>6H4$tMp3d&w{Ee#&l3Uq=_MuF}@8?;B6HS!Ds1bC$C~D<_XFkFJ$=rk3VT zPEI}{kmuNTPOOHZkr6lWfCkN<(3@qyg1h51J@<}{+NYXcXFG{q&%s@*Pe6ib|D|1A z+lUtpj>D@rXhis~gU82Vi?Q!@$}-?kYlq)iXiYBd5yEaIq*EFCogr;Jk|EOgPFx9Y z_-Y3>%2+g8(v)jecAZzFBR?S@x1?Tm82A_|JFlOHgDGanbK)Z*+{$U&4R)Wsx#fA?-Z#CE#V$YS z7bI?N-|Ik}Zd-%`9^g)dkVpLwz^C-mCoI&wwh!WlFw^Vy@7LFjPu{Vidq$l{+odJ>csi>AXyWG_Bmn}RbnV(u zb-XT1_GaGgE=B33?JoKDq0N^_wS}4e5e0wb)=G5>!fhaTK4_SfT#*4F)m2y8hzpnE zP*{&H35?~fE9cf<0U@<6W;pr{b?S9l;EAqD9XJkbU-|1Lwg_!@D`nQ`X~(fg@T z1;eiIhid&fnr;zxJd~P<(IET78e%nnlpMTSMv~n!D={=+$6JTX-R!1#v-7-hA7R4p zthin2=ysK)Vc>P^rs8}(+I8Zw(_&6j9~5x!mDfa4Z>RIKA|iokcTGrLm2aEmcku*g z%k{CZ;Qw|OdcUkvaL1i@-Ce%RDy6*rfu|9}ZUUNEC_VvKb?7;cS{_y&Sv$k}ha~|n zgrqfHbe;gd$CNwCZ*f$YTZ7?r%3WRcE9x!SU-FqNON~)g&^@tp^Dc%xDpU=OAyv?xLFdplO_pjmO^LJCxZn2up7pTk-L}Z<9zV&4t%U^20ej$v$G3t z{dGwU_lYrWp@Lu7r}@3+<5Uc85zM}?;VHU&9kXbVcm_6ZF;I2DE-EkYq~G6N%kDF` zV~QkoaQc_x+HmJG?MGu}J!85g4n^Lp;u2G#i1Rf}WGQhcT1YiaB!}0tn#RpWFTDXZ zhVy$+Qe(VjD(uX&h*8G}wmgi{Zt+c#{^mGHwD_n|O%?B3aKsdSNGK;mnj$WxiIGS| zKkhxncL6)sK`(m&zlpu!&|2;sj*&Lk?NZ)GAbvvD>DD3tZS>!83f7knl^KLSP$f?CcEk#Q zCZqhw5EnTU7g>!!8J^`NR4KZmqX{|OP+0leY=^jD%a`M+a;1Hz(G^i^^5ZE| zj|Th%!F6T41e(&w>J@91^Gc3G|KI2e_y>f%%S|Ruk9#X7HiZ+CL^-tb`2tFWOVbg# zzC3$m#x`}k0#MYaJJJ{{$I@jL@w;F1&bz&vlM<((pF3>p{H#jJN%M|Q&0MOE@QWb@ z2a*O* zq&q&^gn{b;&t(9#J;ea$4mb+ep*GQ>51<*5x0?kkK8x2fb{t#&ZOjVO_vH@d3a!f| z=ZRh_PuT?chV>2E-#~d>8lO5Imnzsqta2$WUZ|qF{NHS#m!IBU%KZ=;PYBO7bfzjJ zwZ<$rYoU{h==X0vRj0~TRD&#_zuK&oI|9M5?1!P$rY04k%M$qi{fDKKGC66c%4^Z| zWscgNH=93Tp5mwpzC#S9vqtO4aC>61W0pkb*6tFa$ye%wtt_~pCur$Z1PjaQ4A#9* z$7pWYa~QDx*~5X&j2I{B#u&rErlMRN0ACgqB_bTU?-_pXm?dh{lQUaznTi-$oBj)K zlEYm$Zbdr(yjiY|*j~vVyNC8-DHKiPORH1S(J|<}#}o&n`i0llodnSqQEo1$@+L}Z z&=XZ-YGY#pp;%&(@KM36HLv|AFDp}_>1=}zT`!9+O&uYPT7qACy*sA4Oq`JEl;xtd+GSSzC@3j<%zt7pAByh7+k zF(-a8BQrxyNvmU`iM4NxYbYAuAv52b=h#0~Tt`+PoL9MvRjMS9@!2&}X#8W#xfx-a zI5JT{`r!IT`r_9b*TPJ*zc{tA*VjmxNHgud54W=#n0;{QDCir^KlF{D^Hfi=1xjez zH|*isMDPaGO}L4n$=MC5L#YY81MU!Zc&FYDyaVSDbh!`j2qw$4=CT&YC(~bZr{jop z8{5R!oys5QL8*nu@CSPh>=JncZE7HHuj>w9GeiPF2fF)*a<6JGN`h8X@Czk3urK6x zDCth_4Ir+msukoLg!s(F$`e6=QnuT#I!CTvaExE@lh3{5yvY24V8FlM z2i{;P;N8zc;b17dz)ag?o1R7HF>H^qzzh}FLrPnP|(HEGm z*}AsCv^HC7TVQRyc3bZP>*aPY74GV=dB+0lXtz7s7g&4IZZ9sdVvk+ySztZgc2D;L z>n_;cg#}hf*oDLbOXTfDeu3rVsr)_`PulV10!wz<$<77VnX@}{3oMtibEyTEO?9QR zU5l(Mlj_PWuuOj{vyb(!NcFE+U@Ow873l?*?n|Zju|7!k!NLHl8381=d8Dzh6%5bU z;!&_-PDHXz%bsVcETnd@R0?)6NCD*mo0mqC6XCXH2JHRJ^jM~60g+|7$g*5ySuV0H z7g?5zEXzff+k!88avRq_YF0w2aS(b||%SD#uBFl1-Wx2?*T9IYB$g*5ySuV1y z{|K^bDHimGgF9jnMr_$(>tcxVv>+s&xim9z}EX-?{_B zru5hFSMYWC8vGf20Um|Vz$f7o@L~8pxC?$4?u6fgYhVF(!7NO}W*CPxFbqSGhaBn* z2?#@o+)`!0KmeVu)ceU|+(dzd}MKE*!CKEWPj_p|%hN7+Z% z@3RlH53;-1``MlBeeAvLUF=r&4t5he!H%=HvbV4|vTNBPb`9H$y32Z8vq#u!R$*n- zcLpi%ivmnh8?uD(G|0|R;Y4t>A=IuZ9wC~iw0AXMwzX1TE%(dhuJA!5pQhGYrI6Pu zrNS_k-g4a+Y7(gKpGv{UD)}@-EQv<{hVt4tWGEWB;8fk9&P&KL>RIWs;(Y&arMlmUA+)Hx1>S!WwL@VS~ zXP6$;i4axQPASQwDm}1_tq_PpKQB`*fSTmP2>4J^?vzA5BD}ep7Uji~5UrH)DYzjM ze7+JLs$h4qU$z>_RLHoE=e4xvlPD~Pjtdp{BPo^q05}zV5<=`$lN`}gsX9^e9Ouhq z2&+^@RzhJ2Tci=1aTs>QPt~d9$01s+Wazk(FI0xgh!Uw%&8G)|o=bmzD(e@?Q<_a) zC9LNwdBS}~jo=XVgQzS@Cflg3I_IU`BGu_s`&|k~!l+K;B8j6W%ci2rM2aBGGM7=& z<+`EBiXu_X5GAg0j#quaHA9kRkU8FEa#``p-1dcKGJOG83=Uxf?^aY((q&DNxN6|D z6hl@di7PVrG>=~nklj(%2@Dl_TyIS=D4!H#J#N6^keXFIooTMZr!;K`!|;70*is*Gx$TpKRh273`QP zYnldzqH8(@*AhCBB1}p0aRpzb$QlPzr@UE?ou`T^k|rUk0j$^|Q&~b;^_w`pNM=4< zR5+;Z9HI!1q}Y-aKt#*BqRZfk`lv*oEL*xy_JQfKH60X0I}SuhGG*CNuqP%V+2R2s zjGdAZ5>xYu@kEpd6u-ie8a;?{nMTfM_!I+VGT2i2DhVfw!u@8$E{XIPmAQ^1;OC~P z;0f7dC`2GQ2-uQ{76}V)#~#v$<*3H1BJ;X8aygE#OtpY%J|JyyLTtD59fIkgg$ zg*Z{-deHD07MBCsxjH9*C0&L*dILpEts16JL9OZU$=E8eWE+j#M5A1yWUggL{vkIMred})ARgwGmUU%Ddd;8_e zt{eC0Qu*VCM=Jleru}wV@)#d4<0R5$TgYsD zTac7VN5mlPJ7-jM^O-wpk;Vr%&Obl*=}ga%h~8K(!{&x9w$x#h2O2fkW@_-UW4mup z7b>FW+BZdowduDc{l>A69oU}PHCoIBk2d^_hu~KTUy8h>ag)<09>^HXDe0A*Zfv1p z@MIpgp-?FZ2eqStn!zQa8Wsh9^VKkg^$I8?Dsl_Ynri*8w194y{Mx6vV&YW0j{EdS zJwCqwhYF6dA5Sg%(&XV8R6?PJ;Lnsy`f&Upw zT@Nn6$aS~F$i7>qX5M>$`P;|I-N|d$-o2|W92y*go$uZ`u_hYS<+myaK6&u)-mcHz zu=(bFV|>FKe&f~+M?ZY!`1OPmWFGy9VQ$7a4ln?Vmri{R3~?8-n_5 zwB50jHr!nQ+{iAzdzA>oju&}iX$U; zaG2_QQk{57i#B!#IHlgBgcGgi#9maXj)TNv>ApRCBy&>MaJ9PUeMw0#D>|+X*StsN zYDLkMBk!yK6c?yT-GDdE^&aBCP8=!jsUP=f6gW*#>X?we$ND9G^!?4MrT3Pokh7< zlsqEBP}$_vmuW{K#`g%k@+}?q_c`hscV$vrf>i^L9I-4q9nqksctWz zz`T}MRFn>roIh^+_uu!n4IZb%@|UcwcTyqUgs1)Px887KcALJ_GTLL=RE+$&>0%lJ zpbYLhGTM3Iz=567KrkrxaVHzF;H!QcR_)tj#cl9-OP-A*&WUpM#F?=*9lV$=W-VVZ zh$>exm9%(XjVEizc2C%*soG8;5HRDO(sZr)4YyVw`R3ZDK~OcyWRC?n&L=_{6*^|B zLMdmjkk($#=kYI}CC|qNiS5;k9A{b*+p8CZQA*D^z8Chp$?R@L-dB0ln)d#cmi@0z zkq1vC!2jiPGQ7idr2AhTW_xN^j-qJT3%Y?)HibFh!k~Igifsbw6{tha;3$h+$>np9DwC77Pek!{j_1Tz(e!6QM|(alR~ZEV0_^pE_N1L z4{CiiKDKv^*ZwcJo<;qat(auZlg$tl6P$BMbn$iw=fXCe32WFkb`^UAJHZpR!9Cy) z%t6F|E%+jXC|c|rC`x8{JdV;{!pA)*=F*2x7#I`Luv_4ae8CIMABY6}kwpj0aL6$C zBlGY`@_xo~mhk;7;`2s!M1$OCgID)?_mYPstZVb+b1}jp8V^-5)IE%npLd{+$vj-~ z%rj(Q>l>p%5>&^QhjRF~*T2l$JjC?>^IliP*Dap+y095q{Gau{+BKJWm1prk`(1N$ zbF~%Qx2ICafAi?|N3J>Wn(bF@ziRLNl~?S%Y-Y#S%^TLG)}+>qjb=NXV5ktzq+_vO zw~l9(lGDm1O&B+-<+NIeWXi)46rjVAjL1i+(ic&*f`|+g@hrn-<$|dIbWgcdEoW4% zP#un3c>Thu@}2R%v215N6^M4T8T%U7;bi!d=~n~DBpEavqE zAk`I5^>@en+mrtEnP!NV1^={a)rS6vX4=KcAAk1}v+i8IK#%YsR@s``$S{B^agq0J zPzlOII;iwrJ{9Pz%%m?ezSk{YSt$+lhlg{S%y2dwpxW$RK?Ay=`JrAnMomN*WG={( zNkA9H=-GY<(wb3)t@V5G->3OWkxqf&)suQNr9yn|?ECLh0;X~sp1KtqejWe4>+rc2 z@U&=kg8F&lHpSyp-&N0H549JcN8RHWBCcYZ?MD6QP3$Ii3%jlMTQ?l5jmxI-h9eV_ z*SvA@^($o6d-6Anh79bcw;U~m6p!-GcW_HmCz#h%O|QDhB#-5hEJ}knOv*|zk#CtQ zMG6tWCK<&e5pAQ|Z0(@WmB>2sa?7GfD@&ey)Ab7nuD)vb6_@R3@9r+-?e=iM7o!hV z`%s!kVbyVk`y2{&PE)qai}b5uQH`Tfrjl~pD%D03oTGI@j&$WDXi5d;KKihpL!~gK zaS%s7Q5Z8ErP3Y+p)zDT0SZb)>*P)+C{=u)#$%$gLP&0Z1Udpra8e6v^|z0sHpAu0 z!1T=4!C_6V^iN;bpI7t^8+0Y#f7x_@MV6elfo(I>{i{&>(Z=B&c-v%92`pXH9$!(a z79;pGysD>dMZDeVSv8D5kz)0CDtk2F->KgaM)06f8_Bv2uAEk{V zH0l55>DIHd{M{UnxA)E@2Kojz7V#&fE8RVc792>-6uZWpzJbK{zK#wl_gzKK8U<@x zY&za$$EK29^*6_-qjnc<;D#>E_Q>r%jxT;^2-ao)sa94bO#%Oz%ulx=!HbwG@hvw= z&%9EAb`REI=QtnI1sQB{MmvSZk#i{yi{W%IL0&7l4o^z9vU_JFzt~4hKrOlNZ zHP}h!rbvShmZK^Uq^aQ4o-;g}VoEBR2evi$8J{JSA>)%ipDbt7U7fxTUq>tw3I_bL zSGLl@fE5zG(t??098s_E-9-C?a56S7_ES}}ZCnuN6 z)5Gws;pwF^e`1a*xy_xZ58$OIrio7>vkJjKG-TzjT9PUWicjN8ytRUt2%4pDuwC#C zT;&2ew|U(B`qSCQ$7SiWvXF3p+*6(Ir)I^OM_WEa>s(@gxh@-fYFW1LrBW)dpusdD zuU_yqU+IFLNEdv)_v|acL;IKf;O+(A(zS$M77{daVI7PCQ3>MN?)!ef-@P9^-jT;6MNt%We900;F?>n3X_=;FQIRFviPXf39mh^> zM{;U6>C$dZ<1S76N6@u)(*kJ_7sG;jL5tN`i*##IWW}(gLs1NCx~_7E73%{X=3+>f zJ~FIZ#P0k39Z9K9QWR|^k@x!D>F#&G$M^a9C_G)&h!Q8UfD&8fWH%r$ac-D%m%M0X zSO{=o5(uv*2njJD@YNAJ6%-`Hke2*4$+*q2Ox}=;1J!D&l*y!0i9{@>C;~LwDkcEe zN|jQjd`o6BGg+J{jF0VrAvBvxr_$a?VmL9}>u_BV3oB>_3`JLTO$D`ImP8Exv$Gb| zZn_4NL2U#(U8RQeep*Br3&fLWqJw`NI;CBSRBFT?VZR$~=ukhO??9irew|#~*tp!e zLf=1seSZFWyS>rwT$(;b-$J8~B6!$(ha%+IV_$qrE}SV2RGt-e*t6Nr=d=7<4$o8qE%++G$;y3c2Ge~6G;vQ0|xqUFkDs? z2;-<^L9&>9$xB_D&TVviZ$E$EnS1WO^DPJG5485|swoy4PWc`>?p_8jUqd)v>m{7||zOiUrp)XJvOAOUnGmT;pl2ncdtR zKLV|rU>K_q3dBSz2(o6lJbDwffEMQksz{nDN|G)*junx~r*{;Lr<~DhXE11p=6=ds zN#RohiEMs}N(xz4OlrXV-MJ>4bQiD4WLY*rzQa8V)KWV&+L1FQ(kNuTU_cg4=&tcd zBO|q0N9cAxm*eJ{1Caghgtgu*=h+V?)ve%=xIc$2!tKV5GxV$&o`rX-vB}~Mw2`= zY?9Q8VoH`k9U@qUqUwldmU#BZ&yopYczR$aC?=9|$!b&^;>6dTun|#HhN=dVj&6jV zp|PXd$?jd)CyM~UOd6Km;1Ir#NaA&`?+ubRfC8!=>i2cIEC;;;X!xe zWz<4t6hF>#qQr|Bt$jgq5fM*_55lBbYjU z{pr8ke+T7EccPJet(>b>)Y#2rwai7sq}7`kYZ;ha)D8D@-L`1goo$4*FQtdnmJ%Z2``oo3R>ZV~ z4Y0GzG+$xm19)NpuF!o);qKf#*32X5{2L~cQZ6~@hBcWB(x4awNoVWfFa$no|0-oK zeQ?{oS0CAWyw*wjLjT_I;A;QK34~Se*+W<9e}KAdb8+qfcTe;9E*8&k5M2OyLFbQ& zLCX9{0gZC1${jWtv>{PJ10k}^ZX6S2h}_n-*;Z@c3{pIm%cXG;NK;9eAsjQH*}7e^ zEqgo*Bd{-k@|8S8FU(faOAkAuJq6BJdHcGX58pOSeC9(bk7+T|bB=Yt<^1yeT(Fp; z3G!5OGI#*QjBjX4E#+=L^cFkf_Ju9zc!men#QWU1D{?J^j=A-$ffFNy~AvP@0AIsXMM4>u8 zmdH|4IkZ?#k;GV{9xvc_`Ou+~cXBIFp3W8K>xDw5K3H!@i>#*&PM@Gv-)msT+ zyZT%Scd`7rDmRPy|FtYbi$SL>CWWm*sdb4kE)5KN;FmFNhi~t1?w+o|>r9X29ofcL zWKtij)W>mh7|>kZouR#bWSi`Wvf_5B7q|J<3oris@83pz43oI$W=uC;OeNS3ck@Mm zKl`Q)$J#(cHXI<2%|Gz@({$~#@95gIhsIn{fq5rnmIr*K*E=>?W>fzRf7Q>^>E$IG z+`zBxe}s#=b{EfGWNZ&Ki5`t2{go{4Ys)<>4dKuwa%?-E#--aoboE2Gv#-ueZ^-Yi zu&i>#{}3@wMBEO$(4!0U6QwjYH5?zXf@(yIghN>Wj)dS+WjFuEH`a%R{m7f%U=NJ) z)i=3Mv76JRgOnJD_A<&9xOlz3jAY*84l$d)tT%TdGa1r{(TyuYk2x6IVLIozT$)FDNzR-#gx)+2t zDl)7G9xX3W0Th9VL=l^gNZasmc`p?XTM~O3M6H5PE^iVyiu}J(ln#nQeJb4_60*>R zcpD13JR@T*B!2XrR8DYo!H6Xt`}oNLA+DK%qRjfqJ;u)n85$$=-+Aeu$jf7mQL+JB ze;3lKGfp^@@LW5UFk^vvuT^X&tJ(Xr)$4`C=D$$qQ_+t{d-BdB%=V^m6WoJMBW}Xe z4FoZT7DR?PO!t{SzfR9#h)8K?w}{_-n9i{`DTb`kP?V)k;&3Q(?bR=2qN520)VYms zz;`8gy~)f>l=j!^KDH8Sotac21%DUsxObunBGiU}vKv47i7P~q#f&Cjl+mhFnL+!S9KzDoO~D-GPeR6 zrp(RH9oXM$&g`77*CI|XZ`&YlvXWFZzZk@3rnIg0X-5l-rVy!S5jwO>7@ zB^~Y5Dfma)sjDujF08HjIpzQN%WM1z-U2Cepy}@2S)JUG86F7hA`Gfc%z~dJprJ(Z zt})gQAFfB@jL`%5y%!P9yD>L;P*sKrOD3PHyZD7pb&%_1o?Eg5?s`(Pt?1gI7?lNE zKe!l-Ma99jsAbDT>u$haVr7P8zf93uJZKgD<5CijlM}E*8oV!Rh2-RVR3-s9LzJWI zNjYRi?;Dhg*1@e3Lu=7M2nra{wW0oT-$%4vPaXu_csF;Vd8|N0y-GA8L3q_65+|U4 zO%!wyEp(v&Yv_c)@QYQ%$CIgoem7_#WR*jQ`%)KUk(1iHrVtY|m&^K!FOp)8)JF2~ z$s*$AO^E2>n_Qvcn_QiAH!ArXw6XajIdlCwN&d#3^Q$3Qhl+Sgu}fG#eR9^E7jGdUm>A9&_kAnI*I9?MFL* zt|hh3)u1-!#V=j-=4Xmwr_h{BU%W)c;_O(=5MrfNC=dwd#*$P@W){ZpUhjOBOt0Vl zo<}>M(=>79ot+bSfytzu~#7&G5ln5A5GLT`Gn`p@DF8#0>>} zT3w_aBOz<5B0#EwQIAF;KIiabV(_2RcTj>_VB zk$$ZUj{F2n#abW^a^wbl_6nA$3JP_C7zZ7=pnKM;Ytr2?stmE>LXqse4Cl+8Z}fK1 zhc~~Xn36;YvQ6QK@)B<JSycNJUSRFT z=gyqrj-aG5L8w$$DKBS242Ywp5DclK@){@elFXk~yX;@6oJbst=98$7Fm(h*slzCR zXe-bZwE3mQ1Fb!cozvAyX%gg4KQ<$bNa&zf!;9{vVn?UyMHI8pw}+Y8^;|zooAk@{ zS8)6q@%%_G7=1UoZ~HuZWA)O1?&Pg_f}b9#D|+GRLO_j^JGwlTou|5G{=2*U%fp)U z+D{$r@R1KZ|JCO|aOCS$zc3{PLu6o_r%Ws3QN-tIyR~nt&YiIT8w$oSsFty_ zN11vyL;MIBWG^FIdratNb;PCbs&HGn9G;CuBBfT5mYb!Y^eXi)>hpD4UM$nOOx>fo z@@S{H>-K5dI5a~@^XLq1t;~{%WHCv-G4Ea7RQl5+B~qL%7C+pp&09fNTBue#-;ZZ9 z)eIda-`RneXwd0aH$>)wFFXG*l%TOuSMs{C*CFUa6I=^>ThVjT4<8Va;GzX03|*En znqS+`@TXQp!VDj^bPZ$H3QXQE66j!kC}bb*H@aC}!w129aglV%XZ%AKWo>N%L=(Q)x#CUhoh61C@SHyFAtOCZaW~K$aO39H z*WT|V3xGQK<%M&^;8v#@GR#}z+S;C<9u91M_+_0fC_YT7KPmRa~ z=3n9mndKO(84jL5f4;N)JpTh#GLfjNvmEg>MFOEak|Nh4ndbHDbTvE{+2x`#H)dlSH^e;ba54Fp5aiVnG6{XkVnO3phF5A6PTX>>RzLrOz8~aKw2YuPSym*Fe`W5ND$+h= z4U5W|D1f#w^WxZlERd)nUBzYV9iJ@5<{9&-c ze+>~$B0)O-eUJl=P7Q(ZF-Xo}SDiXa9{69h>*CknfL_x1sjMJyrxQGIfh0jrVf-+i zA6)3hMEY?DBHTS<)y#2kCx@Hkd+U@lN(Ggd0>gyxjXzJmF8@}`6&isQX3o>FgTn|BtF2nDl}2hj>A7!by3}hO+Dzx z3Le^aQE0knf7h!v590+To~-?zt_YoDM3T;}oq6l((YGugT0Ah@*f}{dHVWeY5GeS% zq(_6G>(?YX0%9Y6i!~`rjQq@z zgXsk<+W^H6yE?@bKfhZ|)m`$^nFrr-`sBO*h)#ZBS=acKlvEN%!b)g?puY3;9!-x8 z?muw6_$jdc6ev(PSGF3%m}mYadO*~aea zXi!vqc0e3sql{+s#FmnII|Fx|8*I8=Kf_H2R-5X+W?|e3TY@z%rjh@mj$c^8$g>0z zMv%A>6A}9`00`4AqgjlHW2{iUqKIqvy2AX8?=>D7jY~8}4QNpH$EO9wfDI`=HvK>d z#DGrhuQwM~7N>I(O$m~Ke+!>q5HwRrQ7Jcl*OT@7OtNlyo?>}1$&2TX9LY7Lm}e=T zXN{F&MNc_b+Bj7F;1>&CsyXeH3L1=BA%PY%<#XrCw=2m)Oe>U}>1Jryt)2iV8 zs>oI%7&V2_8x{Jt&%gG)O!35AQK4gkCJ2fk9sl8R!3tU`&_ng3ikCs@%%Pl8Mv8W07V$iXU#5y(8*^1zy8l;F=7q|ayb~7K%xLjoD3OwoMT{QU|`(JLFY+3* zJAgE1-{C#oqI{@6vH#_d zpaI+hIs&!>Is=RZA_Qmz+yzbsJO<G!fnsN)omcI22YDJQa)Y8U_*Vi?F7Fd1waq#9fr zup0CmVjJunTpYq3h977j@F0dE1|lFLx+63r@+2lCh$T`b{w7`~uqQkxrYGJg7AR0C zhA7l2A}MewzA73jb}G~>G%K7eEG)JyWG(0}UM|)zMlY~9mN^(XXgRbx7&^o|Bs;!5 zKs_ow#y^5T@<9kectO@eE<%b!L__XG$VDne{6Qb@{4KuN+%UP{ZxBv{L|6pi~e50RR91mjUi$Ysk=(e*eN@=`cH-aEobklC6xGgcpBoZ?+ z83kXX@6dO__8v^RosiOfm&^K6of|B26fqPwmNdUm5M4#+*rD66Dpm`zMQMX_;IWpPc8R6_Jeio z>V3GMC%#T2mB^OU+^dnF_}Vr8Y*#(q1Z`vHa<0`<4sC{9X|?b@kKg5y zACm&^k6A?@tsce`((a5X^OAiz?CvmYL`t$uH?y-Iq1)W|Jm8W@g`AkC~a7NtR_> zwQRY9Y?EVVhW_1?yt`?0-}(Ejc{B2i#!pWgt&JAXWc2^fiO~pa7$ZQ42r&|*m|%)^ z%&>t?9Ksg1aTurJbew@RaTdj|cD|9>T+T1drk|JdP*uB%Z?4cm~hn zIXsUS@FHHq%XkH^;x)XEH}EFj!rOQU@8UhYj}JhQgQ5UKi3&A1j-r7;iw+V!jzK}g zz+wk;9LFy9@F70J$M^)F;xl}XFYqP4!q@l)-{L!bk00p)1_q<+X`&$=<&WwCoRS(al%sw9`PX^Cn! zR$%$>rnYUaGuuy>sF3q+wjcF8Y@RaX{lo(yNfFuJn~jy9Q6X)yzKAZI$n`?GNE)`A zOQMRna&-2jh^cH_)|r6T#LSk?qNRxsEntu{Are3MbyN4J?kg_4t$lQo4!0dXkQQ7q z>QQJE(e=2HG-UMx0NS_iHTJEpR7{Z)R=Xs+B3)L~!Cjzu}q z4KoRK66gw|HdbI+pyf1ZtznZLDQr7%KV3pkQM$yoPX(`PlUtF8)Nfgs`!U{=vUPnX zgO%2#1LMBKRIt(vXrg@T0Asg3-fokw5^Tjp=081rFf`;GIvBJ4fAaidTZ>R3ZSIV( zw0$5l6xuuxvi-p%UuKQYQ=*idJGssy&8v=x$oTVNLNfO?1*XZwzs%CTeBQ z1q&-7b2iqt3kMB_rEnV=v{H776QXi*AW=C`7zjqn8F9GFj#_Paxf}SiH}ym22zFIx z1MXZVQ|`o3CHq8EuC-J;%@t=QC7LDLax(x|p7)yT*$QMkOquAIqOxFdP6iwJV-y(P znUL0uHq&8TsMkCqJ?5AswqmjFdDk%&lu{Ov zyUg5G7WH;-Pq49@*>Ln$+0efyDE2p<&WCj#;?~ z00;nMAg}==M6d%RaIyp_2}M#wvI+tRDzOFuM6o0Rh*4OuK!{ke1_MN~CIN_1ShxfL ah*+@(0Yq6@Sy{LN|Anvwjj;s)L;wKC&8S2G diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..a0d055a --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,181 @@ +/** + * Squirrel-3 + * @version 1.0.1 + * @anthor: iinterest.bell@gmail.com + */ +/* jshint strict: false, quotmark: false */ + +/** + * change log + * 1.0.1 * autoprefixer 设置为 'android 4', 'ios 7' + * - 删除 gulp-minify-css + */ + +// Load plugins +var gulp = require('gulp'); +var autoprefixer = require('gulp-autoprefixer'); +var concat = require('gulp-concat'); +var del = require('del'); +var footer = require('gulp-footer'); +var gulpif = require('gulp-if'); +var jshint = require('gulp-jshint'); +var less = require('gulp-less'); +var livereload = require('gulp-livereload'); +var notify = require('gulp-notify'); +var plumber = require('gulp-plumber'); +var rename = require('gulp-rename'); +var replace = require('gulp-replace'); +var uglify = require('gulp-uglify'); +var sourcemaps = require('gulp-sourcemaps'); + +var pkg = require('./package.json'); +var date = new Date(); +pkg.date = date.getFullYear() + '-' + ('00' + (date.getMonth() + 1)).slice(-2) + '-' + +('00' + date.getDate()).slice(-2) + ' ' + ('00' + date.getHours()).slice(-2) + ':' + +('00' + date.getMinutes()).slice(-2) + ':' + ('00' + date.getSeconds()).slice(-2); +var timestamp = ['\n/*', + ' <%= pkg.name %>', + ' @version v<%= pkg.version %>', + ' @date <%= pkg.date %>', + ' */'].join(''); + +// Config +var toggle = { + autoprefix: true, + imagemin: false, + jshint: true, + sourcemaps: true +}; +var paths = { + scripts: [ + 'src/scripts/core/*.js', + 'src/scripts/global.js', + 'src/scripts/*.js', + 'src/scripts/plugins/*.js', + 'src/scripts/**/*.js' + ], + styles: 'src/styles/' + pkg.name + '.less', + images: [ + 'src/images/**/*.jpg', + 'src/images/**/*.gif', + 'src/images/**/*.png' + ], + fonts: [ + /*'bower_components/fontawesome/fonts/fontawesome.otf', + 'bower_components/fontawesome/fonts/fontawesome-webfont.eot', + 'bower_components/fontawesome/fonts/fontawesome-webfont.svg',*/ + 'bower_components/fontawesome/fonts/fontawesome-webfont.ttf', + 'bower_components/fontawesome/fonts/fontawesome-webfont.woff' + ], + lib: [ + 'bower_components/jquery/dist/jquery.min.js', + 'bower_components/jquery/dist/jquery.min.map' + ], + watchs: { + scripts: 'src/scripts/**/*.js', + styles: 'src/styles/**/*.less', + templates: 'example/**/*.html', + dist: 'dist/**/*' + } +}; +var dests = { + styles: './dist/css', + scripts: './dist/js', + images: './dist/images', + fonts: './dist/fonts', + maps: '../maps' +}; +var options = { + autoprefix: { + browsers: ['android 4', 'ios 7'] + }, + fileName: pkg.name, + less: {compress: true}, + imagemin: {progressive: true}, + jshint: '.jshintrc', + jshintReporter: 'default', + rename: {suffix: '.min'} +}; + +// Tasks +// 通常情况,以下任务是不能修改的,如果遇到特殊情况需要修改,请注明! + +// Styles +gulp.task('styles', function () { + gulp.src(paths.styles) + .pipe(plumber({errorHandler: notify.onError('Error: <%= error.message %>')})) + .pipe(gulpif(toggle.sourcemaps, sourcemaps.init())) + .pipe(less(options.less)) + .pipe(gulpif(toggle.autoprefix, autoprefixer(options.autoprefix))) + .pipe(rename(options.rename)) + .pipe(footer(timestamp, {pkg: pkg})) + .pipe(gulpif(toggle.sourcemaps, sourcemaps.write(dests.maps))) + .pipe(gulp.dest(dests.styles)); +}); + +// Scripts +gulp.task('scripts', function () { + gulp.src(paths.scripts) + .pipe(plumber({errorHandler: notify.onError('Error: <%= error.message %>')})) + .pipe(gulpif(toggle.sourcemaps, sourcemaps.init())) + .pipe(gulpif(toggle.jshint, jshint(options.jshint))) + .pipe(gulpif(toggle.jshint, jshint.reporter(options.jshintReporter))) + .pipe(concat(options.fileName + '.js')) + .pipe(rename(options.rename)) + .pipe(uglify()) + .pipe(footer(timestamp, {pkg: pkg})) + .pipe(gulpif(toggle.sourcemaps, sourcemaps.write(dests.maps))) + .pipe(gulp.dest(dests.scripts)); +}); + +// Images +gulp.task('images', function () { + gulp.src(paths.images) + .pipe(gulp.dest(dests.images)); +}); + +// Fonts +gulp.task('coypFonts', function () { + gulp.src(paths.fonts) + .pipe(gulp.dest(dests.fonts)); +}); + +// Lib +gulp.task('copyLib', function () { + gulp.src(paths.lib) + .pipe(gulp.dest(dests.scripts)); +}); + +// Clean +gulp.task('clean', function (cb) { + del(['dist', 'build'], cb); +}); + +// Build +gulp.task('build', ['clean'], function () { + gulp.start('styles', 'scripts', 'images', 'coypFonts', 'copyLib'); +}); + +// Default +gulp.task('default', ['build']); + +// Release 发布 +gulp.task('release', function (cb) { + // 因为 UAE 不支持 .map 文件类型,所以暂时在发布时去除 sourcemaps + toggle.sourcemaps = false; + gulp.start('build'); +}); + +// Watch +gulp.task('watch', function () { + // .js files + gulp.watch(paths.watchs.scripts, ['scripts']); + // .less files + gulp.watch(paths.watchs.styles, ['styles']); + // images files + gulp.watch(paths.images, ['images']); + // LiveReload server + livereload.listen(); + // Watch any files in dist/, pages/, reload on change + gulp.watch([paths.watchs.dist, paths.watchs.templates]).on('change', livereload.changed); +}); \ No newline at end of file diff --git a/jshintrc b/jshintrc deleted file mode 100644 index 395c702..0000000 --- a/jshintrc +++ /dev/null @@ -1,26 +0,0 @@ -{ - "bitwise": true, - "camelcase": true, - "curly": true, - "eqeqeq": true, - "forin": true, - "immed": true, - "indent": 4, - "latedef": false, - "newcap": true, - "noarg": true, - "noempty": true, - "nonew": true, - "quotmark": "double", - "undef": true, - //"unused": true, - "strict": true, - "trailing": true, - "eqnull": true, - "browser": true, - "devel": true, - "jquery": true, - "node": true, - "predef": ["SQ", "seajs", "define"], - "white": false -} \ No newline at end of file diff --git a/node_modules/grunt-cmd-concat/node_modules/cmd-util/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/intercept.js b/node_modules/grunt-cmd-concat/node_modules/cmd-util/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/intercept.js deleted file mode 100644 index 771a983..0000000 --- a/node_modules/grunt-cmd-concat/node_modules/cmd-util/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/intercept.js +++ /dev/null @@ -1,36 +0,0 @@ -/*jshint node: true */ -var inserted, - Module = require('module'), - fs = require('fs'), - existingExtFn = Module._extensions['.js'], - amdefineRegExp = /amdefine\.js/; - -inserted = "if (typeof define !== 'function') {var define = require('amdefine')(module)}"; - -//From the node/lib/module.js source: -function stripBOM(content) { - // Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) - // because the buffer-to-string conversion in `fs.readFileSync()` - // translates it to FEFF, the UTF-16 BOM. - if (content.charCodeAt(0) === 0xFEFF) { - content = content.slice(1); - } - return content; -} - -//Also adapted from the node/lib/module.js source: -function intercept(module, filename) { - var content = stripBOM(fs.readFileSync(filename, 'utf8')); - - if (!amdefineRegExp.test(module.id)) { - content = inserted + content; - } - - module._compile(content, filename); -} - -intercept._id = 'amdefine/intercept'; - -if (!existingExtFn._id || existingExtFn._id !== intercept._id) { - Module._extensions['.js'] = intercept; -} diff --git a/node_modules/grunt-cmd-concat/node_modules/cmd-util/tests/css-cases/compressed.css b/node_modules/grunt-cmd-concat/node_modules/cmd-util/tests/css-cases/compressed.css deleted file mode 100644 index bd362e5..0000000 --- a/node_modules/grunt-cmd-concat/node_modules/cmd-util/tests/css-cases/compressed.css +++ /dev/null @@ -1,3 +0,0 @@ -body {color: red} - -a {color: black} diff --git a/node_modules/grunt-cmd-concat/node_modules/cmd-util/tests/css-cases/compressed.json b/node_modules/grunt-cmd-concat/node_modules/cmd-util/tests/css-cases/compressed.json deleted file mode 100644 index 9663b0b..0000000 --- a/node_modules/grunt-cmd-concat/node_modules/cmd-util/tests/css-cases/compressed.json +++ /dev/null @@ -1,11 +0,0 @@ -[ - { - "type": "block", - "code": [ - { - "type": "string", - "code": "body {color: red}\n\na {color: black}" - } - ] - } -] diff --git a/package.json b/package.json index 920404d..544c601 100644 --- a/package.json +++ b/package.json @@ -1,27 +1,28 @@ { - "name": "squirrel", - "version": "0.9.10", - "description": "移动前端开发框架,提供简单、快速的 Web 开发体验。", - "homepage": "http://hisquirrel.com", - "author": "iinterest", - "license": { - "type": "MIT", - "url": "https://github.com/iinterest/Squirrel-3/blob/master/LICENSE.md" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-autoprefixer": "~0.5.0", - "grunt-contrib-clean": "~0.5.0", - "grunt-contrib-copy": "~0.5.0", - "grunt-contrib-concat": "~0.3.0", - "grunt-contrib-cssmin": "~0.7.0", - "grunt-contrib-less": "~0.10.0", - "grunt-contrib-uglify": "~0.4.0", - "grunt-contrib-watch": "~0.5.3", - "grunt-cmd-concat": "~0.2.7", - "grunt-cmd-transport": "~0.4.1", - "grunt-jsdoc": "~0.4.2", - "grunt-open": "~0.2.2", - "grunt-sed": "~0.1.1" - } + "name": "squirrel", + "version": "0.10.0", + "description": "", + "main": "gulpfile.js", + "devDependencies": { + "del": "^0.1.3", + "gulp-autoprefixer": "^1.0.1", + "gulp-cache": "^0.2.4", + "gulp-concat": "^2.4.1", + "gulp-footer": "^1.0.5", + "gulp-header": "^1.2.2", + "gulp-if": "^1.2.5", + "gulp-imagemin": "^1.2.1", + "gulp-jshint": "^1.8.5", + "gulp-less": "^1.3.6", + "gulp-livereload": "^2.1.1", + "gulp-minify-css": "^0.3.11", + "gulp-notify": "^2.0.1", + "gulp-plumber": "^0.6.6", + "gulp-rename": "^1.2.0", + "gulp-replace": "^0.5.0", + "gulp-sourcemaps": "^1.2.4", + "gulp-uglify": "^1.0.1" + }, + "author": "iinterest.bell@gmail.com", + "license": "ISC" } diff --git a/src/js/core/gestures.js b/src/js/core/gestures.js deleted file mode 100644 index e640c0c..0000000 --- a/src/js/core/gestures.js +++ /dev/null @@ -1,59 +0,0 @@ -/** - * @file SQ.gestures - * 手势函数 - * @version 0.5.0 - */ -/*global SQ*/ -SQ.gestures = { - isSupportTouch: function () { - 'use strict'; - if (typeof window.ontouchstart === 'undefined') { - return false; - } else { - return true; - } - }, - /** - * 轻点 - * @param config - */ - tap: function (config) { - 'use strict'; - var boundary = 20; - var el = config.el; - var event = config.event || ''; - var fun = config.callbackFun; - - function startHandle (e) { - startX = e.touches[0].clientX; - startY = e.touches[0].clientY; - $(e.target).addClass('press'); - setTimeout(function () { - $(e.target).removeClass('press'); - }, 200); - } - - function endHandle (e) { - var endX = e.changedTouches[0].clientX; - var endY = e.changedTouches[0].clientY; - if (Math.abs(endX - startX) < boundary && Math.abs(endY - startY) < boundary) { - fun.call(el, e, $(e.target)); - } - $(e.target).removeClass('press'); - } - - if (SQ.gestures.isSupportTouch()) { - var startX = 0; - var startY = 0; - if (SQ.isString(el)) { - $(document).on('touchstart' + event, el, startHandle).on('touchend' + event, el, endHandle); - } else if (SQ.isArray(el)) { - el.on('touchstart' + event, startHandle).on('touchend' + event, endHandle); - } - } else { - $(el).on('click' + event, function (e) { - fun.call(el, e, $(this)); - }); - } - } -}; \ No newline at end of file diff --git a/src/js/fastclick.js b/src/js/fastclick.js deleted file mode 100644 index 26fbce7..0000000 --- a/src/js/fastclick.js +++ /dev/null @@ -1,16 +0,0 @@ -/*global $, SQ, console*/ -(function ($) { - 'use strict'; - - SQ.gestures.tap({ - el: 'a.sq-btn', - event: '.sq.tap', - callbackFun: function (e, $el) { - e.preventDefault(); - var url = $el.attr('href'); - if (url && url !== '#') { - window.location = url; - } - } - }); -})($); diff --git a/src/js/touchslip.js b/src/js/touchslip.js deleted file mode 100644 index 2de41f2..0000000 --- a/src/js/touchslip.js +++ /dev/null @@ -1,606 +0,0 @@ -/** - * @file SQ.TouchSlip 触摸滑动组件 - * @data 2013.7.10 - * @version 1.0.0 - */ - -/*global $, SQ, console, jQuery */ - -(function (window, document) { - 'use strict'; - var _fun = { - ios: function () { // 作用:判断是否为苹果的IOS设备 - var regularResult = navigator.userAgent.match(/.*OS\s([\d_]+)/), - isiOS = !!regularResult; - if (!this._versionValue && isiOS) { - this._versionValue = regularResult[1].replace(/_/g, '.'); - } - this.ios = function () { - return isiOS; - }; - return isiOS; - }, - version: function () { // 作用:返回IOS的版本号 - return this._versionValue; - }, - clone: function (object) { // 作用:用于原型继承 - function F() {} - F.prototype = object; - return new F(); - } - }; - - var slipjs = { - _refreshCommon: function (wideHigh, parentWideHigh) { // 作用:当尺寸改变时,需要重新取得相关的值 - var me = this; - me.wideHigh = wideHigh || me.core[me.offset] - me.upRange; - me.parentWideHigh = parentWideHigh || me.core.parentNode[me.offset]; - me._getCoreWidthSubtractShellWidth(); - }, - _initCommon: function (core, param) { // 作用:初始化 - var me = this; - me.core = core; - me.startFun = param.startFun; - me.moveFun = param.moveFun; - me.touchEndFun = param.touchEndFun; - me.endFun = param.endFun; - me.DIRECTION = param.DIRECTION; - me.upRange = param.upRange || 0; - me.downRange = param.downRange || 0; - if (me.DIRECTION === 'x') { - me.offset = 'offsetWidth'; - me._pos = me.__posX; - } else { - me.offset = 'offsetHeight'; - me._pos = me.__posY; - } - me.wideHigh = param.wideHigh || me.core[me.offset] - me.upRange; - me.parentWideHigh = param.parentWideHigh || me.core.parentNode[me.offset]; - me._getCoreWidthSubtractShellWidth(); - - me._bind('touchstart'); - me._bind('touchmove'); - me._bind('touchend'); - me._bind('webkitTransitionEnd'); - - me.xy = 0; - me.y = 0; - me._pos(-me.upRange); - }, - _getCoreWidthSubtractShellWidth: function () { // 作用:取得滑动对象和它父级元素的宽度或者高度的差 - var me = this; - me.widthCutCoreWidth = me.parentWideHigh - me.wideHigh; - me.coreWidthCutWidth = me.wideHigh - me.parentWideHigh; - }, - handleEvent: function (e) { // 作用:简化addEventListener的事件绑定 - switch (e.type) { - case 'touchstart': - this._start(e); - break; - case 'touchmove': - this._move(e); - break; - case 'touchend': - case 'touchcancel': - this._end(e); - break; - case 'webkitTransitionEnd': - this._transitionEnd(e); - break; - } - }, - _bind: function (type, boole) { // 作用:事件绑定 - this.core.addEventListener(type, this, !!boole); - }, - _unBind: function (type, boole) { // 作用:事件移除 - this.core.removeEventListener(type, this, !!boole); - }, - __posX: function (x) { // 作用:当设置滑动的方向为“X”时用于设置滑动元素的坐标 - this.xy = x; - this.core.style.webkitTransform = 'translate3d(' + x + 'px, 0px, 0px)'; - //this.core.style['webkitTransform'] = 'translate('+x+'px, 0px) scale(1) translateZ(0px)'; - }, - __posY: function (x) { // 作用:当设置滑动的方向为“Y”时用于设置滑动元素的坐标 - this.xy = x; - this.core.style.webkitTransform = 'translate3d(0px, ' + x + 'px, 0px)'; - //this.core.style['webkitTransform'] = 'translate(0px, '+x+'px) scale(1) translateZ(0px)'; - }, - _posTime: function (x, time) { // 作用:缓慢移动 - this.core.style.webkitTransitionDuration = time + 'ms'; - this._pos(x); - } - }; - - var SlipPage = _fun.clone(slipjs); - //function SlipPage() {} - //SQ.util.extend(SlipPage, slipjs); - - SlipPage._init = function (core, param) { // 作用:初始化 - var me = this; - me._initCommon(core, param); - me.NUM_PAGES = param.NUM_PAGES; - me.page = 0; - me.AUTO_TIMER = param.AUTO_TIMER; - me.lastPageFun = param.lastPageFun; - me.firstPageFun = param.firstPageFun; - if (param.AUTO_TIMER) { - me._autoChange(); - } - param.noFollow ? (me._move = me._moveNoMove, me.nextTime = 500) : me.nextTime = 300; - }; - SlipPage._start = function(evt) { // 触摸开始 - var me = this; - var e = evt.touches[0]; - me._abruptX = 0; - me._abruptXAbs = 0; - me._startX = me._startXClone = e.pageX; - me._startY = e.pageY; - me._movestart = undefined; - if (me.AUTO_TIMER) { - me._stop(); - } - if (me.startFun) { - me.startFun(e); - } - }; - SlipPage._move = function(evt) { // 触摸中,跟随移动 - var me = this; - me._moveShare(evt); - if(!me._movestart){ - var e = evt.touches[0]; - evt.preventDefault(); - me.offsetX = (me.xy > 0 || me.xy < me.widthCutCoreWidth) ? me._disX/2 + me.xy : me._disX + me.xy; - me._startX = e.pageX; - if (me._abruptXAbs < 6) { - me._abruptX += me._disX; - me._abruptXAbs = Math.abs(me._abruptX); - return; - } - me._pos(me.offsetX); - if (me.moveFun) { - me.moveFun(e); - } - } - }; - SlipPage._moveNoMove = function(evt) { // 触摸中,不跟随移动,只记录必要的值 - var me = this; - me._moveShare(evt); - if(!me._movestart){ - evt.preventDefault(); - me.moveFun && me.moveFun(e); - } - }; - SlipPage._moveShare = function(evt) { // 不跟随移动和跟随移动的公共操作 - var me = this, - e = evt.touches[0]; - me._disX = e.pageX - me._startX; - me._disY = e.pageY - me._startY; - typeof me._movestart === 'undefined' && (me._movestart = !!(me._movestart || Math.abs(me._disX) < Math.abs(me._disY))); - }; - SlipPage._end = function(e) { // 触摸结束 - if (!this._movestart) { - var me = this; - me._endX = e.changedTouches[0].pageX; - me._range = me._endX - me._startXClone; - if(me._range > 35){ - me.page !== 0 ? me.page -= 1 : (me.firstPageFun && me.firstPageFun(e)); - }else if(Math.abs(me._range) > 35){ - me.page !== me.NUM_PAGES - 1 ? me.page += 1 : (me.lastPageFun && me.lastPageFun(e)); - } - me.toPage(me.page, me.nextTime); - me.touchEndFun && me.touchEndFun(e); - } - }; - SlipPage._transitionEnd = function(e) { // 动画结束 - var me = this; - e.stopPropagation(); - me.core.style.webkitTransitionDuration = '0'; - me._stopIng && me._autoChange(), me._stopIng = false; - me.endFun && me.endFun(); - }; - SlipPage.toPage = function(num, time) { // 可在外部调用的函数,指定轮换到第几张,只要传入:“轮换到第几张”和“时间”两个参数。 - this._posTime(-this.parentWideHigh * num, time || 0); - this.page = num; - }; - SlipPage._stop = function() { // 作用:停止自动轮换 - clearInterval(this._autoChangeSet); - this._stopIng = true; - }; - SlipPage._autoChange = function() { // 作用:自动轮换 - var me = this; - me._autoChangeSet = setInterval(function() { - me.page !== me.NUM_PAGES - 1 ? me.page += 1 : me.page = 0; - me.toPage(me.page, me.nextTime); - },me.AUTO_TIMER); - }; - SlipPage.refresh = function(wideHigh, parentWideHigh) { // 可在外部调用,作用:当尺寸改变时(如手机横竖屏时),需要重新取得相关的值。这时候就可以调用该函数 - this._refreshCommon(wideHigh, parentWideHigh); - }; - - var SlipPx = _fun.clone(slipjs); - //function SlipPx() {} - //SQ.util.extend(SlipPx, slipjs); - - SlipPx._init = function(core,param) { // 作用:初始化 - var me = this; - me._initCommon(core,param); - me.perfect = param.perfect; - me.SHOW_SCROLL_BAR = param.SHOW_SCROLL_BAR; - if(me.DIRECTION === 'x'){ - me.pageX = 'pageX'; - me.pageY = 'pageY'; - me.widthOrHeight = 'width'; - me._real = me._realX; - me._posBar = me.__posBarX; - }else{ - me.pageX = 'pageY'; - me.pageY = 'pageX'; - me.widthOrHeight = 'height'; - me._real = me._realY; - me._posBar = me.__posBarY; - } - if(me.perfect){ - me._transitionEnd = function(){}; - me._stop = me._stopPerfect; - me._slipBar = me._slipBarPerfect; - me._posTime = me._posTimePerfect; - me._barUpRange = me.upRange; - me.noBar = false; - me._slipBarTime = function(){}; - }else{ - me.noBar = param.noBar; - me.core.style.webkitTransitionTimingFunction = 'cubic-bezier(0.33, 0.66, 0.66, 1)'; - } - if(me.SHOW_SCROLL_BAR){ - me._hideBar = function(){}; - me._showBar = function(){}; - } - if(_fun.ios()){ - me.radius = 11; - }else{ - me.radius = 0; - } - if(!me.noBar){ - me._insertSlipBar(param); - if(me.coreWidthCutWidth <= 0){ - me._barShellOpacity = 0; - me._showBarStorage = me._showBar; - me._showBar = function(){}; - } - }else{ - me._hideBar = function(){}; - me._showBar = function(){}; - } - }; - SlipPx._start = function(evt) { // 触摸开始 - var me = this; - var e = evt.touches[0]; - me._animating = false; - me._steps = []; - me._abruptX = 0; - me._abruptXAbs = 0; - me._startX = me._startXClone = e[me.pageX]; - me._startY = e[me.pageY]; - me._startTime = e.timeStamp || Date.now(); - me._movestart = undefined; - !me.perfect && me._needStop && me._stop(); - me.core.style.webkitTransitionDuration = '0'; - me.startFun && me.startFun(e); - }; - SlipPx._move = function(evt) { // 触摸中 - var me = this; - var e = evt.touches[0]; - var _ePage = e[me.pageX]; - var _ePageOther = e[me.pageY]; - var thatX = me.xy; - me._disX = _ePage - me._startX; - me._disY = _ePageOther - me._startY; - (me.DIRECTION === 'x' && typeof me._movestart === 'undefined') && (me._movestart = !!(me._movestart || (Math.abs(me._disX) < Math.abs(me._disY)))); - - if(!me._movestart){ - evt.preventDefault(); - me._moveTime = e.timeStamp || Date.now(); - me.offsetX = (thatX > 0 || thatX < me.widthCutCoreWidth - me.upRange) ? me._disX/2 + thatX : me._disX + thatX; - me._startX = _ePage; - me._startY = _ePageOther; - me._showBar(); - if (me._abruptXAbs < 6 ) { - me._abruptX += me._disX; - me._abruptXAbs = Math.abs(me._abruptX); - return; - } - me._pos(me.offsetX); - me.noBar || me._slipBar(); - if (me._moveTime - me._startTime > 300) { - me._startTime = me._moveTime; - me._startXClone = _ePage; - } - me.moveFun && me.moveFun(e); - } - }; - SlipPx._end = function(evt) { // 触摸结束 - if (!this._movestart) { - var me = this, - e = evt.changedTouches[0], - duration = (e.timeStamp || Date.now()) - me._startTime, - fastDistX = e[me.pageX] - me._startXClone; - me._needStop = true; - if(duration < 300 && Math.abs(fastDistX) > 10) { - if (me.xy > -me.upRange || me.xy < me.widthCutCoreWidth) { - me._rebound(); - }else{ - var _momentum = me._momentum(fastDistX, duration, -me.xy - me.upRange, me.coreWidthCutWidth + (me.xy), me.parentWideHigh); - me._posTime(me.xy + _momentum.dist, _momentum.time); - me.noBar || me._slipBarTime(_momentum.time); - } - }else{ - me._rebound(); - } - me.touchEndFun && me.touchEndFun(e); - } - }; - SlipPx._transitionEnd = function(e) { // 滑动结束 - var me = this; - if (e.target !== me.core) { - return; - } - me._rebound(); - me._needStop = false; - }; - SlipPx._rebound = function(time) { // 作用:滑动对象超出时复位 - var me = this, - _reset = (me.coreWidthCutWidth <= 0) ? 0 : (me.xy >= -me.upRange ? -me.upRange : me.xy <= me.widthCutCoreWidth - me.upRange ? me.widthCutCoreWidth - me.upRange : me.xy); - if (_reset === me.xy) { - me.endFun && me.endFun(); - me._hideBar(); - return; - } - me._posTime(_reset, time || 400); - me.noBar || me._slipBarTime(time); - }; - SlipPx._insertSlipBar = function(param) { // 插入滚动条 - var me = this; - me._bar = document.createElement('div'); - me._barShell = document.createElement('div'); - var _barCss; - var _barShellCss; - if(me.DIRECTION === 'x'){ - _barCss = 'height: 5px; position: absolute;z-index: 10; pointer-events: none;'; - _barShellCss = 'opacity: '+me._barShellOpacity+'; left:2px; bottom: 2px; right: 2px; height: 5px; position: absolute; z-index: 10; pointer-events: none;'; - }else{ - _barCss = 'width: 5px; position: absolute;z-index: 10; pointer-events: none;'; - _barShellCss = 'opacity: '+me._barShellOpacity+'; top:2px; bottom: 2px; right: 2px; width: 5px; position: absolute; z-index: 10; pointer-events: none;'; - } - var _defaultBarCss = ' background-color: rgba(0, 0, 0, 0.5); border-radius: '+me.radius+'px; -webkit-transition: cubic-bezier(0.33, 0.66, 0.66, 1);' ; - _barCss = _barCss + _defaultBarCss + param.barCss; - - me._bar.style.cssText = _barCss; - me._barShell.style.cssText = _barShellCss; - me._countAboutBar(); - me._countBarSize(); - me._setBarSize(); - me._countWidthCutBarSize(); - me._barShell.appendChild(me._bar); - me.core.parentNode.appendChild(me._barShell); - setTimeout(function(){me._hideBar();}, 500); - }; - SlipPx._posBar = function(pos) {}; - SlipPx.__posBarX = function(pos) { // 作用:当设置滑动的方向为“X”时用于设置滚动条的坐标 - var me = this; - me._bar.style.webkitTransform = 'translate3d('+pos+'px, 0px, 0px)'; - //me._bar.style['webkitTransform'] = 'translate('+pos+'px, 0px) translateZ(0px)'; - }; - SlipPx.__posBarY = function(pos) { // 作用:当设置滑动的方向为“Y”时用于设置滚动条的坐标 - var me = this; - //me._bar.style['webkitTransform'] = 'translate(0px, '+pos+'px) translateZ(0px)'; - me._bar.style.webkitTransform = 'translate3d(0px, '+pos+'px, 0px)'; - }; - SlipPx._slipBar = function() { // 流畅模式下滚动条的滑动 - var me = this; - var pos = me._aboutBar * (me.xy + me.upRange); - if (pos <= 0) { - pos = 0; - }else if(pos >= me._widthCutBarSize){ - pos = Math.round(me._widthCutBarSize); - } - me._posBar(pos); - me._showBar(); - }; - SlipPx._slipBarPerfect = function() { // 完美模式下滚动条的滑动 - var me = this; - var pos = me._aboutBar * (me.xy + me._barUpRange); - me._bar.style[me.widthOrHeight] = me._barSize + 'px'; - if (pos < 0) { - var size = me._barSize + pos * 3; - me._bar.style[me.widthOrHeight] = Math.round(Math.max(size, 5)) + 'px'; - pos = 0; - }else if (pos >= me._widthCutBarSize) { - var size = me._barSize - (pos - me._widthCutBarSize) * 3; - if(size < 5) {size = 5;} - me._bar.style[me.widthOrHeight] = Math.round(size) + 'px'; - pos = Math.round(me._widthCutBarSize + me._barSize - size); - } - me._posBar(pos); - }; - SlipPx._slipBarTime = function(time) { // 作用:指定时间滑动滚动条 - this._bar.style.webkitTransitionDuration = ''+time+'ms'; - this._slipBar(); - }; - SlipPx._stop = function() { // 流畅模式下的动画停止 - var me = this; - var _realX = me._real(); - me._pos(_realX); - if(!me.noBar){ - me._bar.style.webkitTransitionDuration = '0'; - me._posBar(me._aboutBar * _realX); - } - }; - SlipPx._stopPerfect = function() { // 完美模式下的动画停止 - clearTimeout(this._aniTime); - this._animating = false; - }; - SlipPx._realX = function() { // 作用:取得滑动X坐标 - var _realXy = getComputedStyle(this.core, null).webkitTransform.replace(/[^0-9-.,]/g, '').split(','); - return _realXy[4] * 1; - }; - SlipPx._realY = function() { // 作用:取得滑动Y坐标 - var _realXy = getComputedStyle(this.core, null).webkitTransform.replace(/[^0-9-.,]/g, '').split(','); - return _realXy[5] * 1; - }; - SlipPx._countBarSize = function() { // 作用:根据比例计算滚动条的高度 - this._barSize = Math.round(Math.max(this.parentWideHigh * this.parentWideHigh / this.wideHigh, 5)); - }; - SlipPx._setBarSize = function() { // 作用:设置滚动条的高度 - this._bar.style[this.widthOrHeight] = this._barSize + 'px'; - }; - SlipPx._countAboutBar = function() { // 作用:计算一个关于滚动条的的数值 - this._aboutBar = ((this.parentWideHigh-4) - (this.parentWideHigh-4) * this.parentWideHigh / this.wideHigh)/this.widthCutCoreWidth; - }; - SlipPx._countWidthCutBarSize = function() { // 作用:计算一个关于滚动条的的数值 - this._widthCutBarSize = (this.parentWideHigh-4) - this._barSize; - }; - SlipPx.refresh = function(wideHigh, parentWideHigh) {// 可在外部调用,作用:当尺寸改变时(如手机横竖屏时),需要重新取得相关的值。这时候就可以调用该函数 - var me = this; - me._refreshCommon(wideHigh, parentWideHigh); - if(!me.noBar){ - if(me.coreWidthCutWidth <= 0) { - me._barShellOpacity = 0; - me._showBar = function(){}; - }else{ - me._showBar = me._showBarStorage || me._showBar; - me._countAboutBar(); - me._countBarSize(); - me._setBarSize(); - me._countWidthCutBarSize(); - } - } - me._rebound(0); - }; - SlipPx._posTimePerfect = function (x, time) { // 作用:完美模式下的改变坐标函数 - var me = this, - step = x, - i, l; - me._steps.push({ x: x, time: time || 0 }); - me._startAni(); - }; - SlipPx._startAni = function () {// 作用:完美模式下的改变坐标函数 - var me = this, - startX = me.xy, - startTime = Date.now(), - step, easeOut, - animate; - if (me._animating) { - return; - } - if (!me._steps.length) { - me._rebound(); - return; - } - step = me._steps.shift(); - if (step.x === startX) { - step.time = 0; - } - me._animating = true; - animate = function () { - var now = Date.now(), - newX; - if (now >= startTime + step.time) { - me._pos(step.x); - me._animating = false; - me._startAni(); - return; - } - now = (now - startTime) / step.time - 1; - easeOut = Math.sqrt(1 - now * now); - newX = (step.x - startX) * easeOut + startX; - me._pos(newX); - if (me._animating) { - me._slipBar(); - me._aniTime = setTimeout(animate, 1); - } - }; - animate(); - }; - SlipPx._momentum = function (dist, time, maxDistUpper, maxDistLower, size) { // 作用:计算惯性 - var deceleration = 0.001, - speed = Math.abs(dist) / time, - newDist = (speed * speed) / (2 * deceleration), - newTime = 0, outsideDist = 0; - if (dist > 0 && newDist > maxDistUpper) { - outsideDist = size / (6 / (newDist / speed * deceleration)); - maxDistUpper = maxDistUpper + outsideDist; - speed = speed * maxDistUpper / newDist; - newDist = maxDistUpper; - } else if (dist < 0 && newDist > maxDistLower) { - outsideDist = size / (6 / (newDist / speed * deceleration)); - maxDistLower = maxDistLower + outsideDist; - speed = speed * maxDistLower / newDist; - newDist = maxDistLower; - } - newDist = newDist * (dist < 0 ? -1 : 1); - newTime = speed / deceleration; - return { dist: newDist, time: newTime }; - }; - SlipPx._showBar = function() {// 作用:显示滚动条 - var me = this; - me._barShell.style.webkitTransitionDelay = '0ms'; - me._barShell.style.webkitTransitionDuration = '0ms'; - me._barShell.style.opacity = '1'; - }; - SlipPx._hideBar = function() {// 作用:隐藏滚动条 - var me = this; - me._barShell.style.opacity = '0'; - me._barShell.style.webkitTransitionDelay = '300ms'; - me._barShell.style.webkitTransitionDuration = '300ms'; - }; - - function TouchSlip(config) { - var me = this; - var i; - - me.config = { - - }; - - for (i in config) { - if (config.hasOwnProperty(i)) { - me.config[i] = config[i]; - } - } - - me.triggerTarget = $(me.config.DOM_TRIGGER_TARGET)[0]; - - if (_fun.ios() && (parseInt(_fun.version()) >= 5 && config.DIRECTION === 'x') && config.wit) { - me.triggerTarget.parentNode.style.cssText += 'overflow:scroll; -webkit-overflow-scrolling:touch;'; - return; - } - - switch (me.config.MODE) { - case 'page': - config.DIRECTION = 'x'; - if (!this.SlipPage) { - this.SlipPage = true; - SlipPage._init(me.triggerTarget, config); - return SlipPage; - } else { - var page = _fun.clone(SlipPage); - page._init(me.triggerTarget, config); - return page; - } - break; - case 'px': - if (!this.SlipPx) { - this.SlipPx = true; - SlipPx._init(me.triggerTarget, config); - return SlipPx; - } else { - var Px = _fun.clone(SlipPx); - Px._init(me.triggerTarget, config); - return Px; - } - break; - } - - } - SQ.TouchSlip = TouchSlip; -})(window, document); \ No newline at end of file diff --git a/src/less/badge.less b/src/less/badge.less deleted file mode 100644 index c1889f9..0000000 --- a/src/less/badge.less +++ /dev/null @@ -1,15 +0,0 @@ -//** sq-badge -//** 徽章 - -.sq-badge{ - border-radius:10px; padding:3px 7px; font-weight:normal; font-size:@badge-font-size; overflow:hidden; - - &:empty{ display:none;} - - &.red{ background:#e34541; color:#fff;} - &.blue{ background:#009bd8; color:#fff;} - &.green{ background:#6eb82c; color:#fff;} - &.grey{ background:#a9a7a7; color:#fff;} - &.black{ background:#444; color:#fff;} - &.orange{ background:#faa800; color:#fff;} -} \ No newline at end of file diff --git a/src/less/bars.less b/src/less/bars.less deleted file mode 100644 index 858c884..0000000 --- a/src/less/bars.less +++ /dev/null @@ -1,105 +0,0 @@ -//** sq-bars -//** 用于告知用户其所在位置的情境信息,以及帮助用户浏览或执行操作的控件,包含导航栏、工具栏、选项栏等。 - -.sq-bars{ - height:@bar-normal-height; - //======================================== - // Tool bar - // 工具栏,能实现在不同信息层级结构之间的导航 - //======================================== - &.toolbar{ - position:relative; .display-box; .box-align(center); .box-pack(justify); padding:0 4px; z-index:100; - // 分栏 - .col{ .display-box;} - // 对齐方式 - &.align-end, - .align-end{ .box-pack(end);} - &.align-start, - .align-start{ .box-pack(start);} - // 兼容弹性布局 - .sq-btn{ display:block; z-index:1;} - } - - - //======================================== - // Navigation bar - // 导航栏,能实现在不同信息层级结构之间的导航 - // 继承自工具栏 - //======================================== - &.nav:extend(.sq-bars.toolbar all){ - .title, - .extend{ .box-flex(1); height:@bar-normal-height; margin:0 .5rem;} - .title{ font-size:@head-font-size; line-height:@bar-normal-height; text-align:center; overflow:hidden;} - // 扩展区域 - .extend{ - .display-box; .box-align(center); .box-pack(justify); - .sq-btn-group{ width:100%;} - } - .sq-btn{ - min-width:40px; // 防止只有 .sq-icon 的按钮因为宽度不等导致 .title、.extend 无法居中显示 - padding:6px .5rem; // 设定为 small 尺寸 - &+.title, - &+.extend{ margin:0 1rem;} - } - } - - - //======================================== - // Page - // 分页栏 - // 继承自工具栏 - //======================================== - &.pagination:extend(.sq-bars.toolbar all){ - .pages{ position:absolute; .overspread(0,80px,0,80px); font-size:@content-font-size; text-align:center; line-height:@bar-normal-height;} - .disable{ pointer-events:none; opacity:.4; cursor:not-allowed;} - select{ min-height:@bar-normal-height - 10; line-height:1;} - } - - - //======================================== - // Tab - // 选项栏 - //======================================== - &.nav-tabs{ - font-size:@content-font-size; - - a{ .display-box; .box-pack(justify); .box-align(center); position:relative; height:@bar-normal-height; text-align:center;} - span{ display:block; .box-flex(1);} // 嵌套一层 span 是为了达到垂直居中的效果,.box-align(center) 必须要求元素没有 height 设定 - - &.icons{ - a{ font-size:1.2rem;} - .sq-icon{ display:block;} - .sq-badge{ left:60%; right:auto;} - } - - .sq-badge{ - position:absolute; top:-2px; right:10%; padding:4px; min-width:20px; border-radius:999px; line-height:1; z-index:1; - } - } - - - //======================================== - // Search - // 搜索栏 - //======================================== - &.search:extend(.sq-bars.toolbar all){ - padding:0 8px; - input[type="text"], - input[type="search"]{ display:block; width:100%; height:28px; border:none; outline:none;} - input[type="submit"], - input[type="button"]{ border:none; outline:none;} - - .label{ - position:relative; .box-flex(1); background:#fff; - &.icon-search{ - padding:0 5px 0 24px; - &::before{ position:absolute; top:7px; left:4px; content:'\e801';} - } - } - .clear{ - display:none; position:absolute; top:0; right:0; width:30px; height:28px; cursor:pointer; - &::after{ content:"×"; position:absolute; top:5px; left:6px; width:18px; height:18px; background:#ccc; border-radius:999px; text-align:center; line-height:16px; color:#fff;} - } - .sq-btn{ min-height:30px;} - } -} diff --git a/src/less/button.less b/src/less/button.less deleted file mode 100644 index ce90c88..0000000 --- a/src/less/button.less +++ /dev/null @@ -1,197 +0,0 @@ -//** sq-button -//** 通用按钮,包括单体按钮、组合按钮 - -.sq-btn{ - display:inline-block; position:relative; - border-radius:3px; border:1px solid transparent; - text-align:center; white-space:nowrap; line-height:1; - cursor:pointer; - // 不可选 - -webkit-user-select:none; - -moz-user-select:none; - -ms-user-select:none; - - - //======================================== - // Size - // 按钮尺寸 - //======================================== - /*normal*/ padding:9px 1rem; /* sq-btn height = 9*2 + 16 + 2 = 36px */ - &.large{ padding:12px 1rem; font-size:1.8rem;} - &.small{ padding:6px 1rem; font-size:1.4rem;} /*28px*/ - &.mini{ padding:4px 1rem; font-size:1.2rem;} - &.block{ - display:block; - input[type="button"]&, - input[type="submit"]&, - button& { width:100%;} - & +.block{ margin-top:10px;} - } - - - //======================================== - // icon - // 按钮图标 - //======================================== - &>.sq-icon::before{ opacity:.8; margin-right:.5rem;} - &.right-icon > .sq-icon::before{ margin-right:0; margin-left:.5rem;} - - - //======================================== - // disabled - // 禁用 - //======================================== - &.disabled, - &[disabled]{ - pointer-events:none; - opacity:.7; - cursor:not-allowed; - } - - //======================================== - // Dropdown Menu - // 单按钮下拉菜单 - //======================================== - .dropdown-menu{ - display:none; position:absolute; top:100%; left:-1px; right:-1px; min-width:100px; background:#fff; box-shadow:0 3px 5px rgba(0,0,0,.2); border-radius:3px; border:1px solid #d7d7d7; line-height:30px; - a{ display:block; padding:3px 0; color:#333; border-bottom:1px solid #efefef;} - &.right{ - left:auto; right:0; - } - } -} - - -//======================================== -// Button Group -// 组合按钮 -//======================================== -.sq-btn-group{ - .display-box; .box-orient(horizontal); - .active{ - // 保证激活项目在最上层显示 - z-index:1; - &+.sq-btn{ border-left-color:transparent;} - } - // 默认为水平布局 - .sq-btn{ - display:block; .box-flex(1); margin-left:-1px; border-radius:0; - &:first-child{ margin-left:0; border-radius:3px 0 0 3px;} - &:last-child{ border-radius:0 3px 3px 0;} - } - // 垂直布局 - &.vertical{ - .box-orient(vertical); - .sq-btn{ - margin:-1px 0 0 0; - &:first-child{ margin-top:0; border-radius:3px 3px 0 0;} - &:last-child{ border-radius:0 0 3px 3px;} - } - } -} - - -//======================================== -// Button Style -// 组合风格 -//======================================== -.sq-btn{ - //======================================== - // metro 风格 - //======================================== - &.mt-white{ - background:#f7f7f7; color:#333; border-color:#ddd; - a{ color:#333;} - } - &.mt-grey{ - background:#e1e1e1; border-color:#e1e1e1; color:#333; - a{ color:#333;} - } - &.mt-grey-dark{ - background:#a9a7a7; border-color:#a9a7a7; color:#fff; - a{ color:#fff;} - } - &.mt-black{ - background:#444; border-color:#444; color:#fff; - a{ color:#fff;} - } - &.mt-blue{ - //background:#009bd8; border-color:#009bd8; color:#fff; - background:#4285f4; border-color:#4285f4; color:#fff; - a{ color:#fff;} - &:hover{ background:#3367d6;} - } - &.mt-green{ background:#6eb82c; border-color:#6eb82c; color:#fff; - a{ color:#fff;} - } - &.mt-orange{ background:#faa800; border-color:#faa800; color:#fff; - a{ color:#fff;} - } - &.mt-red{ background:#e34541; border-color:#e34541; color:#fff; - a{ color:#fff;} - } - - /*// fresh 风格 - &.f-grey{ - background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(1, #e6e6e6)); - -webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.1); border:1px solid #ccc; border-bottom-color:#b3b3b3; text-shadow:0 1px 1px #fff; color:#333; - a{ color:#333;} - } - &.f-grey-dark{ - background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #c5c5c5), color-stop(1, #8c8c8c)); border:1px solid #999; color:#fff; - a{ color:#fff;} - } - &.f-blue{ - background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #00a0ef), color-stop(1, #008acf)); border:1px solid #007dbb; color:#fff; - a{ color:#fff;} - } - &.f-green{ - background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#43c037),color-stop(1,#2a9b22)); border:1px solid #2a9b22; border-bottom-color:#217001; color:#fff; - a{ color:#fff;} - } - &.f-black{ - background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4b4f51),color-stop(1,#383c41)); border:1px solid #383b3d; color:#fff; - a{ color:#fff;} - } - &.f-orange{ - background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #faa800), color-stop(1, #f99100)); border:1px solid #cf7d2d; color:#fff; - a{ color:#fff;} - } - &.f-red{ - background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #ee5f5b), color-stop(1, #bd362f)); border:1px solid #ab3a35; color:#fff; - a{ color:#fff;} - } - - // flat 风格 - &.fl-grey{ - background:#e6e6e6; border-bottom:3px solid #b3b3b3; color:#333; - a{ color:#333;} - } - &.fl-grey-dark{ - background:#b2b2b2; border-bottom:3px solid #777; color:#fff; - a{ color:#fff;} - } - &.fl-black{ - background:#4b4f51; border-bottom:3px solid #333; color:#fff; - a{ color:#fff;} - } - &.fl-blue{ - background:#00a0ef; border-bottom:3px solid #007dbb; color:#fff; - a{ color:#fff;} - } - &.fl-green{ - background:#6eb82c; border-bottom:3px solid #217001; color:#fff; - a{ color:#fff;} - } - &.fl-orange{ - background:#faa800; border-bottom:3px solid #cf7d2d; color:#fff; - a{ color:#fff;} - } - &.fl-red{ - background:#e34541; border-bottom:3px solid #ab3a35; color:#fff; - a{ color:#fff;} - }*/ -} - -//.sq-btn + .sq-btn{ margin-left:5px;} -//.sq-btn[class*="f-"]{ border-radius:3px;} diff --git a/src/less/common.less b/src/less/common.less deleted file mode 100644 index b97af95..0000000 --- a/src/less/common.less +++ /dev/null @@ -1,41 +0,0 @@ -//** Core style -//** 核心样式 - -//** 功能样式 -.sq-fl{ float:left;} -.sq-fr{ float:right;} -.sq-m10{ margin:10px;} -.sq-p10{ padding:10px;} -.sq-hide{ display:none;} -.sq-unvisible{ visibility:hidden;} -.sq-clearfix{ .clearfix();} -//.h-col{ .display-box; .box-orient(horizontal); .box-pack(center); .box-align(center);} -//.h-col>*{ display:block; .box-flex(1);} - -//** 栏 -.col2>*, -.col3>*, -.col4>*, -.col5>*, -.col5>*{ - float:left; - &::after{ .clearfix();} -} -.col2>*{ width:50%;} -.col3>*{ width:33.3333%;} -.col4>*{ width:25%;} -.col5>*{ width:20%;} -.col6>*{ width:16.6666%;} - -//** box 模型 -.sq-box{ - .hd{ height:40px; padding:0 10px; line-height:40px;} -} -.sq-content{ margin:@interspace;} - -//** 解决 Android 版 UC 浏览器链接点击变色问题 -.sq-ucweb-anchor{ - position:relative; - li{ position:relative;} - a{ position:absolute!important; top:0; right:0; bottom:0; left:0;} -} \ No newline at end of file diff --git a/src/less/default-theme.less b/src/less/default-theme.less deleted file mode 100644 index 0791849..0000000 --- a/src/less/default-theme.less +++ /dev/null @@ -1,53 +0,0 @@ -//** Default Theme - -//** variables Setting -//@theme-font-size:12px; - -//** base color -@theme-bc-grey:#e5e5e5; -@theme-font-grey:#999; - -//** Global -//html{ font-size:@theme-font-size;} -a{ color:#333;} - -//** sq-bars -.sq-bars{ - &.nav, - &.nav-tabs, - &.pagination, - &.toolbar{ background:#f9f9f9;} - - //.badge{ background:#e34541;} -} - -.badge{ - &.red{ background:#e34541; color:#fff;} - &.blue{ background:#009bd8; color:#fff;} - &.green{ background:#6eb82c; color:#fff;} - &.grey{ background:#a9a7a7; color:#fff;} - &.black{ background:#444; color:#fff;} - &.orange{ background:#faa800; color:#fff;} -} - -//** sq-list -.sq-list{ - .list-item{ border-top-color:@theme-bc-grey; border-bottom-color:@theme-bc-grey;} - .icon{ - //.badge{ background:#e34541;} - } - &.text{ - //.badge{ background:@theme-bc-grey; color:#fff;} - .group-hd{ background:#efeff4; border-top-color:@theme-bc-grey; border-bottom-color:@theme-bc-grey;} - .data{ color:@theme-font-grey;} - .digest{ color:@theme-font-grey;} - } - &.media{ - &.col2, - &.col3, - &.col4{ - .list-item{ border-right:1px solid @theme-bc-grey;} - .list-item:nth-child(even){ border-right:none;} - } - } -} diff --git a/src/less/font-icon.less b/src/less/font-icon.less deleted file mode 100644 index 2327da2..0000000 --- a/src/less/font-icon.less +++ /dev/null @@ -1,200 +0,0 @@ -//** sq-icon -//** 通用图标 - -@font-face { - font-family: "fontello"; - src:url("@{icon-font-path}@{icon-font-name}.woff") format("woff"), - url("@{icon-font-path}@{icon-font-name}.ttf") format("truetype"); - font-weight:normal; - font-style:normal; -} - -.sq-icon{ - &::before{ - font-family: "fontello"; - font-style: normal; - font-weight: normal; - speak: none; - - display:inline-block; - text-decoration:inherit; - min-width:.5rem; - text-align:center; - - /* For safety - reset parent styles, that can break glyph codes*/ - font-variant:normal; - text-transform:none; - - /* fix buttons height, for twitter bootstrap */ - //line-height:1rem; // 导致 nav、button 下的 icon 高度不足 - - //** 修复垂直居中问题 - position:relative; - //top:.1rem; - } - - &.x2::before{ font-size:@icon-x2-size;} //** 适合在导航栏中显示 - &.x3::before{ font-size:@icon-x3-size;} //** 适合在导航栏 icons 模式下显示 - &.x4::before{ font-size:@icon-x4-size;} - &.x5::before{ font-size:@icon-x5-size;} -} - -//** fixed -.icon-left-open:before, -.icon-right-open:before, -.icon-download:before{ top:.1rem;} - -.icon-group{ - .sq-icon::before{ margin-right:.1em;} -} - -.icon-music:before { content: '\e800'; } /* '' */ -.icon-camera:before { content: '\e808'; } /* '' */ -.icon-heart:before { content: '\e802'; } /* '' */ -.icon-heart-empty:before { content: '\e889'; } /* '' */ -.icon-star:before { content: '\e803'; } /* '' */ -.icon-star-empty:before { content: '\e804'; } /* '' */ -.icon-star-half:before { content: '\e805'; } /* '' */ -.icon-star-half-alt:before { content: '\e806'; } /* '' */ -.icon-male:before { content: '\e807'; } /* '' */ -.icon-female:before { content: '\e80a'; } /* '' */ -.icon-videocam:before { content: '\e80b'; } /* '' */ -.icon-picture:before { content: '\e80c'; } /* '' */ -.icon-th-large:before { content: '\e80e'; } /* '' */ -.icon-th:before { content: '\e80f'; } /* '' */ -.icon-th-list:before { content: '\e810'; } /* '' */ -.icon-ok:before { content: '\e811'; } /* '' */ -.icon-ok-circled:before { content: '\e813'; } /* '' */ -.icon-cancel:before { content: '\e812'; } /* '' */ -.icon-cancel-circled:before { content: '\e814'; } /* '' */ -.icon-plus-circled:before { content: '\e818'; } /* '' */ -.icon-minus-circled:before { content: '\e819'; } /* '' */ -.icon-help-circled:before { content: '\e816'; } /* '' */ -.icon-info-circled:before { content: '\e817'; } /* '' */ -.icon-home:before { content: '\e815'; } /* '' */ -.icon-link-ext:before { content: '\e81a'; } /* '' */ -.icon-attach:before { content: '\e81b'; } /* '' */ -.icon-lock:before { content: '\e81c'; } /* '' */ -.icon-lock-open:before { content: '\e81d'; } /* '' */ -.icon-pin:before { content: '\e894'; } /* '' */ -.icon-eye:before { content: '\e81e'; } /* '' */ -.icon-eye-off:before { content: '\e81f'; } /* '' */ -.icon-tag:before { content: '\e820'; } /* '' */ -.icon-bookmark:before { content: '\e821'; } /* '' */ -.icon-bookmark-empty:before { content: '\e822'; } /* '' */ -.icon-flag-checkered:before { content: '\e895'; } /* '' */ -.icon-thumbs-up:before { content: '\e823'; } /* '' */ -.icon-thumbs-down:before { content: '\e824'; } /* '' */ -.icon-thumbs-up-alt:before { content: '\e825'; } /* '' */ -.icon-thumbs-down-alt:before { content: '\e826'; } /* '' */ -.icon-download:before { content: '\e827'; } /* '' */ -.icon-upload:before { content: '\e828'; } /* '' */ -.icon-download-cloud:before { content: '\e829'; } /* '' */ -.icon-upload-cloud:before { content: '\e82a'; } /* '' */ -.icon-pencil:before { content: '\e82b'; } /* '' */ -.icon-keyboard:before { content: '\e82c'; } /* '' */ -.icon-gamepad:before { content: '\e82d'; } /* '' */ -.icon-comment:before { content: '\e82e'; } /* '' */ -.icon-chat:before { content: '\e82f'; } /* '' */ -.icon-comment-empty:before { content: '\e830'; } /* '' */ -.icon-chat-empty:before { content: '\e831'; } /* '' */ -.icon-bell:before { content: '\e832'; } /* '' */ -.icon-bell-alt:before { content: '\e833'; } /* '' */ -.icon-attention:before { content: '\e834'; } /* '' */ -.icon-attention-circled:before { content: '\e835'; } /* '' */ -.icon-location:before { content: '\e836'; } /* '' */ -.icon-direction:before { content: '\e837'; } /* '' */ -.icon-trash:before { content: '\e838'; } /* '' */ -.icon-doc:before { content: '\e839'; } /* '' */ -.icon-doc-inv:before { content: '\e83a'; } /* '' */ -.icon-folder-open:before { content: '\e83b'; } /* '' */ -.icon-folder-open-empty:before { content: '\e83c'; } /* '' */ -.icon-rss:before { content: '\e83d'; } /* '' */ -.icon-phone:before { content: '\e842'; } /* '' */ -.icon-menu:before { content: '\e83e'; } /* '' */ -.icon-cog:before { content: '\e83f'; } /* '' */ -.icon-cog-alt:before { content: '\e840'; } /* '' */ -.icon-wrench:before { content: '\e841'; } /* '' */ -.icon-basket:before { content: '\e843'; } /* '' */ -.icon-calendar:before { content: '\e844'; } /* '' */ -.icon-calendar-empty:before { content: '\e845'; } /* '' */ -.icon-mic:before { content: '\e846'; } /* '' */ -.icon-mute:before { content: '\e847'; } /* '' */ -.icon-volume-off:before { content: '\e848'; } /* '' */ -.icon-volume-down:before { content: '\e849'; } /* '' */ -.icon-volume-up:before { content: '\e84a'; } /* '' */ -.icon-search:before { content: '\e801'; } /* '' */ -.icon-lightbulb:before { content: '\e84b'; } /* '' */ -.icon-block:before { content: '\e84d'; } /* '' */ -.icon-zoom-in:before { content: '\e84e'; } /* '' */ -.icon-zoom-out:before { content: '\e84f'; } /* '' */ -.icon-down-open:before { content: '\e850'; } /* '' */ -.icon-left-open:before { content: '\e851'; } /* '' */ -.icon-right-open:before { content: '\e852'; } /* '' */ -.icon-up-open:before { content: '\e853'; } /* '' */ -.icon-angle-circled-left:before { content: '\e854'; } /* '' */ -.icon-angle-circled-right:before { content: '\e855'; } /* '' */ -.icon-angle-circled-up:before { content: '\e856'; } /* '' */ -.icon-angle-circled-down:before { content: '\e857'; } /* '' */ -.icon-angle-double-left:before { content: '\e858'; } /* '' */ -.icon-angle-double-right:before { content: '\e859'; } /* '' */ -.icon-angle-double-up:before { content: '\e85a'; } /* '' */ -.icon-angle-double-down:before { content: '\e85b'; } /* '' */ -.icon-cw:before { content: '\e85c'; } /* '' */ -.icon-arrows-cw:before { content: '\e85d'; } /* '' */ -.icon-target:before { content: '\e85f'; } /* '' */ -.icon-signal:before { content: '\e85e'; } /* '' */ -.icon-award:before { content: '\e860'; } /* '' */ -.icon-desktop:before { content: '\e861'; } /* '' */ -.icon-laptop:before { content: '\e862'; } /* '' */ -.icon-tablet:before { content: '\e863'; } /* '' */ -.icon-mobile:before { content: '\e864'; } /* '' */ -.icon-globe:before { content: '\e865'; } /* '' */ -.icon-sun:before { content: '\e866'; } /* '' */ -.icon-cloud:before { content: '\e867'; } /* '' */ -.icon-flash:before { content: '\e868'; } /* '' */ -.icon-moon:before { content: '\e869'; } /* '' */ -.icon-umbrella:before { content: '\e86a'; } /* '' */ -.icon-flight:before { content: '\e86b'; } /* '' */ -.icon-leaf:before { content: '\e86c'; } /* '' */ -.icon-align-justify:before { content: '\e86d'; } /* '' */ -.icon-list:before { content: '\e86e'; } /* '' */ -.icon-list-bullet:before { content: '\e86f'; } /* '' */ -.icon-list-numbered:before { content: '\e870'; } /* '' */ -.icon-crop:before { content: '\e871'; } /* '' */ -.icon-scissors:before { content: '\e872'; } /* '' */ -.icon-briefcase:before { content: '\e873'; } /* '' */ -.icon-suitcase:before { content: '\e874'; } /* '' */ -.icon-ellipsis:before { content: '\e875'; } /* '' */ -.icon-ellipsis-vert:before { content: '\e876'; } /* '' */ -.icon-qrcode:before { content: '\e877'; } /* '' */ -.icon-barcode:before { content: '\e878'; } /* '' */ -.icon-book:before { content: '\e879'; } /* '' */ -.icon-tint:before { content: '\e87b'; } /* '' */ -.icon-check:before { content: '\e87c'; } /* '' */ -.icon-check-empty:before { content: '\e87d'; } /* '' */ -.icon-circle-empty:before { content: '\e881'; } /* '' */ -.icon-dot-circled:before { content: '\e882'; } /* '' */ -.icon-gift:before { content: '\e87e'; } /* '' */ -.icon-fire:before { content: '\e87f'; } /* '' */ -.icon-magnet:before { content: '\e880'; } /* '' */ -.icon-credit-card:before { content: '\e883'; } /* '' */ -.icon-megaphone:before { content: '\e884'; } /* '' */ -.icon-rocket:before { content: '\e885'; } /* '' */ -.icon-bug:before { content: '\e886'; } /* '' */ -.icon-certificate:before { content: '\e887'; } /* '' */ -.icon-tasks:before { content: '\e888'; } /* '' */ -.icon-filter:before { content: '\e88a'; } /* '' */ -.icon-beaker:before { content: '\e88b'; } /* '' */ -.icon-magic:before { content: '\e88c'; } /* '' */ -.icon-truck:before { content: '\e88d'; } /* '' */ -.icon-gauge:before { content: '\e88f'; } /* '' */ -.icon-spinner:before { content: '\e890'; } /* '' */ -.icon-coffee:before { content: '\e88e'; } /* '' */ -.icon-food:before { content: '\e891'; } /* '' */ -.icon-eraser:before { content: '\e892'; } /* '' */ -.icon-puzzle:before { content: '\e893'; } /* '' */ -.icon-user:before { content: '\e809'; } /* '' */ -.icon-users:before { content: '\e897'; } /* '' */ -.icon-user-add:before { content: '\e898'; } /* '' */ -.icon-clock:before { content: '\e84c'; } /* '' */ \ No newline at end of file diff --git a/src/less/form.less b/src/less/form.less deleted file mode 100644 index 72a0a9a..0000000 --- a/src/less/form.less +++ /dev/null @@ -1,125 +0,0 @@ -//** sq-form -//** 表单元素 - -.sq-form{ - //======================================== - // Base Style - // 基础样式 - //======================================== - margin:1rem 0; - - label{ - display:block; margin:0 0 1rem 0; - -webkit-user-select:none; - -moz-user-select:none; - -ms-user-select:none; - } - - // radio & checkbox 容器 - .radio, - .checkbox{ - min-width:20px; margin-bottom:1.5rem; padding:0 20px 0 21px; // padding-left 为 21 px 是为了修复 radio 显示不全的问题。 - input[type="radio"], - input[type="checkbox"], - .sq-checkbox, - .sq-radio{ margin-left:-20px;} - &.inline{ display:inline-block; float:left;} - } - // 原生 radio & checkbox - input[type="checkbox"], - input[type="radio"]{ margin:2px .7rem 0 0;} - // 优化 radio & checkbox - .sq-checkbox, - .sq-radio{ - display:inline-block; position:relative; width:21px; height:21px; margin-right:.7rem; text-align:center; vertical-align:middle; overflow:hidden; - &>span{ .overspread(); background:#fff; border:2px solid #ccc; border-radius:3px; text-indent:-999em;} - input[type=checkbox] { - visibility: hidden; - } - input[type=checkbox]:checked + span { - background:rgba(76,176,80,.9); border-color:#4CAF50; color:#fff; text-indent:0; - } - input[type=radio]{ - visibility:hidden; - } - input[type=radio]:checked + span{ - background:rgba(76,176,80,.6); border-color:#4CAF50; color:#fff; text-indent:0; - } - } - // 优化 radio - .sq-radio{ - & > span{ border-radius:999em;} - } - - // 输入框 & 选择控件 - input[type="text"], - input[type="search"], - input[type="password"], - input[type="number"], - input[type="email"], - input[type="tel"], - textarea, - select{ - width:100%; height:36px; padding:4px 6px; margin-bottom:10px; background-color:#fff; border:1px solid #ccc; border-radius:3px; outline:none; line-height:1; - box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075); - &::-webkit-input-placeholder{ color:#999;} - } - textarea{ min-height:88px;} - // 修复 * 无法匹配 search 的问题 - input[type="search"]{ - -moz-box-sizing:border-box; - -webkit-box-sizing:border-box; - box-sizing:border-box; - } - - .form-item{ clear:both;} // 保证 checkbox & radio 排版正确 - .help-block{ display:block; margin-top:-5px; margin-bottom:10px; color:#999; font-size:1.2rem; clear:both;} - - // 行内表单布局 - &.inline{ - .display-box; .box-orient(horizontal); .box-align(center); overflow:hidden; - select, - input{ margin-bottom:0;} - label{ margin:0 .5rem; padding-right:0; line-height:1;} - input[type="submit"], - input[type="button"]{ - width:100%; - } - .form-item{ - display:block; .box-flex(1); padding-right:4px; - &:last-of-type{ padding-right:0;} - } - } - - // 水平表单布局 - &.horizontal{ - .form-item{ - .display-box; .box-orient(horizontal); .box-align(center); - &.align-top{ - .box-align(start); - label:first-of-type{ padding-top:4px;} - } - } - - label{ min-width:3em;} - - input[type="text"], - input[type="search"], - input[type="password"], - input[type="number"], - input[type="email"], - input[type="tel"], - textarea, - select{ - display:block; width:100%; .box-flex(1); margin-right:.5rem; - &+input{ margin-left:.5rem;} - &:last-of-type{ margin-right:0;} - } - - .wd-4, - .wd-6, - .wd-8{ width:9em; text-align:right;} - .wd-4{ width:5em;} - .wd-6{ width:7em;} - } -} \ No newline at end of file diff --git a/src/less/list.less b/src/less/list.less deleted file mode 100644 index 1141fa6..0000000 --- a/src/less/list.less +++ /dev/null @@ -1,156 +0,0 @@ -//** Sq-list -//** 列表 - -.sq-list{ - //======================================== - // 基类 - //======================================== - .group-hd, - .list-item{ - display:block; position:relative; padding:@list-padding - 1 @list-padding; border:1px solid transparent; border-width:1px 0; font-size:@content-font-size; - & + .group-hd, - & + .list-item{ margin-top:-1px;} - } - // 标题 - .tit{ display:block;} - // 图标、截图 - .icon, - .thumb{ - display:block; position:relative; - img{ - display:block; width:100%; - /*height:100%;*/ // 小米浏览器下 Img 会撑开容器 - } - .sq-badge{ position:absolute; top:-5px; left:-5px;} - } - .icon{ width:@list-icon-width; height:@list-icon-height;} - // 摘要 - .digest{ margin-top:.5rem; margin-bottom:0;} - // 点击区域 - .linked-Range{ .overspread; z-index:11; cursor:pointer;} - // 对齐方式-垂直居中 - .v-middle{ .display-box; .box-align(center);} - // 文本显示-单行显示 - .row{ display:block; max-height:1.4em; line-height:1.4; overflow:hidden;} - .row-ellipsis{ display:block; white-space:nowrap; text-overflow:ellipsis; overflow:hidden;} - - //======================================== - // Text - // 文字列表,通常只包含文字、徽章或少量控件 - //======================================== - &.text{ - .sq-badge{ margin:-2px 0; margin-left:1rem;} // 修正 sq-badge 过高将 list-item 撑开的问题 - .data{ margin-left:1rem;} - .sq-icon:not(.fr){ display:inline-block; text-align:center; width:48px; margin:-3px 0 -3px -15px;} - } - - - //======================================== - // Media - // 媒体列表,布局复杂、控件丰富的列表 - //======================================== - &.media{ - .list-item{ .display-box; .box-orient(horizontal);} - .desc{ - .box-flex(1); margin:0 @list-padding; - .tit{ margin:0; margin-bottom:.5rem; font-size:@title-font-size;} - .digest{ margin:0; margin-bottom:.5rem; font-size:@content-font-size;} - :last-child{ - &.tit, - &.digest{ margin-bottom:0;} - } - } - :first-child{ - &.desc{ margin-left:0;} - } - .extend{ - position:relative; z-index:12; letter-spacing:-4px; - /*display:inline-block;*/ // 删除原因:会影响 .v-middle 布局 - .sq-btn{ - margin:0; letter-spacing:0; - &.block{ margin-bottom:5px;} - &:not(.block){ margin-right:5px;} - } - :last-child{ - &.sq-btn{ margin-bottom:0; margin-right:0;} - } - } - &.col2, - &.col3, - &.col4{ - .list-item{ padding:@list-padding 10px; margin-top:0; margin-bottom:-1px;} - .desc{ margin-left:10px;} - } - } - - - //======================================== - // Tile - // 平布列表 - //======================================== - &.tile{ - letter-spacing:-4px; - - .list-item{ float:left; padding:10px 5px; text-align:center; letter-spacing:0;} - .icon{ margin:0 auto;} - .tit{ display:block; margin:5px 0;} - - &.col2, - &.col3, - &.col4, - &.col5, - &.col6{ - .list-item{ float:none; display:inline-block; vertical-align:top; margin-top:0; border:none;} - // 为解决高度不一的排版问题,重写 col2-clo6,不使用 float 布局。 - } - } - - /*&.thumbnails{ - @thumbnail-space:7px; // 缩略图容器间距 - letter-spacing:-4px; // 修正 inline-block 模式下换行带来的空隙问题 - margin-left:@thumbnail-space; - &.col2, - &.col3, - &.col4, - &.col5, - &.col6{ - li{ float:none; display:inline-block; vertical-align:top;} - // 为解决高度不一的排版问题,重写 col2-clo6,不使用 float 布局。 - } - li{ margin:@thumbnail-space 0; padding-right:@thumbnail-space; letter-spacing:0;} - img{ display:block; width:100%;} - - .content{ .border-box(); font-size:@content-font-size; overflow:hidden;} - .title{ margin:5px 0;} - .caption{ margin:5px 0; line-height:1.3em;} - .extend{ margin:5px 0;} - }*/ - - // extend:排行列表 - /*&.top10{ - dt{ position:relative;} - - li:nth-child(1) dt, - li:nth-child(2) dt, - li:nth-child(3) dt, - li:nth-child(4) dt, - li:nth-child(5) dt, - li:nth-child(6) dt, - li:nth-child(7) dt, - li:nth-child(8) dt, - li:nth-child(9) dt{ text-indent:1em;} - li:nth-child(10) dt{ text-indent:1.6em;} - - dt::before{ position:absolute; top:0; left:-1em;} - li:nth-child(1) dt::before{ content:"1.";} - li:nth-child(2) dt::before{ content:"2.";} - li:nth-child(3) dt::before{ content:"3.";} - li:nth-child(4) dt::before{ content:"4.";} - li:nth-child(5) dt::before{ content:"5.";} - li:nth-child(6) dt::before{ content:"6.";} - li:nth-child(7) dt::before{ content:"7.";} - li:nth-child(8) dt::before{ content:"8.";} - li:nth-child(9) dt::before{ content:"9.";} - li:nth-child(10) dt::before{ content:"10."; left:-1.6em;} - }*/ -} \ No newline at end of file diff --git a/src/less/loadmore.less b/src/less/loadmore.less deleted file mode 100644 index 08698a7..0000000 --- a/src/less/loadmore.less +++ /dev/null @@ -1,29 +0,0 @@ -//** sq-loadmore -//** Loadmore 插件样式 - -.sq-loadMore-state{ - position:relative; height:40px; line-height:40px; color:@default-font-color; text-align:center; cursor:pointer; overflow:hidden; - .state-icon{ - display:inline-block; - &::before{ font-family:"fontello"; font-style:normal; font-weight:normal; speak:none;} - } - .state-txt{ padding:0 8px;} - &.error{} - &.click{ - .state-icon::before{ content:'\e85b';} - } - &.no-more{} - &.loading{ - .state-icon{ position:relative; top:-1px; -webkit-animation: spin 2s infinite linear;} - .state-icon::before{ content:'\e85c';} - } -} - -/*@-webkit-keyframes spin { - 0% { - -webkit-transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - } -}*/ diff --git a/src/less/mixins.less b/src/less/mixins.less deleted file mode 100644 index 31db41c..0000000 --- a/src/less/mixins.less +++ /dev/null @@ -1,63 +0,0 @@ -//** LESS Mixin -//** 定义 less 混合模块 - -//** @changelog -//** 1.0.1 + 新增三角箭头(4个方向) -//** 1.0.0 + 新建 - -.clearfix() { - &:before, - &:after { - content: " "; - display: table; - } - &:after { - clear: both; - } -} - -//** 盒模型 -/*.border-box (){ - /*//** 当计算宽度时包含 padding、border - -webkit-box-sizing:border-box; - //-moz-box-sizing:border-box; - //box-sizing:border-box; -}*/ -.display-box (){ - display:-webkit-box; - //display: -moz-box; - //display: box; -} -.box-orient (@param){ - //** horizontal | vertical | inherit - -webkit-box-orient:@param; -} -.box-pack (@param){ - //** 水平排列方式 - //** start | end | center | justify - -webkit-box-pack:@param; -} -.box-align (@param){ - //** 垂直排列方式 - //** start | end | center | baseline | stretch - -webkit-box-align:@param; -} -.box-flex (@param){ - //** 0 | 任意整数 - -webkit-box-flex:@param; -} - -//** 绝对布局平铺 -.overspread (@top: 0, @right: 0, @bottom: 0, @left: 0){ - position:absolute; - top: @top; - right: @right; - bottom: @bottom; - left: @left; -} - -//** 三角箭头 -.sq-arr-up (@size, @color){ width:0; height:0; border:@size solid transparent; border-bottom-color:@color;} -.sq-arr-right (@size, @color){ width:0; height:0; border:@size solid transparent; border-right-color:@color;} -.sq-arr-down (@size, @color){ width:0; height:0; border:@size solid transparent; border-down-color:@color;} -.sq-arr-left (@size, @color){ width:0; height:0; border:@size solid transparent; border-left-color:@color;} \ No newline at end of file diff --git a/src/less/modal.less b/src/less/modal.less deleted file mode 100644 index 6519009..0000000 --- a/src/less/modal.less +++ /dev/null @@ -1,11 +0,0 @@ -//** sq-modal -//** Modal 弹出窗口 - -.sq-modal{ - @radius: 5px; - background:#fff; border-radius:@radius; - .close-btn{ position:absolute; top:0; right:0; width:30px; height:30px; background:#d7d7d7; border-radius:3px; text-align:center; line-height:30px; cursor:pointer; z-index:3;} - .ok, - .cancel{ float:left; width:50%; height:40px; background:#efefef; border-top:1px solid #d7d7d7; border-radius:0 0 @radius 0; line-height:40px; text-align:center; cursor:pointer;} - .ok{ border-right:1px solid #d7d7d7; border-radius:0 0 0 @radius;} -} \ No newline at end of file diff --git a/src/less/panel.less b/src/less/panel.less deleted file mode 100644 index a9406c0..0000000 --- a/src/less/panel.less +++ /dev/null @@ -1,12 +0,0 @@ -//** sq-panel -//** Panel �����ʽ - -.sq-panel{ - background:#333; - .close-btn{ position:absolute; top:0; left:0; width:30px; height:30px; background:#d7d7d7; border-radius:3px; text-align:center; line-height:30px; cursor:pointer; z-index:3;} -} - -.sq-showPanel{-webkit-animation-name:showPanel;} -.sq-hidePanel{-webkit-animation-name:hidePanel;} -.sq-hideWrap{-webkit-animation-name:hideWrap;} -.sq-showWrap{-webkit-animation-name:showWrap;} \ No newline at end of file diff --git a/src/less/reset.less b/src/less/reset.less deleted file mode 100644 index 570bc7b..0000000 --- a/src/less/reset.less +++ /dev/null @@ -1,24 +0,0 @@ -//** Reset -//** CSS 属性重置 - -@charset "UTF-8"; -html{ color:@default-font-color; font-size:@default-font-size; background:#fff;} -body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td,aside,article,figcaption,figure,header,hgroup,menu,nav,section{ margin:0;padding:0;} -body{ font-family:@font-family; color:@default-font-color; -webkit-text-size-adjust:none;} -table{ border-collapse:collapse; border-spacing:0;} -fieldset,img{ border:0;} -address,caption,cite,code,dfn,em,strong,th,var{ font-style:normal; font-weight:normal;} -ol,ul{ list-style:none;} -a{ text-decoration:none;} -caption,th{ text-align:left;} -h1,h2,h3,h4,h5,h6{ font-size:100%;} -q:before,q:after{ content:'';} -abbr,acronym{ border:0; font-variant:normal;} -sup{ vertical-align:text-top;} -sub{ vertical-align:text-bottom;} -button,input,select,textarea{ font-size:100%; vertical-align:middle;} -legend{ color:@default-font-color;} -//@fix Android 2.3 以前版本不支持 HTML5 标签问题 -header,menu,nav,section,article,aside{ display:block;} -//@add 全局无意义字符强制折行 -body{ word-wrap:break-word; break-word:break-all;} \ No newline at end of file diff --git a/src/less/squirrel.less b/src/less/squirrel.less deleted file mode 100644 index 776ee4a..0000000 --- a/src/less/squirrel.less +++ /dev/null @@ -1,28 +0,0 @@ -//** Squirrel LESS - -//** Core variables and mixins -@import "variables"; -@import "mixins"; - -//** Normalize and Core -@import "normalize"; -@import "common"; - -//** Components -@import "badge"; -@import "bars"; -@import "button"; -@import "grid"; -@import "font-icon"; -@import "form"; -@import "list"; - -//** Plugins -@import "loadmore"; -@import "panel"; -@import "modal"; -@import "suggest"; -@import "tabs"; - -//** Theme -@import "default-theme"; \ No newline at end of file diff --git a/src/less/suggest.less b/src/less/suggest.less deleted file mode 100644 index 7ffb297..0000000 --- a/src/less/suggest.less +++ /dev/null @@ -1,27 +0,0 @@ -//** sq-suggest-panel -//** Suggest �����ʽ - -.suggest-panel{ - display:none; position:absolute; top:44px; left:0px; right:0px; background:#f9f9f9; border:1px solid #d7d7d7; z-index:1; box-shadow:0 6px 9px #999; - li{ - &:last-of-type{ border-bottom:none;} - } - .sq-list{ - border-bottom:1px solid #d7d7d7; - li{ padding:5px 10px;} - .icon{ width:35px; height:35px;} - img{ width:35px; height:35px;} - .description{ - margin-top:1px; - dt{ margin-bottom:2px;} - dd{color:#999;} - em{ margin-left:8px; padding-left:8px; border-left:1px solid #ddd;} - } - .sq-btn{ width:45px;} - .trigger-area{ right:80px;} - } - .keyword{ - height:30px; padding:0 10px; line-height:30px; border-bottom:1px solid #d7d7d7; - a{ display:block; height:30px; line-height:30px; color:#555; overflow:hidden; text-overflow:ellipsis;} - } -} \ No newline at end of file diff --git a/src/less/variables.less b/src/less/variables.less deleted file mode 100644 index 710511b..0000000 --- a/src/less/variables.less +++ /dev/null @@ -1,43 +0,0 @@ -//** LESS Variable -//** 定义 less 变量 - -//** 文字设置 -//@font-family:"Helvetica Neue", HelveticaNeue, "Helvetica-Neue", Helvetica, "\u5FAE\u8F6F\u96C5\u9ED1"; -@font-family: "Segoe UI", Helvetica, "Lucida Grande", Arial, "Microsoft YaHei", FreeSans, Arimo, "Droid Sans","wenquanyi micro hei","Hiragino Sans GB", "Hiragino Sans GB W3", Arial, sans-serif; -@default-font-color:#333; - -@default-font-size:1.6rem; /* =16px */ -@head-font-size:1.8rem; -@title-font-size:1.6rem; -@content-font-size:1.4rem; -@description-font-size:1.2rem; -@badge-font-size:1.2rem; -@form-base-font-size:1.4rem; - -@icon-x2-size:2rem; -@icon-x3-size:2.7rem; -@icon-x4-size:4rem; -@icon-x5-size:5rem; - -@magic-line-height:1.428571429; - -//** Icon 图标 -@icon-font-path:"../fonts/"; -@icon-font-name:"sq-fontello"; - -//** 栅格 -@screen-sm-min:768px; -@gutter:15px; -@grid-columns:12; -@grid-gutter-width:30px; - -//** 布局 -@interspace:16px; - -//** 组件-列表 -@list-icon-width:60px; -@list-icon-height:60px; -@list-padding:16px; - -//** 组件-栏 -@bar-normal-height:49px; \ No newline at end of file diff --git a/src/js/core/core.js b/src/scripts/core/core.js similarity index 100% rename from src/js/core/core.js rename to src/scripts/core/core.js diff --git a/src/scripts/core/iscroll.js b/src/scripts/core/iscroll.js new file mode 100644 index 0000000..4a9a4aa --- /dev/null +++ b/src/scripts/core/iscroll.js @@ -0,0 +1,2013 @@ +/* iScroll v5.1.3 ~ (c) 2008-2014 Matteo Spinelli ~ http://cubiq.org/license */ +/* jshint ignore:start */ +(function (window, document, Math) { +var rAF = window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + window.msRequestAnimationFrame || + function (callback) { window.setTimeout(callback, 1000 / 60); }; + +var utils = (function () { + var me = {}; + + var _elementStyle = document.createElement('div').style; + var _vendor = (function () { + var vendors = ['t', 'webkitT', 'MozT', 'msT', 'OT'], + transform, + i = 0, + l = vendors.length; + + for ( ; i < l; i++ ) { + transform = vendors[i] + 'ransform'; + if ( transform in _elementStyle ) return vendors[i].substr(0, vendors[i].length-1); + } + + return false; + })(); + + function _prefixStyle (style) { + if ( _vendor === false ) return false; + if ( _vendor === '' ) return style; + return _vendor + style.charAt(0).toUpperCase() + style.substr(1); + } + + me.getTime = Date.now || function getTime () { return new Date().getTime(); }; + + me.extend = function (target, obj) { + for ( var i in obj ) { + target[i] = obj[i]; + } + }; + + me.addEvent = function (el, type, fn, capture) { + el.addEventListener(type, fn, !!capture); + }; + + me.removeEvent = function (el, type, fn, capture) { + el.removeEventListener(type, fn, !!capture); + }; + + me.prefixPointerEvent = function (pointerEvent) { + return window.MSPointerEvent ? + 'MSPointer' + pointerEvent.charAt(9).toUpperCase() + pointerEvent.substr(10): + pointerEvent; + }; + + me.momentum = function (current, start, time, lowerMargin, wrapperSize, deceleration) { + var distance = current - start, + speed = Math.abs(distance) / time, + destination, + duration; + + deceleration = deceleration === undefined ? 0.0006 : deceleration; + + destination = current + ( speed * speed ) / ( 2 * deceleration ) * ( distance < 0 ? -1 : 1 ); + duration = speed / deceleration; + + if ( destination < lowerMargin ) { + destination = wrapperSize ? lowerMargin - ( wrapperSize / 2.5 * ( speed / 8 ) ) : lowerMargin; + distance = Math.abs(destination - current); + duration = distance / speed; + } else if ( destination > 0 ) { + destination = wrapperSize ? wrapperSize / 2.5 * ( speed / 8 ) : 0; + distance = Math.abs(current) + destination; + duration = distance / speed; + } + + return { + destination: Math.round(destination), + duration: duration + }; + }; + + var _transform = _prefixStyle('transform'); + + me.extend(me, { + hasTransform: _transform !== false, + hasPerspective: _prefixStyle('perspective') in _elementStyle, + hasTouch: 'ontouchstart' in window, + hasPointer: window.PointerEvent || window.MSPointerEvent, // IE10 is prefixed + hasTransition: _prefixStyle('transition') in _elementStyle + }); + + // This should find all Android browsers lower than build 535.19 (both stock browser and webview) + me.isBadAndroid = /Android /.test(window.navigator.appVersion) && !(/Chrome\/\d/.test(window.navigator.appVersion)); + + me.extend(me.style = {}, { + transform: _transform, + transitionTimingFunction: _prefixStyle('transitionTimingFunction'), + transitionDuration: _prefixStyle('transitionDuration'), + transitionDelay: _prefixStyle('transitionDelay'), + transformOrigin: _prefixStyle('transformOrigin') + }); + + me.hasClass = function (e, c) { + var re = new RegExp("(^|\\s)" + c + "(\\s|$)"); + return re.test(e.className); + }; + + me.addClass = function (e, c) { + if ( me.hasClass(e, c) ) { + return; + } + + var newclass = e.className.split(' '); + newclass.push(c); + e.className = newclass.join(' '); + }; + + me.removeClass = function (e, c) { + if ( !me.hasClass(e, c) ) { + return; + } + + var re = new RegExp("(^|\\s)" + c + "(\\s|$)", 'g'); + e.className = e.className.replace(re, ' '); + }; + + me.offset = function (el) { + var left = -el.offsetLeft, + top = -el.offsetTop; + + // jshint -W084 + while (el = el.offsetParent) { + left -= el.offsetLeft; + top -= el.offsetTop; + } + // jshint +W084 + + return { + left: left, + top: top + }; + }; + + me.preventDefaultException = function (el, exceptions) { + for ( var i in exceptions ) { + if ( exceptions[i].test(el[i]) ) { + return true; + } + } + + return false; + }; + + me.extend(me.eventType = {}, { + touchstart: 1, + touchmove: 1, + touchend: 1, + + mousedown: 2, + mousemove: 2, + mouseup: 2, + + pointerdown: 3, + pointermove: 3, + pointerup: 3, + + MSPointerDown: 3, + MSPointerMove: 3, + MSPointerUp: 3 + }); + + me.extend(me.ease = {}, { + quadratic: { + style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + fn: function (k) { + return k * ( 2 - k ); + } + }, + circular: { + style: 'cubic-bezier(0.1, 0.57, 0.1, 1)', // Not properly "circular" but this looks better, it should be (0.075, 0.82, 0.165, 1) + fn: function (k) { + return Math.sqrt( 1 - ( --k * k ) ); + } + }, + back: { + style: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)', + fn: function (k) { + var b = 4; + return ( k = k - 1 ) * k * ( ( b + 1 ) * k + b ) + 1; + } + }, + bounce: { + style: '', + fn: function (k) { + if ( ( k /= 1 ) < ( 1 / 2.75 ) ) { + return 7.5625 * k * k; + } else if ( k < ( 2 / 2.75 ) ) { + return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75; + } else if ( k < ( 2.5 / 2.75 ) ) { + return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375; + } else { + return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375; + } + } + }, + elastic: { + style: '', + fn: function (k) { + var f = 0.22, + e = 0.4; + + if ( k === 0 ) { return 0; } + if ( k == 1 ) { return 1; } + + return ( e * Math.pow( 2, - 10 * k ) * Math.sin( ( k - f / 4 ) * ( 2 * Math.PI ) / f ) + 1 ); + } + } + }); + + me.tap = function (e, eventName) { + var ev = document.createEvent('Event'); + ev.initEvent(eventName, true, true); + ev.pageX = e.pageX; + ev.pageY = e.pageY; + e.target.dispatchEvent(ev); + }; + + me.click = function (e) { + var target = e.target, + ev; + + if ( !(/(SELECT|INPUT|TEXTAREA)/i).test(target.tagName) ) { + ev = document.createEvent('MouseEvents'); + ev.initMouseEvent('click', true, true, e.view, 1, + target.screenX, target.screenY, target.clientX, target.clientY, + e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, + 0, null); + + ev._constructed = true; + target.dispatchEvent(ev); + } + }; + + return me; +})(); + +function IScroll (el, options) { + this.wrapper = typeof el == 'string' ? document.querySelector(el) : el; + this.scroller = this.wrapper.children[0]; + this.scrollerStyle = this.scroller.style; // cache style for better performance + + this.options = { + + resizeScrollbars: true, + + mouseWheelSpeed: 20, + + snapThreshold: 0.334, + +// INSERT POINT: OPTIONS + + startX: 0, + startY: 0, + scrollY: true, + directionLockThreshold: 5, + momentum: true, + + bounce: true, + bounceTime: 600, + bounceEasing: '', + + preventDefault: true, + preventDefaultException: { tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/ }, + + HWCompositing: true, + useTransition: true, + useTransform: true + }; + + for ( var i in options ) { + this.options[i] = options[i]; + } + + // Normalize options + this.translateZ = this.options.HWCompositing && utils.hasPerspective ? ' translateZ(0)' : ''; + + this.options.useTransition = utils.hasTransition && this.options.useTransition; + this.options.useTransform = utils.hasTransform && this.options.useTransform; + + this.options.eventPassthrough = this.options.eventPassthrough === true ? 'vertical' : this.options.eventPassthrough; + this.options.preventDefault = !this.options.eventPassthrough && this.options.preventDefault; + + // If you want eventPassthrough I have to lock one of the axes + this.options.scrollY = this.options.eventPassthrough == 'vertical' ? false : this.options.scrollY; + this.options.scrollX = this.options.eventPassthrough == 'horizontal' ? false : this.options.scrollX; + + // With eventPassthrough we also need lockDirection mechanism + this.options.freeScroll = this.options.freeScroll && !this.options.eventPassthrough; + this.options.directionLockThreshold = this.options.eventPassthrough ? 0 : this.options.directionLockThreshold; + + this.options.bounceEasing = typeof this.options.bounceEasing == 'string' ? utils.ease[this.options.bounceEasing] || utils.ease.circular : this.options.bounceEasing; + + this.options.resizePolling = this.options.resizePolling === undefined ? 60 : this.options.resizePolling; + + if ( this.options.tap === true ) { + this.options.tap = 'tap'; + } + + if ( this.options.shrinkScrollbars == 'scale' ) { + this.options.useTransition = false; + } + + this.options.invertWheelDirection = this.options.invertWheelDirection ? -1 : 1; + +// INSERT POINT: NORMALIZATION + + // Some defaults + this.x = 0; + this.y = 0; + this.directionX = 0; + this.directionY = 0; + this._events = {}; + +// INSERT POINT: DEFAULTS + + this._init(); + this.refresh(); + + this.scrollTo(this.options.startX, this.options.startY); + this.enable(); +} + +IScroll.prototype = { + version: '5.1.3', + + _init: function () { + this._initEvents(); + + if ( this.options.scrollbars || this.options.indicators ) { + this._initIndicators(); + } + + if ( this.options.mouseWheel ) { + this._initWheel(); + } + + if ( this.options.snap ) { + this._initSnap(); + } + + if ( this.options.keyBindings ) { + this._initKeys(); + } + +// INSERT POINT: _init + + }, + + destroy: function () { + this._initEvents(true); + + this._execEvent('destroy'); + }, + + _transitionEnd: function (e) { + if ( e.target != this.scroller || !this.isInTransition ) { + return; + } + + this._transitionTime(); + if ( !this.resetPosition(this.options.bounceTime) ) { + this.isInTransition = false; + this._execEvent('scrollEnd'); + } + }, + + _start: function (e) { + // React to left mouse button only + if ( utils.eventType[e.type] != 1 ) { + if ( e.button !== 0 ) { + return; + } + } + + if ( !this.enabled || (this.initiated && utils.eventType[e.type] !== this.initiated) ) { + return; + } + + if ( this.options.preventDefault && !utils.isBadAndroid && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) { + e.preventDefault(); + } + + var point = e.touches ? e.touches[0] : e, + pos; + + this.initiated = utils.eventType[e.type]; + this.moved = false; + this.distX = 0; + this.distY = 0; + this.directionX = 0; + this.directionY = 0; + this.directionLocked = 0; + + this._transitionTime(); + + this.startTime = utils.getTime(); + + if ( this.options.useTransition && this.isInTransition ) { + this.isInTransition = false; + pos = this.getComputedPosition(); + this._translate(Math.round(pos.x), Math.round(pos.y)); + this._execEvent('scrollEnd'); + } else if ( !this.options.useTransition && this.isAnimating ) { + this.isAnimating = false; + this._execEvent('scrollEnd'); + } + + this.startX = this.x; + this.startY = this.y; + this.absStartX = this.x; + this.absStartY = this.y; + this.pointX = point.pageX; + this.pointY = point.pageY; + + this._execEvent('beforeScrollStart'); + }, + + _move: function (e) { + if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) { + return; + } + + if ( this.options.preventDefault ) { // increases performance on Android? TODO: check! + e.preventDefault(); + } + + var point = e.touches ? e.touches[0] : e, + deltaX = point.pageX - this.pointX, + deltaY = point.pageY - this.pointY, + timestamp = utils.getTime(), + newX, newY, + absDistX, absDistY; + + this.pointX = point.pageX; + this.pointY = point.pageY; + + this.distX += deltaX; + this.distY += deltaY; + absDistX = Math.abs(this.distX); + absDistY = Math.abs(this.distY); + + // We need to move at least 10 pixels for the scrolling to initiate + if ( timestamp - this.endTime > 300 && (absDistX < 10 && absDistY < 10) ) { + return; + } + + // If you are scrolling in one direction lock the other + if ( !this.directionLocked && !this.options.freeScroll ) { + if ( absDistX > absDistY + this.options.directionLockThreshold ) { + this.directionLocked = 'h'; // lock horizontally + } else if ( absDistY >= absDistX + this.options.directionLockThreshold ) { + this.directionLocked = 'v'; // lock vertically + } else { + this.directionLocked = 'n'; // no lock + } + } + + if ( this.directionLocked == 'h' ) { + if ( this.options.eventPassthrough == 'vertical' ) { + e.preventDefault(); + } else if ( this.options.eventPassthrough == 'horizontal' ) { + this.initiated = false; + return; + } + + deltaY = 0; + } else if ( this.directionLocked == 'v' ) { + if ( this.options.eventPassthrough == 'horizontal' ) { + e.preventDefault(); + } else if ( this.options.eventPassthrough == 'vertical' ) { + this.initiated = false; + return; + } + + deltaX = 0; + } + + deltaX = this.hasHorizontalScroll ? deltaX : 0; + deltaY = this.hasVerticalScroll ? deltaY : 0; + + newX = this.x + deltaX; + newY = this.y + deltaY; + + // Slow down if outside of the boundaries + if ( newX > 0 || newX < this.maxScrollX ) { + newX = this.options.bounce ? this.x + deltaX / 3 : newX > 0 ? 0 : this.maxScrollX; + } + if ( newY > 0 || newY < this.maxScrollY ) { + newY = this.options.bounce ? this.y + deltaY / 3 : newY > 0 ? 0 : this.maxScrollY; + } + + this.directionX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0; + this.directionY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0; + + if ( !this.moved ) { + this._execEvent('scrollStart'); + } + + this.moved = true; + + this._translate(newX, newY); + +/* REPLACE START: _move */ + + if ( timestamp - this.startTime > 300 ) { + this.startTime = timestamp; + this.startX = this.x; + this.startY = this.y; + } + +/* REPLACE END: _move */ + + }, + + _end: function (e) { + if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) { + return; + } + + if ( this.options.preventDefault && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) { + e.preventDefault(); + } + + var point = e.changedTouches ? e.changedTouches[0] : e, + momentumX, + momentumY, + duration = utils.getTime() - this.startTime, + newX = Math.round(this.x), + newY = Math.round(this.y), + distanceX = Math.abs(newX - this.startX), + distanceY = Math.abs(newY - this.startY), + time = 0, + easing = ''; + + this.isInTransition = 0; + this.initiated = 0; + this.endTime = utils.getTime(); + + // reset if we are outside of the boundaries + if ( this.resetPosition(this.options.bounceTime) ) { + return; + } + + this.scrollTo(newX, newY); // ensures that the last position is rounded + + // we scrolled less than 10 pixels + if ( !this.moved ) { + if ( this.options.tap ) { + utils.tap(e, this.options.tap); + } + + if ( this.options.click ) { + utils.click(e); + } + + this._execEvent('scrollCancel'); + return; + } + + if ( this._events.flick && duration < 200 && distanceX < 100 && distanceY < 100 ) { + this._execEvent('flick'); + return; + } + + // start momentum animation if needed + if ( this.options.momentum && duration < 300 ) { + momentumX = this.hasHorizontalScroll ? utils.momentum(this.x, this.startX, duration, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : { destination: newX, duration: 0 }; + momentumY = this.hasVerticalScroll ? utils.momentum(this.y, this.startY, duration, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : { destination: newY, duration: 0 }; + newX = momentumX.destination; + newY = momentumY.destination; + time = Math.max(momentumX.duration, momentumY.duration); + this.isInTransition = 1; + } + + + if ( this.options.snap ) { + var snap = this._nearestSnap(newX, newY); + this.currentPage = snap; + time = this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(newX - snap.x), 1000), + Math.min(Math.abs(newY - snap.y), 1000) + ), 300); + newX = snap.x; + newY = snap.y; + + this.directionX = 0; + this.directionY = 0; + easing = this.options.bounceEasing; + } + +// INSERT POINT: _end + + if ( newX != this.x || newY != this.y ) { + // change easing function when scroller goes out of the boundaries + if ( newX > 0 || newX < this.maxScrollX || newY > 0 || newY < this.maxScrollY ) { + easing = utils.ease.quadratic; + } + + this.scrollTo(newX, newY, time, easing); + return; + } + + this._execEvent('scrollEnd'); + }, + + _resize: function () { + var that = this; + + clearTimeout(this.resizeTimeout); + + this.resizeTimeout = setTimeout(function () { + that.refresh(); + }, this.options.resizePolling); + }, + + resetPosition: function (time) { + var x = this.x, + y = this.y; + + time = time || 0; + + if ( !this.hasHorizontalScroll || this.x > 0 ) { + x = 0; + } else if ( this.x < this.maxScrollX ) { + x = this.maxScrollX; + } + + if ( !this.hasVerticalScroll || this.y > 0 ) { + y = 0; + } else if ( this.y < this.maxScrollY ) { + y = this.maxScrollY; + } + + if ( x == this.x && y == this.y ) { + return false; + } + + this.scrollTo(x, y, time, this.options.bounceEasing); + + return true; + }, + + disable: function () { + this.enabled = false; + }, + + enable: function () { + this.enabled = true; + }, + + refresh: function () { + var rf = this.wrapper.offsetHeight; // Force reflow + + this.wrapperWidth = this.wrapper.clientWidth; + this.wrapperHeight = this.wrapper.clientHeight; + +/* REPLACE START: refresh */ + + this.scrollerWidth = this.scroller.offsetWidth; + this.scrollerHeight = this.scroller.offsetHeight; + + this.maxScrollX = this.wrapperWidth - this.scrollerWidth; + this.maxScrollY = this.wrapperHeight - this.scrollerHeight; + +/* REPLACE END: refresh */ + + this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0; + this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0; + + if ( !this.hasHorizontalScroll ) { + this.maxScrollX = 0; + this.scrollerWidth = this.wrapperWidth; + } + + if ( !this.hasVerticalScroll ) { + this.maxScrollY = 0; + this.scrollerHeight = this.wrapperHeight; + } + + this.endTime = 0; + this.directionX = 0; + this.directionY = 0; + + this.wrapperOffset = utils.offset(this.wrapper); + + this._execEvent('refresh'); + + this.resetPosition(); + +// INSERT POINT: _refresh + + }, + + on: function (type, fn) { + if ( !this._events[type] ) { + this._events[type] = []; + } + + this._events[type].push(fn); + }, + + off: function (type, fn) { + if ( !this._events[type] ) { + return; + } + + var index = this._events[type].indexOf(fn); + + if ( index > -1 ) { + this._events[type].splice(index, 1); + } + }, + + _execEvent: function (type) { + if ( !this._events[type] ) { + return; + } + + var i = 0, + l = this._events[type].length; + + if ( !l ) { + return; + } + + for ( ; i < l; i++ ) { + this._events[type][i].apply(this, [].slice.call(arguments, 1)); + } + }, + + scrollBy: function (x, y, time, easing) { + x = this.x + x; + y = this.y + y; + time = time || 0; + + this.scrollTo(x, y, time, easing); + }, + + scrollTo: function (x, y, time, easing) { + easing = easing || utils.ease.circular; + + this.isInTransition = this.options.useTransition && time > 0; + + if ( !time || (this.options.useTransition && easing.style) ) { + this._transitionTimingFunction(easing.style); + this._transitionTime(time); + this._translate(x, y); + } else { + this._animate(x, y, time, easing.fn); + } + }, + + scrollToElement: function (el, time, offsetX, offsetY, easing) { + el = el.nodeType ? el : this.scroller.querySelector(el); + + if ( !el ) { + return; + } + + var pos = utils.offset(el); + + pos.left -= this.wrapperOffset.left; + pos.top -= this.wrapperOffset.top; + + // if offsetX/Y are true we center the element to the screen + if ( offsetX === true ) { + offsetX = Math.round(el.offsetWidth / 2 - this.wrapper.offsetWidth / 2); + } + if ( offsetY === true ) { + offsetY = Math.round(el.offsetHeight / 2 - this.wrapper.offsetHeight / 2); + } + + pos.left -= offsetX || 0; + pos.top -= offsetY || 0; + + pos.left = pos.left > 0 ? 0 : pos.left < this.maxScrollX ? this.maxScrollX : pos.left; + pos.top = pos.top > 0 ? 0 : pos.top < this.maxScrollY ? this.maxScrollY : pos.top; + + time = time === undefined || time === null || time === 'auto' ? Math.max(Math.abs(this.x-pos.left), Math.abs(this.y-pos.top)) : time; + + this.scrollTo(pos.left, pos.top, time, easing); + }, + + _transitionTime: function (time) { + time = time || 0; + + this.scrollerStyle[utils.style.transitionDuration] = time + 'ms'; + + if ( !time && utils.isBadAndroid ) { + this.scrollerStyle[utils.style.transitionDuration] = '0.001s'; + } + + + if ( this.indicators ) { + for ( var i = this.indicators.length; i--; ) { + this.indicators[i].transitionTime(time); + } + } + + +// INSERT POINT: _transitionTime + + }, + + _transitionTimingFunction: function (easing) { + this.scrollerStyle[utils.style.transitionTimingFunction] = easing; + + + if ( this.indicators ) { + for ( var i = this.indicators.length; i--; ) { + this.indicators[i].transitionTimingFunction(easing); + } + } + + +// INSERT POINT: _transitionTimingFunction + + }, + + _translate: function (x, y) { + if ( this.options.useTransform ) { + +/* REPLACE START: _translate */ + + this.scrollerStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.translateZ; + +/* REPLACE END: _translate */ + + } else { + x = Math.round(x); + y = Math.round(y); + this.scrollerStyle.left = x + 'px'; + this.scrollerStyle.top = y + 'px'; + } + + this.x = x; + this.y = y; + + + if ( this.indicators ) { + for ( var i = this.indicators.length; i--; ) { + this.indicators[i].updatePosition(); + } + } + + +// INSERT POINT: _translate + + }, + + _initEvents: function (remove) { + var eventType = remove ? utils.removeEvent : utils.addEvent, + target = this.options.bindToWrapper ? this.wrapper : window; + + eventType(window, 'orientationchange', this); + eventType(window, 'resize', this); + + if ( this.options.click ) { + eventType(this.wrapper, 'click', this, true); + } + + if ( !this.options.disableMouse ) { + eventType(this.wrapper, 'mousedown', this); + eventType(target, 'mousemove', this); + eventType(target, 'mousecancel', this); + eventType(target, 'mouseup', this); + } + + if ( utils.hasPointer && !this.options.disablePointer ) { + eventType(this.wrapper, utils.prefixPointerEvent('pointerdown'), this); + eventType(target, utils.prefixPointerEvent('pointermove'), this); + eventType(target, utils.prefixPointerEvent('pointercancel'), this); + eventType(target, utils.prefixPointerEvent('pointerup'), this); + } + + if ( utils.hasTouch && !this.options.disableTouch ) { + eventType(this.wrapper, 'touchstart', this); + eventType(target, 'touchmove', this); + eventType(target, 'touchcancel', this); + eventType(target, 'touchend', this); + } + + eventType(this.scroller, 'transitionend', this); + eventType(this.scroller, 'webkitTransitionEnd', this); + eventType(this.scroller, 'oTransitionEnd', this); + eventType(this.scroller, 'MSTransitionEnd', this); + }, + + getComputedPosition: function () { + var matrix = window.getComputedStyle(this.scroller, null), + x, y; + + if ( this.options.useTransform ) { + matrix = matrix[utils.style.transform].split(')')[0].split(', '); + x = +(matrix[12] || matrix[4]); + y = +(matrix[13] || matrix[5]); + } else { + x = +matrix.left.replace(/[^-\d.]/g, ''); + y = +matrix.top.replace(/[^-\d.]/g, ''); + } + + return { x: x, y: y }; + }, + + _initIndicators: function () { + var interactive = this.options.interactiveScrollbars, + customStyle = typeof this.options.scrollbars != 'string', + indicators = [], + indicator; + + var that = this; + + this.indicators = []; + + if ( this.options.scrollbars ) { + // Vertical scrollbar + if ( this.options.scrollY ) { + indicator = { + el: createDefaultScrollbar('v', interactive, this.options.scrollbars), + interactive: interactive, + defaultScrollbars: true, + customStyle: customStyle, + resize: this.options.resizeScrollbars, + shrink: this.options.shrinkScrollbars, + fade: this.options.fadeScrollbars, + listenX: false + }; + + this.wrapper.appendChild(indicator.el); + indicators.push(indicator); + } + + // Horizontal scrollbar + if ( this.options.scrollX ) { + indicator = { + el: createDefaultScrollbar('h', interactive, this.options.scrollbars), + interactive: interactive, + defaultScrollbars: true, + customStyle: customStyle, + resize: this.options.resizeScrollbars, + shrink: this.options.shrinkScrollbars, + fade: this.options.fadeScrollbars, + listenY: false + }; + + this.wrapper.appendChild(indicator.el); + indicators.push(indicator); + } + } + + if ( this.options.indicators ) { + // TODO: check concat compatibility + indicators = indicators.concat(this.options.indicators); + } + + for ( var i = indicators.length; i--; ) { + this.indicators.push( new Indicator(this, indicators[i]) ); + } + + // TODO: check if we can use array.map (wide compatibility and performance issues) + function _indicatorsMap (fn) { + for ( var i = that.indicators.length; i--; ) { + fn.call(that.indicators[i]); + } + } + + if ( this.options.fadeScrollbars ) { + this.on('scrollEnd', function () { + _indicatorsMap(function () { + this.fade(); + }); + }); + + this.on('scrollCancel', function () { + _indicatorsMap(function () { + this.fade(); + }); + }); + + this.on('scrollStart', function () { + _indicatorsMap(function () { + this.fade(1); + }); + }); + + this.on('beforeScrollStart', function () { + _indicatorsMap(function () { + this.fade(1, true); + }); + }); + } + + + this.on('refresh', function () { + _indicatorsMap(function () { + this.refresh(); + }); + }); + + this.on('destroy', function () { + _indicatorsMap(function () { + this.destroy(); + }); + + delete this.indicators; + }); + }, + + _initWheel: function () { + utils.addEvent(this.wrapper, 'wheel', this); + utils.addEvent(this.wrapper, 'mousewheel', this); + utils.addEvent(this.wrapper, 'DOMMouseScroll', this); + + this.on('destroy', function () { + utils.removeEvent(this.wrapper, 'wheel', this); + utils.removeEvent(this.wrapper, 'mousewheel', this); + utils.removeEvent(this.wrapper, 'DOMMouseScroll', this); + }); + }, + + _wheel: function (e) { + if ( !this.enabled ) { + return; + } + + e.preventDefault(); + e.stopPropagation(); + + var wheelDeltaX, wheelDeltaY, + newX, newY, + that = this; + + if ( this.wheelTimeout === undefined ) { + that._execEvent('scrollStart'); + } + + // Execute the scrollEnd event after 400ms the wheel stopped scrolling + clearTimeout(this.wheelTimeout); + this.wheelTimeout = setTimeout(function () { + that._execEvent('scrollEnd'); + that.wheelTimeout = undefined; + }, 400); + + if ( 'deltaX' in e ) { + if (e.deltaMode === 1) { + wheelDeltaX = -e.deltaX * this.options.mouseWheelSpeed; + wheelDeltaY = -e.deltaY * this.options.mouseWheelSpeed; + } else { + wheelDeltaX = -e.deltaX; + wheelDeltaY = -e.deltaY; + } + } else if ( 'wheelDeltaX' in e ) { + wheelDeltaX = e.wheelDeltaX / 120 * this.options.mouseWheelSpeed; + wheelDeltaY = e.wheelDeltaY / 120 * this.options.mouseWheelSpeed; + } else if ( 'wheelDelta' in e ) { + wheelDeltaX = wheelDeltaY = e.wheelDelta / 120 * this.options.mouseWheelSpeed; + } else if ( 'detail' in e ) { + wheelDeltaX = wheelDeltaY = -e.detail / 3 * this.options.mouseWheelSpeed; + } else { + return; + } + + wheelDeltaX *= this.options.invertWheelDirection; + wheelDeltaY *= this.options.invertWheelDirection; + + if ( !this.hasVerticalScroll ) { + wheelDeltaX = wheelDeltaY; + wheelDeltaY = 0; + } + + if ( this.options.snap ) { + newX = this.currentPage.pageX; + newY = this.currentPage.pageY; + + if ( wheelDeltaX > 0 ) { + newX--; + } else if ( wheelDeltaX < 0 ) { + newX++; + } + + if ( wheelDeltaY > 0 ) { + newY--; + } else if ( wheelDeltaY < 0 ) { + newY++; + } + + this.goToPage(newX, newY); + + return; + } + + newX = this.x + Math.round(this.hasHorizontalScroll ? wheelDeltaX : 0); + newY = this.y + Math.round(this.hasVerticalScroll ? wheelDeltaY : 0); + + if ( newX > 0 ) { + newX = 0; + } else if ( newX < this.maxScrollX ) { + newX = this.maxScrollX; + } + + if ( newY > 0 ) { + newY = 0; + } else if ( newY < this.maxScrollY ) { + newY = this.maxScrollY; + } + + this.scrollTo(newX, newY, 0); + +// INSERT POINT: _wheel + }, + + _initSnap: function () { + this.currentPage = {}; + + if ( typeof this.options.snap == 'string' ) { + this.options.snap = this.scroller.querySelectorAll(this.options.snap); + } + + this.on('refresh', function () { + var i = 0, l, + m = 0, n, + cx, cy, + x = 0, y, + stepX = this.options.snapStepX || this.wrapperWidth, + stepY = this.options.snapStepY || this.wrapperHeight, + el; + + this.pages = []; + + if ( !this.wrapperWidth || !this.wrapperHeight || !this.scrollerWidth || !this.scrollerHeight ) { + return; + } + + if ( this.options.snap === true ) { + cx = Math.round( stepX / 2 ); + cy = Math.round( stepY / 2 ); + + while ( x > -this.scrollerWidth ) { + this.pages[i] = []; + l = 0; + y = 0; + + while ( y > -this.scrollerHeight ) { + this.pages[i][l] = { + x: Math.max(x, this.maxScrollX), + y: Math.max(y, this.maxScrollY), + width: stepX, + height: stepY, + cx: x - cx, + cy: y - cy + }; + + y -= stepY; + l++; + } + + x -= stepX; + i++; + } + } else { + el = this.options.snap; + l = el.length; + n = -1; + + for ( ; i < l; i++ ) { + if ( i === 0 || el[i].offsetLeft <= el[i-1].offsetLeft ) { + m = 0; + n++; + } + + if ( !this.pages[m] ) { + this.pages[m] = []; + } + + x = Math.max(-el[i].offsetLeft, this.maxScrollX); + y = Math.max(-el[i].offsetTop, this.maxScrollY); + cx = x - Math.round(el[i].offsetWidth / 2); + cy = y - Math.round(el[i].offsetHeight / 2); + + this.pages[m][n] = { + x: x, + y: y, + width: el[i].offsetWidth, + height: el[i].offsetHeight, + cx: cx, + cy: cy + }; + + if ( x > this.maxScrollX ) { + m++; + } + } + } + + this.goToPage(this.currentPage.pageX || 0, this.currentPage.pageY || 0, 0); + + // Update snap threshold if needed + if ( this.options.snapThreshold % 1 === 0 ) { + this.snapThresholdX = this.options.snapThreshold; + this.snapThresholdY = this.options.snapThreshold; + } else { + this.snapThresholdX = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].width * this.options.snapThreshold); + this.snapThresholdY = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].height * this.options.snapThreshold); + } + }); + + this.on('flick', function () { + var time = this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(this.x - this.startX), 1000), + Math.min(Math.abs(this.y - this.startY), 1000) + ), 300); + + this.goToPage( + this.currentPage.pageX + this.directionX, + this.currentPage.pageY + this.directionY, + time + ); + }); + }, + + _nearestSnap: function (x, y) { + if ( !this.pages.length ) { + return { x: 0, y: 0, pageX: 0, pageY: 0 }; + } + + var i = 0, + l = this.pages.length, + m = 0; + + // Check if we exceeded the snap threshold + if ( Math.abs(x - this.absStartX) < this.snapThresholdX && + Math.abs(y - this.absStartY) < this.snapThresholdY ) { + return this.currentPage; + } + + if ( x > 0 ) { + x = 0; + } else if ( x < this.maxScrollX ) { + x = this.maxScrollX; + } + + if ( y > 0 ) { + y = 0; + } else if ( y < this.maxScrollY ) { + y = this.maxScrollY; + } + + for ( ; i < l; i++ ) { + if ( x >= this.pages[i][0].cx ) { + x = this.pages[i][0].x; + break; + } + } + + l = this.pages[i].length; + + for ( ; m < l; m++ ) { + if ( y >= this.pages[0][m].cy ) { + y = this.pages[0][m].y; + break; + } + } + + if ( i == this.currentPage.pageX ) { + i += this.directionX; + + if ( i < 0 ) { + i = 0; + } else if ( i >= this.pages.length ) { + i = this.pages.length - 1; + } + + x = this.pages[i][0].x; + } + + if ( m == this.currentPage.pageY ) { + m += this.directionY; + + if ( m < 0 ) { + m = 0; + } else if ( m >= this.pages[0].length ) { + m = this.pages[0].length - 1; + } + + y = this.pages[0][m].y; + } + + return { + x: x, + y: y, + pageX: i, + pageY: m + }; + }, + + goToPage: function (x, y, time, easing) { + easing = easing || this.options.bounceEasing; + + if ( x >= this.pages.length ) { + x = this.pages.length - 1; + } else if ( x < 0 ) { + x = 0; + } + + if ( y >= this.pages[x].length ) { + y = this.pages[x].length - 1; + } else if ( y < 0 ) { + y = 0; + } + + var posX = this.pages[x][y].x, + posY = this.pages[x][y].y; + + time = time === undefined ? this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(posX - this.x), 1000), + Math.min(Math.abs(posY - this.y), 1000) + ), 300) : time; + + this.currentPage = { + x: posX, + y: posY, + pageX: x, + pageY: y + }; + + this.scrollTo(posX, posY, time, easing); + }, + + next: function (time, easing) { + var x = this.currentPage.pageX, + y = this.currentPage.pageY; + + x++; + + if ( x >= this.pages.length && this.hasVerticalScroll ) { + x = 0; + y++; + } + + this.goToPage(x, y, time, easing); + }, + + prev: function (time, easing) { + var x = this.currentPage.pageX, + y = this.currentPage.pageY; + + x--; + + if ( x < 0 && this.hasVerticalScroll ) { + x = 0; + y--; + } + + this.goToPage(x, y, time, easing); + }, + + _initKeys: function (e) { + // default key bindings + var keys = { + pageUp: 33, + pageDown: 34, + end: 35, + home: 36, + left: 37, + up: 38, + right: 39, + down: 40 + }; + var i; + + // if you give me characters I give you keycode + if ( typeof this.options.keyBindings == 'object' ) { + for ( i in this.options.keyBindings ) { + if ( typeof this.options.keyBindings[i] == 'string' ) { + this.options.keyBindings[i] = this.options.keyBindings[i].toUpperCase().charCodeAt(0); + } + } + } else { + this.options.keyBindings = {}; + } + + for ( i in keys ) { + this.options.keyBindings[i] = this.options.keyBindings[i] || keys[i]; + } + + utils.addEvent(window, 'keydown', this); + + this.on('destroy', function () { + utils.removeEvent(window, 'keydown', this); + }); + }, + + _key: function (e) { + if ( !this.enabled ) { + return; + } + + var snap = this.options.snap, // we are using this alot, better to cache it + newX = snap ? this.currentPage.pageX : this.x, + newY = snap ? this.currentPage.pageY : this.y, + now = utils.getTime(), + prevTime = this.keyTime || 0, + acceleration = 0.250, + pos; + + if ( this.options.useTransition && this.isInTransition ) { + pos = this.getComputedPosition(); + + this._translate(Math.round(pos.x), Math.round(pos.y)); + this.isInTransition = false; + } + + this.keyAcceleration = now - prevTime < 200 ? Math.min(this.keyAcceleration + acceleration, 50) : 0; + + switch ( e.keyCode ) { + case this.options.keyBindings.pageUp: + if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) { + newX += snap ? 1 : this.wrapperWidth; + } else { + newY += snap ? 1 : this.wrapperHeight; + } + break; + case this.options.keyBindings.pageDown: + if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) { + newX -= snap ? 1 : this.wrapperWidth; + } else { + newY -= snap ? 1 : this.wrapperHeight; + } + break; + case this.options.keyBindings.end: + newX = snap ? this.pages.length-1 : this.maxScrollX; + newY = snap ? this.pages[0].length-1 : this.maxScrollY; + break; + case this.options.keyBindings.home: + newX = 0; + newY = 0; + break; + case this.options.keyBindings.left: + newX += snap ? -1 : 5 + this.keyAcceleration>>0; + break; + case this.options.keyBindings.up: + newY += snap ? 1 : 5 + this.keyAcceleration>>0; + break; + case this.options.keyBindings.right: + newX -= snap ? -1 : 5 + this.keyAcceleration>>0; + break; + case this.options.keyBindings.down: + newY -= snap ? 1 : 5 + this.keyAcceleration>>0; + break; + default: + return; + } + + if ( snap ) { + this.goToPage(newX, newY); + return; + } + + if ( newX > 0 ) { + newX = 0; + this.keyAcceleration = 0; + } else if ( newX < this.maxScrollX ) { + newX = this.maxScrollX; + this.keyAcceleration = 0; + } + + if ( newY > 0 ) { + newY = 0; + this.keyAcceleration = 0; + } else if ( newY < this.maxScrollY ) { + newY = this.maxScrollY; + this.keyAcceleration = 0; + } + + this.scrollTo(newX, newY, 0); + + this.keyTime = now; + }, + + _animate: function (destX, destY, duration, easingFn) { + var that = this, + startX = this.x, + startY = this.y, + startTime = utils.getTime(), + destTime = startTime + duration; + + function step () { + var now = utils.getTime(), + newX, newY, + easing; + + if ( now >= destTime ) { + that.isAnimating = false; + that._translate(destX, destY); + + if ( !that.resetPosition(that.options.bounceTime) ) { + that._execEvent('scrollEnd'); + } + + return; + } + + now = ( now - startTime ) / duration; + easing = easingFn(now); + newX = ( destX - startX ) * easing + startX; + newY = ( destY - startY ) * easing + startY; + that._translate(newX, newY); + + if ( that.isAnimating ) { + rAF(step); + } + } + + this.isAnimating = true; + step(); + }, + handleEvent: function (e) { + switch ( e.type ) { + case 'touchstart': + case 'pointerdown': + case 'MSPointerDown': + case 'mousedown': + this._start(e); + break; + case 'touchmove': + case 'pointermove': + case 'MSPointerMove': + case 'mousemove': + this._move(e); + break; + case 'touchend': + case 'pointerup': + case 'MSPointerUp': + case 'mouseup': + case 'touchcancel': + case 'pointercancel': + case 'MSPointerCancel': + case 'mousecancel': + this._end(e); + break; + case 'orientationchange': + case 'resize': + this._resize(); + break; + case 'transitionend': + case 'webkitTransitionEnd': + case 'oTransitionEnd': + case 'MSTransitionEnd': + this._transitionEnd(e); + break; + case 'wheel': + case 'DOMMouseScroll': + case 'mousewheel': + this._wheel(e); + break; + case 'keydown': + this._key(e); + break; + case 'click': + if ( !e._constructed ) { + e.preventDefault(); + e.stopPropagation(); + } + break; + } + } +}; +function createDefaultScrollbar (direction, interactive, type) { + var scrollbar = document.createElement('div'), + indicator = document.createElement('div'); + + if ( type === true ) { + scrollbar.style.cssText = 'position:absolute;z-index:9999'; + indicator.style.cssText = '-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px'; + } + + indicator.className = 'iScrollIndicator'; + + if ( direction == 'h' ) { + if ( type === true ) { + scrollbar.style.cssText += ';height:7px;left:2px;right:2px;bottom:0'; + indicator.style.height = '100%'; + } + scrollbar.className = 'iScrollHorizontalScrollbar'; + } else { + if ( type === true ) { + scrollbar.style.cssText += ';width:7px;bottom:2px;top:2px;right:1px'; + indicator.style.width = '100%'; + } + scrollbar.className = 'iScrollVerticalScrollbar'; + } + + scrollbar.style.cssText += ';overflow:hidden'; + + if ( !interactive ) { + scrollbar.style.pointerEvents = 'none'; + } + + scrollbar.appendChild(indicator); + + return scrollbar; +} + +function Indicator (scroller, options) { + this.wrapper = typeof options.el == 'string' ? document.querySelector(options.el) : options.el; + this.wrapperStyle = this.wrapper.style; + this.indicator = this.wrapper.children[0]; + this.indicatorStyle = this.indicator.style; + this.scroller = scroller; + + this.options = { + listenX: true, + listenY: true, + interactive: false, + resize: true, + defaultScrollbars: false, + shrink: false, + fade: false, + speedRatioX: 0, + speedRatioY: 0 + }; + + for ( var i in options ) { + this.options[i] = options[i]; + } + + this.sizeRatioX = 1; + this.sizeRatioY = 1; + this.maxPosX = 0; + this.maxPosY = 0; + + if ( this.options.interactive ) { + if ( !this.options.disableTouch ) { + utils.addEvent(this.indicator, 'touchstart', this); + utils.addEvent(window, 'touchend', this); + } + if ( !this.options.disablePointer ) { + utils.addEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this); + utils.addEvent(window, utils.prefixPointerEvent('pointerup'), this); + } + if ( !this.options.disableMouse ) { + utils.addEvent(this.indicator, 'mousedown', this); + utils.addEvent(window, 'mouseup', this); + } + } + + if ( this.options.fade ) { + this.wrapperStyle[utils.style.transform] = this.scroller.translateZ; + this.wrapperStyle[utils.style.transitionDuration] = utils.isBadAndroid ? '0.001s' : '0ms'; + this.wrapperStyle.opacity = '0'; + } +} + +Indicator.prototype = { + handleEvent: function (e) { + switch ( e.type ) { + case 'touchstart': + case 'pointerdown': + case 'MSPointerDown': + case 'mousedown': + this._start(e); + break; + case 'touchmove': + case 'pointermove': + case 'MSPointerMove': + case 'mousemove': + this._move(e); + break; + case 'touchend': + case 'pointerup': + case 'MSPointerUp': + case 'mouseup': + case 'touchcancel': + case 'pointercancel': + case 'MSPointerCancel': + case 'mousecancel': + this._end(e); + break; + } + }, + + destroy: function () { + if ( this.options.interactive ) { + utils.removeEvent(this.indicator, 'touchstart', this); + utils.removeEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this); + utils.removeEvent(this.indicator, 'mousedown', this); + + utils.removeEvent(window, 'touchmove', this); + utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this); + utils.removeEvent(window, 'mousemove', this); + + utils.removeEvent(window, 'touchend', this); + utils.removeEvent(window, utils.prefixPointerEvent('pointerup'), this); + utils.removeEvent(window, 'mouseup', this); + } + + if ( this.options.defaultScrollbars ) { + this.wrapper.parentNode.removeChild(this.wrapper); + } + }, + + _start: function (e) { + var point = e.touches ? e.touches[0] : e; + + e.preventDefault(); + e.stopPropagation(); + + this.transitionTime(); + + this.initiated = true; + this.moved = false; + this.lastPointX = point.pageX; + this.lastPointY = point.pageY; + + this.startTime = utils.getTime(); + + if ( !this.options.disableTouch ) { + utils.addEvent(window, 'touchmove', this); + } + if ( !this.options.disablePointer ) { + utils.addEvent(window, utils.prefixPointerEvent('pointermove'), this); + } + if ( !this.options.disableMouse ) { + utils.addEvent(window, 'mousemove', this); + } + + this.scroller._execEvent('beforeScrollStart'); + }, + + _move: function (e) { + var point = e.touches ? e.touches[0] : e, + deltaX, deltaY, + newX, newY, + timestamp = utils.getTime(); + + if ( !this.moved ) { + this.scroller._execEvent('scrollStart'); + } + + this.moved = true; + + deltaX = point.pageX - this.lastPointX; + this.lastPointX = point.pageX; + + deltaY = point.pageY - this.lastPointY; + this.lastPointY = point.pageY; + + newX = this.x + deltaX; + newY = this.y + deltaY; + + this._pos(newX, newY); + +// INSERT POINT: indicator._move + + e.preventDefault(); + e.stopPropagation(); + }, + + _end: function (e) { + if ( !this.initiated ) { + return; + } + + this.initiated = false; + + e.preventDefault(); + e.stopPropagation(); + + utils.removeEvent(window, 'touchmove', this); + utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this); + utils.removeEvent(window, 'mousemove', this); + + if ( this.scroller.options.snap ) { + var snap = this.scroller._nearestSnap(this.scroller.x, this.scroller.y); + + var time = this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(this.scroller.x - snap.x), 1000), + Math.min(Math.abs(this.scroller.y - snap.y), 1000) + ), 300); + + if ( this.scroller.x != snap.x || this.scroller.y != snap.y ) { + this.scroller.directionX = 0; + this.scroller.directionY = 0; + this.scroller.currentPage = snap; + this.scroller.scrollTo(snap.x, snap.y, time, this.scroller.options.bounceEasing); + } + } + + if ( this.moved ) { + this.scroller._execEvent('scrollEnd'); + } + }, + + transitionTime: function (time) { + time = time || 0; + this.indicatorStyle[utils.style.transitionDuration] = time + 'ms'; + + if ( !time && utils.isBadAndroid ) { + this.indicatorStyle[utils.style.transitionDuration] = '0.001s'; + } + }, + + transitionTimingFunction: function (easing) { + this.indicatorStyle[utils.style.transitionTimingFunction] = easing; + }, + + refresh: function () { + this.transitionTime(); + + if ( this.options.listenX && !this.options.listenY ) { + this.indicatorStyle.display = this.scroller.hasHorizontalScroll ? 'block' : 'none'; + } else if ( this.options.listenY && !this.options.listenX ) { + this.indicatorStyle.display = this.scroller.hasVerticalScroll ? 'block' : 'none'; + } else { + this.indicatorStyle.display = this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? 'block' : 'none'; + } + + if ( this.scroller.hasHorizontalScroll && this.scroller.hasVerticalScroll ) { + utils.addClass(this.wrapper, 'iScrollBothScrollbars'); + utils.removeClass(this.wrapper, 'iScrollLoneScrollbar'); + + if ( this.options.defaultScrollbars && this.options.customStyle ) { + if ( this.options.listenX ) { + this.wrapper.style.right = '8px'; + } else { + this.wrapper.style.bottom = '8px'; + } + } + } else { + utils.removeClass(this.wrapper, 'iScrollBothScrollbars'); + utils.addClass(this.wrapper, 'iScrollLoneScrollbar'); + + if ( this.options.defaultScrollbars && this.options.customStyle ) { + if ( this.options.listenX ) { + this.wrapper.style.right = '2px'; + } else { + this.wrapper.style.bottom = '2px'; + } + } + } + + var r = this.wrapper.offsetHeight; // force refresh + + if ( this.options.listenX ) { + this.wrapperWidth = this.wrapper.clientWidth; + if ( this.options.resize ) { + this.indicatorWidth = Math.max(Math.round(this.wrapperWidth * this.wrapperWidth / (this.scroller.scrollerWidth || this.wrapperWidth || 1)), 8); + this.indicatorStyle.width = this.indicatorWidth + 'px'; + } else { + this.indicatorWidth = this.indicator.clientWidth; + } + + this.maxPosX = this.wrapperWidth - this.indicatorWidth; + + if ( this.options.shrink == 'clip' ) { + this.minBoundaryX = -this.indicatorWidth + 8; + this.maxBoundaryX = this.wrapperWidth - 8; + } else { + this.minBoundaryX = 0; + this.maxBoundaryX = this.maxPosX; + } + + this.sizeRatioX = this.options.speedRatioX || (this.scroller.maxScrollX && (this.maxPosX / this.scroller.maxScrollX)); + } + + if ( this.options.listenY ) { + this.wrapperHeight = this.wrapper.clientHeight; + if ( this.options.resize ) { + this.indicatorHeight = Math.max(Math.round(this.wrapperHeight * this.wrapperHeight / (this.scroller.scrollerHeight || this.wrapperHeight || 1)), 8); + this.indicatorStyle.height = this.indicatorHeight + 'px'; + } else { + this.indicatorHeight = this.indicator.clientHeight; + } + + this.maxPosY = this.wrapperHeight - this.indicatorHeight; + + if ( this.options.shrink == 'clip' ) { + this.minBoundaryY = -this.indicatorHeight + 8; + this.maxBoundaryY = this.wrapperHeight - 8; + } else { + this.minBoundaryY = 0; + this.maxBoundaryY = this.maxPosY; + } + + this.maxPosY = this.wrapperHeight - this.indicatorHeight; + this.sizeRatioY = this.options.speedRatioY || (this.scroller.maxScrollY && (this.maxPosY / this.scroller.maxScrollY)); + } + + this.updatePosition(); + }, + + updatePosition: function () { + var x = this.options.listenX && Math.round(this.sizeRatioX * this.scroller.x) || 0, + y = this.options.listenY && Math.round(this.sizeRatioY * this.scroller.y) || 0; + + if ( !this.options.ignoreBoundaries ) { + if ( x < this.minBoundaryX ) { + if ( this.options.shrink == 'scale' ) { + this.width = Math.max(this.indicatorWidth + x, 8); + this.indicatorStyle.width = this.width + 'px'; + } + x = this.minBoundaryX; + } else if ( x > this.maxBoundaryX ) { + if ( this.options.shrink == 'scale' ) { + this.width = Math.max(this.indicatorWidth - (x - this.maxPosX), 8); + this.indicatorStyle.width = this.width + 'px'; + x = this.maxPosX + this.indicatorWidth - this.width; + } else { + x = this.maxBoundaryX; + } + } else if ( this.options.shrink == 'scale' && this.width != this.indicatorWidth ) { + this.width = this.indicatorWidth; + this.indicatorStyle.width = this.width + 'px'; + } + + if ( y < this.minBoundaryY ) { + if ( this.options.shrink == 'scale' ) { + this.height = Math.max(this.indicatorHeight + y * 3, 8); + this.indicatorStyle.height = this.height + 'px'; + } + y = this.minBoundaryY; + } else if ( y > this.maxBoundaryY ) { + if ( this.options.shrink == 'scale' ) { + this.height = Math.max(this.indicatorHeight - (y - this.maxPosY) * 3, 8); + this.indicatorStyle.height = this.height + 'px'; + y = this.maxPosY + this.indicatorHeight - this.height; + } else { + y = this.maxBoundaryY; + } + } else if ( this.options.shrink == 'scale' && this.height != this.indicatorHeight ) { + this.height = this.indicatorHeight; + this.indicatorStyle.height = this.height + 'px'; + } + } + + this.x = x; + this.y = y; + + if ( this.scroller.options.useTransform ) { + this.indicatorStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.scroller.translateZ; + } else { + this.indicatorStyle.left = x + 'px'; + this.indicatorStyle.top = y + 'px'; + } + }, + + _pos: function (x, y) { + if ( x < 0 ) { + x = 0; + } else if ( x > this.maxPosX ) { + x = this.maxPosX; + } + + if ( y < 0 ) { + y = 0; + } else if ( y > this.maxPosY ) { + y = this.maxPosY; + } + + x = this.options.listenX ? Math.round(x / this.sizeRatioX) : this.scroller.x; + y = this.options.listenY ? Math.round(y / this.sizeRatioY) : this.scroller.y; + + this.scroller.scrollTo(x, y); + }, + + fade: function (val, hold) { + if ( hold && !this.visible ) { + return; + } + + clearTimeout(this.fadeTimeout); + this.fadeTimeout = null; + + var time = val ? 250 : 500, + delay = val ? 0 : 300; + + val = val ? '1' : '0'; + + this.wrapperStyle[utils.style.transitionDuration] = time + 'ms'; + + this.fadeTimeout = setTimeout((function (val) { + this.wrapperStyle.opacity = val; + this.visible = +val; + }).bind(this, val), delay); + } +}; + +IScroll.utils = utils; + +if ( typeof module != 'undefined' && module.exports ) { + module.exports = IScroll; +} else { + window.IScroll = IScroll; +} + +})(window, document, Math); +/* jshint ignore:end */ \ No newline at end of file diff --git a/src/js/core/store.js b/src/scripts/core/store.js similarity index 100% rename from src/js/core/store.js rename to src/scripts/core/store.js diff --git a/src/js/core/ua.js b/src/scripts/core/ua.js similarity index 100% rename from src/js/core/ua.js rename to src/scripts/core/ua.js diff --git a/src/js/core/util.js b/src/scripts/core/util.js similarity index 100% rename from src/js/core/util.js rename to src/scripts/core/util.js diff --git a/src/js/button.js b/src/scripts/dropdown.js similarity index 82% rename from src/js/button.js rename to src/scripts/dropdown.js index 81218f6..03c2def 100644 --- a/src/js/button.js +++ b/src/scripts/dropdown.js @@ -1,10 +1,11 @@ /** - * @file SQ.Button 按钮插件 - * @version 0.5.0 + * @file SQ.Dropdown 按钮插件 + * @version 0.6.0 */ /** * @changelog + * 0.6.6 * 更名为 Dropdown * 0.5.0 * 重写插件,调用方式改为 $. 链式调用。 * 0.2.0 * 重写 menu 模式代码,独立 button.js 为插件 * 0.1.2 * 修复 jshint 问题 @@ -15,33 +16,33 @@ (function ($) { 'use strict'; /** - * @name Button + * @name Dropdown * @classdesc 按钮交互插件 * @constructor * @param {object} config 插件配置(下面的参数为配置项,配置会写入属性) * @param {string} config.ANIMATE 动画类,例如 .fadeIn * @param {string} config.EVE_EVENT_TYPE 交互触发方式,默认为 'click' * @param {string} config.MODE 按钮交互模式,默认为 'menu' - * @example $('.J_buttonMenu').button({ + * @example $('.J_dropdown').dropdown({ ANIMATE: '.fadeIn quick' }); */ - var scope = 'sq-button'; // data-* 后缀 + var scope = 'sq-dropdown'; // data-* 后缀 var defaults = { MODE: 'menu', EVE_EVENT_TYPE: 'click' }; - function Button ( element, options ) { + function Dropdown ( element, options ) { this.element = element; this.settings = $.extend( {}, defaults, options ); this._defaults = defaults; this.init(); } - Button.prototype = { - construtor: 'Button', + Dropdown.prototype = { + construtor: 'Dropdown', init: function () { var me = this; var date = new Date().getTime().toString().slice(-4); @@ -68,10 +69,10 @@ var me = this; var $doc = $(document); var $allButtons = $(me.settings.selector); - var $allMenus = $allButtons.find('.dropdown-menu'); - var $menu = me.$element.find('.dropdown-menu'); + var $allMenus = $allButtons.find('.dropdown-content'); + var $menu = me.$element.find('.dropdown-content'); - me.$element.on(me.settings.EVE_EVENT_TYPE + '.sq.button.menu', function () { + me.$element.on(me.settings.EVE_EVENT_TYPE + '.sq.dropdown', function () { if (!me.$element.hasClass('active')) { _showMenu(); } else { @@ -90,24 +91,24 @@ } $menu.show(); me.setState('active'); - $doc.on('click.sq.button.menu', _documentEvent); + $doc.on('click.sq.dropdown', _documentEvent); } function _hideMenu() { $menu.hide(); me.setState('init'); - $doc.off('click.sq.button.menu', _documentEvent); + $doc.off('click.sq.dropdown', _documentEvent); } function _documentEvent(e) { - if (!$(e.target).hasClass(me.classId)) { + if (!$(e.target).parents('.' + scope).hasClass(me.classId)) { _hideMenu(); } } } }; - $.fn.button = function ( options ) { + $.fn.dropdown = function ( options ) { var isZepto = typeof Zepto !== 'undefined' ? true : false; var isJQuery = typeof jQuery !== 'undefined' ? true : false; var plugin; @@ -122,11 +123,11 @@ this.each(function() { if (isJQuery) { if (!$.data(this, scope + 'init')) { - $.data( this, scope + 'init', new Button( this, options ) ); + $.data( this, scope + 'init', new Dropdown( this, options ) ); } } else if (isZepto) { if (!$(this).data(scope + 'init')) { - plugin = new Button( this, options ); + plugin = new Dropdown( this, options ); $(this).data(scope + 'init', 'initialized'); } } diff --git a/src/scripts/fastclick.js b/src/scripts/fastclick.js new file mode 100644 index 0000000..25c47e4 --- /dev/null +++ b/src/scripts/fastclick.js @@ -0,0 +1,874 @@ +//** FastClick 1.0.3 +/* jshint ignore:start */ +(function () { + + /*var hidden; + var visibilityChange; + var hasVisibilityChangeEvent = true; + if (typeof document.hidden !== 'undefined') { + hidden = 'hidden'; + visibilityChange = 'visibilitychange'; + } else if (typeof document.mozHidden !== 'undefined') { + // Firefox up to v17 + hidden = 'mozHidden'; + visibilityChange = 'mozvisibilitychange'; + } else if (typeof document.webkitHidden !== 'undefined') { + // Chrome up to v32, Android up to v4.4, Blackberry up to v10 + hidden = 'webkitHidden'; + visibilityChange = 'webkitvisibilitychange'; + } else { + hasVisibilityChangeEvent = false; + } + if (hasVisibilityChangeEvent) { + document.addEventListener(visibilityChange, function () { + // 在 Android 设备上,document.hidden 是在重新激活浏览器时触发 + if (document[hidden]) { + setTimeout(function () { + alert($('.press').length); + $('.press').removeClass('press'); + }, 200) + + } + }, false); + }*/ + + // squirrel-modified + function setPressStyle(el, me) { + var pressTag = 'a,button'; + var targetElement = el; + var targetTagName = targetElement.tagName.toLowerCase(); + if (pressTag.indexOf(targetTagName) !== -1 && !me.sqPress) { + targetElement.className = targetElement.className + ' press'; + me.sqPress = true; + } + } + function clearPressStyle(me) { + if (me.sqPress) { + me.targetElement.className = me.targetElement.className.replace('press', '').trim(); + me.sqPress = false; + } + } + + function FastClick(layer, options) { + 'use strict'; + var oldOnClick; + options = options || {}; + + /** + * Whether a click is currently being tracked. + * + * @type boolean + */ + this.trackingClick = false; + + + /** + * Timestamp for when click tracking started. + * + * @type number + */ + this.trackingClickStart = 0; + + + /** + * The element being tracked for a click. + * + * @type EventTarget + */ + this.targetElement = null; + + + /** + * X-coordinate of touch start event. + * + * @type number + */ + this.touchStartX = 0; + + + /** + * Y-coordinate of touch start event. + * + * @type number + */ + this.touchStartY = 0; + + + /** + * ID of the last touch, retrieved from Touch.identifier. + * + * @type number + */ + this.lastTouchIdentifier = 0; + + + /** + * Touchmove boundary, beyond which a click will be cancelled. + * + * @type number + */ + this.touchBoundary = options.touchBoundary || 10; + + + /** + * The FastClick layer. + * + * @type Element + */ + this.layer = layer; + + /** + * The minimum time between tap(touchstart and touchend) events + * + * @type number + */ + this.tapDelay = options.tapDelay || 200; + + if (FastClick.notNeeded(layer)) { + return; + } + + // Some old versions of Android don't have Function.prototype.bind + function bind(method, context) { + return function() { return method.apply(context, arguments); }; + } + + + var methods = ['onMouse', 'onClick', 'onTouchStart', 'onTouchMove', 'onTouchEnd', 'onTouchCancel']; + var context = this; + for (var i = 0, l = methods.length; i < l; i++) { + context[methods[i]] = bind(context[methods[i]], context); + } + + // Set up event handlers as required + if (deviceIsAndroid) { + layer.addEventListener('mouseover', this.onMouse, true); + layer.addEventListener('mousedown', this.onMouse, true); + layer.addEventListener('mouseup', this.onMouse, true); + } + + layer.addEventListener('click', this.onClick, true); + layer.addEventListener('touchstart', this.onTouchStart, false); + layer.addEventListener('touchmove', this.onTouchMove, false); + layer.addEventListener('touchend', this.onTouchEnd, false); + layer.addEventListener('touchcancel', this.onTouchCancel, false); + + // Hack is required for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2) + // which is how FastClick normally stops click events bubbling to callbacks registered on the FastClick + // layer when they are cancelled. + if (!Event.prototype.stopImmediatePropagation) { + layer.removeEventListener = function(type, callback, capture) { + var rmv = Node.prototype.removeEventListener; + if (type === 'click') { + rmv.call(layer, type, callback.hijacked || callback, capture); + } else { + rmv.call(layer, type, callback, capture); + } + }; + + layer.addEventListener = function(type, callback, capture) { + var adv = Node.prototype.addEventListener; + if (type === 'click') { + adv.call(layer, type, callback.hijacked || (callback.hijacked = function(event) { + if (!event.propagationStopped) { + callback(event); + } + }), capture); + } else { + adv.call(layer, type, callback, capture); + } + }; + } + + // If a handler is already declared in the element's onclick attribute, it will be fired before + // FastClick's onClick handler. Fix this by pulling out the user-defined handler function and + // adding it as listener. + if (typeof layer.onclick === 'function') { + + // Android browser on at least 3.2 requires a new reference to the function in layer.onclick + // - the old one won't work if passed to addEventListener directly. + oldOnClick = layer.onclick; + layer.addEventListener('click', function(event) { + oldOnClick(event); + }, false); + layer.onclick = null; + } + } + + + /** + * Android requires exceptions. + * + * @type boolean + */ + var deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0; + + + /** + * iOS requires exceptions. + * + * @type boolean + */ + var deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent); + + + /** + * iOS 4 requires an exception for select elements. + * + * @type boolean + */ + var deviceIsIOS4 = deviceIsIOS && (/OS 4_\d(_\d)?/).test(navigator.userAgent); + + + /** + * iOS 6.0(+?) requires the target element to be manually derived + * + * @type boolean + */ + var deviceIsIOSWithBadTarget = deviceIsIOS && (/OS ([6-9]|\d{2})_\d/).test(navigator.userAgent); + + /** + * BlackBerry requires exceptions. + * + * @type boolean + */ + var deviceIsBlackBerry10 = navigator.userAgent.indexOf('BB10') > 0; + + /** + * Determine whether a given element requires a native click. + * + * @param {EventTarget|Element} target Target DOM element + * @returns {boolean} Returns true if the element needs a native click + */ + FastClick.prototype.needsClick = function(target) { + 'use strict'; + switch (target.nodeName.toLowerCase()) { + + // Don't send a synthetic click to disabled inputs (issue #62) + case 'button': + case 'select': + case 'textarea': + if (target.disabled) { + return true; + } + + break; + case 'input': + + // File inputs need real clicks on iOS 6 due to a browser bug (issue #68) + if ((deviceIsIOS && target.type === 'file') || target.disabled) { + return true; + } + + break; + case 'label': + case 'video': + return true; + } + + return (/\bneedsclick\b/).test(target.className); + }; + + + /** + * Determine whether a given element requires a call to focus to simulate click into element. + * + * @param {EventTarget|Element} target Target DOM element + * @returns {boolean} Returns true if the element requires a call to focus to simulate native click. + */ + FastClick.prototype.needsFocus = function(target) { + 'use strict'; + switch (target.nodeName.toLowerCase()) { + case 'textarea': + return true; + case 'select': + return !deviceIsAndroid; + case 'input': + switch (target.type) { + case 'button': + case 'checkbox': + case 'file': + case 'image': + case 'radio': + case 'submit': + return false; + } + + // No point in attempting to focus disabled inputs + return !target.disabled && !target.readOnly; + default: + return (/\bneedsfocus\b/).test(target.className); + } + }; + + + /** + * Send a click event to the specified element. + * + * @param {EventTarget|Element} targetElement + * @param {Event} event + */ + FastClick.prototype.sendClick = function(targetElement, event) { + 'use strict'; + var clickEvent, touch; + + // On some Android devices activeElement needs to be blurred otherwise the synthetic click will have no effect (#24) + if (document.activeElement && document.activeElement !== targetElement) { + document.activeElement.blur(); + } + + touch = event.changedTouches[0]; + + // Synthesise a click event, with an extra attribute so it can be tracked + clickEvent = document.createEvent('MouseEvents'); + clickEvent.initMouseEvent(this.determineEventType(targetElement), true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null); + clickEvent.forwardedTouchEvent = true; + targetElement.dispatchEvent(clickEvent); + }; + + FastClick.prototype.determineEventType = function(targetElement) { + 'use strict'; + + //Issue #159: Android Chrome Select Box does not open with a synthetic click event + if (deviceIsAndroid && targetElement.tagName.toLowerCase() === 'select') { + return 'mousedown'; + } + + return 'click'; + }; + + + /** + * @param {EventTarget|Element} targetElement + */ + FastClick.prototype.focus = function(targetElement) { + 'use strict'; + var length; + + // Issue #160: on iOS 7, some input elements (e.g. date datetime) throw a vague TypeError on setSelectionRange. These elements don't have an integer value for the selectionStart and selectionEnd properties, but unfortunately that can't be used for detection because accessing the properties also throws a TypeError. Just check the type instead. Filed as Apple bug #15122724. + if (deviceIsIOS && targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time') { + length = targetElement.value.length; + targetElement.setSelectionRange(length, length); + } else { + targetElement.focus(); + } + }; + + + /** + * Check whether the given target element is a child of a scrollable layer and if so, set a flag on it. + * + * @param {EventTarget|Element} targetElement + */ + FastClick.prototype.updateScrollParent = function(targetElement) { + 'use strict'; + var scrollParent, parentElement; + + scrollParent = targetElement.fastClickScrollParent; + + // Attempt to discover whether the target element is contained within a scrollable layer. Re-check if the + // target element was moved to another parent. + if (!scrollParent || !scrollParent.contains(targetElement)) { + parentElement = targetElement; + do { + if (parentElement.scrollHeight > parentElement.offsetHeight) { + scrollParent = parentElement; + targetElement.fastClickScrollParent = parentElement; + break; + } + + parentElement = parentElement.parentElement; + } while (parentElement); + } + + // Always update the scroll top tracker if possible. + if (scrollParent) { + scrollParent.fastClickLastScrollTop = scrollParent.scrollTop; + } + }; + + + /** + * @param {EventTarget} targetElement + * @returns {Element|EventTarget} + */ + FastClick.prototype.getTargetElementFromEventTarget = function(eventTarget) { + 'use strict'; + + // On some older browsers (notably Safari on iOS 4.1 - see issue #56) the event target may be a text node. + if (eventTarget.nodeType === Node.TEXT_NODE) { + return eventTarget.parentNode; + } + + return eventTarget; + }; + + + /** + * On touch start, record the position and scroll offset. + * + * @param {Event} event + * @returns {boolean} + */ + FastClick.prototype.onTouchStart = function(event) { + 'use strict'; + var targetElement, touch, selection; + + // Ignore multiple touches, otherwise pinch-to-zoom is prevented if both fingers are on the FastClick element (issue #111). + if (event.targetTouches.length > 1) { + return true; + } + + targetElement = this.getTargetElementFromEventTarget(event.target); + touch = event.targetTouches[0]; + + //squirrel-modified + setPressStyle(targetElement, this); + + if (deviceIsIOS) { + + // Only trusted events will deselect text on iOS (issue #49) + selection = window.getSelection(); + if (selection.rangeCount && !selection.isCollapsed) { + return true; + } + + if (!deviceIsIOS4) { + + // Weird things happen on iOS when an alert or confirm dialog is opened from a click event callback (issue #23): + // when the user next taps anywhere else on the page, new touchstart and touchend events are dispatched + // with the same identifier as the touch event that previously triggered the click that triggered the alert. + // Sadly, there is an issue on iOS 4 that causes some normal touch events to have the same identifier as an + // immediately preceeding touch event (issue #52), so this fix is unavailable on that platform. + // Issue 120: touch.identifier is 0 when Chrome dev tools 'Emulate touch events' is set with an iOS device UA string, + // which causes all touch events to be ignored. As this block only applies to iOS, and iOS identifiers are always long, + // random integers, it's safe to to continue if the identifier is 0 here. + if (touch.identifier && touch.identifier === this.lastTouchIdentifier) { + event.preventDefault(); + return false; + } + + this.lastTouchIdentifier = touch.identifier; + + // If the target element is a child of a scrollable layer (using -webkit-overflow-scrolling: touch) and: + // 1) the user does a fling scroll on the scrollable layer + // 2) the user stops the fling scroll with another tap + // then the event.target of the last 'touchend' event will be the element that was under the user's finger + // when the fling scroll was started, causing FastClick to send a click event to that layer - unless a check + // is made to ensure that a parent layer was not scrolled before sending a synthetic click (issue #42). + this.updateScrollParent(targetElement); + } + } + + this.trackingClick = true; + this.trackingClickStart = event.timeStamp; + this.targetElement = targetElement; + + this.touchStartX = touch.pageX; + this.touchStartY = touch.pageY; + + // Prevent phantom clicks on fast double-tap (issue #36) + if ((event.timeStamp - this.lastClickTime) < this.tapDelay) { + event.preventDefault(); + } + + return true; + }; + + + /** + * Based on a touchmove event object, check whether the touch has moved past a boundary since it started. + * + * @param {Event} event + * @returns {boolean} + */ + FastClick.prototype.touchHasMoved = function(event) { + 'use strict'; + var touch = event.changedTouches[0], boundary = this.touchBoundary; + + if (Math.abs(touch.pageX - this.touchStartX) > boundary || Math.abs(touch.pageY - this.touchStartY) > boundary) { + return true; + } + + return false; + }; + + + /** + * Update the last position. + * + * @param {Event} event + * @returns {boolean} + */ + FastClick.prototype.onTouchMove = function(event) { + 'use strict'; + if (!this.trackingClick) { + return true; + } + + //squirrel-modified + clearPressStyle(this); + /*if (this.sqPress) { + this.targetElement.className = this.targetElement.className.replace('press', '').trim(); + this.sqPress = false; + }*/ + + // If the touch has moved, cancel the click tracking + if (this.targetElement !== this.getTargetElementFromEventTarget(event.target) || this.touchHasMoved(event)) { + this.trackingClick = false; + this.targetElement = null; + } + + return true; + }; + + + /** + * Attempt to find the labelled control for the given label element. + * + * @param {EventTarget|HTMLLabelElement} labelElement + * @returns {Element|null} + */ + FastClick.prototype.findControl = function(labelElement) { + 'use strict'; + + // Fast path for newer browsers supporting the HTML5 control attribute + if (labelElement.control !== undefined) { + return labelElement.control; + } + + // All browsers under test that support touch events also support the HTML5 htmlFor attribute + if (labelElement.htmlFor) { + return document.getElementById(labelElement.htmlFor); + } + + // If no for attribute exists, attempt to retrieve the first labellable descendant element + // the list of which is defined here: http://www.w3.org/TR/html5/forms.html#category-label + return labelElement.querySelector('button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea'); + }; + + + /** + * On touch end, determine whether to send a click event at once. + * + * @param {Event} event + * @returns {boolean} + */ + FastClick.prototype.onTouchEnd = function(event) { + 'use strict'; + var forElement, trackingClickStart, targetTagName, scrollParent, touch, targetElement = this.targetElement; + + if (!this.trackingClick) { + return true; + } + + // Prevent phantom clicks on fast double-tap (issue #36) + if ((event.timeStamp - this.lastClickTime) < this.tapDelay) { + this.cancelNextClick = true; + return true; + } + + // Reset to prevent wrong click cancel on input (issue #156). + this.cancelNextClick = false; + + this.lastClickTime = event.timeStamp; + + trackingClickStart = this.trackingClickStart; + this.trackingClick = false; + this.trackingClickStart = 0; + + // On some iOS devices, the targetElement supplied with the event is invalid if the layer + // is performing a transition or scroll, and has to be re-detected manually. Note that + // for this to function correctly, it must be called *after* the event target is checked! + // See issue #57; also filed as rdar://13048589 . + if (deviceIsIOSWithBadTarget) { + touch = event.changedTouches[0]; + + // In certain cases arguments of elementFromPoint can be negative, so prevent setting targetElement to null + targetElement = document.elementFromPoint(touch.pageX - window.pageXOffset, touch.pageY - window.pageYOffset) || targetElement; + targetElement.fastClickScrollParent = this.targetElement.fastClickScrollParent; + } + + targetTagName = targetElement.tagName.toLowerCase(); + if (targetTagName === 'label') { + forElement = this.findControl(targetElement); + if (forElement) { + this.focus(targetElement); + if (deviceIsAndroid) { + return false; + } + + targetElement = forElement; + } + } else if (this.needsFocus(targetElement)) { + + // Case 1: If the touch started a while ago (best guess is 100ms based on tests for issue #36) then focus will be triggered anyway. Return early and unset the target element reference so that the subsequent click will be allowed through. + // Case 2: Without this exception for input elements tapped when the document is contained in an iframe, then any inputted text won't be visible even though the value attribute is updated as the user types (issue #37). + if ((event.timeStamp - trackingClickStart) > 100 || (deviceIsIOS && window.top !== window && targetTagName === 'input')) { + this.targetElement = null; + return false; + } + + this.focus(targetElement); + this.sendClick(targetElement, event); + + // Select elements need the event to go through on iOS 4, otherwise the selector menu won't open. + // Also this breaks opening selects when VoiceOver is active on iOS6, iOS7 (and possibly others) + if (!deviceIsIOS || targetTagName !== 'select') { + this.targetElement = null; + event.preventDefault(); + } + + return false; + } + + if (deviceIsIOS && !deviceIsIOS4) { + + // Don't send a synthetic click event if the target element is contained within a parent layer that was scrolled + // and this tap is being used to stop the scrolling (usually initiated by a fling - issue #42). + scrollParent = targetElement.fastClickScrollParent; + if (scrollParent && scrollParent.fastClickLastScrollTop !== scrollParent.scrollTop) { + return true; + } + } + + // Prevent the actual click from going though - unless the target node is marked as requiring + // real clicks or if it is in the whitelist in which case only non-programmatic clicks are permitted. + if (!this.needsClick(targetElement)) { + event.preventDefault(); + this.sendClick(targetElement, event); + } + + //squirrel-modified + clearPressStyle(this); + /*if (this.sqPress) { + this.targetElement.className = this.targetElement.className.replace('press', '').trim(); + this.sqPress = false; + }*/ + + return false; + }; + + + /** + * On touch cancel, stop tracking the click. + * + * @returns {void} + */ + FastClick.prototype.onTouchCancel = function() { + 'use strict'; + this.trackingClick = false; + this.targetElement = null; + }; + + + /** + * Determine mouse events which should be permitted. + * + * @param {Event} event + * @returns {boolean} + */ + FastClick.prototype.onMouse = function(event) { + 'use strict'; + + // If a target element was never set (because a touch event was never fired) allow the event + if (!this.targetElement) { + return true; + } + + if (event.forwardedTouchEvent) { + return true; + } + + // Programmatically generated events targeting a specific element should be permitted + if (!event.cancelable) { + return true; + } + + // Derive and check the target element to see whether the mouse event needs to be permitted; + // unless explicitly enabled, prevent non-touch click events from triggering actions, + // to prevent ghost/doubleclicks. + if (!this.needsClick(this.targetElement) || this.cancelNextClick) { + + // Prevent any user-added listeners declared on FastClick element from being fired. + if (event.stopImmediatePropagation) { + event.stopImmediatePropagation(); + } else { + + // Part of the hack for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2) + event.propagationStopped = true; + } + + // Cancel the event + event.stopPropagation(); + event.preventDefault(); + + return false; + } + + // If the mouse event is permitted, return true for the action to go through. + return true; + }; + + + /** + * On actual clicks, determine whether this is a touch-generated click, a click action occurring + * naturally after a delay after a touch (which needs to be cancelled to avoid duplication), or + * an actual click which should be permitted. + * + * @param {Event} event + * @returns {boolean} + */ + FastClick.prototype.onClick = function(event) { + 'use strict'; + var permitted; + + // squirrel-modified + setPressStyle(this.targetElement, this); + + // It's possible for another FastClick-like library delivered with third-party code to fire a click event before FastClick does (issue #44). In that case, set the click-tracking flag back to false and return early. This will cause onTouchEnd to return early. + if (this.trackingClick) { + this.targetElement = null; + this.trackingClick = false; + return true; + } + + // Very odd behaviour on iOS (issue #18): if a submit element is present inside a form and the user hits enter in the iOS simulator or clicks the Go button on the pop-up OS keyboard the a kind of 'fake' click event will be triggered with the submit-type input element as the target. + if (event.target.type === 'submit' && event.detail === 0) { + return true; + } + + permitted = this.onMouse(event); + + // Only unset targetElement if the click is not permitted. This will ensure that the check for !targetElement in onMouse fails and the browser's click doesn't go through. + if (!permitted) { + this.targetElement = null; + } + + // If clicks are permitted, return true for the action to go through. + return permitted; + }; + + + /** + * Remove all FastClick's event listeners. + * + * @returns {void} + */ + FastClick.prototype.destroy = function() { + 'use strict'; + var layer = this.layer; + + if (deviceIsAndroid) { + layer.removeEventListener('mouseover', this.onMouse, true); + layer.removeEventListener('mousedown', this.onMouse, true); + layer.removeEventListener('mouseup', this.onMouse, true); + } + + layer.removeEventListener('click', this.onClick, true); + layer.removeEventListener('touchstart', this.onTouchStart, false); + layer.removeEventListener('touchmove', this.onTouchMove, false); + layer.removeEventListener('touchend', this.onTouchEnd, false); + layer.removeEventListener('touchcancel', this.onTouchCancel, false); + }; + + + /** + * Check whether FastClick is needed. + * + * @param {Element} layer The layer to listen on + */ + FastClick.notNeeded = function(layer) { + 'use strict'; + var metaViewport; + var chromeVersion; + var blackberryVersion; + + // Devices that don't support touch don't need FastClick + if (typeof window.ontouchstart === 'undefined') { + return true; + } + + // Chrome version - zero for other browsers + chromeVersion = +(/Chrome\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1]; + + if (chromeVersion) { + + if (deviceIsAndroid) { + metaViewport = document.querySelector('meta[name=viewport]'); + + if (metaViewport) { + // Chrome on Android with user-scalable="no" doesn't need FastClick (issue #89) + if (metaViewport.content.indexOf('user-scalable=no') !== -1) { + return true; + } + // Chrome 32 and above with width=device-width or less don't need FastClick + if (chromeVersion > 31 && document.documentElement.scrollWidth <= window.outerWidth) { + return true; + } + } + + // Chrome desktop doesn't need FastClick (issue #15) + } else { + return true; + } + } + + if (deviceIsBlackBerry10) { + blackberryVersion = navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/); + + // BlackBerry 10.3+ does not require Fastclick library. + // https://github.com/ftlabs/fastclick/issues/251 + if (blackberryVersion[1] >= 10 && blackberryVersion[2] >= 3) { + metaViewport = document.querySelector('meta[name=viewport]'); + + if (metaViewport) { + // user-scalable=no eliminates click delay. + if (metaViewport.content.indexOf('user-scalable=no') !== -1) { + return true; + } + // width=device-width (or less than device-width) eliminates click delay. + if (document.documentElement.scrollWidth <= window.outerWidth) { + return true; + } + } + } + } + + // IE10 with -ms-touch-action: none, which disables double-tap-to-zoom (issue #97) + if (layer.style.msTouchAction === 'none') { + return true; + } + + return false; + }; + + + /** + * Factory method for creating a FastClick object + * + * @param {Element} layer The layer to listen on + * @param {Object} options The options to override the defaults + */ + FastClick.attach = function(layer, options) { + 'use strict'; + return new FastClick(layer, options); + }; + + + if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) { + + // AMD. Register as an anonymous module. + define(function() { + 'use strict'; + return FastClick; + }); + } else if (typeof module !== 'undefined' && module.exports) { + module.exports = FastClick.attach; + module.exports.FastClick = FastClick; + } else { + window.FastClick = FastClick; + } +}()); + +/* jshint ignore:end */ \ No newline at end of file diff --git a/src/js/lazyload.js b/src/scripts/lazyload.js similarity index 96% rename from src/js/lazyload.js rename to src/scripts/lazyload.js index 61691ec..355c835 100644 --- a/src/js/lazyload.js +++ b/src/scripts/lazyload.js @@ -1,10 +1,11 @@ /** * @file SQ.LazyLoad 延迟加载插件 - * @version 1.0.2 + * @version 1.0.3 */ /** * @changelog + * 1.0.3 * data-img 修改为 data-original * 1.0.2 * 修改 scroll 绑定事件,使用新增的节流函数,精简函数。 * 1.0.1 * 增加验证提示,调整了 init 函数。 * 1.0.0 * 重写插件,调用方式改为 $. 链式调用。 @@ -87,10 +88,10 @@ me.$element.one('appear', function () { var img = this; var $img = $(img); - var src = $img.attr('data-img'); + var src = $img.attr('data-original'); // 替换 src 操作 if (src) { - $img.addClass('unvisible').attr('src', src).removeAttr('data-img').removeClass(me.elementClassName); + $img.addClass('unvisible').attr('src', src).removeAttr('data-original').removeClass(me.elementClassName); $img.on('load', function () { // 添加动画 if (me.settings.ANIMATE) { @@ -155,9 +156,9 @@ options = options || {}; options.selector = this.selector; - if (!this.length) { + /*if (!this.length) { console.warn('SQ.lazyload: 未找到'+ this.selector +'元素'); - } + }*/ this.each(function() { if (isJQuery) { diff --git a/src/js/loadmore.js b/src/scripts/loadmore.js similarity index 92% rename from src/js/loadmore.js rename to src/scripts/loadmore.js index 408e788..8f59d63 100644 --- a/src/js/loadmore.js +++ b/src/scripts/loadmore.js @@ -1,10 +1,13 @@ /** * @file SQ.LoadMore 加载更多插件 - * @version 1.6.0 + * @version 1.6.2 */ /** * @changelog + * 1.6.2 + 新增 TXT_NOMORE_TIP 设置 + * * 修复 click 事件下重复调用 _load 方法问题。 + * * 修复 click 事件下 noMore 状态下仍然可以加载的问题。 * 1.6.1 * 使用新增的节流函数,调整执行逻辑。 * 1.6.0 * 现在可以记录一个页面中多个实例的运行状态,方便配合 Tab.js 使用。 * 1.5.0 * 重写插件,调用方式改为 $. 链式调用。 @@ -146,11 +149,15 @@ self.$stateTxt = self.$stateBar.find('.state-txt'); } else { // 初次实例化,创建新的状态栏 - self.$stateBar = $('

    '); + self.$stateBar = $('
    '); self.$stateTxt = self.$stateBar.find('.state-txt'); self.$stateBar.addClass(me.initStyle); self.$stateTxt.text(me.settings.TXT_INIT_TIP); - self.$element.css({'min-height': winHeight - 40}).after(self.$stateBar); + // 补充滑动距离 + if (self.currentEventType === 'scroll') { + self.$element.css({'min-height': winHeight - 40}); + } + self.$element.after(self.$stateBar); } self.api = me.settings.API; @@ -158,8 +165,10 @@ self.page = oldState.page || me.settings.NUM_START_PAGE_INDEX; self.currentState = oldState.page || 'none'; // 设置当前状态 self.currentEventType = oldState.event || me.settings.EVE_EVENT_TYPE; // 临时存储事件类型,以供 _changeState 判断使用。 - - if (self.currentEventType === 'click') { + if (self.currentEventType !== me.settings.EVE_EVENT_TYPE && self.currentEventType === 'click') { + me._changeEvent('click', self); + } + if (me.settings.EVE_EVENT_TYPE === 'click') { me._changeEvent('click', self); } if (oldState.top > 0) { @@ -220,7 +229,7 @@ */ _bind: function (eventType, self) { var me = this; - me.$triggerTarget.on(eventType + '.sq.loadmore' + self.id, function () { + me.$triggerTarget.on(eventType + '.sq.loadmore', function () { me._trigger(self); }); me.$win.on('scroll.sq.loadmore.setTop', function () { @@ -250,7 +259,10 @@ me._changeState('scrollEnd', self); } } else if (self.currentEventType === 'click') { - me._load(me._spliceApi(self), self); + var isNoMore = self.$stateBar.hasClass('no-more'); + if (!isNoMore){ + me._load(me._spliceApi(self), self); + } } }, /** @@ -277,7 +289,7 @@ */ _changeEvent: function (eventType, self) { var me = this; - me.$triggerTarget.off('scroll.sq.loadmore' + self.id); + me.$triggerTarget.off(eventType + '.sq.loadmore'); self.currentEventType = eventType; self.$stateBar.data('event', eventType); // 记录事件状态 if (eventType === 'click') { @@ -334,7 +346,12 @@ } break; case 'noMore': // 无下页数据 - self.$stateBar.addClass('no-more').hide(); + self.$stateBar.addClass('no-more').removeClass('loading'); + if (me.settings.TXT_NOMORE_TIP) { + self.$stateTxt.text(me.settings.TXT_NOMORE_TIP); + } else { + self.$stateBar.hide(); + } break; case 'loadError': // 加载错误提示 self.currentState = 'loadError'; @@ -354,6 +371,10 @@ */ _load: function (api, self) { var me = this; + var currentState = self.$stateBar.data('currentState'); + if (currentState === 'loading') { + return; + } me._changeState('loading', self); // 如果设置了 beforeLoadFun 回调函数,则 beforeLoadFun 必须返回 true 才能继续向下执行, // 用于人为中断 _load 事件。 @@ -380,16 +401,14 @@ me.xhr = $.ajax({ type: me.settings.XHR_METHOD, url: api, - timeout: me.settings.XHR_TIMEOUT, - success: function (data) { - me._loadedResult(data, self); - if (me.settings.LOCAL_DATA) { - SQ.store.localStorage.set(api, data); - } - }, - error: function () { - me._changeState('loadError', self); + timeout: me.settings.XHR_TIMEOUT + }).done(function (data) { + me._loadedResult(data, self); + if (me.settings.LOCAL_DATA) { + SQ.store.localStorage.set(api, data); } + }).fail(function (data) { + me._changeState('loadError', self); }); }, /** @@ -401,10 +420,11 @@ var me = this; var jsonData; var code; + /*console.log(data, data !== undefined) if (!data) { me._changeState('loadError', self); return; - } + }*/ jsonData = SQ.isString(data) ? $.parseJSON(data) : data; // 简单模式 // 会自动判断并更新运行状态,前提是数据格式必须要符合要求 diff --git a/src/js/modal.js b/src/scripts/modal.js similarity index 98% rename from src/js/modal.js rename to src/scripts/modal.js index bbac175..f82a718 100644 --- a/src/js/modal.js +++ b/src/scripts/modal.js @@ -39,6 +39,7 @@ * @param {number} config.CSS_HEIGHT 弹窗 height 属性值 * @param {string} config.CSS_MASK_BACKGROUND 遮罩背景色,默认值:'#000000' * @param {string} config.CSS_MASK_OPACITY 遮罩透明度,默认值:0.5 + * @param {boolen} config.CANCEL_BTN 取消按钮显示设定,默认值:false * @param {boolen} config.CLOSE_BTN 关闭按钮显示设定,默认值:true * @param {number} config.DELAY 延时显示对话框设置,单位:毫秒 * @param {boolen} config.DISPOSABLE 设置弹窗是否是只显示一次,默认为 false @@ -166,8 +167,8 @@ var $modalPanel = $('
    '); var $modalContent = $('
    '); var $close = $('
    ' + me.settings.TXT_CLOSE_VAL + '
    '); - var $okBtn = $('
    ' + me.settings.TXT_OK_VAL + '
    '); - var $cancelBtn = $('
    ' + me.settings.TXT_CANCEL_VAL + '
    '); + var $okBtn = $('
    ' + me.settings.TXT_OK_VAL + '
    '); + var $cancelBtn = $('
    ' + me.settings.TXT_CANCEL_VAL + '
    '); // 设置样式 $modalPanel.css({ diff --git a/src/js/panel.js b/src/scripts/panel.js similarity index 92% rename from src/js/panel.js rename to src/scripts/panel.js index 7028c3b..3d7e5db 100644 --- a/src/js/panel.js +++ b/src/scripts/panel.js @@ -1,10 +1,12 @@ /** * @file SQ.Panel 滑动面板插件 - * @version 1.0.2 + * @version 1.0.4 */ /** * @changelog + * 1.0.4 * 修改动画类名称 + * 1.0.3 * 删除手势事件 * 1.0.2 * 使用了新增的手势事件,适应调整后的 jsHint 规则。 * 1.0.1 * 为 ucweb 9.7 事件优化做兼容,增加 selector Dom 验证。 * 1.0.0 * 重写插件,调用方式改为 $. 链式调用。 @@ -79,6 +81,11 @@ me.$body = $('body'); me.$element = $(me.element); // 触发元素 me.$wrapper = $(me.settings.DOM_WRAPPER); + + me.panelShowAnimate = 'animate-showPanel'; + me.panelHideAnimate = 'animate-hidePanel'; + me.wrapShowAnimate = 'animate-showWrap'; + me.wrapHideAnimate = 'animate-hideWrap'; me.beforeShowFun = me.settings.beforeShow; me.showFun = me.settings.show; @@ -112,13 +119,9 @@ _bind: function () { var me = this; // 绑定在 document 上是为了解决 Ajax 内容绑定问题 - SQ.gestures.tap({ - el: me.settings.selector, - event: '.sq.panel', - callbackFun: function (e) { - e.preventDefault(); - me.show(e); - } + me.$element.on('click.sq.panel', function (e) { + e.preventDefault(); + me.show(e); }); }, /** @@ -226,8 +229,8 @@ return; } me.mask(); - me.$panel.removeClass('sq-hidePanel').addClass('animated sq-showPanel fast'); - me.$wrapper.removeClass('sq-showWrap').addClass('animated sq-hideWrap fast'); + me.$panel.removeClass(me.panelHideAnimate).addClass('animated quick ' + me.panelShowAnimate); + me.$wrapper.removeClass(me.wrapShowAnimate).addClass('animated quick ' + me.wrapHideAnimate); me.closed = false; // 执行回调函数。 if (me.showFun) { @@ -270,12 +273,9 @@ me.close(); } }); - SQ.gestures.tap({ - el: $mask, - callbackFun: function (e) { - e.preventDefault(); - me.close(); - } + $mask.on('click', function (e) { + e.preventDefault(); + me.close(); }); $mask.on('mousewheel', function (e) { e.preventDefault(); @@ -290,8 +290,8 @@ */ close: function (type) { var me = this; - me.$panel.removeClass('sq-showPanel').addClass('sq-hidePanel'); - me.$wrapper.removeClass('sq-hideWrap').addClass('sq-showWrap'); + me.$panel.removeClass(me.panelShowAnimate).addClass(me.panelHideAnimate); + me.$wrapper.removeClass(me.wrapHideAnimate).addClass(me.wrapShowAnimate); me.$mask.hide(); me.closed = true; if (me.closeFun && !type) { diff --git a/src/scripts/slider.js b/src/scripts/slider.js new file mode 100644 index 0000000..daf3835 --- /dev/null +++ b/src/scripts/slider.js @@ -0,0 +1,1316 @@ +// MODIFIED: +// - LINE 226: add `` +// - namespace +// - Init code + +//** BxSlider v4.1.2 http://bxslider.com + +/* jshint ignore:start */ +(function($){ + 'use strict'; + var plugin = {}; + + var defaults = { + + // GENERAL + mode: 'horizontal', + slideSelector: '', + infiniteLoop: true, + hideControlOnEnd: false, + speed: 500, + easing: null, + slideMargin: 0, + startSlide: 0, + randomStart: false, + captions: false, + ticker: false, + tickerHover: false, + adaptiveHeight: false, + adaptiveHeightSpeed: 500, + video: false, + useCSS: true, + preloadImages: 'visible', + responsive: true, + + // TOUCH + touchEnabled: true, + swipeThreshold: 50, + oneToOneTouch: true, + preventDefaultSwipeX: true, + preventDefaultSwipeY: false, + + // PAGER + pager: true, + pagerType: 'full', + pagerShortSeparator: ' / ', + pagerSelector: null, + buildPager: null, + pagerCustom: null, + + // CONTROLS + controls: true, + nextText: 'Next', + prevText: 'Prev', + nextSelector: null, + prevSelector: null, + autoControls: false, + startText: 'Start', + stopText: 'Stop', + autoControlsCombine: false, + autoControlsSelector: null, + + // AUTO + auto: false, + pause: 4000, + autoStart: true, + autoDirection: 'next', + autoHover: false, + autoDelay: 0, + + // CAROUSEL + minSlides: 1, + maxSlides: 1, + moveSlides: 0, + slideWidth: 0, + + // CALLBACKS + onSliderLoad: function() {}, + onSlideBefore: function() {}, + onSlideAfter: function() {}, + onSlideNext: function() {}, + onSlidePrev: function() {} + } + + $.fn.bxSlider = function(options){ + + if(this.length == 0) return this; + + // support mutltiple elements + if(this.length > 1){ + this.each(function(){$(this).bxSlider(options)}); + return this; + } + + // create a namespace to be used throughout the plugin + var slider = {}; + // set a reference to our slider element + var el = this; + plugin.el = this; + + /** + * Makes slideshow responsive + */ + // first get the original window dimens (thanks alot IE) + var windowWidth = $(window).width(); + var windowHeight = $(window).height(); + + + + /** + * =================================================================================== + * = PRIVATE FUNCTIONS + * =================================================================================== + */ + + /** + * Initializes namespace settings to be used throughout plugin + */ + var init = function(){ + // merge user-supplied options with the defaults + slider.settings = $.extend({}, defaults, options); + // parse slideWidth setting + slider.settings.slideWidth = parseInt(slider.settings.slideWidth); + // store the original children + slider.children = el.children(slider.settings.slideSelector); + // check if actual number of slides is less than minSlides / maxSlides + if(slider.children.length < slider.settings.minSlides) slider.settings.minSlides = slider.children.length; + if(slider.children.length < slider.settings.maxSlides) slider.settings.maxSlides = slider.children.length; + // if random start, set the startSlide setting to random number + if(slider.settings.randomStart) slider.settings.startSlide = Math.floor(Math.random() * slider.children.length); + // store active slide information + slider.active = { index: slider.settings.startSlide } + // store if the slider is in carousel mode (displaying / moving multiple slides) + slider.carousel = slider.settings.minSlides > 1 || slider.settings.maxSlides > 1; + // if carousel, force preloadImages = 'all' + if(slider.carousel) slider.settings.preloadImages = 'all'; + // calculate the min / max width thresholds based on min / max number of slides + // used to setup and update carousel slides dimensions + slider.minThreshold = (slider.settings.minSlides * slider.settings.slideWidth) + ((slider.settings.minSlides - 1) * slider.settings.slideMargin); + slider.maxThreshold = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin); + // store the current state of the slider (if currently animating, working is true) + slider.working = false; + // initialize the controls object + slider.controls = {}; + // initialize an auto interval + slider.interval = null; + // determine which property to use for transitions + slider.animProp = slider.settings.mode == 'vertical' ? 'top' : 'left'; + // determine if hardware acceleration can be used + slider.usingCSS = slider.settings.useCSS && slider.settings.mode != 'fade' && (function(){ + // create our test div element + var div = document.createElement('div'); + // css transition properties + var props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; + // test for each property + for(var i in props){ + if(div.style[props[i]] !== undefined){ + slider.cssPrefix = props[i].replace('Perspective', '').toLowerCase(); + slider.animProp = '-' + slider.cssPrefix + '-transform'; + return true; + } + } + return false; + }()); + // if vertical mode always make maxSlides and minSlides equal + if(slider.settings.mode == 'vertical') slider.settings.maxSlides = slider.settings.minSlides; + // save original style data + el.data("origStyle", el.attr("style")); + el.children(slider.settings.slideSelector).each(function() { + $(this).data("origStyle", $(this).attr("style")); + }); + // perform all DOM / CSS modifications + setup(); + } + + /** + * Performs all DOM and CSS modifications + */ + var setup = function(){ + // wrap el in a wrapper + el.wrap('
    '); + // store a namspace reference to .bx-viewport + slider.viewport = el.parent(); + // add a loading div to display while images are loading + slider.loader = $('
    '); + slider.viewport.prepend(slider.loader); + // set el to a massive width, to hold any needed slides + // also strip any margin and padding from el + el.css({ + width: slider.settings.mode == 'horizontal' ? (slider.children.length * 100 + 215) + '%' : 'auto', + position: 'relative' + }); + // if using CSS, add the easing property + if(slider.usingCSS && slider.settings.easing){ + el.css('-' + slider.cssPrefix + '-transition-timing-function', slider.settings.easing); + // if not using CSS and no easing value was supplied, use the default JS animation easing (swing) + }else if(!slider.settings.easing){ + slider.settings.easing = 'swing'; + } + var slidesShowing = getNumberSlidesShowing(); + // make modifications to the viewport (.bx-viewport) + slider.viewport.css({ + width: '100%', + overflow: 'hidden', + position: 'relative' + }); + slider.viewport.parent().css({ + maxWidth: getViewportMaxWidth() + }); + // make modification to the wrapper (.bx-wrapper) + if(!slider.settings.pager) { + slider.viewport.parent().css({ + margin: '0 auto 0px' + }); + } + // apply css to all slider children + slider.children.css({ + 'float': slider.settings.mode == 'horizontal' ? 'left' : 'none', + listStyle: 'none', + position: 'relative' + }); + // apply the calculated width after the float is applied to prevent scrollbar interference + slider.children.css('width', getSlideWidth()); + // if slideMargin is supplied, add the css + if(slider.settings.mode == 'horizontal' && slider.settings.slideMargin > 0) slider.children.css('marginRight', slider.settings.slideMargin); + if(slider.settings.mode == 'vertical' && slider.settings.slideMargin > 0) slider.children.css('marginBottom', slider.settings.slideMargin); + // if "fade" mode, add positioning and z-index CSS + if(slider.settings.mode == 'fade'){ + slider.children.css({ + position: 'absolute', + zIndex: 0, + display: 'none' + }); + // prepare the z-index on the showing element + slider.children.eq(slider.settings.startSlide).css({zIndex: 50, display: 'block'}); + } + // create an element to contain all slider controls (pager, start / stop, etc) + slider.controls.el = $('
    '); + // if captions are requested, add them + if(slider.settings.captions) appendCaptions(); + // check if startSlide is last slide + slider.active.last = slider.settings.startSlide == getPagerQty() - 1; + // if video is true, set up the fitVids plugin + if(slider.settings.video) el.fitVids(); + // set the default preload selector (visible) + var preloadSelector = slider.children.eq(slider.settings.startSlide); + if (slider.settings.preloadImages == "all") preloadSelector = slider.children; + // only check for control addition if not in "ticker" mode + if(!slider.settings.ticker){ + // if pager is requested, add it + if(slider.settings.pager) appendPager(); + // if controls are requested, add them + if(slider.settings.controls) appendControls(); + // if auto is true, and auto controls are requested, add them + if(slider.settings.auto && slider.settings.autoControls) appendControlsAuto(); + // if any control option is requested, add the controls wrapper + if(slider.settings.controls || slider.settings.autoControls || slider.settings.pager) slider.viewport.after(slider.controls.el); + // if ticker mode, do not allow a pager + }else{ + slider.settings.pager = false; + } + // preload all images, then perform final DOM / CSS modifications that depend on images being loaded + loadElements(preloadSelector, start); + } + + var loadElements = function(selector, callback){ + var total = selector.find('img, iframe').length; + if (total == 0){ + callback(); + return; + } + var count = 0; + selector.find('img, iframe').each(function(){ + $(this).one('load', function() { + if(++count == total) callback(); + }).each(function() { + if(this.complete) $(this).load(); + }); + }); + } + + /** + * Start the slider + */ + var start = function(){ + // if infinite loop, prepare additional slides + if(slider.settings.infiniteLoop && slider.settings.mode != 'fade' && !slider.settings.ticker){ + var slice = slider.settings.mode == 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides; + var sliceAppend = slider.children.slice(0, slice).clone().addClass('bx-clone'); + var slicePrepend = slider.children.slice(-slice).clone().addClass('bx-clone'); + el.append(sliceAppend).prepend(slicePrepend); + } + // remove the loading DOM element + slider.loader.remove(); + // set the left / top position of "el" + setSlidePosition(); + // if "vertical" mode, always use adaptiveHeight to prevent odd behavior + if (slider.settings.mode == 'vertical') slider.settings.adaptiveHeight = true; + // set the viewport height + slider.viewport.height(getViewportHeight()); + // make sure everything is positioned just right (same as a window resize) + el.redrawSlider(); + // onSliderLoad callback + slider.settings.onSliderLoad(slider.active.index); + // slider has been fully initialized + slider.initialized = true; + // bind the resize call to the window + if (slider.settings.responsive) $(window).bind('resize', resizeWindow); + // if auto is true, start the show + if (slider.settings.auto && slider.settings.autoStart) initAuto(); + // if ticker is true, start the ticker + if (slider.settings.ticker) initTicker(); + // if pager is requested, make the appropriate pager link active + if (slider.settings.pager) updatePagerActive(slider.settings.startSlide); + // check for any updates to the controls (like hideControlOnEnd updates) + if (slider.settings.controls) updateDirectionControls(); + // if touchEnabled is true, setup the touch events + if (slider.settings.touchEnabled && !slider.settings.ticker) initTouch(); + } + + /** + * Returns the calculated height of the viewport, used to determine either adaptiveHeight or the maxHeight value + */ + var getViewportHeight = function(){ + var height = 0; + // first determine which children (slides) should be used in our height calculation + var children = $(); + // if mode is not "vertical" and adaptiveHeight is false, include all children + if(slider.settings.mode != 'vertical' && !slider.settings.adaptiveHeight){ + children = slider.children; + }else{ + // if not carousel, return the single active child + if(!slider.carousel){ + children = slider.children.eq(slider.active.index); + // if carousel, return a slice of children + }else{ + // get the individual slide index + var currentIndex = slider.settings.moveSlides == 1 ? slider.active.index : slider.active.index * getMoveBy(); + // add the current slide to the children + children = slider.children.eq(currentIndex); + // cycle through the remaining "showing" slides + for (i = 1; i <= slider.settings.maxSlides - 1; i++){ + // if looped back to the start + if(currentIndex + i >= slider.children.length){ + children = children.add(slider.children.eq(i - 1)); + }else{ + children = children.add(slider.children.eq(currentIndex + i)); + } + } + } + } + // if "vertical" mode, calculate the sum of the heights of the children + if(slider.settings.mode == 'vertical'){ + children.each(function(index) { + height += $(this).outerHeight(); + }); + // add user-supplied margins + if(slider.settings.slideMargin > 0){ + height += slider.settings.slideMargin * (slider.settings.minSlides - 1); + } + // if not "vertical" mode, calculate the max height of the children + }else{ + height = Math.max.apply(Math, children.map(function(){ + return $(this).outerHeight(false); + }).get()); + } + return height; + } + + /** + * Returns the calculated width to be used for the outer wrapper / viewport + */ + var getViewportMaxWidth = function(){ + var width = '100%'; + if(slider.settings.slideWidth > 0){ + if(slider.settings.mode == 'horizontal'){ + width = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin); + }else{ + width = slider.settings.slideWidth; + } + } + return width; + } + + /** + * Returns the calculated width to be applied to each slide + */ + var getSlideWidth = function(){ + // start with any user-supplied slide width + var newElWidth = slider.settings.slideWidth; + // get the current viewport width + var wrapWidth = slider.viewport.width(); + // if slide width was not supplied, or is larger than the viewport use the viewport width + if(slider.settings.slideWidth == 0 || + (slider.settings.slideWidth > wrapWidth && !slider.carousel) || + slider.settings.mode == 'vertical'){ + newElWidth = wrapWidth; + // if carousel, use the thresholds to determine the width + }else if(slider.settings.maxSlides > 1 && slider.settings.mode == 'horizontal'){ + if(wrapWidth > slider.maxThreshold){ + // newElWidth = (wrapWidth - (slider.settings.slideMargin * (slider.settings.maxSlides - 1))) / slider.settings.maxSlides; + }else if(wrapWidth < slider.minThreshold){ + newElWidth = (wrapWidth - (slider.settings.slideMargin * (slider.settings.minSlides - 1))) / slider.settings.minSlides; + } + } + return newElWidth; + } + + /** + * Returns the number of slides currently visible in the viewport (includes partially visible slides) + */ + var getNumberSlidesShowing = function(){ + var slidesShowing = 1; + if(slider.settings.mode == 'horizontal' && slider.settings.slideWidth > 0){ + // if viewport is smaller than minThreshold, return minSlides + if(slider.viewport.width() < slider.minThreshold){ + slidesShowing = slider.settings.minSlides; + // if viewport is larger than minThreshold, return maxSlides + }else if(slider.viewport.width() > slider.maxThreshold){ + slidesShowing = slider.settings.maxSlides; + // if viewport is between min / max thresholds, divide viewport width by first child width + }else{ + var childWidth = slider.children.first().width(); + slidesShowing = Math.floor(slider.viewport.width() / childWidth); + } + // if "vertical" mode, slides showing will always be minSlides + }else if(slider.settings.mode == 'vertical'){ + slidesShowing = slider.settings.minSlides; + } + return slidesShowing; + } + + /** + * Returns the number of pages (one full viewport of slides is one "page") + */ + var getPagerQty = function(){ + var pagerQty = 0; + // if moveSlides is specified by the user + if(slider.settings.moveSlides > 0){ + if(slider.settings.infiniteLoop){ + pagerQty = slider.children.length / getMoveBy(); + }else{ + // use a while loop to determine pages + var breakPoint = 0; + var counter = 0 + // when breakpoint goes above children length, counter is the number of pages + while (breakPoint < slider.children.length){ + ++pagerQty; + breakPoint = counter + getNumberSlidesShowing(); + counter += slider.settings.moveSlides <= getNumberSlidesShowing() ? slider.settings.moveSlides : getNumberSlidesShowing(); + } + } + // if moveSlides is 0 (auto) divide children length by sides showing, then round up + }else{ + pagerQty = Math.ceil(slider.children.length / getNumberSlidesShowing()); + } + return pagerQty; + } + + /** + * Returns the number of indivual slides by which to shift the slider + */ + var getMoveBy = function(){ + // if moveSlides was set by the user and moveSlides is less than number of slides showing + if(slider.settings.moveSlides > 0 && slider.settings.moveSlides <= getNumberSlidesShowing()){ + return slider.settings.moveSlides; + } + // if moveSlides is 0 (auto) + return getNumberSlidesShowing(); + } + + /** + * Sets the slider's (el) left or top position + */ + var setSlidePosition = function(){ + // if last slide, not infinite loop, and number of children is larger than specified maxSlides + if(slider.children.length > slider.settings.maxSlides && slider.active.last && !slider.settings.infiniteLoop){ + if (slider.settings.mode == 'horizontal'){ + // get the last child's position + var lastChild = slider.children.last(); + var position = lastChild.position(); + // set the left position + setPositionProperty(-(position.left - (slider.viewport.width() - lastChild.width())), 'reset', 0); + }else if(slider.settings.mode == 'vertical'){ + // get the last showing index's position + var lastShowingIndex = slider.children.length - slider.settings.minSlides; + var position = slider.children.eq(lastShowingIndex).position(); + // set the top position + setPositionProperty(-position.top, 'reset', 0); + } + // if not last slide + }else{ + // get the position of the first showing slide + var position = slider.children.eq(slider.active.index * getMoveBy()).position(); + // check for last slide + if (slider.active.index == getPagerQty() - 1) slider.active.last = true; + // set the repective position + if (position != undefined){ + if (slider.settings.mode == 'horizontal') setPositionProperty(-position.left, 'reset', 0); + else if (slider.settings.mode == 'vertical') setPositionProperty(-position.top, 'reset', 0); + } + } + } + + /** + * Sets the el's animating property position (which in turn will sometimes animate el). + * If using CSS, sets the transform property. If not using CSS, sets the top / left property. + * + * @param value (int) + * - the animating property's value + * + * @param type (string) 'slider', 'reset', 'ticker' + * - the type of instance for which the function is being + * + * @param duration (int) + * - the amount of time (in ms) the transition should occupy + * + * @param params (array) optional + * - an optional parameter containing any variables that need to be passed in + */ + var setPositionProperty = function(value, type, duration, params){ + // use CSS transform + if(slider.usingCSS){ + // determine the translate3d value + var propValue = slider.settings.mode == 'vertical' ? 'translate3d(0, ' + value + 'px, 0)' : 'translate3d(' + value + 'px, 0, 0)'; + // add the CSS transition-duration + el.css('-' + slider.cssPrefix + '-transition-duration', duration / 1000 + 's'); + if(type == 'slide'){ + // set the property value + el.css(slider.animProp, propValue); + // bind a callback method - executes when CSS transition completes + el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(){ + // unbind the callback + el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); + updateAfterSlideTransition(); + }); + }else if(type == 'reset'){ + el.css(slider.animProp, propValue); + }else if(type == 'ticker'){ + // make the transition use 'linear' + el.css('-' + slider.cssPrefix + '-transition-timing-function', 'linear'); + el.css(slider.animProp, propValue); + // bind a callback method - executes when CSS transition completes + el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(){ + // unbind the callback + el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); + // reset the position + setPositionProperty(params['resetValue'], 'reset', 0); + // start the loop again + tickerLoop(); + }); + } + // use JS animate + }else{ + var animateObj = {}; + animateObj[slider.animProp] = value; + if(type == 'slide'){ + el.animate(animateObj, duration, slider.settings.easing, function(){ + updateAfterSlideTransition(); + }); + }else if(type == 'reset'){ + el.css(slider.animProp, value) + }else if(type == 'ticker'){ + el.animate(animateObj, speed, 'linear', function(){ + setPositionProperty(params['resetValue'], 'reset', 0); + // run the recursive loop after animation + tickerLoop(); + }); + } + } + } + + /** + * Populates the pager with proper amount of pages + */ + var populatePager = function(){ + var pagerHtml = ''; + var pagerQty = getPagerQty(); + // loop through each pager item + for(var i=0; i < pagerQty; i++){ + var linkContent = ''; + // if a buildPager function is supplied, use it to get pager link value, else use index + 1 + if(slider.settings.buildPager && $.isFunction(slider.settings.buildPager)){ + linkContent = slider.settings.buildPager(i); + slider.pagerEl.addClass('bx-custom-pager'); + }else{ + linkContent = i + 1; + slider.pagerEl.addClass('bx-default-pager'); + } + // var linkContent = slider.settings.buildPager && $.isFunction(slider.settings.buildPager) ? slider.settings.buildPager(i) : i + 1; + // add the markup to the string + pagerHtml += ''; + }; + // populate the pager element with pager links + slider.pagerEl.html(pagerHtml); + } + + /** + * Appends the pager to the controls element + */ + var appendPager = function(){ + if(!slider.settings.pagerCustom){ + // create the pager DOM element + slider.pagerEl = $('
    '); + // if a pager selector was supplied, populate it with the pager + if(slider.settings.pagerSelector){ + $(slider.settings.pagerSelector).html(slider.pagerEl); + // if no pager selector was supplied, add it after the wrapper + }else{ + slider.controls.el.addClass('bx-has-pager').append(slider.pagerEl); + } + // populate the pager + populatePager(); + }else{ + slider.pagerEl = $(slider.settings.pagerCustom); + } + // assign the pager click binding + slider.pagerEl.delegate('a', 'click', clickPagerBind); + } + + /** + * Appends prev / next controls to the controls element + */ + var appendControls = function(){ + slider.controls.next = $('' + slider.settings.nextText + ''); + slider.controls.prev = $('' + slider.settings.prevText + ''); + // bind click actions to the controls + slider.controls.next.bind('click', clickNextBind); + slider.controls.prev.bind('click', clickPrevBind); + // if nextSlector was supplied, populate it + if(slider.settings.nextSelector){ + $(slider.settings.nextSelector).append(slider.controls.next); + } + // if prevSlector was supplied, populate it + if(slider.settings.prevSelector){ + $(slider.settings.prevSelector).append(slider.controls.prev); + } + // if no custom selectors were supplied + if(!slider.settings.nextSelector && !slider.settings.prevSelector){ + // add the controls to the DOM + slider.controls.directionEl = $('
    '); + // add the control elements to the directionEl + slider.controls.directionEl.append(slider.controls.prev).append(slider.controls.next); + // slider.viewport.append(slider.controls.directionEl); + slider.controls.el.addClass('bx-has-controls-direction').append(slider.controls.directionEl); + } + } + + /** + * Appends start / stop auto controls to the controls element + */ + var appendControlsAuto = function(){ + slider.controls.start = $(''); + slider.controls.stop = $(''); + // add the controls to the DOM + slider.controls.autoEl = $('
    '); + // bind click actions to the controls + slider.controls.autoEl.delegate('.bx-start', 'click', clickStartBind); + slider.controls.autoEl.delegate('.bx-stop', 'click', clickStopBind); + // if autoControlsCombine, insert only the "start" control + if(slider.settings.autoControlsCombine){ + slider.controls.autoEl.append(slider.controls.start); + // if autoControlsCombine is false, insert both controls + }else{ + slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop); + } + // if auto controls selector was supplied, populate it with the controls + if(slider.settings.autoControlsSelector){ + $(slider.settings.autoControlsSelector).html(slider.controls.autoEl); + // if auto controls selector was not supplied, add it after the wrapper + }else{ + slider.controls.el.addClass('bx-has-controls-auto').append(slider.controls.autoEl); + } + // update the auto controls + updateAutoControls(slider.settings.autoStart ? 'stop' : 'start'); + } + + /** + * Appends image captions to the DOM + */ + var appendCaptions = function(){ + // cycle through each child + slider.children.each(function(index){ + // get the image title attribute + var title = $(this).find('img:first').attr('title'); + // append the caption + if (title != undefined && ('' + title).length) { + $(this).append('
    ' + title + '
    '); + } + }); + } + + /** + * Click next binding + * + * @param e (event) + * - DOM event object + */ + var clickNextBind = function(e){ + // if auto show is running, stop it + if (slider.settings.auto) el.stopAuto(); + el.goToNextSlide(); + e.preventDefault(); + } + + /** + * Click prev binding + * + * @param e (event) + * - DOM event object + */ + var clickPrevBind = function(e){ + // if auto show is running, stop it + if (slider.settings.auto) el.stopAuto(); + el.goToPrevSlide(); + e.preventDefault(); + } + + /** + * Click start binding + * + * @param e (event) + * - DOM event object + */ + var clickStartBind = function(e){ + el.startAuto(); + e.preventDefault(); + } + + /** + * Click stop binding + * + * @param e (event) + * - DOM event object + */ + var clickStopBind = function(e){ + el.stopAuto(); + e.preventDefault(); + } + + /** + * Click pager binding + * + * @param e (event) + * - DOM event object + */ + var clickPagerBind = function(e){ + // if auto show is running, stop it + if (slider.settings.auto) el.stopAuto(); + var pagerLink = $(e.currentTarget); + var pagerIndex = parseInt(pagerLink.attr('data-slide-index')); + // if clicked pager link is not active, continue with the goToSlide call + if(pagerIndex != slider.active.index) el.goToSlide(pagerIndex); + e.preventDefault(); + } + + /** + * Updates the pager links with an active class + * + * @param slideIndex (int) + * - index of slide to make active + */ + var updatePagerActive = function(slideIndex){ + // if "short" pager type + var len = slider.children.length; // nb of children + if(slider.settings.pagerType == 'short'){ + if(slider.settings.maxSlides > 1) { + len = Math.ceil(slider.children.length/slider.settings.maxSlides); + } + slider.pagerEl.html( (slideIndex + 1) + slider.settings.pagerShortSeparator + len); + return; + } + // remove all pager active classes + slider.pagerEl.find('a').removeClass('active'); + // apply the active class for all pagers + slider.pagerEl.each(function(i, el) { $(el).find('a').eq(slideIndex).addClass('active'); }); + } + + /** + * Performs needed actions after a slide transition + */ + var updateAfterSlideTransition = function(){ + // if infinte loop is true + if(slider.settings.infiniteLoop){ + var position = ''; + // first slide + if(slider.active.index == 0){ + // set the new position + position = slider.children.eq(0).position(); + // carousel, last slide + }else if(slider.active.index == getPagerQty() - 1 && slider.carousel){ + position = slider.children.eq((getPagerQty() - 1) * getMoveBy()).position(); + // last slide + }else if(slider.active.index == slider.children.length - 1){ + position = slider.children.eq(slider.children.length - 1).position(); + } + if(position){ + if (slider.settings.mode == 'horizontal') { setPositionProperty(-position.left, 'reset', 0);; } + else if (slider.settings.mode == 'vertical') { setPositionProperty(-position.top, 'reset', 0);; } + } + } + // declare that the transition is complete + slider.working = false; + // onSlideAfter callback + slider.settings.onSlideAfter(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); + } + + /** + * Updates the auto controls state (either active, or combined switch) + * + * @param state (string) "start", "stop" + * - the new state of the auto show + */ + var updateAutoControls = function(state){ + // if autoControlsCombine is true, replace the current control with the new state + if(slider.settings.autoControlsCombine){ + slider.controls.autoEl.html(slider.controls[state]); + // if autoControlsCombine is false, apply the "active" class to the appropriate control + }else{ + slider.controls.autoEl.find('a').removeClass('active'); + slider.controls.autoEl.find('a:not(.bx-' + state + ')').addClass('active'); + } + } + + /** + * Updates the direction controls (checks if either should be hidden) + */ + var updateDirectionControls = function(){ + if(getPagerQty() == 1){ + slider.controls.prev.addClass('disabled'); + slider.controls.next.addClass('disabled'); + }else if(!slider.settings.infiniteLoop && slider.settings.hideControlOnEnd){ + // if first slide + if (slider.active.index == 0){ + slider.controls.prev.addClass('disabled'); + slider.controls.next.removeClass('disabled'); + // if last slide + }else if(slider.active.index == getPagerQty() - 1){ + slider.controls.next.addClass('disabled'); + slider.controls.prev.removeClass('disabled'); + // if any slide in the middle + }else{ + slider.controls.prev.removeClass('disabled'); + slider.controls.next.removeClass('disabled'); + } + } + } + + /** + * Initialzes the auto process + */ + var initAuto = function(){ + // if autoDelay was supplied, launch the auto show using a setTimeout() call + if(slider.settings.autoDelay > 0){ + var timeout = setTimeout(el.startAuto, slider.settings.autoDelay); + // if autoDelay was not supplied, start the auto show normally + }else{ + el.startAuto(); + } + // if autoHover is requested + if(slider.settings.autoHover){ + // on el hover + el.hover(function(){ + // if the auto show is currently playing (has an active interval) + if(slider.interval){ + // stop the auto show and pass true agument which will prevent control update + el.stopAuto(true); + // create a new autoPaused value which will be used by the relative "mouseout" event + slider.autoPaused = true; + } + }, function(){ + // if the autoPaused value was created be the prior "mouseover" event + if(slider.autoPaused){ + // start the auto show and pass true agument which will prevent control update + el.startAuto(true); + // reset the autoPaused value + slider.autoPaused = null; + } + }); + } + } + + /** + * Initialzes the ticker process + */ + var initTicker = function(){ + var startPosition = 0; + // if autoDirection is "next", append a clone of the entire slider + if(slider.settings.autoDirection == 'next'){ + el.append(slider.children.clone().addClass('bx-clone')); + // if autoDirection is "prev", prepend a clone of the entire slider, and set the left position + }else{ + el.prepend(slider.children.clone().addClass('bx-clone')); + var position = slider.children.first().position(); + startPosition = slider.settings.mode == 'horizontal' ? -position.left : -position.top; + } + setPositionProperty(startPosition, 'reset', 0); + // do not allow controls in ticker mode + slider.settings.pager = false; + slider.settings.controls = false; + slider.settings.autoControls = false; + // if autoHover is requested + if(slider.settings.tickerHover && !slider.usingCSS){ + // on el hover + slider.viewport.hover(function(){ + el.stop(); + }, function(){ + // calculate the total width of children (used to calculate the speed ratio) + var totalDimens = 0; + slider.children.each(function(index){ + totalDimens += slider.settings.mode == 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true); + }); + // calculate the speed ratio (used to determine the new speed to finish the paused animation) + var ratio = slider.settings.speed / totalDimens; + // determine which property to use + var property = slider.settings.mode == 'horizontal' ? 'left' : 'top'; + // calculate the new speed + var newSpeed = ratio * (totalDimens - (Math.abs(parseInt(el.css(property))))); + tickerLoop(newSpeed); + }); + } + // start the ticker loop + tickerLoop(); + } + + /** + * Runs a continuous loop, news ticker-style + */ + var tickerLoop = function(resumeSpeed){ + speed = resumeSpeed ? resumeSpeed : slider.settings.speed; + var position = {left: 0, top: 0}; + var reset = {left: 0, top: 0}; + // if "next" animate left position to last child, then reset left to 0 + if(slider.settings.autoDirection == 'next'){ + position = el.find('.bx-clone').first().position(); + // if "prev" animate left position to 0, then reset left to first non-clone child + }else{ + reset = slider.children.first().position(); + } + var animateProperty = slider.settings.mode == 'horizontal' ? -position.left : -position.top; + var resetValue = slider.settings.mode == 'horizontal' ? -reset.left : -reset.top; + var params = {resetValue: resetValue}; + setPositionProperty(animateProperty, 'ticker', speed, params); + } + + /** + * Initializes touch events + */ + var initTouch = function(){ + // initialize object to contain all touch values + slider.touch = { + start: {x: 0, y: 0}, + end: {x: 0, y: 0} + } + slider.viewport.bind('touchstart', onTouchStart); + } + + /** + * Event handler for "touchstart" + * + * @param e (event) + * - DOM event object + */ + var onTouchStart = function(e){ + if(slider.working){ + e.preventDefault(); + }else{ + // record the original position when touch starts + slider.touch.originalPos = el.position(); + var orig = e.originalEvent; + // record the starting touch x, y coordinates + slider.touch.start.x = orig.changedTouches[0].pageX; + slider.touch.start.y = orig.changedTouches[0].pageY; + // bind a "touchmove" event to the viewport + slider.viewport.bind('touchmove', onTouchMove); + // bind a "touchend" event to the viewport + slider.viewport.bind('touchend', onTouchEnd); + } + } + + /** + * Event handler for "touchmove" + * + * @param e (event) + * - DOM event object + */ + var onTouchMove = function(e){ + var orig = e.originalEvent; + // if scrolling on y axis, do not prevent default + var xMovement = Math.abs(orig.changedTouches[0].pageX - slider.touch.start.x); + var yMovement = Math.abs(orig.changedTouches[0].pageY - slider.touch.start.y); + // x axis swipe + if((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX){ + e.preventDefault(); + // y axis swipe + }else if((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY){ + e.preventDefault(); + } + if(slider.settings.mode != 'fade' && slider.settings.oneToOneTouch){ + var value = 0; + // if horizontal, drag along x axis + if(slider.settings.mode == 'horizontal'){ + var change = orig.changedTouches[0].pageX - slider.touch.start.x; + value = slider.touch.originalPos.left + change; + // if vertical, drag along y axis + }else{ + var change = orig.changedTouches[0].pageY - slider.touch.start.y; + value = slider.touch.originalPos.top + change; + } + setPositionProperty(value, 'reset', 0); + } + } + + /** + * Event handler for "touchend" + * + * @param e (event) + * - DOM event object + */ + var onTouchEnd = function(e){ + slider.viewport.unbind('touchmove', onTouchMove); + var orig = e.originalEvent; + var value = 0; + // record end x, y positions + slider.touch.end.x = orig.changedTouches[0].pageX; + slider.touch.end.y = orig.changedTouches[0].pageY; + // if fade mode, check if absolute x distance clears the threshold + if(slider.settings.mode == 'fade'){ + var distance = Math.abs(slider.touch.start.x - slider.touch.end.x); + if(distance >= slider.settings.swipeThreshold){ + slider.touch.start.x > slider.touch.end.x ? el.goToNextSlide() : el.goToPrevSlide(); + el.stopAuto(); + } + // not fade mode + }else{ + var distance = 0; + // calculate distance and el's animate property + if(slider.settings.mode == 'horizontal'){ + distance = slider.touch.end.x - slider.touch.start.x; + value = slider.touch.originalPos.left; + }else{ + distance = slider.touch.end.y - slider.touch.start.y; + value = slider.touch.originalPos.top; + } + // if not infinite loop and first / last slide, do not attempt a slide transition + if(!slider.settings.infiniteLoop && ((slider.active.index == 0 && distance > 0) || (slider.active.last && distance < 0))){ + setPositionProperty(value, 'reset', 200); + }else{ + // check if distance clears threshold + if(Math.abs(distance) >= slider.settings.swipeThreshold){ + distance < 0 ? el.goToNextSlide() : el.goToPrevSlide(); + el.stopAuto(); + }else{ + // el.animate(property, 200); + setPositionProperty(value, 'reset', 200); + } + } + } + slider.viewport.unbind('touchend', onTouchEnd); + } + + /** + * Window resize event callback + */ + var resizeWindow = function(e){ + // get the new window dimens (again, thank you IE) + var windowWidthNew = $(window).width(); + var windowHeightNew = $(window).height(); + // make sure that it is a true window resize + // *we must check this because our dinosaur friend IE fires a window resize event when certain DOM elements + // are resized. Can you just die already?* + if(windowWidth != windowWidthNew || windowHeight != windowHeightNew){ + // set the new window dimens + windowWidth = windowWidthNew; + windowHeight = windowHeightNew; + // update all dynamic elements + el.redrawSlider(); + } + } + + /** + * =================================================================================== + * = PUBLIC FUNCTIONS + * =================================================================================== + */ + + /** + * Performs slide transition to the specified slide + * + * @param slideIndex (int) + * - the destination slide's index (zero-based) + * + * @param direction (string) + * - INTERNAL USE ONLY - the direction of travel ("prev" / "next") + */ + el.goToSlide = function(slideIndex, direction){ + // if plugin is currently in motion, ignore request + if(slider.working || slider.active.index == slideIndex) return; + // declare that plugin is in motion + slider.working = true; + // store the old index + slider.oldIndex = slider.active.index; + // if slideIndex is less than zero, set active index to last child (this happens during infinite loop) + if(slideIndex < 0){ + slider.active.index = getPagerQty() - 1; + // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop) + }else if(slideIndex >= getPagerQty()){ + slider.active.index = 0; + // set active index to requested slide + }else{ + slider.active.index = slideIndex; + } + // onSlideBefore, onSlideNext, onSlidePrev callbacks + slider.settings.onSlideBefore(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); + if(direction == 'next'){ + slider.settings.onSlideNext(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); + }else if(direction == 'prev'){ + slider.settings.onSlidePrev(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); + } + // check if last slide + slider.active.last = slider.active.index >= getPagerQty() - 1; + // update the pager with active class + if(slider.settings.pager) updatePagerActive(slider.active.index); + // // check for direction control update + if(slider.settings.controls) updateDirectionControls(); + // if slider is set to mode: "fade" + if(slider.settings.mode == 'fade'){ + // if adaptiveHeight is true and next height is different from current height, animate to the new height + if(slider.settings.adaptiveHeight && slider.viewport.height() != getViewportHeight()){ + slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); + } + // fade out the visible child and reset its z-index value + slider.children.filter(':visible').fadeOut(slider.settings.speed).css({zIndex: 0}); + // fade in the newly requested slide + slider.children.eq(slider.active.index).css('zIndex', 51).fadeIn(slider.settings.speed, function(){ + $(this).css('zIndex', 50); + updateAfterSlideTransition(); + }); + // slider mode is not "fade" + }else{ + // if adaptiveHeight is true and next height is different from current height, animate to the new height + if(slider.settings.adaptiveHeight && slider.viewport.height() != getViewportHeight()){ + slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); + } + var moveBy = 0; + var position = {left: 0, top: 0}; + // if carousel and not infinite loop + if(!slider.settings.infiniteLoop && slider.carousel && slider.active.last){ + if(slider.settings.mode == 'horizontal'){ + // get the last child position + var lastChild = slider.children.eq(slider.children.length - 1); + position = lastChild.position(); + // calculate the position of the last slide + moveBy = slider.viewport.width() - lastChild.outerWidth(); + }else{ + // get last showing index position + var lastShowingIndex = slider.children.length - slider.settings.minSlides; + position = slider.children.eq(lastShowingIndex).position(); + } + // horizontal carousel, going previous while on first slide (infiniteLoop mode) + }else if(slider.carousel && slider.active.last && direction == 'prev'){ + // get the last child position + var eq = slider.settings.moveSlides == 1 ? slider.settings.maxSlides - getMoveBy() : ((getPagerQty() - 1) * getMoveBy()) - (slider.children.length - slider.settings.maxSlides); + var lastChild = el.children('.bx-clone').eq(eq); + position = lastChild.position(); + // if infinite loop and "Next" is clicked on the last slide + }else if(direction == 'next' && slider.active.index == 0){ + // get the last clone position + position = el.find('> .bx-clone').eq(slider.settings.maxSlides).position(); + slider.active.last = false; + // normal non-zero requests + }else if(slideIndex >= 0){ + var requestEl = slideIndex * getMoveBy(); + position = slider.children.eq(requestEl).position(); + } + + /* If the position doesn't exist + * (e.g. if you destroy the slider on a next click), + * it doesn't throw an error. + */ + if ("undefined" !== typeof(position)) { + var value = slider.settings.mode == 'horizontal' ? -(position.left - moveBy) : -position.top; + // plugin values to be animated + setPositionProperty(value, 'slide', slider.settings.speed); + } + } + } + + /** + * Transitions to the next slide in the show + */ + el.goToNextSlide = function(){ + // if infiniteLoop is false and last page is showing, disregard call + if (!slider.settings.infiniteLoop && slider.active.last) return; + var pagerIndex = parseInt(slider.active.index) + 1; + el.goToSlide(pagerIndex, 'next'); + } + + /** + * Transitions to the prev slide in the show + */ + el.goToPrevSlide = function(){ + // if infiniteLoop is false and last page is showing, disregard call + if (!slider.settings.infiniteLoop && slider.active.index == 0) return; + var pagerIndex = parseInt(slider.active.index) - 1; + el.goToSlide(pagerIndex, 'prev'); + } + + /** + * Starts the auto show + * + * @param preventControlUpdate (boolean) + * - if true, auto controls state will not be updated + */ + el.startAuto = function(preventControlUpdate){ + // if an interval already exists, disregard call + if(slider.interval) return; + // create an interval + slider.interval = setInterval(function(){ + slider.settings.autoDirection == 'next' ? el.goToNextSlide() : el.goToPrevSlide(); + }, slider.settings.pause); + // if auto controls are displayed and preventControlUpdate is not true + if (slider.settings.autoControls && preventControlUpdate != true) updateAutoControls('stop'); + } + + /** + * Stops the auto show + * + * @param preventControlUpdate (boolean) + * - if true, auto controls state will not be updated + */ + el.stopAuto = function(preventControlUpdate){ + // if no interval exists, disregard call + if(!slider.interval) return; + // clear the interval + clearInterval(slider.interval); + slider.interval = null; + // if auto controls are displayed and preventControlUpdate is not true + if (slider.settings.autoControls && preventControlUpdate != true) updateAutoControls('start'); + } + + /** + * Returns current slide index (zero-based) + */ + el.getCurrentSlide = function(){ + return slider.active.index; + } + + /** + * Returns number of slides in show + */ + el.getSlideCount = function(){ + return slider.children.length; + } + + /** + * Update all dynamic slider elements + */ + el.redrawSlider = function(){ + // resize all children in ratio to new screen size + slider.children.add(el.find('.bx-clone')).outerWidth(getSlideWidth()); + // adjust the height + slider.viewport.css('height', getViewportHeight()); + // update the slide position + if(!slider.settings.ticker) setSlidePosition(); + // if active.last was true before the screen resize, we want + // to keep it last no matter what screen size we end on + if (slider.active.last) slider.active.index = getPagerQty() - 1; + // if the active index (page) no longer exists due to the resize, simply set the index as last + if (slider.active.index >= getPagerQty()) slider.active.last = true; + // if a pager is being displayed and a custom pager is not being used, update it + if(slider.settings.pager && !slider.settings.pagerCustom){ + populatePager(); + updatePagerActive(slider.active.index); + } + } + + /** + * Destroy the current instance of the slider (revert everything back to original state) + */ + el.destroySlider = function(){ + // don't do anything if slider has already been destroyed + if(!slider.initialized) return; + slider.initialized = false; + $('.bx-clone', this).remove(); + slider.children.each(function() { + $(this).data("origStyle") != undefined ? $(this).attr("style", $(this).data("origStyle")) : $(this).removeAttr('style'); + }); + $(this).data("origStyle") != undefined ? this.attr("style", $(this).data("origStyle")) : $(this).removeAttr('style'); + $(this).unwrap().unwrap(); + if(slider.controls.el) slider.controls.el.remove(); + if(slider.controls.next) slider.controls.next.remove(); + if(slider.controls.prev) slider.controls.prev.remove(); + if(slider.pagerEl && slider.settings.controls) slider.pagerEl.remove(); + $('.bx-caption', this).remove(); + if(slider.controls.autoEl) slider.controls.autoEl.remove(); + clearInterval(slider.interval); + if(slider.settings.responsive) $(window).unbind('resize', resizeWindow); + } + + /** + * Reload the slider (revert all DOM changes, and re-initialize) + */ + el.reloadSlider = function(settings){ + if (settings != undefined) options = settings; + el.destroySlider(); + init(); + } + + init(); + + // returns the current jQuery object + return this; + } + +})(jQuery); +/* jshint ignore:end */ \ No newline at end of file diff --git a/src/scripts/squirrel.js b/src/scripts/squirrel.js new file mode 100644 index 0000000..1774db9 --- /dev/null +++ b/src/scripts/squirrel.js @@ -0,0 +1,9 @@ +/** + * Created by Bell on 12/20/14. + */ + +$(function() { + 'use strict'; + window.FastClick.attach(document.body); + //alert('hehe') +}); \ No newline at end of file diff --git a/src/js/fixed.js b/src/scripts/sticky.js similarity index 81% rename from src/js/fixed.js rename to src/scripts/sticky.js index e342043..2d1d9e7 100644 --- a/src/js/fixed.js +++ b/src/scripts/sticky.js @@ -1,10 +1,12 @@ /** - * @file SQ.Fixed 悬停插件 - * @version 1.5.0 + * @file SQ.Sticky 悬停插件 + * @version 1.6.0 */ /** * @changelog + * 1.6.0 * 插件更名为 SQ.Sticky + * 1.5.1 * 修复 $placeholderDom 高度计算问题 * 1.5.0 * 重写插件,调用方式改为 $. 链式调用。 * 1.0.0 + 新增 refresh 方法,可以刷新 Fixed 列表; * * 更改 ARRY_FIXED_POSITION 默认值,修正 fixed 元素高度时会占据全屏的 bug; @@ -16,38 +18,38 @@ (function ($) { 'use strict'; /** - * @name Fixed + * @name Sticky * @classdesc 元素固定定位 * @constructor * @param {object} config 插件配置(下面的参数为配置项,配置会写入属性) * @param {string} config.ANIMATE 动画类,默认值:undefined * @param {array} config.ARRY_FIXED_POSITION 固定位置设置,遵循 [上,右,下,左] 规则,默认为:[0, 0, 'auto', 0] - * @param {number} config.NUM_TRIGGER_POSITION 设置 fixed 激活位置,当有该值时以该值为准,没有则以元素当前位置为准 + * @param {number} config.NUM_TRIGGER_POSITION 设置 sticky 激活位置,当有该值时以该值为准,没有则以元素当前位置为准 * @param {number} config.NUM_ZINDEX z-index 值设置,默认为 101 * @param {boolen} config.PLACEHOLD 是否设置占位 DOM,默认为 false * @param {function} config.fixedIn 设置固定布局时回调函数 * @param {function} config.fixedOut 取消固定布局时回调函数 - * @example $('.J_fixedHeader').fixed({ + * @example $('.J_fixedHeader').sticky({ PLACEHOLD: true }); */ - var scope = 'sq-fixed'; // data-* 后缀 + var scope = 'sq-sticky'; // data-* 后缀 var defaults = { ARRY_FIXED_POSITION: [0, 0, 'auto', 0], NUM_ZINDEX: 101, // .sq-header 的 z-index 值为 100 PLACEHOLD: false }; - function Fixed ( element, options ) { + function Sticky ( element, options ) { this.element = element; this.settings = $.extend( {}, defaults, options ); this._defaults = defaults; this.init(); } - Fixed.prototype = { - construtor: 'Fixed', + Sticky.prototype = { + construtor: 'Sticky', scrollTimer: 0, // 滑动计时器 scrollDelay: 150, // 滑动阀值 init: function () { @@ -59,13 +61,13 @@ me.$element.each(function (index) { var fixedItem = { - id: scope + (index + initializedIndex), // 用于定位 fixed 元素 + id: scope + (index + initializedIndex), // 用于定位 sticky 元素 self: this, $self: $(this), - fixed: false // 标记是否处在 fixed 状态,用于之后的判断 + sticky: false // 标记是否处在 sticky 状态,用于之后的判断 }; - // 确定 fixed 激活位置,当有 NUM_TRIGGER_POSITION 值时以该值为准,没有则以元素当前位置为准 + // 确定 sticky 激活位置,当有 NUM_TRIGGER_POSITION 值时以该值为准,没有则以元素当前位置为准 if (me.settings.NUM_TRIGGER_POSITION && SQ.isNumber(me.settings.NUM_TRIGGER_POSITION)) { fixedItem.triggerPosTop = me.settings.NUM_TRIGGER_POSITION; } else { @@ -79,8 +81,8 @@ } else { console.warn('Not Support getBoundingClientRect'); } - // 当元素处于页面顶端则立即设置为 fixed 布局 - // UC 浏览器在实际渲染时会有问题,不建议用 fixed.js 来实现顶部导航的固定布局(直接使用 CSS) + // 当元素处于页面顶端则立即设置为 sticky 布局 + // UC 浏览器在实际渲染时会有问题,不建议用 sticky.js 来实现顶部导航的固定布局(直接使用 CSS) if (fixedItem.self.triggerPosTop === 0) { me._setFixed(fixedItem); } @@ -90,16 +92,18 @@ }); }, /** - * 设置 fixed 元素占位 DOM + * 设置 sticky 元素占位 DOM * @param fixedItem * @private */ _setPlaceholder: function (fixedItem) { - var $placeholderDom = $('
    ').css({ + var $dom = fixedItem.$self; + var height = $dom.height() + parseInt($dom.css('padding-top'), 10) + parseInt($dom.css('padding-bottom'), 10) + parseInt($dom.css('margin-top'), 10) + parseInt($dom.css('margin-bottom'), 10); + var $placeholderDom = $('
    ').css({ display: 'none', - width: fixedItem.$self.width(), - height: fixedItem.$self.height(), - background: fixedItem.$self.css('background') + width: $dom.width(), + height: height, + background: $dom.css('background') }); $placeholderDom.insertAfter(fixedItem.$self); }, @@ -114,9 +118,9 @@ // 高级浏览器使用 requestAnimationFrame function advancedWatchEvent() { var scrollTop = window.scrollY; - if (scrollTop >= fixedItem.triggerPosTop && !fixedItem.fixed) { + if (scrollTop >= fixedItem.triggerPosTop && !fixedItem.sticky) { me._setFixed(fixedItem); - } else if (scrollTop < fixedItem.triggerPosTop && fixedItem.fixed) { + } else if (scrollTop < fixedItem.triggerPosTop && fixedItem.sticky) { me._removeFixed(fixedItem); } window.requestAnimationFrame(advancedWatchEvent); @@ -127,9 +131,9 @@ // 触发函数 function fire() { var scrollTop = window.scrollY; - if (scrollTop >= fixedItem.triggerPosTop && !fixedItem.$self.hasClass('sq-fixed')) { + if (scrollTop >= fixedItem.triggerPosTop && !fixedItem.$self.hasClass('sq-sticky')) { me._setFixed(fixedItem); - } else if (scrollTop < fixedItem.triggerPosTop && fixedItem.$self.hasClass('sq-fixed')) { + } else if (scrollTop < fixedItem.triggerPosTop && fixedItem.$self.hasClass('sq-sticky')) { me._removeFixed(fixedItem); } } @@ -174,7 +178,7 @@ 'left': posCss[3], 'z-index': me.settings.NUM_ZINDEX }); - fixedItem.fixed = true; + fixedItem.sticky = true; if (me.settings.PLACEHOLD && $placeholderDom.length) { $placeholderDom.show(); @@ -194,7 +198,7 @@ var $placeholderDom = $('#' + fixedItem.id); fixedItem.$self.attr('style', ''); - fixedItem.fixed = false; + fixedItem.sticky = false; if (me.settings.PLACEHOLD && $placeholderDom.length) { $placeholderDom.hide(); @@ -206,7 +210,7 @@ } }; - $.fn.fixed = function ( options ) { + $.fn.sticky = function ( options ) { var isZepto = typeof Zepto !== 'undefined' ? true : false; var isJQuery = typeof jQuery !== 'undefined' ? true : false; var plugin; @@ -217,11 +221,11 @@ this.each(function() { if (isJQuery) { if ( !$.data( this, scope ) ) { - $.data( this, scope, new Fixed( this, options ) ); + $.data( this, scope, new Sticky( this, options ) ); } } else if (isZepto) { if (!$(this).data(scope)) { - plugin = new Fixed( this, options ); + plugin = new Sticky( this, options ); $(this).data(scope, 'initialized'); } } diff --git a/src/js/suggest.js b/src/scripts/suggest.js similarity index 100% rename from src/js/suggest.js rename to src/scripts/suggest.js diff --git a/src/js/tab.js b/src/scripts/tab.js similarity index 98% rename from src/js/tab.js rename to src/scripts/tab.js index 89b692a..ec4a8eb 100644 --- a/src/js/tab.js +++ b/src/scripts/tab.js @@ -150,13 +150,17 @@ me.show($tabs, $panels, me.settings.NUM_ACTIVE); } // 绑定事件 - SQ.gestures.tap({ + /*SQ.gestures.tap({ el: $tabs, event: '.sq.tab', callbackFun: function (e, $el) { e.preventDefault(); me._trigger($tabMould, $tabs, $panels, $el); } + });*/ + $tabs.on('click.sq.tab', function (e) { + e.preventDefault(); + me._trigger($tabMould, $tabs, $panels, $(this)); }); }, /** diff --git a/src/styles/animate.less b/src/styles/animate.less new file mode 100644 index 0000000..2985455 --- /dev/null +++ b/src/styles/animate.less @@ -0,0 +1,3132 @@ +// +// Animate +// @desc: 动画 +// @see: http://daneden.me/animate +// --------------------------------------------------------------------------- + +// 快速动画 +.animated.quick{ + animation-duration: 0.6s; +} + +// Animate.css +// 以下为 animate.css 拷贝,通过 autoprefixer +// 构建工具过滤;更新时请使用 bower +// -------------------------------------------- + +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.animated.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; +} + +.animated.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; +} + +@-webkit-keyframes bounce { + 0%, 20%, 53%, 80%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + -webkit-transform: translate3d(0,0,0); + transform: translate3d(0,0,0); + } + + 40%, 43% { + -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); + } + + 70% { + -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + + 90% { + -webkit-transform: translate3d(0,-4px,0); + transform: translate3d(0,-4px,0); + } +} + +@keyframes bounce { + 0%, 20%, 53%, 80%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + -webkit-transform: translate3d(0,0,0); + -ms-transform: translate3d(0,0,0); + transform: translate3d(0,0,0); + } + + 40%, 43% { + -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -30px, 0); + -ms-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); + } + + 70% { + -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -15px, 0); + -ms-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + + 90% { + -webkit-transform: translate3d(0,-4px,0); + -ms-transform: translate3d(0,-4px,0); + transform: translate3d(0,-4px,0); + } +} + +.bounce { + -webkit-animation-name: bounce; + animation-name: bounce; + -webkit-transform-origin: center bottom; + -ms-transform-origin: center bottom; + transform-origin: center bottom; +} + +@-webkit-keyframes flash { + 0%, 50%, 100% { + opacity: 1; + } + + 25%, 75% { + opacity: 0; + } +} + +@keyframes flash { + 0%, 50%, 100% { + opacity: 1; + } + + 25%, 75% { + opacity: 0; + } +} + +.flash { + -webkit-animation-name: flash; + animation-name: flash; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes pulse { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes pulse { + 0% { + -webkit-transform: scale3d(1, 1, 1); + -ms-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + -ms-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + -ms-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.pulse { + -webkit-animation-name: pulse; + animation-name: pulse; +} + +@-webkit-keyframes rubberBand { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); + } + + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); + } + + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); + } + + 65% { + -webkit-transform: scale3d(.95, 1.05, 1); + transform: scale3d(.95, 1.05, 1); + } + + 75% { + -webkit-transform: scale3d(1.05, .95, 1); + transform: scale3d(1.05, .95, 1); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes rubberBand { + 0% { + -webkit-transform: scale3d(1, 1, 1); + -ms-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + -ms-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); + } + + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + -ms-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); + } + + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + -ms-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); + } + + 65% { + -webkit-transform: scale3d(.95, 1.05, 1); + -ms-transform: scale3d(.95, 1.05, 1); + transform: scale3d(.95, 1.05, 1); + } + + 75% { + -webkit-transform: scale3d(1.05, .95, 1); + -ms-transform: scale3d(1.05, .95, 1); + transform: scale3d(1.05, .95, 1); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + -ms-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.rubberBand { + -webkit-animation-name: rubberBand; + animation-name: rubberBand; +} + +@-webkit-keyframes shake { + 0%, 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 10%, 30%, 50%, 70%, 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 20%, 40%, 60%, 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} + +@keyframes shake { + 0%, 100% { + -webkit-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 10%, 30%, 50%, 70%, 90% { + -webkit-transform: translate3d(-10px, 0, 0); + -ms-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 20%, 40%, 60%, 80% { + -webkit-transform: translate3d(10px, 0, 0); + -ms-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} + +.shake { + -webkit-animation-name: shake; + animation-name: shake; +} + +@-webkit-keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); + } + + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); + } + + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); + } + + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); + } + + 100% { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } +} + +@keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + -ms-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); + } + + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + -ms-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); + } + + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + -ms-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); + } + + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + -ms-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); + } + + 100% { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + -ms-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } +} + +.swing { + -webkit-transform-origin: top center; + -ms-transform-origin: top center; + transform-origin: top center; + -webkit-animation-name: swing; + animation-name: swing; +} + +@-webkit-keyframes tada { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 10%, 20% { + -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + } + + 30%, 50%, 70%, 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + + 40%, 60%, 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes tada { + 0% { + -webkit-transform: scale3d(1, 1, 1); + -ms-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 10%, 20% { + -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + -ms-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + } + + 30%, 50%, 70%, 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + -ms-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + + 40%, 60%, 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + -ms-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + -ms-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.tada { + -webkit-animation-name: tada; + animation-name: tada; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes wobble { + 0% { + -webkit-transform: none; + transform: none; + } + + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +@keyframes wobble { + 0% { + -webkit-transform: none; + -ms-transform: none; + transform: none; + } + + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + -ms-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + -ms-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + -ms-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + -ms-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + -ms-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + + 100% { + -webkit-transform: none; + -ms-transform: none; + transform: none; + } +} + +.wobble { + -webkit-animation-name: wobble; + animation-name: wobble; +} + +@-webkit-keyframes bounceIn { + 0%, 20%, 40%, 60%, 80%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 40% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + + 80% { + -webkit-transform: scale3d(.97, .97, .97); + transform: scale3d(.97, .97, .97); + } + + 100% { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes bounceIn { + 0%, 20%, 40%, 60%, 80%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + -ms-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + -ms-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 40% { + -webkit-transform: scale3d(.9, .9, .9); + -ms-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + -ms-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + + 80% { + -webkit-transform: scale3d(.97, .97, .97); + -ms-transform: scale3d(.97, .97, .97); + transform: scale3d(.97, .97, .97); + } + + 100% { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + -ms-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.bounceIn { + -webkit-animation-name: bounceIn; + animation-name: bounceIn; + -webkit-animation-duration: .75s; + animation-duration: .75s; +} + +@-webkit-keyframes bounceInDown { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + } + + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +@keyframes bounceInDown { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + -ms-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + -ms-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + } + + 75% { + -webkit-transform: translate3d(0, -10px, 0); + -ms-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, 5px, 0); + -ms-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + } + + 100% { + -webkit-transform: none; + -ms-transform: none; + transform: none; + } +} + +.bounceInDown { + -webkit-animation-name: bounceInDown; + animation-name: bounceInDown; +} + +@-webkit-keyframes bounceInLeft { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +@keyframes bounceInLeft { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + -ms-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + -ms-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + -ms-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(5px, 0, 0); + -ms-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); + } + + 100% { + -webkit-transform: none; + -ms-transform: none; + transform: none; + } +} + +.bounceInLeft { + -webkit-animation-name: bounceInLeft; + animation-name: bounceInLeft; +} + +@-webkit-keyframes bounceInRight { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +@keyframes bounceInRight { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + -ms-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + -ms-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(10px, 0, 0); + -ms-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + -ms-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); + } + + 100% { + -webkit-transform: none; + -ms-transform: none; + transform: none; + } +} + +.bounceInRight { + -webkit-animation-name: bounceInRight; + animation-name: bounceInRight; +} + +@-webkit-keyframes bounceInUp { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInUp { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + -ms-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + -ms-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 75% { + -webkit-transform: translate3d(0, 10px, 0); + -ms-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -5px, 0); + -ms-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInUp { + -webkit-animation-name: bounceInUp; + animation-name: bounceInUp; +} + +@-webkit-keyframes bounceOut { + 20% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + + 50%, 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } +} + +@keyframes bounceOut { + 20% { + -webkit-transform: scale3d(.9, .9, .9); + -ms-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + + 50%, 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + -ms-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + -ms-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } +} + +.bounceOut { + -webkit-animation-name: bounceOut; + animation-name: bounceOut; + -webkit-animation-duration: .75s; + animation-duration: .75s; +} + +@-webkit-keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +@keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + -ms-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + -ms-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + -ms-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +.bounceOutDown { + -webkit-animation-name: bounceOutDown; + animation-name: bounceOutDown; +} + +@-webkit-keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +@keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + -ms-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + -ms-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +.bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; +} + +@-webkit-keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +@keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + -ms-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + -ms-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +.bounceOutRight { + -webkit-animation-name: bounceOutRight; + animation-name: bounceOutRight; +} + +@-webkit-keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +@keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + -ms-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + -ms-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + -ms-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +.bounceOutUp { + -webkit-animation-name: bounceOutUp; + animation-name: bounceOutUp; +} + +@-webkit-keyframes fadeIn { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} + +@keyframes fadeIn { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} + +.fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} + +@-webkit-keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + -ms-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + -ms-transform: none; + transform: none; + } +} + +.fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; +} + +@-webkit-keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + -ms-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + -ms-transform: none; + transform: none; + } +} + +.fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; +} + +@-webkit-keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + -ms-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + -ms-transform: none; + transform: none; + } +} + +.fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} + +@-webkit-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + -ms-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + -ms-transform: none; + transform: none; + } +} + +.fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; +} + +@-webkit-keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + -ms-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + -ms-transform: none; + transform: none; + } +} + +.fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; +} + +@-webkit-keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + -ms-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + -ms-transform: none; + transform: none; + } +} + +.fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; +} + +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + -ms-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + -ms-transform: none; + transform: none; + } +} + +.fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; +} + +@-webkit-keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + -ms-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + -ms-transform: none; + transform: none; + } +} + +.fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; +} + +@-webkit-keyframes fadeOut { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + } +} + +@keyframes fadeOut { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + } +} + +.fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; +} + +@-webkit-keyframes fadeOutDown { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +@keyframes fadeOutDown { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + -ms-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +.fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} + +@-webkit-keyframes fadeOutDownBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +@keyframes fadeOutDownBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + -ms-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +.fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; +} + +@-webkit-keyframes fadeOutLeft { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +@keyframes fadeOutLeft { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + -ms-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +.fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; +} + +@-webkit-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +@keyframes fadeOutLeftBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + -ms-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +.fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; +} + +@-webkit-keyframes fadeOutRight { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +@keyframes fadeOutRight { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + -ms-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +.fadeOutRight { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight; +} + +@-webkit-keyframes fadeOutRightBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +@keyframes fadeOutRightBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + -ms-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +.fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; +} + +@-webkit-keyframes fadeOutUp { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +@keyframes fadeOutUp { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + -ms-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +.fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} + +@-webkit-keyframes fadeOutUpBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +@keyframes fadeOutUpBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + -ms-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +.fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; +} + +@-webkit-keyframes flip { + 0% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 40% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 50% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 80% { + -webkit-transform: perspective(400px) scale3d(.95, .95, .95); + transform: perspective(400px) scale3d(.95, .95, .95); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} + +@keyframes flip { + 0% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + -ms-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 40% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + -ms-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 50% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + -ms-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 80% { + -webkit-transform: perspective(400px) scale3d(.95, .95, .95); + -ms-transform: perspective(400px) scale3d(.95, .95, .95); + transform: perspective(400px) scale3d(.95, .95, .95); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 100% { + -webkit-transform: perspective(400px); + -ms-transform: perspective(400px); + transform: perspective(400px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} + +.animated.flip { + -webkit-backface-visibility: visible; + -ms-backface-visibility: visible; + backface-visibility: visible; + -webkit-animation-name: flip; + animation-name: flip; +} + +@-webkit-keyframes flipInX { + 0% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +@keyframes flipInX { + 0% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -ms-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -ms-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + -ms-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + -ms-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + + 100% { + -webkit-transform: perspective(400px); + -ms-transform: perspective(400px); + transform: perspective(400px); + } +} + +.flipInX { + -webkit-backface-visibility: visible !important; + -ms-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX; +} + +@-webkit-keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +@keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -ms-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -ms-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + -ms-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + -ms-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + + 100% { + -webkit-transform: perspective(400px); + -ms-transform: perspective(400px); + transform: perspective(400px); + } +} + +.flipInY { + -webkit-backface-visibility: visible !important; + -ms-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY; +} + +@-webkit-keyframes flipOutX { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + + 100% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} + +@keyframes flipOutX { + 0% { + -webkit-transform: perspective(400px); + -ms-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -ms-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + + 100% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -ms-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} + +.flipOutX { + -webkit-animation-name: flipOutX; + animation-name: flipOutX; + -webkit-animation-duration: .75s; + animation-duration: .75s; + -webkit-backface-visibility: visible !important; + -ms-backface-visibility: visible !important; + backface-visibility: visible !important; +} + +@-webkit-keyframes flipOutY { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + + 100% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} + +@keyframes flipOutY { + 0% { + -webkit-transform: perspective(400px); + -ms-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + -ms-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + + 100% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -ms-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} + +.flipOutY { + -webkit-backface-visibility: visible !important; + -ms-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + animation-name: flipOutY; + -webkit-animation-duration: .75s; + animation-duration: .75s; +} + +@-webkit-keyframes lightSpeedIn { + 0% { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + opacity: 1; + } + + 100% { + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes lightSpeedIn { + 0% { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + -ms-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + + 60% { + -webkit-transform: skewX(20deg); + -ms-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + + 80% { + -webkit-transform: skewX(-5deg); + -ms-transform: skewX(-5deg); + transform: skewX(-5deg); + opacity: 1; + } + + 100% { + -webkit-transform: none; + -ms-transform: none; + transform: none; + opacity: 1; + } +} + +.lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; +} + +@-webkit-keyframes lightSpeedOut { + 0% { + opacity: 1; + } + + 100% { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} + +@keyframes lightSpeedOut { + 0% { + opacity: 1; + } + + 100% { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + -ms-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} + +.lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} + +@-webkit-keyframes rotateIn { + 0% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateIn { + 0% { + -webkit-transform-origin: center; + -ms-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + -ms-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: center; + -ms-transform-origin: center; + transform-origin: center; + -webkit-transform: none; + -ms-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateIn { + -webkit-animation-name: rotateIn; + animation-name: rotateIn; +} + +@-webkit-keyframes rotateInDownLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateInDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -ms-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + -ms-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + -ms-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + -ms-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; +} + +@-webkit-keyframes rotateInDownRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateInDownRight { + 0% { + -webkit-transform-origin: right bottom; + -ms-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + -ms-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + -ms-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + -ms-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; +} + +@-webkit-keyframes rotateInUpLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateInUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -ms-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + -ms-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + -ms-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + -ms-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; +} + +@-webkit-keyframes rotateInUpRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateInUpRight { + 0% { + -webkit-transform-origin: right bottom; + -ms-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + -ms-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + -ms-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + -ms-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; +} + +@-webkit-keyframes rotateOut { + 0% { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; + } + + 100% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; + } +} + +@keyframes rotateOut { + 0% { + -webkit-transform-origin: center; + -ms-transform-origin: center; + transform-origin: center; + opacity: 1; + } + + 100% { + -webkit-transform-origin: center; + -ms-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + -ms-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; + } +} + +.rotateOut { + -webkit-animation-name: rotateOut; + animation-name: rotateOut; +} + +@-webkit-keyframes rotateOutDownLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate(0, 0, 1, 45deg); + transform: rotate(0, 0, 1, 45deg); + opacity: 0; + } +} + +@keyframes rotateOutDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -ms-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + -ms-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate(0, 0, 1, 45deg); + -ms-transform: rotate(0, 0, 1, 45deg); + transform: rotate(0, 0, 1, 45deg); + opacity: 0; + } +} + +.rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; +} + +@-webkit-keyframes rotateOutDownRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +@keyframes rotateOutDownRight { + 0% { + -webkit-transform-origin: right bottom; + -ms-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + -ms-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + -ms-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +.rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; +} + +@-webkit-keyframes rotateOutUpLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +@keyframes rotateOutUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -ms-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + -ms-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + -ms-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +.rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; +} + +@-webkit-keyframes rotateOutUpRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; + } +} + +@keyframes rotateOutUpRight { + 0% { + -webkit-transform-origin: right bottom; + -ms-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + -ms-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + -ms-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; + } +} + +.rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; +} + +@-webkit-keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 20%, 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 40%, 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + + 100% { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} + +@keyframes hinge { + 0% { + -webkit-transform-origin: top left; + -ms-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 20%, 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + -ms-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + -ms-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 40%, 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + -ms-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + -ms-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + + 100% { + -webkit-transform: translate3d(0, 700px, 0); + -ms-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} + +.hinge { + -webkit-animation-name: hinge; + animation-name: hinge; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollIn { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes rollIn { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + -ms-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + } + + 100% { + opacity: 1; + -webkit-transform: none; + -ms-transform: none; + transform: none; + } +} + +.rollIn { + -webkit-animation-name: rollIn; + animation-name: rollIn; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollOut { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + } +} + +@keyframes rollOut { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + -ms-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + } +} + +.rollOut { + -webkit-animation-name: rollOut; + animation-name: rollOut; +} + +@-webkit-keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 50% { + opacity: 1; + } +} + +@keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + -ms-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 50% { + opacity: 1; + } +} + +.zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; +} + +@-webkit-keyframes zoomInDown { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomInDown { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + -ms-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -ms-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomInDown { + -webkit-animation-name: zoomInDown; + animation-name: zoomInDown; +} + +@-webkit-keyframes zoomInLeft { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomInLeft { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + -ms-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + -ms-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomInLeft { + -webkit-animation-name: zoomInLeft; + animation-name: zoomInLeft; +} + +@-webkit-keyframes zoomInRight { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomInRight { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + -ms-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + -ms-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomInRight { + -webkit-animation-name: zoomInRight; + animation-name: zoomInRight; +} + +@-webkit-keyframes zoomInUp { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomInUp { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + -ms-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -ms-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomInUp { + -webkit-animation-name: zoomInUp; + animation-name: zoomInUp; +} + +@-webkit-keyframes zoomOut { + 0% { + opacity: 1; + } + + 50% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 100% { + opacity: 0; + } +} + +@keyframes zoomOut { + 0% { + opacity: 1; + } + + 50% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + -ms-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 100% { + opacity: 0; + } +} + +.zoomOut { + -webkit-animation-name: zoomOut; + animation-name: zoomOut; +} + +@-webkit-keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -ms-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + -ms-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + -ms-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomOutDown { + -webkit-animation-name: zoomOutDown; + animation-name: zoomOutDown; +} + +@-webkit-keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: scale(.1) translate3d(-2000px, 0, 0); + transform: scale(.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + } +} + +@keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + -ms-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: scale(.1) translate3d(-2000px, 0, 0); + -ms-transform: scale(.1) translate3d(-2000px, 0, 0); + transform: scale(.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + -ms-transform-origin: left center; + transform-origin: left center; + } +} + +.zoomOutLeft { + -webkit-animation-name: zoomOutLeft; + animation-name: zoomOutLeft; +} + +@-webkit-keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: scale(.1) translate3d(2000px, 0, 0); + transform: scale(.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; + } +} + +@keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + -ms-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: scale(.1) translate3d(2000px, 0, 0); + -ms-transform: scale(.1) translate3d(2000px, 0, 0); + transform: scale(.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + -ms-transform-origin: right center; + transform-origin: right center; + } +} + +.zoomOutRight { + -webkit-animation-name: zoomOutRight; + animation-name: zoomOutRight; +} + +@-webkit-keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -ms-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + -ms-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + -ms-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomOutUp { + -webkit-animation-name: zoomOutUp; + animation-name: zoomOutUp; +} \ No newline at end of file diff --git a/src/styles/badge.less b/src/styles/badge.less new file mode 100644 index 0000000..b6d7ae2 --- /dev/null +++ b/src/styles/badge.less @@ -0,0 +1,15 @@ +// +// Badge +// @desc: 徽章 +// --------------------------------------------------------------------------- + +.@{ns}badge{ + border-radius:@badge-border-radius; padding:@badge-padding; font-weight:normal; font-size:@badge-font-size; overflow:hidden; + &:empty{ display:none;} + &.black{ background:@badge-black; color:@white;} + &.blue{ background:@badge-blue; color:@white;} + &.green{ background:@badge-green; color:@white;} + &.grey{ background:@badge-grey; color:@white;} + &.red{ background:@badge-red; color:@white;} + &.orange{ background:@badge-orange; color:@white;} +} \ No newline at end of file diff --git a/src/styles/bar.less b/src/styles/bar.less new file mode 100644 index 0000000..53d0154 --- /dev/null +++ b/src/styles/bar.less @@ -0,0 +1,113 @@ +// +// Bar +// @desc: 栏,用于告知用户其所在位置的情境信息,以及帮助用户浏览或执行操作的控件, +// 包含导航栏、工具栏、选项栏等。 +// --------------------------------------------------------------------------- + +.@{ns}bar{ + height:@bar-normal-height; padding:@bar-toolbar-padding; + .flex{ display:flex;} + .@{ns}btn{ display:block; z-index:1;} // 兼容:Andorid 4.1 无法实现 flexbox 相关属性 + + + // Tool bar + // @desc: 工具栏,能实现在不同信息层级结构之间的导航 + // -------------------------------------------- + &.toolbar{ + // flexbox + // http://css-tricks.com/snippets/css/a-guide-to-flexbox/ + position:relative; display:flex; align-items:center; justify-content:space-between; z-index:@bar-toolbar-index; + + // 对齐方式 + &.align-start, + .align-start{ justify-content:flex-start;} + &.align-end, + .align-end{ justify-content:flex-end;} + } + + + // Navigation bar + // @desc: 导航栏,能实现在不同信息层级结构之间的导航 + // @extend: .sq-bar.toolbar + // -------------------------------------------- + &.nav:extend(.toolbar all){ + // 标题栏 + & > .title{ flex:1; height:@bar-normal-height; margin:@bar-nav-extend-margin; font-size:@bar-title-font-size; line-height:@bar-normal-height; text-align:center; overflow:hidden;} + // 扩展区域 + & > .extend{ + display:flex; align-items:center; justify-content:space-between; flex:1; height:@bar-normal-height; margin:@bar-nav-extend-margin; + .@{ns}btn-group{ width:100%;} + } + } + + + // Pagination bar + // @desc: 分页栏 + // @extend: .sq-bar.toolbar + // -------------------------------------------- + &.pagination:extend(.toolbar all){ + // 翻页 + select{ min-height:@bar-normal-height - 10; line-height:1;} + & > .pagination-select{ .overlay(0,80px,0,80px); font-size:@bar-pagination-font-size; text-align:center; line-height:@bar-normal-height;} + .disabled{ pointer-events:none; opacity:.4; cursor:not-allowed;} + } + + + // Tabs + // @desc: 选项栏 + // -------------------------------------------- + &.nav-tabs{ + font-size:@bar-tab-font-size; + + & > a{ display:flex; align-items:center; justify-content:space-between; position:relative; height:@bar-normal-height; text-align:center;} + // 嵌套一层 span 是为了达到垂直居中的效果 + span{ display:block; flex:1;} + + // 带图标样式 + &.icons{ + & > a{ font-size:1.2rem;} + .@{ns}icon{ display:block;} + .@{ns}badge{ left:60%; right:auto;} + } + + .@{ns}badge{ + position:absolute; top:-2px; right:10%; padding:4px; min-width:20px; border-radius:@border-radius-circle; line-height:1; z-index:1; + } + } + + + // Search + // @desc: 搜索栏 + // @extend: .sq-bar.toolbar + // -------------------------------------------- + &.search:extend(.toolbar all){ + padding:@bar-search-padding; + + [type="text"], + [type="search"], + [type="submit"], + [type="button"]{ border:none; outline:none;} + + [type="text"], + [type="search"]{ + display:block; flex:1; height:@bar-search-height; line-height:@bar-search-height; + & + .@{ns}btn{ margin-left:@bar-search-btn-space;} + } + + form{ display:flex; width:100%;} + + .label{ + position:relative; flex:1; background:@bar-search-label-bg; + &.icon-search{ + line-height:@bar-search-height; + &::before{ position:relative; top:1px; padding:0 8px; content:@bar-search-icon;} + } + } + .@{ns}btn{ max-height:@bar-search-height + 2; overflow:hidden;} + + /*.clear{ + display:none; position:absolute; top:0; right:0; width:30px; height:28px; cursor:pointer; + &::after{ content:"×"; position:absolute; top:5px; left:6px; width:18px; height:18px; background:#ccc; border-radius:@border-radius-circle; text-align:center; line-height:16px; color:#fff;} + }*/ + } +} diff --git a/src/styles/base.less b/src/styles/base.less new file mode 100644 index 0000000..912aecf --- /dev/null +++ b/src/styles/base.less @@ -0,0 +1,42 @@ +// +// Base +// @desc: 定制化样式 +// --------------------------------------------------------------------------- + +*, +*:before, +*:after{ box-sizing:border-box; margin:0; padding:0;} + +html{ font-size:62.5%;} + +body{ + //-webkit-font-smoothing:antialiased; + //** 暂时屏蔽 + //-webkit-tap-highlight-color:transparent; + -webkit-touch-callout:none; + + font-family:@font-family; + font-size:@default-font-size; + color:@default-font-color; + word-wrap:break-word; + break-word:break-all; +} + +h1, +h2, +h3, +h4, +h5{ font-weight:400;} + +ul, +ol, +menu{ list-style:none;} + +input, +textarea, +select{ -webkit-font-smoothing:antialiased;} + +a{ color:@default-font-color; text-decoration:none;} +b, +i, +em{ font-weight:normal; font-style:normal;} diff --git a/src/styles/button.less b/src/styles/button.less new file mode 100644 index 0000000..b10135e --- /dev/null +++ b/src/styles/button.less @@ -0,0 +1,82 @@ +// +// Button +// @desc: 通用按钮,包括单体按钮、组合按钮。 +// --------------------------------------------------------------------------- + +.@{ns}btn{ + display:inline-block; position:relative; border-radius:@btn-border-radius; border:1px solid transparent; text-align:center; white-space:nowrap; line-height:1; cursor:pointer; outline:none; user-select:none; + + + // Size + // @desc: 按钮尺寸 + // -------------------------------------------- + padding:@btn-padding-normal; + &.large{ padding:@btn-padding-large; font-size:@btn-font-size-large;} + &.small{ padding:@btn-padding-small; font-size:@btn-font-size-small;} + &.mini{ padding:@btn-padding-mini; font-size:@btn-font-size-mini;} + &.block{ display:block; width:100%; clear:both;} + + + // disabled + // @desc: 禁用样式 + // -------------------------------------------- + &.disabled, + &[disabled]{ + pointer-events:none; cursor:not-allowed; + opacity:@btn-disabled-opacity; + } + + // color + // + &.mt-white{ + background:#f7f7f7; color:#333; border-color:#ddd; + & > a{ color:#333;} + } + &.mt-grey{ + background:#e1e1e1; border-color:#e1e1e1; color:#333; + & > a{ color:#333;} + } + &.mt-black{ + background:#444; border-color:#444; color:#fff; + & > a{ color:#fff;} + } + &.mt-blue{ + background:#4285f4; border-color:#4285f4; color:#fff; + & > a{ color:#fff;} + &:hover{ background:#3367d6;} + } + &.mt-green{ background:#6eb82c; border-color:#6eb82c; color:#fff; + & > a{ color:#fff;} + } + &.mt-orange{ background:#faa800; border-color:#faa800; color:#fff; + & > a{ color:#fff;} + } + &.mt-red{ background:#e34541; border-color:#e34541; color:#fff; + & > a{ color:#fff;} + } +} + + +// Button Group +// @desc: 组合按钮 +// -------------------------------------------- +.sq-btn-group{ + display:flex; flex-direction:row; + .active{ + z-index:1; // 保证激活项目在最上层显示 + } + & > .sq-btn{ + display:block; flex:1; margin-left:-1px; border-radius:0; .text-hide-ellipsis(); + &:first-child{ margin-left:0; border-radius:@btn-border-radius 0 0 @btn-border-radius;} + &:last-child{ border-radius:0 @btn-border-radius @btn-border-radius 0;} + } + // 垂直布局 + &.vertical{ + flex-direction:column; + & > .sq-btn{ + margin:-1px 0 0 0; + &:first-child{ margin-top:0; border-radius:@btn-border-radius @btn-border-radius 0 0;} + &:last-child{ border-radius:0 0 @btn-border-radius @btn-border-radius;} + } + } +} \ No newline at end of file diff --git a/src/styles/column.less b/src/styles/column.less new file mode 100644 index 0000000..321fb3f --- /dev/null +++ b/src/styles/column.less @@ -0,0 +1,34 @@ +// +// Column Grid +// 分栏 +// --------------------------------------------------------------------------- + +.make-col-grid(@point: sm, @counter: @grid-columns, @i: 1) when (@i =< @counter) { + .@{ns}col-@{point}-@{i} > li, + .@{ns}col-@{point}-@{i} > a{ + width: (100% / @i); + &:nth-of-type(n) { + clear: none; + } + &:nth-of-type(@{i}n+1) { + clear: both; + } + } + .make-col-grid(@point, @counter, (@i + 1)); +} + + +[class*="@{ns}col-"] { + display:block; padding:0; margin:0; .clearfix(); + &> li, + &> a{ display:block; float:left; height:auto;} +} + + +@media @mobile-screen { + .make-col-grid(mb); +} + +@media @table-screen { + .make-col-grid(tb); +} \ No newline at end of file diff --git a/src/styles/font-awesome.less b/src/styles/font-awesome.less new file mode 100644 index 0000000..c806b6a --- /dev/null +++ b/src/styles/font-awesome.less @@ -0,0 +1,1698 @@ +// +// Icon-font +// @desc: 字体图标 +// --------------------------------------------------------------------------- + +@font-face { + font-family: @icon-font-family; + src:url("@{icon-font-path}@{icon-font-name}.woff") format("woff"), + url("@{icon-font-path}@{icon-font-name}.ttf") format("truetype"); + font-weight:normal; + font-style:normal; +} +.sq-icon{ + display:inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size:inherit; + text-rendering:auto; + -webkit-font-smoothing:antialiased; + -moz-osx-font-smoothing:grayscale; + + min-width:14px; + + &.x2::before{ font-size:@icon-x2-size;} // 适合在导航栏中显示 + &.x3::before{ font-size:@icon-x3-size;} // 适合在导航栏 icons 模式下显示 + &.x4::before{ font-size:@icon-x4-size;} + &.x5::before{ font-size:@icon-x5-size;} + + &.icon-left{ margin-right:.5rem;} + &.icon-right{ margin-left:.5rem;} +} + + +// Optimize +// -------------------------------------------- +.sq-list{ + .icon-chevron-right:before, + .icon-chevron-left:before, + .icon-download:before{ position:relative; top:.3rem;} +} + +.icon-group{ + .sq-icon::before{ margin-right:.1em;} +} + + +// Font Awesome 4.2.0 by @davegandy - http://fontawesome.io +// 以下为 awesome.css 拷贝 +// 拷贝 makes the font ... 注释下的代码,将 fa- 修改为 icon- 。 +// -------------------------------------------- +///* makes the font 33% larger relative to the icon container */ +.icon-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.icon-2x { + font-size: 2em; +} +.icon-3x { + font-size: 3em; +} +.icon-4x { + font-size: 4em; +} +.icon-5x { + font-size: 5em; +} +.icon-fw { + width: 1.28571429em; + text-align: center; +} +.icon-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.icon-ul > li { + position: relative; +} +.icon-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.icon-li.icon-lg { + left: -1.85714286em; +} +.icon-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.sq-icon.pull-left { + margin-right: .3em; +} +.sq-icon.pull-right { + margin-left: .3em; +} +.icon-spin { + -webkit-animation: icon-spin 2s infinite linear; + animation: icon-spin 2s infinite linear; +} +@-webkit-keyframes icon-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes icon-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.icon-rotate-90 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.icon-rotate-180 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.icon-rotate-270 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.icon-flip-horizontal { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.icon-flip-vertical { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .icon-rotate-90, +:root .icon-rotate-180, +:root .icon-rotate-270, +:root .icon-flip-horizontal, +:root .icon-flip-vertical { + filter: none; +} +.icon-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.icon-stack-1x, +.icon-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.icon-stack-1x { + line-height: inherit; +} +.icon-stack-2x { + font-size: 2em; +} +.icon-inverse { + color: #ffffff; +} +.icon-glass:before { + content: "\f000"; +} +.icon-music:before { + content: "\f001"; +} +.icon-search:before { + content: "\f002"; +} +.icon-envelope-o:before { + content: "\f003"; +} +.icon-heart:before { + content: "\f004"; +} +.icon-star:before { + content: "\f005"; +} +.icon-star-o:before { + content: "\f006"; +} +.icon-user:before { + content: "\f007"; +} +.icon-film:before { + content: "\f008"; +} +.icon-th-large:before { + content: "\f009"; +} +.icon-th:before { + content: "\f00a"; +} +.icon-th-list:before { + content: "\f00b"; +} +.icon-check:before { + content: "\f00c"; +} +.icon-remove:before, +.icon-close:before, +.icon-times:before { + content: "\f00d"; +} +.icon-search-plus:before { + content: "\f00e"; +} +.icon-search-minus:before { + content: "\f010"; +} +.icon-power-off:before { + content: "\f011"; +} +.icon-signal:before { + content: "\f012"; +} +.icon-gear:before, +.icon-cog:before { + content: "\f013"; +} +.icon-trash-o:before { + content: "\f014"; +} +.icon-home:before { + content: "\f015"; +} +.icon-file-o:before { + content: "\f016"; +} +.icon-clock-o:before { + content: "\f017"; +} +.icon-road:before { + content: "\f018"; +} +.icon-download:before { + content: "\f019"; +} +.icon-arrow-circle-o-down:before { + content: "\f01a"; +} +.icon-arrow-circle-o-up:before { + content: "\f01b"; +} +.icon-inbox:before { + content: "\f01c"; +} +.icon-play-circle-o:before { + content: "\f01d"; +} +.icon-rotate-right:before, +.icon-repeat:before { + content: "\f01e"; +} +.icon-refresh:before { + content: "\f021"; +} +.icon-list-alt:before { + content: "\f022"; +} +.icon-lock:before { + content: "\f023"; +} +.icon-flag:before { + content: "\f024"; +} +.icon-headphones:before { + content: "\f025"; +} +.icon-volume-off:before { + content: "\f026"; +} +.icon-volume-down:before { + content: "\f027"; +} +.icon-volume-up:before { + content: "\f028"; +} +.icon-qrcode:before { + content: "\f029"; +} +.icon-barcode:before { + content: "\f02a"; +} +.icon-tag:before { + content: "\f02b"; +} +.icon-tags:before { + content: "\f02c"; +} +.icon-book:before { + content: "\f02d"; +} +.icon-bookmark:before { + content: "\f02e"; +} +.icon-print:before { + content: "\f02f"; +} +.icon-camera:before { + content: "\f030"; +} +.icon-font:before { + content: "\f031"; +} +.icon-bold:before { + content: "\f032"; +} +.icon-italic:before { + content: "\f033"; +} +.icon-text-height:before { + content: "\f034"; +} +.icon-text-width:before { + content: "\f035"; +} +.icon-align-left:before { + content: "\f036"; +} +.icon-align-center:before { + content: "\f037"; +} +.icon-align-right:before { + content: "\f038"; +} +.icon-align-justify:before { + content: "\f039"; +} +.icon-list:before { + content: "\f03a"; +} +.icon-dedent:before, +.icon-outdent:before { + content: "\f03b"; +} +.icon-indent:before { + content: "\f03c"; +} +.icon-video-camera:before { + content: "\f03d"; +} +.icon-photo:before, +.icon-image:before, +.icon-picture-o:before { + content: "\f03e"; +} +.icon-pencil:before { + content: "\f040"; +} +.icon-map-marker:before { + content: "\f041"; +} +.icon-adjust:before { + content: "\f042"; +} +.icon-tint:before { + content: "\f043"; +} +.icon-edit:before, +.icon-pencil-square-o:before { + content: "\f044"; +} +.icon-share-square-o:before { + content: "\f045"; +} +.icon-check-square-o:before { + content: "\f046"; +} +.icon-arrows:before { + content: "\f047"; +} +.icon-step-backward:before { + content: "\f048"; +} +.icon-fast-backward:before { + content: "\f049"; +} +.icon-backward:before { + content: "\f04a"; +} +.icon-play:before { + content: "\f04b"; +} +.icon-pause:before { + content: "\f04c"; +} +.icon-stop:before { + content: "\f04d"; +} +.icon-forward:before { + content: "\f04e"; +} +.icon-fast-forward:before { + content: "\f050"; +} +.icon-step-forward:before { + content: "\f051"; +} +.icon-eject:before { + content: "\f052"; +} +.icon-chevron-left:before { + content: "\f053"; +} +.icon-chevron-right:before { + content: "\f054"; +} +.icon-plus-circle:before { + content: "\f055"; +} +.icon-minus-circle:before { + content: "\f056"; +} +.icon-times-circle:before { + content: "\f057"; +} +.icon-check-circle:before { + content: "\f058"; +} +.icon-question-circle:before { + content: "\f059"; +} +.icon-info-circle:before { + content: "\f05a"; +} +.icon-crosshairs:before { + content: "\f05b"; +} +.icon-times-circle-o:before { + content: "\f05c"; +} +.icon-check-circle-o:before { + content: "\f05d"; +} +.icon-ban:before { + content: "\f05e"; +} +.icon-arrow-left:before { + content: "\f060"; +} +.icon-arrow-right:before { + content: "\f061"; +} +.icon-arrow-up:before { + content: "\f062"; +} +.icon-arrow-down:before { + content: "\f063"; +} +.icon-mail-forward:before, +.icon-share:before { + content: "\f064"; +} +.icon-expand:before { + content: "\f065"; +} +.icon-compress:before { + content: "\f066"; +} +.icon-plus:before { + content: "\f067"; +} +.icon-minus:before { + content: "\f068"; +} +.icon-asterisk:before { + content: "\f069"; +} +.icon-exclamation-circle:before { + content: "\f06a"; +} +.icon-gift:before { + content: "\f06b"; +} +.icon-leaf:before { + content: "\f06c"; +} +.icon-fire:before { + content: "\f06d"; +} +.icon-eye:before { + content: "\f06e"; +} +.icon-eye-slash:before { + content: "\f070"; +} +.icon-warning:before, +.icon-exclamation-triangle:before { + content: "\f071"; +} +.icon-plane:before { + content: "\f072"; +} +.icon-calendar:before { + content: "\f073"; +} +.icon-random:before { + content: "\f074"; +} +.icon-comment:before { + content: "\f075"; +} +.icon-magnet:before { + content: "\f076"; +} +.icon-chevron-up:before { + content: "\f077"; +} +.icon-chevron-down:before { + content: "\f078"; +} +.icon-retweet:before { + content: "\f079"; +} +.icon-shopping-cart:before { + content: "\f07a"; +} +.icon-folder:before { + content: "\f07b"; +} +.icon-folder-open:before { + content: "\f07c"; +} +.icon-arrows-v:before { + content: "\f07d"; +} +.icon-arrows-h:before { + content: "\f07e"; +} +.icon-bar-chart-o:before, +.icon-bar-chart:before { + content: "\f080"; +} +.icon-twitter-square:before { + content: "\f081"; +} +.icon-facebook-square:before { + content: "\f082"; +} +.icon-camera-retro:before { + content: "\f083"; +} +.icon-key:before { + content: "\f084"; +} +.icon-gears:before, +.icon-cogs:before { + content: "\f085"; +} +.icon-comments:before { + content: "\f086"; +} +.icon-thumbs-o-up:before { + content: "\f087"; +} +.icon-thumbs-o-down:before { + content: "\f088"; +} +.icon-star-half:before { + content: "\f089"; +} +.icon-heart-o:before { + content: "\f08a"; +} +.icon-sign-out:before { + content: "\f08b"; +} +.icon-linkedin-square:before { + content: "\f08c"; +} +.icon-thumb-tack:before { + content: "\f08d"; +} +.icon-external-link:before { + content: "\f08e"; +} +.icon-sign-in:before { + content: "\f090"; +} +.icon-trophy:before { + content: "\f091"; +} +.icon-github-square:before { + content: "\f092"; +} +.icon-upload:before { + content: "\f093"; +} +.icon-lemon-o:before { + content: "\f094"; +} +.icon-phone:before { + content: "\f095"; +} +.icon-square-o:before { + content: "\f096"; +} +.icon-bookmark-o:before { + content: "\f097"; +} +.icon-phone-square:before { + content: "\f098"; +} +.icon-twitter:before { + content: "\f099"; +} +.icon-facebook:before { + content: "\f09a"; +} +.icon-github:before { + content: "\f09b"; +} +.icon-unlock:before { + content: "\f09c"; +} +.icon-credit-card:before { + content: "\f09d"; +} +.icon-rss:before { + content: "\f09e"; +} +.icon-hdd-o:before { + content: "\f0a0"; +} +.icon-bullhorn:before { + content: "\f0a1"; +} +.icon-bell:before { + content: "\f0f3"; +} +.icon-certificate:before { + content: "\f0a3"; +} +.icon-hand-o-right:before { + content: "\f0a4"; +} +.icon-hand-o-left:before { + content: "\f0a5"; +} +.icon-hand-o-up:before { + content: "\f0a6"; +} +.icon-hand-o-down:before { + content: "\f0a7"; +} +.icon-arrow-circle-left:before { + content: "\f0a8"; +} +.icon-arrow-circle-right:before { + content: "\f0a9"; +} +.icon-arrow-circle-up:before { + content: "\f0aa"; +} +.icon-arrow-circle-down:before { + content: "\f0ab"; +} +.icon-globe:before { + content: "\f0ac"; +} +.icon-wrench:before { + content: "\f0ad"; +} +.icon-tasks:before { + content: "\f0ae"; +} +.icon-filter:before { + content: "\f0b0"; +} +.icon-briefcase:before { + content: "\f0b1"; +} +.icon-arrows-alt:before { + content: "\f0b2"; +} +.icon-group:before, +.icon-users:before { + content: "\f0c0"; +} +.icon-chain:before, +.icon-link:before { + content: "\f0c1"; +} +.icon-cloud:before { + content: "\f0c2"; +} +.icon-flask:before { + content: "\f0c3"; +} +.icon-cut:before, +.icon-scissors:before { + content: "\f0c4"; +} +.icon-copy:before, +.icon-files-o:before { + content: "\f0c5"; +} +.icon-paperclip:before { + content: "\f0c6"; +} +.icon-save:before, +.icon-floppy-o:before { + content: "\f0c7"; +} +.icon-square:before { + content: "\f0c8"; +} +.icon-navicon:before, +.icon-reorder:before, +.icon-bars:before { + content: "\f0c9"; +} +.icon-list-ul:before { + content: "\f0ca"; +} +.icon-list-ol:before { + content: "\f0cb"; +} +.icon-strikethrough:before { + content: "\f0cc"; +} +.icon-underline:before { + content: "\f0cd"; +} +.icon-table:before { + content: "\f0ce"; +} +.icon-magic:before { + content: "\f0d0"; +} +.icon-truck:before { + content: "\f0d1"; +} +.icon-pinterest:before { + content: "\f0d2"; +} +.icon-pinterest-square:before { + content: "\f0d3"; +} +.icon-google-plus-square:before { + content: "\f0d4"; +} +.icon-google-plus:before { + content: "\f0d5"; +} +.icon-money:before { + content: "\f0d6"; +} +.icon-caret-down:before { + content: "\f0d7"; +} +.icon-caret-up:before { + content: "\f0d8"; +} +.icon-caret-left:before { + content: "\f0d9"; +} +.icon-caret-right:before { + content: "\f0da"; +} +.icon-columns:before { + content: "\f0db"; +} +.icon-unsorted:before, +.icon-sort:before { + content: "\f0dc"; +} +.icon-sort-down:before, +.icon-sort-desc:before { + content: "\f0dd"; +} +.icon-sort-up:before, +.icon-sort-asc:before { + content: "\f0de"; +} +.icon-envelope:before { + content: "\f0e0"; +} +.icon-linkedin:before { + content: "\f0e1"; +} +.icon-rotate-left:before, +.icon-undo:before { + content: "\f0e2"; +} +.icon-legal:before, +.icon-gavel:before { + content: "\f0e3"; +} +.icon-dashboard:before, +.icon-tachometer:before { + content: "\f0e4"; +} +.icon-comment-o:before { + content: "\f0e5"; +} +.icon-comments-o:before { + content: "\f0e6"; +} +.icon-flash:before, +.icon-bolt:before { + content: "\f0e7"; +} +.icon-sitemap:before { + content: "\f0e8"; +} +.icon-umbrella:before { + content: "\f0e9"; +} +.icon-paste:before, +.icon-clipboard:before { + content: "\f0ea"; +} +.icon-lightbulb-o:before { + content: "\f0eb"; +} +.icon-exchange:before { + content: "\f0ec"; +} +.icon-cloud-download:before { + content: "\f0ed"; +} +.icon-cloud-upload:before { + content: "\f0ee"; +} +.icon-user-md:before { + content: "\f0f0"; +} +.icon-stethoscope:before { + content: "\f0f1"; +} +.icon-suitcase:before { + content: "\f0f2"; +} +.icon-bell-o:before { + content: "\f0a2"; +} +.icon-coffee:before { + content: "\f0f4"; +} +.icon-cutlery:before { + content: "\f0f5"; +} +.icon-file-text-o:before { + content: "\f0f6"; +} +.icon-building-o:before { + content: "\f0f7"; +} +.icon-hospital-o:before { + content: "\f0f8"; +} +.icon-ambulance:before { + content: "\f0f9"; +} +.icon-medkit:before { + content: "\f0fa"; +} +.icon-fighter-jet:before { + content: "\f0fb"; +} +.icon-beer:before { + content: "\f0fc"; +} +.icon-h-square:before { + content: "\f0fd"; +} +.icon-plus-square:before { + content: "\f0fe"; +} +.icon-angle-double-left:before { + content: "\f100"; +} +.icon-angle-double-right:before { + content: "\f101"; +} +.icon-angle-double-up:before { + content: "\f102"; +} +.icon-angle-double-down:before { + content: "\f103"; +} +.icon-angle-left:before { + content: "\f104"; +} +.icon-angle-right:before { + content: "\f105"; +} +.icon-angle-up:before { + content: "\f106"; +} +.icon-angle-down:before { + content: "\f107"; +} +.icon-desktop:before { + content: "\f108"; +} +.icon-laptop:before { + content: "\f109"; +} +.icon-tablet:before { + content: "\f10a"; +} +.icon-mobile-phone:before, +.icon-mobile:before { + content: "\f10b"; +} +.icon-circle-o:before { + content: "\f10c"; +} +.icon-quote-left:before { + content: "\f10d"; +} +.icon-quote-right:before { + content: "\f10e"; +} +.icon-spinner:before { + content: "\f110"; +} +.icon-circle:before { + content: "\f111"; +} +.icon-mail-reply:before, +.icon-reply:before { + content: "\f112"; +} +.icon-github-alt:before { + content: "\f113"; +} +.icon-folder-o:before { + content: "\f114"; +} +.icon-folder-open-o:before { + content: "\f115"; +} +.icon-smile-o:before { + content: "\f118"; +} +.icon-frown-o:before { + content: "\f119"; +} +.icon-meh-o:before { + content: "\f11a"; +} +.icon-gamepad:before { + content: "\f11b"; +} +.icon-keyboard-o:before { + content: "\f11c"; +} +.icon-flag-o:before { + content: "\f11d"; +} +.icon-flag-checkered:before { + content: "\f11e"; +} +.icon-terminal:before { + content: "\f120"; +} +.icon-code:before { + content: "\f121"; +} +.icon-mail-reply-all:before, +.icon-reply-all:before { + content: "\f122"; +} +.icon-star-half-empty:before, +.icon-star-half-full:before, +.icon-star-half-o:before { + content: "\f123"; +} +.icon-location-arrow:before { + content: "\f124"; +} +.icon-crop:before { + content: "\f125"; +} +.icon-code-fork:before { + content: "\f126"; +} +.icon-unlink:before, +.icon-chain-broken:before { + content: "\f127"; +} +.icon-question:before { + content: "\f128"; +} +.icon-info:before { + content: "\f129"; +} +.icon-exclamation:before { + content: "\f12a"; +} +.icon-superscript:before { + content: "\f12b"; +} +.icon-subscript:before { + content: "\f12c"; +} +.icon-eraser:before { + content: "\f12d"; +} +.icon-puzzle-piece:before { + content: "\f12e"; +} +.icon-microphone:before { + content: "\f130"; +} +.icon-microphone-slash:before { + content: "\f131"; +} +.icon-shield:before { + content: "\f132"; +} +.icon-calendar-o:before { + content: "\f133"; +} +.icon-fire-extinguisher:before { + content: "\f134"; +} +.icon-rocket:before { + content: "\f135"; +} +.icon-maxcdn:before { + content: "\f136"; +} +.icon-chevron-circle-left:before { + content: "\f137"; +} +.icon-chevron-circle-right:before { + content: "\f138"; +} +.icon-chevron-circle-up:before { + content: "\f139"; +} +.icon-chevron-circle-down:before { + content: "\f13a"; +} +.icon-html5:before { + content: "\f13b"; +} +.icon-css3:before { + content: "\f13c"; +} +.icon-anchor:before { + content: "\f13d"; +} +.icon-unlock-alt:before { + content: "\f13e"; +} +.icon-bullseye:before { + content: "\f140"; +} +.icon-ellipsis-h:before { + content: "\f141"; +} +.icon-ellipsis-v:before { + content: "\f142"; +} +.icon-rss-square:before { + content: "\f143"; +} +.icon-play-circle:before { + content: "\f144"; +} +.icon-ticket:before { + content: "\f145"; +} +.icon-minus-square:before { + content: "\f146"; +} +.icon-minus-square-o:before { + content: "\f147"; +} +.icon-level-up:before { + content: "\f148"; +} +.icon-level-down:before { + content: "\f149"; +} +.icon-check-square:before { + content: "\f14a"; +} +.icon-pencil-square:before { + content: "\f14b"; +} +.icon-external-link-square:before { + content: "\f14c"; +} +.icon-share-square:before { + content: "\f14d"; +} +.icon-compass:before { + content: "\f14e"; +} +.icon-toggle-down:before, +.icon-caret-square-o-down:before { + content: "\f150"; +} +.icon-toggle-up:before, +.icon-caret-square-o-up:before { + content: "\f151"; +} +.icon-toggle-right:before, +.icon-caret-square-o-right:before { + content: "\f152"; +} +.icon-euro:before, +.icon-eur:before { + content: "\f153"; +} +.icon-gbp:before { + content: "\f154"; +} +.icon-dollar:before, +.icon-usd:before { + content: "\f155"; +} +.icon-rupee:before, +.icon-inr:before { + content: "\f156"; +} +.icon-cny:before, +.icon-rmb:before, +.icon-yen:before, +.icon-jpy:before { + content: "\f157"; +} +.icon-ruble:before, +.icon-rouble:before, +.icon-rub:before { + content: "\f158"; +} +.icon-won:before, +.icon-krw:before { + content: "\f159"; +} +.icon-bitcoin:before, +.icon-btc:before { + content: "\f15a"; +} +.icon-file:before { + content: "\f15b"; +} +.icon-file-text:before { + content: "\f15c"; +} +.icon-sort-alpha-asc:before { + content: "\f15d"; +} +.icon-sort-alpha-desc:before { + content: "\f15e"; +} +.icon-sort-amount-asc:before { + content: "\f160"; +} +.icon-sort-amount-desc:before { + content: "\f161"; +} +.icon-sort-numeric-asc:before { + content: "\f162"; +} +.icon-sort-numeric-desc:before { + content: "\f163"; +} +.icon-thumbs-up:before { + content: "\f164"; +} +.icon-thumbs-down:before { + content: "\f165"; +} +.icon-youtube-square:before { + content: "\f166"; +} +.icon-youtube:before { + content: "\f167"; +} +.icon-xing:before { + content: "\f168"; +} +.icon-xing-square:before { + content: "\f169"; +} +.icon-youtube-play:before { + content: "\f16a"; +} +.icon-dropbox:before { + content: "\f16b"; +} +.icon-stack-overflow:before { + content: "\f16c"; +} +.icon-instagram:before { + content: "\f16d"; +} +.icon-flickr:before { + content: "\f16e"; +} +.icon-adn:before { + content: "\f170"; +} +.icon-bitbucket:before { + content: "\f171"; +} +.icon-bitbucket-square:before { + content: "\f172"; +} +.icon-tumblr:before { + content: "\f173"; +} +.icon-tumblr-square:before { + content: "\f174"; +} +.icon-long-arrow-down:before { + content: "\f175"; +} +.icon-long-arrow-up:before { + content: "\f176"; +} +.icon-long-arrow-left:before { + content: "\f177"; +} +.icon-long-arrow-right:before { + content: "\f178"; +} +.icon-apple:before { + content: "\f179"; +} +.icon-windows:before { + content: "\f17a"; +} +.icon-android:before { + content: "\f17b"; +} +.icon-linux:before { + content: "\f17c"; +} +.icon-dribbble:before { + content: "\f17d"; +} +.icon-skype:before { + content: "\f17e"; +} +.icon-foursquare:before { + content: "\f180"; +} +.icon-trello:before { + content: "\f181"; +} +.icon-female:before { + content: "\f182"; +} +.icon-male:before { + content: "\f183"; +} +.icon-gittip:before { + content: "\f184"; +} +.icon-sun-o:before { + content: "\f185"; +} +.icon-moon-o:before { + content: "\f186"; +} +.icon-archive:before { + content: "\f187"; +} +.icon-bug:before { + content: "\f188"; +} +.icon-vk:before { + content: "\f189"; +} +.icon-weibo:before { + content: "\f18a"; +} +.icon-renren:before { + content: "\f18b"; +} +.icon-pagelines:before { + content: "\f18c"; +} +.icon-stack-exchange:before { + content: "\f18d"; +} +.icon-arrow-circle-o-right:before { + content: "\f18e"; +} +.icon-arrow-circle-o-left:before { + content: "\f190"; +} +.icon-toggle-left:before, +.icon-caret-square-o-left:before { + content: "\f191"; +} +.icon-dot-circle-o:before { + content: "\f192"; +} +.icon-wheelchair:before { + content: "\f193"; +} +.icon-vimeo-square:before { + content: "\f194"; +} +.icon-turkish-lira:before, +.icon-try:before { + content: "\f195"; +} +.icon-plus-square-o:before { + content: "\f196"; +} +.icon-space-shuttle:before { + content: "\f197"; +} +.icon-slack:before { + content: "\f198"; +} +.icon-envelope-square:before { + content: "\f199"; +} +.icon-wordpress:before { + content: "\f19a"; +} +.icon-openid:before { + content: "\f19b"; +} +.icon-institution:before, +.icon-bank:before, +.icon-university:before { + content: "\f19c"; +} +.icon-mortar-board:before, +.icon-graduation-cap:before { + content: "\f19d"; +} +.icon-yahoo:before { + content: "\f19e"; +} +.icon-google:before { + content: "\f1a0"; +} +.icon-reddit:before { + content: "\f1a1"; +} +.icon-reddit-square:before { + content: "\f1a2"; +} +.icon-stumbleupon-circle:before { + content: "\f1a3"; +} +.icon-stumbleupon:before { + content: "\f1a4"; +} +.icon-delicious:before { + content: "\f1a5"; +} +.icon-digg:before { + content: "\f1a6"; +} +.icon-pied-piper:before { + content: "\f1a7"; +} +.icon-pied-piper-alt:before { + content: "\f1a8"; +} +.icon-drupal:before { + content: "\f1a9"; +} +.icon-joomla:before { + content: "\f1aa"; +} +.icon-language:before { + content: "\f1ab"; +} +.icon-fax:before { + content: "\f1ac"; +} +.icon-building:before { + content: "\f1ad"; +} +.icon-child:before { + content: "\f1ae"; +} +.icon-paw:before { + content: "\f1b0"; +} +.icon-spoon:before { + content: "\f1b1"; +} +.icon-cube:before { + content: "\f1b2"; +} +.icon-cubes:before { + content: "\f1b3"; +} +.icon-behance:before { + content: "\f1b4"; +} +.icon-behance-square:before { + content: "\f1b5"; +} +.icon-steam:before { + content: "\f1b6"; +} +.icon-steam-square:before { + content: "\f1b7"; +} +.icon-recycle:before { + content: "\f1b8"; +} +.icon-automobile:before, +.icon-car:before { + content: "\f1b9"; +} +.icon-cab:before, +.icon-taxi:before { + content: "\f1ba"; +} +.icon-tree:before { + content: "\f1bb"; +} +.icon-spotify:before { + content: "\f1bc"; +} +.icon-deviantart:before { + content: "\f1bd"; +} +.icon-soundcloud:before { + content: "\f1be"; +} +.icon-database:before { + content: "\f1c0"; +} +.icon-file-pdf-o:before { + content: "\f1c1"; +} +.icon-file-word-o:before { + content: "\f1c2"; +} +.icon-file-excel-o:before { + content: "\f1c3"; +} +.icon-file-powerpoint-o:before { + content: "\f1c4"; +} +.icon-file-photo-o:before, +.icon-file-picture-o:before, +.icon-file-image-o:before { + content: "\f1c5"; +} +.icon-file-zip-o:before, +.icon-file-archive-o:before { + content: "\f1c6"; +} +.icon-file-sound-o:before, +.icon-file-audio-o:before { + content: "\f1c7"; +} +.icon-file-movie-o:before, +.icon-file-video-o:before { + content: "\f1c8"; +} +.icon-file-code-o:before { + content: "\f1c9"; +} +.icon-vine:before { + content: "\f1ca"; +} +.icon-codepen:before { + content: "\f1cb"; +} +.icon-jsfiddle:before { + content: "\f1cc"; +} +.icon-life-bouy:before, +.icon-life-buoy:before, +.icon-life-saver:before, +.icon-support:before, +.icon-life-ring:before { + content: "\f1cd"; +} +.icon-circle-o-notch:before { + content: "\f1ce"; +} +.icon-ra:before, +.icon-rebel:before { + content: "\f1d0"; +} +.icon-ge:before, +.icon-empire:before { + content: "\f1d1"; +} +.icon-git-square:before { + content: "\f1d2"; +} +.icon-git:before { + content: "\f1d3"; +} +.icon-hacker-news:before { + content: "\f1d4"; +} +.icon-tencent-weibo:before { + content: "\f1d5"; +} +.icon-qq:before { + content: "\f1d6"; +} +.icon-wechat:before, +.icon-weixin:before { + content: "\f1d7"; +} +.icon-send:before, +.icon-paper-plane:before { + content: "\f1d8"; +} +.icon-send-o:before, +.icon-paper-plane-o:before { + content: "\f1d9"; +} +.icon-history:before { + content: "\f1da"; +} +.icon-circle-thin:before { + content: "\f1db"; +} +.icon-header:before { + content: "\f1dc"; +} +.icon-paragraph:before { + content: "\f1dd"; +} +.icon-sliders:before { + content: "\f1de"; +} +.icon-share-alt:before { + content: "\f1e0"; +} +.icon-share-alt-square:before { + content: "\f1e1"; +} +.icon-bomb:before { + content: "\f1e2"; +} +.icon-soccer-ball-o:before, +.icon-futbol-o:before { + content: "\f1e3"; +} +.icon-tty:before { + content: "\f1e4"; +} +.icon-binoculars:before { + content: "\f1e5"; +} +.icon-plug:before { + content: "\f1e6"; +} +.icon-slideshare:before { + content: "\f1e7"; +} +.icon-twitch:before { + content: "\f1e8"; +} +.icon-yelp:before { + content: "\f1e9"; +} +.icon-newspaper-o:before { + content: "\f1ea"; +} +.icon-wifi:before { + content: "\f1eb"; +} +.icon-calculator:before { + content: "\f1ec"; +} +.icon-paypal:before { + content: "\f1ed"; +} +.icon-google-wallet:before { + content: "\f1ee"; +} +.icon-cc-visa:before { + content: "\f1f0"; +} +.icon-cc-mastercard:before { + content: "\f1f1"; +} +.icon-cc-discover:before { + content: "\f1f2"; +} +.icon-cc-amex:before { + content: "\f1f3"; +} +.icon-cc-paypal:before { + content: "\f1f4"; +} +.icon-cc-stripe:before { + content: "\f1f5"; +} +.icon-bell-slash:before { + content: "\f1f6"; +} +.icon-bell-slash-o:before { + content: "\f1f7"; +} +.icon-trash:before { + content: "\f1f8"; +} +.icon-copyright:before { + content: "\f1f9"; +} +.icon-at:before { + content: "\f1fa"; +} +.icon-eyedropper:before { + content: "\f1fb"; +} +.icon-paint-brush:before { + content: "\f1fc"; +} +.icon-birthday-cake:before { + content: "\f1fd"; +} +.icon-area-chart:before { + content: "\f1fe"; +} +.icon-pie-chart:before { + content: "\f200"; +} +.icon-line-chart:before { + content: "\f201"; +} +.icon-lastfm:before { + content: "\f202"; +} +.icon-lastfm-square:before { + content: "\f203"; +} +.icon-toggle-off:before { + content: "\f204"; +} +.icon-toggle-on:before { + content: "\f205"; +} +.icon-bicycle:before { + content: "\f206"; +} +.icon-bus:before { + content: "\f207"; +} +.icon-ioxhost:before { + content: "\f208"; +} +.icon-angellist:before { + content: "\f209"; +} +.icon-cc:before { + content: "\f20a"; +} +.icon-shekel:before, +.icon-sheqel:before, +.icon-ils:before { + content: "\f20b"; +} +.icon-meanpath:before { + content: "\f20c"; +} \ No newline at end of file diff --git a/src/styles/form.less b/src/styles/form.less new file mode 100644 index 0000000..2277d72 --- /dev/null +++ b/src/styles/form.less @@ -0,0 +1,127 @@ +// +// Form +// @desc: 表单元素 +// --------------------------------------------------------------------------- + + +// Normalize +// @desc: 标准化 +// -------------------------------------------- +label{ display:block; margin:@form-label-margin;} +input[type="checkbox"], +input[type="radio"]{ margin:@form-radio-checkbox-margin; line-height:normal;} +input[type="search"]{ box-sizing:border-box;} // 修复 * 无法匹配 search 的问题 +input[type="file"]{ display: block;} + +/*select{ box-shadow:none; outline:none;} +select[multiple], +select[size] { height: auto;}*/ + + +// Custom +// @desc: 定制控件 +// -------------------------------------------- +.@{ns}form{ + input[type="text"], + input[type="file"], + input[type="search"], + input[type="password"], + input[type="number"], + input[type="email"], + input[type="tel"], + textarea, + select{ + width:100%; height:@form-input-height; padding:@form-input-padding; border:1px solid @form-input-border-color; margin:@form-input-margin; border-radius:@form-input-border-radius; outline:none; line-height:1; + &::-webkit-input-placeholder{ color:@form-input-placeholder;} + } + textarea{ height:auto;} + + .form-item{ margin:@form-item-margin; clear:both; user-select:none;} + .help-block{ display:block; margin-bottom:10px; color:#999; font-size:1.2rem; clear:both;} + .radio, + .checkbox{ + // padding-left 为 21 px 是为了修复 radio 显示不全的问题。 + min-width:20px; margin-bottom:1.5rem; padding:0 20px 0 21px; + input[type="radio"], + input[type="checkbox"], + .sq-checkbox, + .sq-radio{ margin-left:-20px;} + &.inline{ display:inline-block; float:left;} + } + + + // inline form + // @desc: 行内表单布局 + // -------------------------------------------- + &.inline{ + display:flex; align-items:center; justify-content:space-between; overflow:hidden; + select, + input{ margin-bottom:0;} + label{ margin:0 .5rem; padding-right:0; line-height:1;} + input[type="submit"], + input[type="button"]{ + width:100%; + } + .form-item{ + display:block; flex:1; padding-right:4px; margin-bottom:0; + &:last-of-type{ padding-right:0;} + } + } + + // 水平表单布局 + &.horizontal{ + .form-item{ + //.display-box; .box-orient(horizontal); .box-align(center); + display:flex; align-items:center; justify-content:space-between; + &.align-top{ + //.box-align(start); + justify-content:flex-start; + label:first-of-type{ padding-top:4px;} + } + } + + label{ min-width:3em;} + + input[type="text"], + input[type="search"], + input[type="password"], + input[type="number"], + input[type="email"], + input[type="tel"], + textarea, + select{ + display:block; width:100%; flex:1; margin-right:.5rem; + &+input{ margin-left:.5rem;} + &:last-of-type{ margin-right:0;} + } + + .wd-4, + .wd-6, + .wd-8{ width:9em; text-align:right;} + .wd-4{ width:5em;} + .wd-6{ width:7em;} + } +} + + +// Form +// @desc: 优化表单 +// -------------------------------------------- +.@{ns}checkbox, +.@{ns}radio{ + display:inline-block; position:relative; width:21px; height:21px; margin-right:.7rem; text-align:center; vertical-align:middle; overflow:hidden; + & > span{ .overlay(); background:#fff; border:2px solid #ccc; border-radius:3px; text-indent:-999em;} + input[type=checkbox], + input[type=radio]{ + visibility: hidden; + } + input[type=checkbox]:checked + span { + background:rgba(76,176,80,.9); border-color:#4CAF50; color:#fff; text-indent:0; + } + input[type=radio]:checked + span{ + background:rgba(76,176,80,.6); border-color:#4CAF50; color:#fff; text-indent:0; + } +} +.@{ns}radio{ + & > span{ border-radius:@border-radius-circle;} +} \ No newline at end of file diff --git a/src/styles/gallery.less b/src/styles/gallery.less new file mode 100644 index 0000000..467f3d6 --- /dev/null +++ b/src/styles/gallery.less @@ -0,0 +1,24 @@ +// +// Gallery +// @desc: 画廊 +// --------------------------------------------------------------------------- + +.@{ns}gallery{ + width:100%; overflow:hidden; + ul{ margin:-@gallery-space;} + a{ display:block; position:relative;} + img{ display:block; width:100%;} + + .gallery-item{ position:relative; padding:@gallery-space;} + .title{ font-size:@gallery-title-font-size;} + .desc{ font-size:@gallery-title-font-desc;} + + + // overlay + // @desc: 浮层标题 + // -------------------------------------------- + &.overlay{ + .title{ position:absolute; right:0; bottom:0; left:0; margin:0; padding:@gallery-space; background:@gallery-overlay-title-bg; color:@gallery-overlay-title-color;} + .desc{ display:none;} + } +} \ No newline at end of file diff --git a/src/less/grid.less b/src/styles/grid.less similarity index 86% rename from src/less/grid.less rename to src/styles/grid.less index 3cdf72d..c683cae 100644 --- a/src/less/grid.less +++ b/src/styles/grid.less @@ -1,33 +1,18 @@ -//** Grid -//** 栅格系统 +// +// Grid +// @desc: 栅格系统 +// --------------------------------------------------------------------------- .col-tb-visible{ display:none;} -//** 生成行 -.row{ - //margin-left:(@grid-gutter-width / -2); - //margin-right:(@grid-gutter-width / -2); - &:before, - &:after { - content: " "; - display: table; - } - &:after { - clear: both; - } -} -//** 生成栏 -.make-grid-columns(); -//** 生成 Mobile 栏 -.make-grid(mb); -@media (min-width: @screen-sm-min) { - .make-grid(tb); - .col-tb-visible{ display:block;} -} +//.row{.clearfix();} -//** 栏的生成方法 -//** 参照 bootstrap Grid +// Size +// @desc: 生成栏,参照 bootstrap Grid +// -------------------------------------------- +.make-grid-columns(); + .make-grid-columns() { .col(@index) when (@index = 1) { // initial @item: ~".col-mb-@{index}, .col-tb-@{index}"; @@ -103,3 +88,13 @@ .loop-grid-columns(@grid-columns, @class, push); .loop-grid-columns(@grid-columns, @class, offset); } + + +@media @mobile-screen { + .make-grid(mb); +} + +@media @table-screen { + .make-grid(tb); + .col-tb-visible{ display:block;} +} \ No newline at end of file diff --git a/src/styles/list.less b/src/styles/list.less new file mode 100644 index 0000000..03dbb51 --- /dev/null +++ b/src/styles/list.less @@ -0,0 +1,92 @@ +// +// List +// @desc: 列表 +// --------------------------------------------------------------------------- + +.@{ns}list{ + + .group-hd, + .list-item{ + display:block; position:relative; padding:@list-padding; border-top:1px solid transparent; border-bottom:1px solid transparent; font-size:@list-font-size; .clearfix(); + line-height:@list-line-height; // 保证中英文文本水平对齐 + & + .group-hd, + & + .list-item{ margin-top:-1px;} + &.divider{ border-bottom-color:@list-multi-border-color;} //等屏宽分隔线 Full-bleed dividers + } + &.divider{ + & > .list-item{ border-color:@list-multi-border-color;} + } + .icon, + .thumb{ + display:block; position:relative; + img{ display:block; width:100%;} + .sq-badge{ position:absolute; top:@list-badge-pos-top; left:@list-badge-pos-left;} + } + //.icon{ width:@list-icon-width; height:@list-icon-height;} + .title{ display:block; margin-bottom:@list-inside-space;} + .overlay{ .overlay(); text-indent:-999em; z-index:@list-overlay-zindex; cursor:pointer;} + .align-middle{ display:flex; align-items:center;} + + + // Text + // @desc: 文字列表,通常只包含文字、徽章或少量控件 + // -------------------------------------------- + &.text{ + .list-item{ + padding:0; + & > a{ display:block; padding:@list-padding;} + } + .title{ font-size:@content-font-size;} + .data{ display:inline-block; float:right; width:80px; margin-left:1rem;} + .sq-badge{ margin:-2px 0; margin-left:1rem;} // 修正 sq-badge 过高将 list-item 撑开的问题 + //.sq-icon:not(.sq-fr){ display:inline-block; width:48px; margin:-3px 0 -3px -15px; text-align:center;} + .sq-icon{ + display:inline-block; margin-right:12px; + &.sq-fr{ margin-right:0;} + } + } + + + // Media + // @desc: 媒体列表,布局复杂、控件丰富的列表 + // -------------------------------------------- + &.media{ + .list-item{ display:flex;} + .desc{ + flex:1; margin:0 @list-padding; + .title{ font-size:@title-font-size;} + .digest{ margin-bottom:@list-inside-space; font-size:@content-font-size;} + :last-child{ margin-bottom:0;} + } + // 消除多余边距 + :first-child{ margin-left:0;} + :last-child{ margin-right:0;} + // 扩展内容,通常放置按钮、Icon + .extend{ + position:relative; z-index:@list-overlay-zindex + 1; // 高于 .overlay + .sq-btn{ + float:left; + & + .sq-btn{ + margin-left:@list-inside-space; + &.block{ margin-left:0; margin-top:@list-inside-space;} + } + } + } + // 一行多列显示优化 + &[class*="@{ns}col-"]{ + border-bottom:1px solid @list-multi-border-color; border-left:1px solid @list-multi-border-color; + .list-item{ + margin:0 0 0 -1px; border-bottom:none; border-left:1px solid @list-multi-border-color; border-right:1px solid @list-multi-border-color; + } + } + } + + + // Tile + // @desc:平布列表 + // -------------------------------------------- + &.tile{ + .list-item{ float:left; margin:0; padding:@list-tile-padding; text-align:center; border:none;} + .icon{ margin:0 auto @list-inside-space;} + } +} \ No newline at end of file diff --git a/src/styles/mixins.less b/src/styles/mixins.less new file mode 100644 index 0000000..1b79ace --- /dev/null +++ b/src/styles/mixins.less @@ -0,0 +1,55 @@ +// +// Mixin +// @desc: LESS 混合模块 +// --------------------------------------------------------------------------- + +// 清除浮动 +.clearfix() { + &:before, + &:after { + content: " "; + display: table; + } + &:after { + clear: both; + } +} + +// 折行字体隐藏 +.text-hide() { + display:block; + max-height:1.4em; + line-height:1.4em; + overflow:hidden; +} + +// 折行字体显示省略号 +.text-hide-ellipsis() { + display:block; + white-space:nowrap; + text-overflow:ellipsis; + overflow:hidden; +} + +// 元素平铺 +.overlay (@top: 0, @right: 0, @bottom: 0, @left: 0){ + position:absolute; + top: @top; + right: @right; + bottom: @bottom; + left: @left; +} + +// 三角箭头 +.sq-arr-up (@size, @color){ + width:0; height:0; border:@size solid transparent; border-bottom-color:@color; +} +.sq-arr-right (@size, @color){ + width:0; height:0; border:@size solid transparent; border-right-color:@color; +} +.sq-arr-down (@size, @color){ + width:0; height:0; border:@size solid transparent; border-down-color:@color; +} +.sq-arr-left (@size, @color){ + width:0; height:0; border:@size solid transparent; border-left-color:@color; +} \ No newline at end of file diff --git a/src/less/normalize.less b/src/styles/normalize.less similarity index 66% rename from src/less/normalize.less rename to src/styles/normalize.less index 5595064..d762914 100644 --- a/src/less/normalize.less +++ b/src/styles/normalize.less @@ -1,4 +1,14 @@ -/*! normalize.css v3.0.1 | MIT License | git.io/normalize */ +// +// Normalize +// @desc: 标准化样式 +// --------------------------------------------------------------------------- + +// normalize.css +// 以下为 normalize.css 拷贝 +// 更新时请使用 bower +// -------------------------------------------- + +/* normalize.css v3.0.2 | MIT License | git.io/normalize */ /** * 1. Set default font family to sans-serif. @@ -6,18 +16,18 @@ * user zoom. */ -html{ - font-family:sans-serif; /* 1 */ - -ms-text-size-adjust:100%; /* 2 */ - -webkit-text-size-adjust:100%; /* 2 */ +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ } /** * Remove default margin. */ -body{ - margin:0; +body { + margin: 0; } /* HTML5 display definitions @@ -25,7 +35,8 @@ body{ /** * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. * Correct `block` display not defined for `main` in IE 11. */ @@ -36,11 +47,13 @@ figcaption, figure, footer, header, +hgroup, main, +menu, nav, section, -summary{ - display:block; +summary { + display: block; } /** @@ -51,9 +64,9 @@ summary{ audio, canvas, progress, -video{ - display:inline-block; /* 1 */ - vertical-align:baseline; /* 2 */ +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ } /** @@ -61,9 +74,9 @@ video{ * Remove excess height in iOS 5 devices. */ -audio:not([controls]){ - display:none; - height:0; +audio:not([controls]) { + display: none; + height: 0; } /** @@ -72,8 +85,8 @@ audio:not([controls]){ */ [hidden], -template{ - display:none; +template { + display: none; } /* Links @@ -83,8 +96,8 @@ template{ * Remove the gray background color from active links in IE 10. */ -a{ - background:transparent; +a { + background-color: transparent; } /** @@ -92,8 +105,8 @@ a{ */ a:active, -a:hover{ - outline:0; +a:hover { + outline: 0; } /* Text-level semantics @@ -103,8 +116,8 @@ a:hover{ * Address styling not present in IE 8/9/10/11, Safari, and Chrome. */ -abbr[title]{ - border-bottom:1px dotted; +abbr[title] { + border-bottom: 1px dotted; } /** @@ -112,16 +125,16 @@ abbr[title]{ */ b, -strong{ - font-weight:bold; +strong { + font-weight: bold; } /** * Address styling not present in Safari and Chrome. */ -dfn{ - font-style:italic; +dfn { + font-style: italic; } /** @@ -129,26 +142,26 @@ dfn{ * contexts in Firefox 4+, Safari, and Chrome. */ -/*h1 { - font-size: 2em; - margin: 0.67em 0; -}*/ +h1 { + font-size: 2em; + margin: 0.67em 0; +} /** * Address styling not present in IE 8/9. */ -mark{ - background:#ff0; - color:#000; +mark { + background: #ff0; + color: #000; } /** * Address inconsistent and variable font size in all browsers. */ -small{ - font-size:80%; +small { + font-size: 80%; } /** @@ -156,19 +169,19 @@ small{ */ sub, -sup{ - font-size:75%; - line-height:0; - position:relative; - vertical-align:baseline; +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; } -sup{ - top:-0.5em; +sup { + top: -0.5em; } -sub{ - bottom:-0.25em; +sub { + bottom: -0.25em; } /* Embedded content @@ -178,16 +191,16 @@ sub{ * Remove border when inside `a` element in IE 8/9/10. */ -img{ - border:0; +img { + border: 0; } /** * Correct overflow not hidden in IE 9/10/11. */ -svg:not(:root){ - overflow:hidden; +svg:not(:root) { + overflow: hidden; } /* Grouping content @@ -197,26 +210,26 @@ svg:not(:root){ * Address margin not present in IE 8/9 and Safari. */ -figure{ - margin:1em 40px; +figure { + margin: 1em 40px; } /** * Address differences between Firefox and other browsers. */ -hr{ - -moz-box-sizing:content-box; - box-sizing:content-box; - height:0; +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; } /** * Contain overflow in all browsers. */ -pre{ - overflow:auto; +pre { + overflow: auto; } /** @@ -226,9 +239,9 @@ pre{ code, kbd, pre, -samp{ - font-family:monospace, monospace; - font-size:1em; +samp { + font-family: monospace, monospace; + font-size: 1em; } /* Forms @@ -250,18 +263,18 @@ button, input, optgroup, select, -textarea{ - color:inherit; /* 1 */ - font:inherit; /* 2 */ - margin:0; /* 3 */ +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ } /** * Address `overflow` set to `hidden` in IE 8/9/10/11. */ -button{ - overflow:visible; +button { + overflow: visible; } /** @@ -272,8 +285,8 @@ button{ */ button, -select{ - text-transform:none; +select { + text-transform: none; } /** @@ -287,9 +300,9 @@ select{ button, html input[type="button"], /* 1 */ input[type="reset"], -input[type="submit"]{ - -webkit-appearance:button; /* 2 */ - cursor:pointer; /* 3 */ +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ } /** @@ -297,8 +310,8 @@ input[type="submit"]{ */ button[disabled], -html input[disabled]{ - cursor:default; +html input[disabled] { + cursor: default; } /** @@ -306,9 +319,9 @@ html input[disabled]{ */ button::-moz-focus-inner, -input::-moz-focus-inner{ - border:0; - padding:0; +input::-moz-focus-inner { + border: 0; + padding: 0; } /** @@ -316,8 +329,8 @@ input::-moz-focus-inner{ * the UA stylesheet. */ -input{ - line-height:normal; +input { + line-height: normal; } /** @@ -329,9 +342,9 @@ input{ */ input[type="checkbox"], -input[type="radio"]{ - box-sizing:border-box; /* 1 */ - padding:0; /* 2 */ +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ } /** @@ -341,8 +354,8 @@ input[type="radio"]{ */ input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button{ - height:auto; +input[type="number"]::-webkit-outer-spin-button { + height: auto; } /** @@ -351,11 +364,11 @@ input[type="number"]::-webkit-outer-spin-button{ * (include `-moz` to future-proof). */ -input[type="search"]{ - -webkit-appearance:textfield; /* 1 */ - -moz-box-sizing:content-box; - -webkit-box-sizing:content-box; /* 2 */ - box-sizing:content-box; +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; } /** @@ -365,18 +378,18 @@ input[type="search"]{ */ input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration{ - -webkit-appearance:none; +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } /** * Define consistent border, margin, and padding. */ -fieldset{ - border:1px solid #c0c0c0; - margin:0 2px; - padding:0.35em 0.625em 0.75em; +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; } /** @@ -384,17 +397,17 @@ fieldset{ * 2. Remove padding so people aren't caught out if they zero out fieldsets. */ -legend{ - border:0; /* 1 */ - padding:0; /* 2 */ +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ } /** * Remove default vertical scrollbar in IE 8/9/10/11. */ -textarea{ - overflow:auto; +textarea { + overflow: auto; } /** @@ -402,8 +415,8 @@ textarea{ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. */ -optgroup{ - font-weight:bold; +optgroup { + font-weight: bold; } /* Tables @@ -413,64 +426,12 @@ optgroup{ * Remove most spacing between table cells. */ -table{ - border-collapse:collapse; - border-spacing:0; +table { + border-collapse: collapse; + border-spacing: 0; } td, -th{ - padding:0; -} - -/* Squirrel - ========================================================================== */ -*, -*:before, -*:after{ - -moz-box-sizing:border-box; - -webkit-box-sizing:border-box; - box-sizing:border-box; -} - -html{ - font-size:62.5%; -} - -body{ - -webkit-font-smoothing:antialiased; - -webkit-tap-highlight-color:transparent; - -webkit-touch-callout:none; - - font-family:@font-family; - font-size:@default-font-size; - color:@default-font-color; - word-wrap:break-word; - break-word:break-all; +th { + padding: 0; } - -h1, -h2, -h3, -h4, -h5{ - font-weight:400; -} - -ul, -ol, -menu{ - margin:0; - padding:0; -} - -a{ - text-decoration:none; -} - -input, -textarea, -select{ - -webkit-font-smoothing:antialiased; -} - diff --git a/src/styles/plugins/dropdown.less b/src/styles/plugins/dropdown.less new file mode 100644 index 0000000..974890e --- /dev/null +++ b/src/styles/plugins/dropdown.less @@ -0,0 +1,19 @@ +// +// Dropdown +// @desc: 下拉菜单,dropdown.js 配套样式 +// @author: squirrel +// --------------------------------------------------------------------------- +.@{ns}dropdown{ + position:relative; display:inline-block; vertical-align:middle; + + .dropdown-content{ + display:none; position:absolute; top:100%; left:0; min-width:@dropdown-min-width; margin-top:-1px; background:@dropdown-content-bg; box-shadow:@shardow-normal; border-radius:@dropdown-content-radius; border:1px solid @dropdown-border-color; z-index:@dropdown-index; + & > li{ + padding:@dropdown-content-padding; border-bottom:1px solid @dropdown-border-color; + &:hover{ background:@dropdown-hover;} + &:last-of-type{ border-bottom:none;} + } + a{ display:block; white-space:nowrap; line-height:@default-line-height;} + &.align-right{ left:auto; right:0;} + } +} diff --git a/src/styles/plugins/loadmore.less b/src/styles/plugins/loadmore.less new file mode 100644 index 0000000..456ac8c --- /dev/null +++ b/src/styles/plugins/loadmore.less @@ -0,0 +1,23 @@ +// +// Loadmore +// @desc: 下拉菜单,loadmore.js 配套样式 +// @author: squirrel +// --------------------------------------------------------------------------- +.@{ns}loadmore-state{ + position:relative; padding:@loadmore-padding; line-height:@loadmore-lin-height; color:@default-font-color; text-align:center; cursor:pointer; overflow:hidden; + .state-icon{ + &::before{ font-family:@icon-font-family;} + } + .state-txt{ padding:0 8px;} + &.click{ + & > .state-icon::before{ content:'\f103';} + } + &.loading{ + & > .state-icon{ position:relative; top:-1px; animation:icon-spin 2s infinite linear;} + & > .state-icon::before{ content:'\f110';} + } + //&.error{} + &.no-more{ + & > .state-icon::before{ content:'';} + } +} diff --git a/src/styles/plugins/modal.less b/src/styles/plugins/modal.less new file mode 100644 index 0000000..fb73f90 --- /dev/null +++ b/src/styles/plugins/modal.less @@ -0,0 +1,17 @@ +// +// Modal +// @desc: 弹出窗口,modal.js 配套样式 +// @author: squirrel +// --------------------------------------------------------------------------- +.@{ns}modal{ + background:@modal-bg; border-radius:@modal-radius; + + //.content{} + + // 按钮 + .close-btn{ position:absolute; top:0; right:0; width:30px; height:30px; background:#d7d7d7; border-radius:3px; text-align:center; line-height:30px; cursor:pointer; z-index:3;} + .ok-btn, + .cancel-btn{ position:absolute; width:50%; padding:@modal-btn-padding; background:#efefef; border-top:1px solid @modal-border-color; text-align:center; cursor:pointer;} + .ok-btn{ left:0; bottom:0; border-radius:0 0 0 @modal-radius;} + .cancel-btn{ right:0; bottom:0; border-left:1px solid @modal-border-color; border-radius:0 0 @modal-radius 0;} +} \ No newline at end of file diff --git a/src/styles/plugins/panel.less b/src/styles/plugins/panel.less new file mode 100644 index 0000000..278690a --- /dev/null +++ b/src/styles/plugins/panel.less @@ -0,0 +1,12 @@ +// +// Panel +// @desc: 下拉菜单,panel.js 配套样式 +// @author: squirrel +// --------------------------------------------------------------------------- +.@{ns}panel{ background:@panel-bg;} + +// 动画类,为了适应不同宽度的 panel 动画,具体动画样式写在了 panel.js 中。 +.animate-showPanel{ animation-name:showPanel;} +.animate-hidePanel{ animation-name:hidePanel;} +.animate-hideWrap{ animation-name:hideWrap;} +.animate-showWrap{ animation-name:showWrap;} \ No newline at end of file diff --git a/src/styles/plugins/screenshot.less b/src/styles/plugins/screenshot.less new file mode 100644 index 0000000..a80cf7a --- /dev/null +++ b/src/styles/plugins/screenshot.less @@ -0,0 +1,42 @@ +//** sq-screenshot +//** Screenshot + +.@{ns}screenshot{ + .screenshot-horizontal{ + margin-top:20px; max-height:400px; overflow:hidden; + // 默认为全景模式 + ul{ list-style:none; margin:0; padding:0; overflow:hidden;} + li{ float:left; width:320px; margin:0 10px 0 0; padding:0; background:#e5e5e5; text-align:center; cursor:pointer; + img{ display:block; width:100%;} + &.active{ color:#fff; background:#e5e5e5;} + } + // 肖像模式 + .portrait-view{ + li{ width:200px;} + } + .landscape-view{} + } + + /* Scrollbar */ + .screenshot-scrollbar{ + margin: 10px 0 0 0; + height: 5px; + background: #e5e5e5; + line-height: 0; + + .handle { + width: 100px; + height: 100%; + background: #38c483; + cursor: pointer; + + .mousearea { + position: absolute; + top: -9px; + left: 0; + width: 100%; + height: 20px; + } + } + } +} diff --git a/src/styles/plugins/slider.less b/src/styles/plugins/slider.less new file mode 100644 index 0000000..664d0f7 --- /dev/null +++ b/src/styles/plugins/slider.less @@ -0,0 +1,26 @@ +// +// Slider +// @desc: 滑动图片,slider.js 配套样式 +// @author: squirrel +// --------------------------------------------------------------------------- +.@{ns}slider{ + display:block; + li{} + img{ display:block; margin:0 auto;} +} + +.bx-wrapper{ + position:relative; + + .bx-controls{} + .bx-pager{ position:absolute; right:10px; bottom:10px; text-align:right;} + .bx-pager-item{ display:inline-block; padding:0 3px;} + .bx-pager-link{ + display:inline-block; width:8px; height:8px; background:rgba(0,0,0,.6); border-radius:999rem; font-size:0; overflow:hidden; + &.active{ background:#38c483;} + } + + .bx-controls-direction{ display:none; } + .bx-prev{} + .bx-next{} +} \ No newline at end of file diff --git a/src/less/tabs.less b/src/styles/plugins/tabs.less similarity index 65% rename from src/less/tabs.less rename to src/styles/plugins/tabs.less index 48a2e2d..c9b62c3 100644 --- a/src/less/tabs.less +++ b/src/styles/plugins/tabs.less @@ -1,18 +1,20 @@ -//** sq-tab -//** Tabs 插件样式 - -.sq-nav-tabs{ +// +// Tab +// @desc: 下拉菜单,tab.js 配套样式 +// @author: squirrel +// --------------------------------------------------------------------------- +.@{ns}nav-tabs{ height:39px; border-bottom:1px solid #d7d7d7; - &>li{ + & > li{ min-width:40px; height:40px; padding:0 10px; border-bottom:3px solid transparent; line-height:40px; text-align:center; cursor:pointer; &.active{ border-bottom-color:#d7d7d7;} } } -.sq-tab-content{ +.@{ns}tab-content{ display:none; border:1px solid transparent; min-height:100px; &.active{ display:block;} } -.sq-tabs-loading-tip{ +.@{ns}tabs-loading-tip{ padding:30px 0; text-align:center; .reload{ &>p{ margin-bottom:.8em;} diff --git a/src/styles/squirrel.less b/src/styles/squirrel.less new file mode 100644 index 0000000..a97fa97 --- /dev/null +++ b/src/styles/squirrel.less @@ -0,0 +1,44 @@ +// +// Squirrel LESS +// --------------------------------------------------------------------------- + +// Variables and mixins +@import "variables"; +@import "mixins"; + + +// Normalize and Core +@import "normalize"; +@import "base"; +@import "utilities"; + + +// CSS +@import "button"; +@import "column"; +@import "form"; +@import "grid"; + + +// Components +@import "animate"; +@import "badge"; +@import "bar"; +@import "gallery"; +@import "list"; +@import "font-awesome"; + + +// Plugins +@import "plugins/dropdown"; +@import "plugins/loadmore"; +@import "plugins/panel"; +@import "plugins/modal"; +@import "plugins/tabs"; + +@import "plugins/slider"; +@import "plugins/screenshot"; + + +// Theme +//@import "themes/default-theme"; \ No newline at end of file diff --git a/src/styles/themes/default-theme.less b/src/styles/themes/default-theme.less new file mode 100644 index 0000000..09214d2 --- /dev/null +++ b/src/styles/themes/default-theme.less @@ -0,0 +1,105 @@ +// +// Material UI +// --------------------------------------------------------------------------- + +@ns: ~"sq-"; +@space-normal: 16px; + + +@white: #fff; +@font-grey: #757575; +@base-blue: #3f51b5; +@border-color-grey: #e0e0e0; + + +@shadow-normal: 0 2px 5px rgba(0,0,0,0.26); +@shadow-depth-2: 0 1px 6px rgba(0, 0, 0, 0.36); + +hr{ display:block; height:1px; background:@border-color-grey; margin:8px 0; border:none; clear:both;} + +.@{ns}bar{ + height:56px; padding:0; font-size:20px; background:@base-blue; color:@white; line-height:56px; + // 超过 768px: height:64px; font-size:24px; + + box-shadow:@shadow-normal; + + &.nav{ + & > .title{ text-align:left; font-size:20px; margin:0; padding:0 16px;} + & > .extend{} + .sq-btn{ + width:48px; height:48px; padding:0; margin:4px; color:@white; line-height:48px; + } + } +} + +.@{ns}list{ + .group-hd{ font-size:1.6rem; color:@font-grey;} + .list-item{ + padding:(@space-normal - 1) @space-normal; + &:after{ content:''; display:block; position:absolute; left:72px; right:0; bottom:-1px; height:1px; border-bottom:1px solid transparent;} + &.divider{ border-color:@border-color-grey;} //等屏宽分隔线 Full-bleed dividers + &.divider-inset:after{ border-color:@border-color-grey;} + & > .icon:last-child{ width:auto;} + } + &.divider{ + & > .list-item{ border-color:@border-color-grey;} + } + &.divider-inset{ + & > .list-item:after{ border-color:@border-color-grey;} + } + &.single-line{ + & > .list-item{ padding:7px @space-normal;} + } + + // 保证文字以 75px 对齐 + .sq-icon{ width:56px;} + .icon{ + width:56px; height:auto; + img{ width:40px; border-radius:999rem;} + } + + &.text{ + .list-item{ + & > a{ padding:(@space-normal - 2) @space-normal (@space-normal - 3);} + } + .sq-icon{ + width:56px; margin:0; text-align:left; + &.sq-fr{ width:auto;} + } + } + + &.media{ + .title{ line-height:1;} + .desc{ margin-left:0; line-height:1;} + .digest{ color:@font-grey;} + .extend{ + .sq-icon{ width:auto;} + } + } +} + +.@{ns}btn{ + padding:9px 8px; // height:36px; + &.flat{} + &.raised{ border-radius:2px; box-shadow:@shadow-depth-2;} + &.float-action{} +} + +.@{ns}card{ + margin:@space-normal / 2; box-shadow:@shadow-depth-2; border-radius:2px; + & > .hd{ margin:0;} + & > .bd{ + padding:@space-normal; + img{ width:100%;} + } + & > .hd + .bd{ padding-top:0;} + & > .action{ + padding:@space-normal / 2; border-top:1px solid @border-color-grey; + } + + .card-title{ margin-bottom:@space-normal - 2;} + + .gallery-item{ + margin:0; padding:0; + } +} \ No newline at end of file diff --git a/src/styles/utilities.less b/src/styles/utilities.less new file mode 100644 index 0000000..3c74d97 --- /dev/null +++ b/src/styles/utilities.less @@ -0,0 +1,16 @@ +// +// Utilities +// 通用功能样式 +// --------------------------------------------------------------------------- + +.@{ns}fl{ float:left;} +.@{ns}fr{ float:right;} + +// 显示 +.@{ns}hide{ display:none;} +.@{ns}unvisible{ visibility:hidden;} +.@{ns}clearfix{ .clearfix();} + +// 文字排版 +.@{ns}a-line{ .text-hide();} +.@{ns}a-line-ellipsis{ .text-hide-ellipsis();} diff --git a/src/styles/variables.less b/src/styles/variables.less new file mode 100644 index 0000000..513484b --- /dev/null +++ b/src/styles/variables.less @@ -0,0 +1,206 @@ +// +// Global variables +// 全局变量 +// --------------------------------------------------------------------------- + + +// =========================================================================== +// Common +// =========================================================================== + + +// 基本设置 Base Setting +// -------------------------------------------- +@ns: ~"sq-"; +//** 圆角 Radius +@border-radius-circle: 999rem; +@border-radius-base: 3px; +//** 颜色 color +@black: #333333; +@white: #ffffff; +//** 其他 Other +@shardow-normal: 0 1px 6px rgba(0,0,0,.12); + + +// 文字设置 Font +// -------------------------------------------- +@font-family: "Segoe UI", Helvetica, "Lucida Grande", Arial, "Microsoft YaHei", FreeSans, Arimo, "Droid Sans","wenquanyi micro hei","Hiragino Sans GB", "Hiragino Sans GB W3", Arial, sans-serif; +@default-font-color: @black; +@default-font-size: 1.6rem; // 16px +@default-line-height: 1.428571429; // @see bootstrap +@head-font-size: 1.8rem; // 主导航文字 +@title-font-size: 1.6rem; // 标题文字 +@content-font-size: 1.4rem; // 内容文字 +@form-base-font-size: 1.4rem; // 表单文字 +@description-font-size: 1.2rem; // 描述文字 +@badge-font-size: 1.2rem; // 徽标文字 + + +// 媒体查询 Media queries +// -------------------------------------------- +@screen: ~"only screen"; +@landscape: ~"(orientation: landscape)"; +@portrait: ~"(orientation: portrait)"; +//** Mobile size +@mobile-max-size: 640px; // 0 - 640px +@mobile-landscape-size: ~"@{landscape}"; +@mobile-portrait-size: ~"@{portrait}"; +//** Table size +@table-min-size: 768px; // 768 - ∞ +@table-landscape-size: ~"@{landscape}"; +@table-portrait-size: ~"@{portrait}"; +//** Mobile screen +@mobile-screen: ~"@{screen}"; +@mobile-screen-landscape: ~"@{screen} and (orientation: landscape)"; +@mobile-screen-portrait: ~"@{screen} and (orientation: portrait)"; +//** Table screen +@table-screen: ~"@{screen} and (min-width: @{table-min-size})"; +@table-screen-landscape: ~"@{screen} and (min-width: @{table-min-size}) and (@{table-landscape-size})"; +@table-screen-portrait: ~"@{screen} and (min-width: @{table-min-size}) and (@{table-portrait-size})"; + + +// =========================================================================== +// CSS +// =========================================================================== + + +// 按钮 Button +// -------------------------------------------- +@btn-border-radius: @border-radius-base; +//** normal (sq-btn height = 9*2 + 16 + 2 = 36px) +@btn-padding-normal: 9px 1rem; +//** large +@btn-padding-large: 12px 1rem; +@btn-font-size-large: 1.8rem; +//** small +@btn-padding-small: 6px 1rem; +@btn-font-size-small: 1.4rem; +//** mini +@btn-padding-mini: 4px 1rem; +@btn-font-size-mini: 1.2rem; +@btn-disabled-opacity: .7; + + +// 表单 Form +// -------------------------------------------- +@form-label-margin: 0 0 5px 0; +@form-radio-checkbox-margin:4px .7rem 0 0; +//** input +@form-input-height: 36px; +@form-input-margin: 0 0 5px 0; +@form-input-padding: 4px 6px; +@form-input-border-color: #ccc; +@form-input-border-radius: @border-radius-base; +@form-input-placeholder: #999; +@form-item-margin: 0 0 1.5rem 0; + + +// 栅格系统 Grid system +// -------------------------------------------- +@grid-columns: 12; +@gutter: 1.5rem; // 15px +@grid-gutter-width: 3rem; // 30px + + +// =========================================================================== +// Components +// =========================================================================== + + +// 徽章 Badge +// -------------------------------------------- +@badge-border-radius: 10px; +@badge-padding: 3px 7px; +@badge-black: #444444; +@badge-blue: #009bd8; +@badge-green: #6eb82c; +@badge-grey: #a9a7a7; +@badge-red: #e34541; +@badge-orange: #faa800; + + +// 栏条 Bar +// -------------------------------------------- +@bar-normal-height: 49px; +@bar-toolbar-padding: 0 4px; +@bar-toolbar-index: 100; +@bar-nav-extend-margin: 0 .5rem; +@bar-title-font-size: @head-font-size; +@bar-pagination-font-size: @content-font-size; +@bar-tab-font-size: @content-font-size; +@bar-search-padding: 0 8px; +@bar-search-label-bg: @white; +@bar-search-height: 32px; +@bar-search-icon: ~"\f002"; +@bar-search-btn-space: 4px; + + +// 列表 List +// -------------------------------------------- +@list-font-size: @content-font-size; +//@list-icon-width: 60px; +//@list-icon-height: 60px; +@list-padding: 12px; // 不能使用 top right bottom left 格式 +@list-line-height: 1.4; +@list-badge-pos-top: -5px; +@list-badge-pos-left: -5px; +@list-overlay-zindex: 11; +@list-inside-space: .5rem; +@list-multi-border-color: #e5e5e5; +@list-tile-padding: 10px 5px; + + +// 画廊 Gallery +// -------------------------------------------- +@gallery-space: 3px; +@gallery-title-font-size: 1.4rem; +@gallery-title-font-desc: 1.4rem; +@gallery-overlay-title-bg: rgba(0,0,0,.6); +@gallery-overlay-title-color:@white; +@gallery-item-min-height: 100px; + + +// 字体图标 Icon +// -------------------------------------------- +@icon-font-family: "FontAwesome"; +@icon-font-path: "../fonts/"; +@icon-font-name: "fontawesome-webfont"; +@icon-x2-size: 2rem; +@icon-x3-size: 2.7rem; +@icon-x4-size: 4rem; +@icon-x5-size: 5rem; + + +// ============================================================================= +// Plugins +// ============================================================================= + + +// Dropdown +// -------------------------------------------- +@dropdown-content-bg: @white; +@dropdown-content-radius: @border-radius-base; +@dropdown-border-color: #e5e5e5; +@dropdown-hover: #efefef; +@dropdown-index: 100; +@dropdown-content-padding: 7px 10px; +@dropdown-min-width: 100px; + + +// Loadmore +// -------------------------------------------- +@loadmore-lin-height: @default-line-height; +@loadmore-padding: 8px; + + +// Panel +// -------------------------------------------- +@panel-bg: #333; + + +// Modal +// -------------------------------------------- +@modal-bg: @white; +@modal-radius: @border-radius-base; // 不能使用 top right bottom left 格式 +@modal-border-color: #d7d7d7; +@modal-btn-padding: 8px; \ No newline at end of file diff --git a/src_cmd/button/button.js b/src_cmd/button/button.js deleted file mode 100644 index 7c45163..0000000 --- a/src_cmd/button/button.js +++ /dev/null @@ -1,127 +0,0 @@ -/** - * @file Squirrel Button - * @version 0.1.2 - */ - -/** - * @changelog - * 0.1.2 * 修复 jshint 问题 - * 0.1.1 + 新增 menu 交互模式 - * 0.0.1 + 新建 - */ -define(function(require, exports, module) { - "use strict"; - var SQ = require("core"); - /** - * @name Button - * @classdesc 选项卡交互组件 - * @constructor - * @param {object} config 组件配置(下面的参数为配置项,配置会写入属性) - * @param {string} config.EVE_EVENT_TYPE 触发事件,click 或 mouseover - * @param {string} config.DOM_TRIGGER_TARGET 被绑定事件的 Dom 元素 - * @param {string} config.MODE 交互模式 - */ - function Button(config) { - var me = this; - var i; - - me.config = { - TXT_LOADING_TIP : "正在加载请稍后..." // 正在加载提示 - }; - - for (i in config) { - if (config.hasOwnProperty(i)) { - me.config[i] = config[i]; - } - } - - me.$triggerTarget = $(me.config.DOM_TRIGGER_TARGET); // 目标元素 - - if (me._verify()) { - me._init(); - } - } - Button.prototype = { - construtor: Button, - version: "0.1.2", - //state: "init", - - // 验证参数是否合法 - _verify : function () { - return true; - }, - _init : function () { - var me = this; - // menu 模式 - if (me.config.MODE === "menu") { - me.$triggerTarget.on(me.config.EVE_EVENT_TYPE, function () { - me.menu(); - }); - } - }, - // 改变按钮状态 - setState : function (state) { - var me = this; - //me.state = state; - if (state === "active") { - me.$triggerTarget.addClass("active"); - } - if (state === "init") { - me.$triggerTarget.removeClass("active"); - } - - }, - // 按钮菜单效果 - menu : function () { - var me = this; - var $menuBtns = $(".J_buttonMenu"); - var $menu = me.$triggerTarget.find(".menu"); - var $menus = $menuBtns.find(".menu"); - var $doc = $(document); - - function _resetAll() { - $menus.hide(); - $menuBtns.removeClass("active"); - } - function _showMenu() { - _resetAll(); - $menu.show(); - me.setState("active"); - $doc.on("click", function (e) { - var $target = $(e.target); - if (!$target.hasClass("sq-btn") && $target.parents(".sq-btn").length === 0) { - _hideMenu(); - } - }); - } - function _hideMenu() { - $menu.hide(); - me.setState("init"); - $doc.off("click"); - } - - if (!me.$triggerTarget.hasClass("active")) { - _showMenu(); - } else { - _hideMenu(); - } - }, - // 按钮开关效果 - toggle : function () { - //var me = this; - - } - }; - module.exports = Button; - - // 初始化菜单类型按钮 - $(".J_buttonMenu").each(function () { - var $me = $(this); - var button = new Button({ - EVE_EVENT_TYPE : "click", - DOM_TRIGGER_TARGET : $me, - MODE : "menu", - CSS_STYLE : "" - }); - }); -}); \ No newline at end of file diff --git a/src_cmd/core/squirrel-core.js b/src_cmd/core/squirrel-core.js deleted file mode 100644 index acd3018..0000000 --- a/src_cmd/core/squirrel-core.js +++ /dev/null @@ -1,390 +0,0 @@ -/** - * @file SQ.core - * @version 1.0.0 - */ -define(function(require, exports, module) { - var SQ = {}; - SQ.core = { - /** - * 命名空间方法 - * @method - * @name SQ.core.namespace - * @param {string} nameSpaceString 命名空间字符串 - * @example - * SQ.core.namespace("SQ.modules.module2"); - */ - namespace : function (nameSpaceString) { - var parts = nameSpaceString.split("."); - var parent = SQ; - var i; - if (parts[0] === "SQ") { - parts = parts.slice(1); - } else { - return false; - } - for (i = 0; i < parts.length; i += 1) { - if (typeof parent[parts[i]]) { - parent[parts[i]] = {}; - } - parent = parent[parts[i]]; - } - return parent; - }, - /** - * 判断对象类型 - * @example - * SQ.core.isString(str); - */ - isString : function (str) { - return Object.prototype.toString.call(str) === "[object String]"; - }, - isArray : function (arr) { - return Object.prototype.toString.call(arr) === "[object Array]"; - }, - isNumber : function (num) { - return Object.prototype.toString.call(num) === "[object Number]"; - }, - isBoolean : function (bool) { - return Object.prototype.toString.call(bool) === "[object Boolean]"; - }, - isNull : function (nullObj) { - return Object.prototype.toString.call(nullObj) === "[object Null]"; - }, - isUndefined : function (undefinedObj) { - return Object.prototype.toString.call(undefinedObj) === "[object Undefined]"; - }, - isFunction : function (fun) { - return Object.prototype.toString.call(fun) === "[object Function]"; - }, - isObject : function (obj) { - return Object.prototype.toString.call(obj) === "[object Object]"; - }, - /** - * isJSON - * 判断是否为 JSON 对象 - * @param string - * @returns {boolean} - * @see qatrix.js - */ - // 暂时无法使用 - /*isJSON : function (string) { - var rvalidchars = /^[\],:{}\s]*$/; - var rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g; - var rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g; - var rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g; - return typeof string === 'string' && $.trim(string) !== '' ? - rvalidchars.test(string - .replace(rvalidescape, '@') - .replace(rvalidtokens, ']') - .replace(rvalidbraces, '')) : - false; - }*/ - extend : function (Child, Parent) { - var F = function () {}; - F.prototype = Parent.prototype; - Child.prototype = new F(); - Child.prototype.constructor = Child; - Child.uber = Parent.prototype; - } - }; - /** - * @file SQ.store - * @version 1.1.0 - */ - - SQ.store = { - /** - * Cookie 操作 - * @example - * Sq.cookie.set("name", "value"); // 设置 - * Sq.cookie.get("name"); // 读取 - * Sq.cookie.del("name"); // 删除 - */ - cookie: { - _getValue: function (offset) { - var ck = document.cookie; - var endstr = ck.indexOf(";", offset) === -1 ? ck.length : ck.indexOf(";", offset); - return decodeURIComponent(ck.substring(offset, endstr)); - }, - get: function (key) { - var me = this; - var ck = document.cookie; - var arg = key + "="; - var argLen = arg.length; - var cookieLen = ck.length; - var i = 0; - while (i < cookieLen) { - var j = i + argLen; - if (ck.substring(i, j) === arg) { - return me._getValue(j); - } - i = ck.indexOf(" ", i) + 1; - if (i === 0) { - break; - } - } - return null; - }, - set: function (key, value) { - var expdate = new Date(); - var year = expdate.getFullYear(); - var month = expdate.getMonth(); - var date = expdate.getDate() + 1; - var argv = arguments; - var argc = arguments.length; - //获取更多实参,依次为:有效期、路径、域、加密安全设置 - var expires = (argc > 2) ? argv[2] : null; - var path = (argc > 3) ? argv[3] : null; - var domain = (argc > 4) ? argv[4] : null; - var secure = (argc > 5) ? argv[5] : false; - - if (!!expires) { - switch (expires) { - case "day": - expdate.setYear(year); - expdate.setMonth(month); - expdate.setDate(date); - expdate.setHours(8); // 补 8 小时时差 - expdate.setMinutes(0); - expdate.setSeconds(0); - break; - case "week": - var week = 7 * 24 * 3600 * 1000; - expdate.setTime(expdate.getTime() + week); - break; - default: - expdate.setTime(expdate.getTime() + (expires * 1000 + 8 * 3600 * 1000)); - break; - } - } - - document.cookie = key + "=" + encodeURIComponent(value) + ((expires === null) ? "" : ("; expires=" + expdate.toGMTString())) + - ((path === null) ? "" : ("; path=" + path)) + ((domain === null) ? "" : ("; domain=" + domain)) + - ((secure === true) ? "; secure" : ""); - }, - del: function (key) { - var me = this; - var exp = new Date(); - exp.setTime(exp.getTime() - 1); - var cval = me.get(key); - document.cookie = key + "=" + cval + "; expires=" + exp.toGMTString(); - } - }, - localStorage: { - hasLoaclStorage: (function () { - if( ("localStorage" in window) && window.localStorage !== null ) { - return true; - } - }()), - // expires 过期时间,单位 min - get: function (key, expires) { - var me = this; - var now = new Date().getTime(); - if (!key || !me.hasLoaclStorage) { - return; - } - var localDatas = localStorage.getItem(key); - if (!localDatas) { - return; - } - localDatas = localDatas.split("@"); - if (expires === undefined) { - return localDatas[1]; - } - // 填写了 expires 过期时间 - var inEffect = parseInt(expires, 10) * 1000 * 60 > (now - parseInt(localDatas[0], 10)); - if (inEffect) { - //console.log("在有效期内,读取数据"); - return localDatas[1]; - } else { - //console.log("数据已过期,请重新读取"); - return false; - } - }, - set: function (key, value) { - var me = this; - var now = new Date().getTime(); - if (!key || !value || !me.hasLoaclStorage) { - return; - } - var strValue = now + "@" + JSON.stringify(value); // 为数据添加时间戳 - localStorage.setItem(key, strValue); - }, - del: function (key) { - var me = this; - if (!key || !me.hasLoaclStorage) { - return; - } - localStorage.removeItem(key); - }, - clearAll: function () { - var me = this; - if (!me.hasLoaclStorage) { - return; - } - localStorage.clear(); - } - } - }; - /** - * @file SQ.ua - * 获取设备 ua 信息,判断系统版本、浏览器名称及版本 - * @version 1.0.0 - */ - - SQ.ua = (function () { - var info = {}; - var ua = navigator.userAgent; - var m; - - info.os = {}; - info.browser = {}; - - /** - * operating system. android, ios, linux, windows - * @type string - */ - if ((/Android/i).test(ua)) { - info.os.name = "android"; - info.os.version = ua.match(/(Android)\s([\d.]+)/)[2]; - } else if ((/Adr/i).test(ua)) { - // UC 浏览器极速模式下,Android 系统的 UA 为 "Adr" - info.os.name = "android"; - info.os.version = ua.match(/(Adr)\s([\d.]+)/)[2]; - } else if ((/iPod/i).test(ua)) { - info.os.name = "ios"; - info.os.version = ua.match(/OS\s([\d_]+)/)[1].replace(/_/g, "."); - info.device = "ipod"; - } else if ((/iPhone/i).test(ua)) { - info.os.name = "ios"; - info.os.version = ua.match(/(iPhone\sOS)\s([\d_]+)/)[2].replace(/_/g, "."); - info.device = "iphone"; - } else if ((/iPad/i).test(ua)) { - info.os.name = "ios"; - info.os.version = ua.match(/OS\s([\d_]+)/)[1].replace(/_/g, "."); - info.device = "ipad"; - } - - // 浏览器判断 - m = ua.match(/AppleWebKit\/([\d.]*)/); - if (m && m[1]) { - info.browser.core = "webkit"; - info.browser.version = m[1]; - - if ((/Chrome/i).test(ua)) { - info.browser.shell = "chrome"; - } else if ((/Safari/i).test(ua)) { - info.browser.shell = "safari"; - } else if ((/Opera/i).test(ua)) { - info.browser.shell = "opera"; - } - } - - if ((/UCBrowser/i).test(ua)) { - // UCWeb 9.0 UA 信息中包含 UCBrowser 字段 - m = ua.match(/(UCBrowser)\/([\d.]+)/); - info.browser.shell = "ucweb"; - info.browser.version = m[2]; - } else if ((/UCWEB/i).test(ua)) { - // UCWeb 7.9 UA 信息中包含 UCWEB 字段 - m = ua.match(/(UCWEB)([\d.]+)/); - info.browser.shell = "ucweb"; - info.browser.version = m[2]; - } else if ((/UC/i).test(ua)) { - // UCWeb 8.x UA 信息中包含 UC 字段 - // 确认 8.6、8.7 - info.browser.shell = "ucweb"; - info.browser.version = "8.x"; - } - - if (info.browser.shell === "ucweb") { - // UC 浏览器急速模式 - // 目前只有 Android 平台国内版 UCWeb 9.0 可以判断是否为急速模式,UA 中包含 UCWEB/2.0 字段即为急速模式。 - if ((/UCWEB\/2\.0/i).test(ua)) { - info.browser.module = "swift"; - } - } - - if (info.browser.version) { - info.browser.version = parseFloat(info.browser.version, 10); - } - - return info; - }()); - /** - * @file SQ.util - * 常用函数 - * @version 1.0.0 - */ - - SQ.util = { - /** - * 随机数输出 - * @method - * @name SQ.util.generate - * @example - * Sq.util.generate.uniqueId(); - * Sq.util.generate.randomInt(0, 9); - * Sq.util.generate.randomArr([1,2,3]); - */ - generate : { - // 生成唯一标识符 - uniqueId: function () { - - }, - randomInt: function (min, max) { - if (typeof min === "number" && typeof max === "number" && min < max) { - return parseInt(Math.random() * (max - min + 1) + min, 10); - } - return false; - }, - randomArr: function (arr) { - return arr.sort(function () { - return Math.random() - 0.5; - }); - } - }, - /** - * 字符串操作 - * @method - * @name SQ.util.string - * @example - * SQ.util.string.trim(" test string "); - * //return test string - */ - string : { - // 过滤字符串首尾的空格 - trim : function(srt) { - return srt.replace(/^\s+|\s+$/g, ""); - } - }, - /** - * 格式化时间 - * @method - * @name SQ.util.dateToString - * @example - * SQ.util.dateToString(new Date()) - * //return 2013-10-17 17:31:58 - */ - dateToString: function(time) { - var year = time.getFullYear(); - var month = time.getMonth() + 1; - var date = time.getDate(); - var hours = time.getHours(); - var min = time.getMinutes(); - var sec = time.getSeconds(); - 10 > month && (month = "0" + month), 10 > date && (date = "0" + date), 10 > hours && (hours = "0" + hours), 10 > min && (min = "0" + min), 10 > sec && (sec = "0" + sec); - var dateString = year + "-" + month + "-" + date + " " + hours + ":" + min + ":" + sec; - return dateString; - }, - goTop : function (e) { - e.preventDefault(); - window.scrollTo(0, 0); - }, - goBack : function (e) { - e.preventDefault(); - history.back(); - } - }; - module.exports = SQ; -}); \ No newline at end of file diff --git a/src_cmd/fixed/fixed.js b/src_cmd/fixed/fixed.js deleted file mode 100644 index 50482d1..0000000 --- a/src_cmd/fixed/fixed.js +++ /dev/null @@ -1,223 +0,0 @@ -/** - * @file Squirrel Fixed - * @version 0.9.0 - */ - -/** - * @changelog - * 0.9.0 * 完成主要功能 - * 0.0.1 + 新建。 - */ - -define(function(require, exports, module) { - "use strict"; - var SQ = require("core"); - //var core = require("squirrel-core"); - /** - * @name Fixed - * @classdesc 元素固定定位 - * @constructor - * @param {object} config 组件配置(下面的参数为配置项,配置会写入属性) - * @param {string} config.DOM_FIXED_ITEM 需要添加固定定位的元素。 - * @param {array} config.ARRY_FIXED_POSITION 固定位置设置,遵循 [上,右,下,左] 规则,默认为 [0, 0, 0, 0]。 - * @param {number} config.NUM_TRIGGER_POSITION 设置 fixed 激活位置,当有该值时以该值为准,没有则以元素当前位置为准。 - * @param {number} config.NUM_ZINDEX z-index 值设置,默认为 99。 - * @param {boolen} config.PLACEHOLD 是否设置占位 DOM,默认为 false。 - * @param {string} config.ANIMATE 动画类,默认值:undefined - * @param {function} config.fixedIn 设置固定布局时回调函数。 - * @param {function} config.fixedOut 取消固定布局时回调函数。 - * @example var fixedButton = new SQ.Fixed({ - DOM_FIXED_ITEM: ".J_fixed", - DOM_TRIGGER_TARGET: window, - EVE_EVENT_TYPE: "scroll", - ARRY_FIXED_POSITION: ["auto", "auto", 20, 10], - PLACEHOLD: true - }); - */ - function Fixed(config) { - var me = this; - var i; - - me.config = { - ARRY_FIXED_POSITION: [0, 0, 0, 0], - NUM_ZINDEX: 99, - PLACEHOLD: false - }; - - for (i in config) { - if (config.hasOwnProperty(i)) { - me.config[i] = config[i]; - } - } - - me.fixedIn = me.config.fixedIn; - me.fixedOut = me.config.fixedOut; - - if (me._verify()) { - me._init(); - } - } - - Fixed.prototype = { - construtor: Fixed, - version: "0.9.0", - scrollTimer: 0, // 滑动计时器 - scrollDelay: 150, // 滑动阀值 - /** - * 验证参数是否合法 - * @returns {boolean} - * @private - */ - _verify: function () { - return true; - }, - /** - * 初始化 - * @private - */ - _init: function () { - var me = this; - - me.$fixedItems = $(me.config.DOM_FIXED_ITEM); - if (me.$fixedItems.length === 0) { - return; - } - - me.$fixedItems.each(function (index) { - var fixedItem = { - id: "fixId" + index, - self: this, - $self: $(this) - }; - - // 确定 fixed 激活位置,当有 NUM_TRIGGER_POSITION 值时以该值为准,没有则以元素当前位置为准 - if (me.config.NUM_TRIGGER_POSITION && SQ.core.isNumber(me.config.NUM_TRIGGER_POSITION)) { - fixedItem.triggerPosTop = me.config.NUM_TRIGGER_POSITION; - } else { - // 设置占位 DOM - if (me.config.PLACEHOLD) { - me._setPlaceholder(fixedItem); - } - // 获取元素位置 top 值 - if (fixedItem.self.getBoundingClientRect()) { - fixedItem.triggerPosTop = fixedItem.self.getBoundingClientRect().top; - } else { - console.log("Not Support getBoundingClientRect"); - } - // 当元素处于页面顶端则立即设置为 fixed 布局 - // UC 浏览器在实际渲染时会有问题,不建议用 fixed.js 来实现顶部导航的固定布局(直接使用 CSS) - if (fixedItem.self.triggerPosTop === 0) { - me._setFixed(fixedItem); - } - } - // 触发绑定 - me._trigger(fixedItem); - }); - }, - /** - * 设置 fixed 元素占位 DOM - * @param fixedItem - * @private - */ - _setPlaceholder: function (fixedItem) { - var $placeholderDom = $("
    ").css({ - display: "none", - width: fixedItem.$self.width(), - height: fixedItem.$self.height(), - background: fixedItem.$self.css("background") - }); - $placeholderDom.insertAfter(fixedItem.$self); - }, - _trigger: function (fixedItem) { - var me = this; - window.requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame; - // 高级浏览器使用 requestAnimationFrame - function advancedWatchEvent() { - var scrollTop = $(window).scrollTop(); - if (scrollTop >= fixedItem.triggerPosTop && !fixedItem.$self.hasClass("sq-fixed")) { - me._setFixed(fixedItem); - } else if (scrollTop < fixedItem.triggerPosTop && fixedItem.$self.hasClass("sq-fixed")) { - me._removeFixed(fixedItem); - } - window.requestAnimationFrame(advancedWatchEvent); - } - // 不支持 requestAnimationFrame 的浏览器使用常用事件 - function normalWatchEvent() { - var mobile = "android-ios"; - // 触发函数 - function fire() { - var scrollTop = $(window).scrollTop(); - if (scrollTop >= fixedItem.triggerPosTop && !fixedItem.$self.hasClass("sq-fixed")) { - me._setFixed(fixedItem); - } else if (scrollTop < fixedItem.triggerPosTop && fixedItem.$self.hasClass("sq-fixed")) { - me._removeFixed(fixedItem); - } - } - // 触摸设备使用 touchstart 事件 - if (mobile.indexOf(SQ.ua.os.name) !== -1) { - $(window).on("touchstart", function () { - // 在触摸滑动时浏览器会锁死进程,滑动停止后才会触发 touchstart 事件,而此时 scrollTop 值 - // 为触摸时的数值,所以添加 setTimeout 来计算获取滑动停止后的数值。 - setTimeout(function () { - fire(); - }, 150); - }); - } else { - $(window).on("scroll", function () { - // 添加 scroll 事件相应伐值,优化其性能 - if (!me.scrollTimer) { - me.scrollTimer = setTimeout(function () { - fire(); - me.scrollTimer = 0; - }, me.scrollDelay); - } - }); - } - } - - if (window.requestAnimationFrame) { - window.requestAnimationFrame(advancedWatchEvent); - } else { - normalWatchEvent(); - } - }, - _setFixed: function (fixedItem) { - var me = this; - - var posCss = me.config.ARRY_FIXED_POSITION; - var $placeholderDom = $("#" + fixedItem.id); - - fixedItem.$self.css({ - "position": "fixed", - "top": posCss[0], - "right": posCss[1], - "bottom": posCss[2], - "left": posCss[3], - "z-index": me.config.NUM_ZINDEX - }).addClass("sq-fixed"); - - if (me.config.PLACEHOLD && $placeholderDom.length) { - $placeholderDom.show(); - } - - if (me.fixedIn) { - me.fixedIn(); - } - }, - _removeFixed: function (fixedItem) { - var me = this; - var $placeholderDom = $("#" + fixedItem.id); - - fixedItem.$self.attr("style", "").removeClass("sq-fixed"); - - if (me.config.PLACEHOLD && $placeholderDom.length) { - $placeholderDom.hide(); - } - - if (me.fixedOut) { - me.fixedOut(); - } - } - }; - module.exports = Fixed; -}); \ No newline at end of file diff --git a/src_cmd/lazyload/lazyload.js b/src_cmd/lazyload/lazyload.js deleted file mode 100644 index 047f1c3..0000000 --- a/src_cmd/lazyload/lazyload.js +++ /dev/null @@ -1,167 +0,0 @@ -/** - * @file Squirrel LazyLoad - * @version 0.8.0 - */ - -/** - * @changelog - * 0.8.0 * 重写 lazylaod 插件,提高整体性能。 - * 0.7.0 * 调整滑动阀值 scrollDelay,由 200 调整至 150; - * * 调整可视区的计算方式,由 offset 改为 getBoundingClientRect; - * * 针对 UC 浏览器极速版进行优化,可以在滑动过程中进行加载。 - * 0.6.5 * 修复 jshint 问题。 - * 0.6.4 * 修复图片加载失败时会导致 error 时间一直被触发的 bug; - * 修复与 loadmore 插件配合使用时,无法替换加载错误的图片。 - * 0.6.3 + 新增首屏图片自动加载功能; - * + 新增占位图、占位背景设置。 - * 0.6.0 + 首屏图片自动加载。 - * 0.5.1 * 完成图片模式的延迟加载功能。 - * 0.0.1 + 新建。 - */ - -define(function(require, exports, module) { - "use strict"; - var SQ = require("core"); - /** - * @name LazyLoad - * @classdesc 内容延迟加载 - * @constructor - * @param {object} config 组件配置(下面的参数为配置项,配置会写入属性) - * @param {string} config.DOM_LAZY_ITEMS 需要添加延迟加载的元素。 - * @param {string} config.DOM_LAZY_PARENT 图片模式下,设置延迟加载元素的父元素的背景样式, - * 必须与 DOM_LAZY_PARENT 同时配置。 - * @param {string} config.CSS_PLACEHOLDER 图片模式下,设置占位样式,必须与 DOM_LAZY_PARENT 同时配置。 - * @param {string} config.MODE 延迟加载模式:image(图片模式)。 - * @param {string} config.NUM_THRESHOLD 灵敏度,数值越大越灵敏,延迟性越小,默认为 200。 - * @param {function} config.refresh 刷新延迟加载元素列表。 - * @example var imglazyload = new SQ.LazyLoad({ - DOM_LAZY_ITEMS : ".J_lazyload", - DOM_LAZY_PARENT : ".sq-list .icon", - CSS_PLACEHOLDER : ".default-icon", - IMG_PLACEHOLDER : "../../../static/images/sq-icon.png", - NUM_THRESHOLD : 270 - }); - */ - function LazyLoad(config) { - var me = this; - var i; - - me.config = { - "MODE": "image", - "NUM_THRESHOLD": 200 - }; - - for (i in config) { - if (config.hasOwnProperty(i)) { - me.config[i] = config[i]; - } - } - if (me._verify()) { - me._init(); - } - } - LazyLoad.prototype = { - construtor: LazyLoad, - version: "0.8.0", - scrollTimer: 0, // 滑动计时器 - scrollDelay: 150, // 滑动阀值 - /** - * 刷新延迟加载元素,可以在外部调用。 - */ - refresh: function () { - var me = this; - me.$lazyItems = $(me.config.DOM_LAZY_ITEMS); - me._bindLazyEvent(); - me._loadImg(); - }, - /** - * 验证参数是否合法 - * @returns {boolean} - * @private - */ - _verify: function () { - return true; - }, - _init: function () { - var me = this; - me.$lazyItems = $(me.config.DOM_LAZY_ITEMS); - me.lazyItemClassName = me.config.DOM_LAZY_ITEMS.slice(1); // ".style-name" => "style-name" - me._bindLazyEvent(); - me._trigger(); - me._loadImg(); - }, - _bindLazyEvent: function () { - var me = this; - // 为延迟加载元素绑定一次性执行事件 - me.$lazyItems.one("appear", function () { - var img = this; - var $img = $(img); - var src = $img.attr("data-img"); - // 替换 src 操作 - if (src) { - $img.attr("src", src).removeAttr("data-img").removeClass(me.lazyItemClassName); - $img.on("error", function () { - $(this).attr("src", me.config.IMG_PLACEHOLDER).off("error"); - }); - } - }); - }, - _trigger: function () { - var me = this; - $(window).on("scroll", function () { - // 添加 scroll 事件相应伐值,优化其性能 - if (!me.scrollTimer) { - me.scrollTimer = setTimeout(function () { - if (me.config.MODE === "image") { - me._loadImg(); - } - me.scrollTimer = 0; - }, me.scrollDelay); - } - }); - /*if (SQ.ua.browser.shell === "ucweb") { - $win.on("touchmove", function () { - // 针对 UC 浏览器极速版进行优化,可以在滑动过程中进行加载。 - if (me.config.MODE === "image") { - me._loadImg(); - } - }); - }*/ - }, - /** - * 判断是否在显示区域 - */ - _isInDisplayArea: function (item) { - var me = this; - - if (item.getBoundingClientRect()) { - var pos = item.getBoundingClientRect(); - return pos.top > 0 - me.config.NUM_THRESHOLD && pos.top - me.config.NUM_THRESHOLD < window.innerHeight; - } else { - var $item = $(item); - var winH = window.innerHeight; - var winOffsetTop = window.pageYOffset; // window Y 轴偏移量 - var itemOffsetTop = $item.offset().top; - // itemOffsetTop >= winOffsetTop 只加载可视区域下方的内容 - // winOffsetTop + winH + me.config.NUM_THRESHOLD 加载可视区域下方一屏内的内容 - return itemOffsetTop >= winOffsetTop && itemOffsetTop <= winOffsetTop + winH + me.config.NUM_THRESHOLD; - } - }, - _loadImg: function () { - var me = this; - me.$lazyItems.each(function (index, item) { - var $img = $(item); - if (me.config.IMG_PLACEHOLDER && $img.hasClass(me.lazyItemClassName)) { - $img.attr("src", me.config.IMG_PLACEHOLDER); - $img.on("error", function () { - $(this).attr("src", me.config.IMG_PLACEHOLDER).off("error"); - }); - } - if (me._isInDisplayArea(item)) { - $img.trigger("appear"); - } - }); - } - }; - module.exports = LazyLoad; -}); \ No newline at end of file diff --git a/src_cmd/loadmore/loadmore.js b/src_cmd/loadmore/loadmore.js deleted file mode 100644 index 13107ca..0000000 --- a/src_cmd/loadmore/loadmore.js +++ /dev/null @@ -1,447 +0,0 @@ -/** - * @file SQ.LoadMore 加载更多组件 - * @version 1.2.4 - */ - -/** - * @changelog - * 1.2.4 + 新增 RESTFUL 配置,支持 RESTful 接口风格, - * + 新增 XHR_TIMEOUT 配置, - * * 精简的验证方法。 - * 1.2.3 * 增强 CSS_INIT_STYLE 参数的兼容性,可以支持 ".style-name" 或 "style-name" 写法。 - * 1.2.2 * 修复 jshint 问题,修复 #15 问题。 - * 1.2.1 * 修复启用 localstorage 时 _render 函数得到的数据为字符串的问题。 - * 1.2.0 + 添加对 localStorage 支持,通过将 LOCAL_DATA 设置为 true 开启,通过 NUM_EXPIRES 来设置过期时间(单位:分钟)。 - * 1.1.10 * 修复点击加载是,加载出错会导致无法展示状态栏。 - * 1.1.9 + 可自定义 XHR_METHOD 为 GET 或 POST 方法,默认为 POST。 - * 1.1.8 + 添加对 IE6 的支持。 - * 1.1.7 * 为 noMore 状态添加 loaded 回调函数。 - * 1.1.6 * 去除 unbind,解决与 lazyload 插件冲突。 - * 1.1.5 + 新增 _changeBind 函数,用来改变交绑定互事件; - * * 精简 _bind、_unbind 函数,对整体逻辑做小的优化。 - * 1.1.3 + 新增 loadError 回调函数。 - * 1.1.2 + 新增 NUM_SUCCESS_CODE、NUM_NO_MORE_CODE 配置项。 - * * 修复当最大滑动加载页数正好为最后一页时,noMore 事件没有解除滑动事件绑定,导致 scrollEnd 继续执行。 - * 1.1.1 * 修改 config 常量的书写方式。 - * 1.1.0 + 新增 DATATYPE 属性,用于定义 json 数据中 data 字段的数据类型; - * 新增回调函数 render、loading、loaded、scrollEnd; - * - 删除了 scrollEnd 事件中 addClass("click-state") 操作,改为在 scrollEnd 回调函数中执行。 - * 1.0.6 - 精简注释;修改 _refresh 名称为 _reset。 - * 1.0.5 * 修复 _verify 方法因为找不到 DOM 元素而保存导致 js 无法继续执行的问题。 - * 1.0.4 + 添加 _refresh 方法,用于计算并存储文档高度和触发高度,该方法会在完成 XHR 加载后刷新, - * 减少 _getHeight 取值,优化性能。 - * 1.0.3 + 添加 scroll 事件相应伐值,优化其性能。 - * 1.0.2 + 添加 _verify 方法,用于验证参数是否合法。 - * 1.0.1 + 配置内置的 config 设置。 - */ - -/*global - $: false, - SQ: false, - console: false - */ - -define(function(require, exports, module) { - "use strict"; - var SQ = require("core"); - /** - * @name LoadMore - * @classdesc 应用列表加载更多组件,支持点击加载和滑动加载两种方式,支持由滑动加载自动转为点击加载,依赖 jQuery 或 Zepto 库。 - * @constructor - * @param {object} config 组件配置(下面的参数为配置项,配置会写入属性) - * @param {string} config.EVE_EVENT_TYPE 绑定事件设置 - * @param {string} config.API API 接口 - * @param {string} config.DOM_TRIGGER_TARGET 被绑定事件的 Dom 元素 - * @param {string} config.DOM_AJAX_BOX 数据展示 Dom 元素 - * @param {string} config.DOM_STATE_BOX 状态展示 Dom 元素 - * @param {string} config.CSS_INIT_STYLE 初始状态展示样式 - * @param {string} config.NUM_LOAD_POSITION 滑动加载位置,默认值:0.5 - * @param {number} config.NUM_START_PAGE_INDEX 起始页面序号,默认值:0 - * @param {number} config.NUM_SCROLL_MAX_PAGE 最大滑动加载页数,默认值:3 - * @param {number} config.NUM_SUCCESS_CODE AJAX 成功返回码,默认值:200 - * @param {number} config.NUM_NO_MORE_CODE 无下页数据返回码,默认值:900 - * @param {string} config.TXT_LOADING_TIP 正在加载提示,默认值:"正在加载请稍后..." - * @param {string} config.TXT_INIT_TIP 初始提示文字,默认值:"滑动加载更多内容" - * @param {string} config.TXT_CLICK_TIP 触发点击交互提示文字,默认值:"点击加载更多" - * @param {string} config.TXT_LOADED_ERROR AJAX 加载错误或超时提示,默认值:"加载错误,请重试" - * @param {string} config.TXT_UNKNOWN_ERROR 通过 AJAX 接收到的数据无法识别,默认值:"未知错误,请重试" - * @param {string} config.DATA_TYPE 设置 data 字段中的数据类型,值为 html 或 json - * 当 DATA_TYPE 设为 html 时,会进行简单处理,具体见 _render 方法 - * @param {boolen} config.LOCAL_DATA Ajax 数据 loaclstorage 开关,默认为 false - * @param {number} config.NUM_EXPIRES Ajax 数据 loaclstorage 过期时间(单位:分钟),默认为 15 分钟 - * @param {object | boolen} config.RESTFUL 当设为 true 时,程序会自动将 API 中的 ":page" 段替换为页码 (me.page), - * 也可以设置为 hash 列表,程序会遍历替换所有值。 - * @param {number} config.XHR_TIMEOUT 设置 AJAX 超时时间,默认为 5000 ms - * @param {function} config.loading 加载阶段回调函数 - * @param {function} config.loaded 加载完成回调函数 - * @param {function} config.loadError 加载失败回调函数 - * @param {function} config.scrollEnd 滑动加载事件完成回调函数 - * @param {function} config.render 渲染阶段回调函数 - * @example var appList = new SQ.LoadMore({ - EVE_EVENT_TYPE: "scroll", - DOM_TRIGGER_TARGET: window, - DOM_AJAX_BOX: ".J_ajaxWrap", - DOM_STATE_BOX: ".J_scrollLoadMore", - CSS_INIT_STYLE: ".loadMore-btn", - NUM_SCROLL_MAX_PAGE: 3, - DATA_TYPE: "json", - render: function (data) { - // data 为 AJAX 返回数据,通常为 JSON 格式 - }, - scrollEnd: function () { - // 添加点击模式样式 - var me = this; - me.$stateBox.addClass("loadMore-clickState"); - } - }); - * @requires jQuery or Zepto - */ - function LoadMore(config) { - var me = this; - var i; - - me.config = { - API: "", // API 接口 - NUM_START_PAGE_INDEX: 0, // 起始页面序号 - NUM_LOAD_POSITION: 0.5, // 滑动加载位置(0.5 表示页面滑动到 50% 的位置开始加载,该值会递增) - NUM_SCROLL_MAX_PAGE: 3, // - TXT_LOADING_TIP: "正在加载请稍后...", // 正在加载提示 - TXT_INIT_TIP: "滑动加载更多内容", // 初始提示文字 - TXT_CLICK_TIP: "点击加载更多", // 触发点击交互提示文字 - TXT_LOADED_ERROR: "加载失败,请点击重试", // Ajax 加载错误或超时提示 - TXT_UNKNOWN_ERROR: "未知错误,请重试", // 通过 Ajax 接收到的数据无法识别 - NUM_SUCCESS_CODE: 200, - NUM_NO_MORE_CODE: 900, - DATA_TYPE: "json", - XHR_METHOD: "POST", - XHR_TIMEOUT: 5000, - LOCAL_DATA: false, - NUM_EXPIRES: 15 - }; - - for (i in config) { - if (config.hasOwnProperty(i)) { - me.config[i] = config[i]; - } - } - - me.$triggerTarget = $(me.config.DOM_TRIGGER_TARGET); // 触发元素 - me.$ajaxBox = $(me.config.DOM_AJAX_BOX); // 数据展示元素 - me.$stateBox = $(me.config.DOM_STATE_BOX); // 状态展示元素 - me.api = me.$stateBox.attr("data-api") || me.config.API; - me.page = me.config.NUM_START_PAGE_INDEX; - me.maxPage = me.config.NUM_SCROLL_MAX_PAGE + me.page; - me.initStyle = me.config.CSS_INIT_STYLE.indexOf(".") === 0 ? me.config.CSS_INIT_STYLE.slice(1) : me.config.CSS_INIT_STYLE; - me.scrollTimer = 0; // 滑动事件计时器 - me.scrollDelay = 200; // 滑动事件触发伐值 - - me.render = me.config.render; - me.loading = me.config.loading; - me.loaded = me.config.loaded; - me.loadError = me.config.loadError; - me.scrollEnd = me.config.scrollEnd; - - if (me._verify()) { - me._init(); - } - } - LoadMore.prototype = { - construtor: LoadMore, - version: "1.2.4", - /** - * 验证 - * @returns {boolean} - * @private - */ - _verify: function () { - var me = this; - // Dom 验证,触发元素、数据展示元素、状态展示元素必须都存在 - if (me.$triggerTarget.length === 0 || me.$ajaxBox.length === 0 || me.$stateBox.length === 0) { - console.warn("SQ.loadmore: 缺少 Dom 元素"); - return false; - } - // API 验证 - if (!me.api) { - console.warn("SQ.loadmore: 缺少 API 参数"); - return false; - } - return true; - }, - /** - * 初始化 - * @private - */ - _init: function () { - var me = this; - me._currentState = "none"; // 设置当前状态 - me.$stateBox.addClass(me.initStyle).text(me.config.TXT_INIT_TIP); - me._reset(); - me._bind(me.config.EVE_EVENT_TYPE); - me.currentEventType = me.config.EVE_EVENT_TYPE; // 临时存储事件类型,以供 _changeState 判断使用。 - }, - /** - * 重置计算参数 - * @private - */ - _reset: function () { - var me = this; - var contentHeight = me._getHeight($("body")) || $("body").height(); - var winHeight = window.innerHeight || $(window).height(); - me.triggerHeight = (contentHeight - winHeight) * (me.config.NUM_LOAD_POSITION); - if (me.config.NUM_LOAD_POSITION < 0.8) { - me.config.NUM_LOAD_POSITION += 0.15555; - } - }, - /** - * 计算页面高度 - * @param $el jQuert 或 Zepto 元素包装集。 - * @returns {*} - * @private - */ - _getHeight: function ($el) { - if ($el.get) { - $el = $el.get(0); - } - if (!$el) { - return 0; - } - if ($el.getBoundingClientRect) { - return $el.getBoundingClientRect().height; - } - return Math.max($el.clientHeight, $el.offsetHeight, $el.scrollHeight); - }, - /** - * 事件绑定 - * @param {string} eventType - * @private - */ - _bind: function (eventType) { - var me = this; - me.$triggerTarget.bind(eventType, function () { - me._trigger(eventType); - }); - }, - /** - * 解除事件绑定 - * @private - */ - _unbind: function () { - var me = this; - me.$triggerTarget.unbind(); - //me.unbind(me.$triggerTarget, me.config.EVE_EVENT_TYPE); - }, - /** - * 转换绑定事件 - * @param {string} eventType - * @private - */ - _changeBind: function (eventType) { - var me = this; - //me._unbind(); //解除绑定 // 与 lazyload 插件冲突 - me.currentEventType = eventType; - if (eventType === "click") { - me.$triggerTarget = me.$stateBox; //变更触发目标,并将加载触发方式更改为 click - me._bind(eventType); //重新绑定 - } - if (eventType === "scroll") { - me.$triggerTarget = $(me.config.DOM_TRIGGER_TARGET); - me._bind(eventType); - } - }, - /** - * 触发事件 - * @description 触发事件方法,在满足绑定事件条件时或满足指定触发条件的情况下调用触发方法, - * 该方法用于集中处理触发事件,判定是否需要加载数据或者更新 UI 显示。 - * @param {string} eventType EVE_EVENT_TYPE 事件类型,"scroll" 或 "click"。 - * @private - */ - _trigger: function (eventType) { - var me = this; - var isLoading = me.$stateBox.hasClass("J_loading"); - var isNoMore = me.$stateBox.hasClass("J_noMore"); - - if (isLoading || isNoMore) { - return; - } - - if (eventType === "scroll") { - if (me.page < me.maxPage && !me.scrollTimer) { - // 添加 scroll 事件相应伐值,优化其性能 - me.scrollTimer = setTimeout(function () { - if (me.$triggerTarget.scrollTop() >= me.triggerHeight && !isLoading && !isNoMore) { - me._loadData(me._spliceApi()); - } - me.scrollTimer = 0; - }, me.scrollDelay); - } - if (me.page === me.maxPage) { - me._changeState("scrollEnd"); - } - } - - if (eventType === "click") { - me._loadData(me._spliceApi()); - } - }, - /** - * 接口拼接 - * @returns {*|string|LoadMore.api} - * @private - */ - _spliceApi: function () { - var me = this; - var api = me.api; - var connector = me.api.indexOf("?") === -1 ? "?" : "&"; - var j; - - if (me.config.RESTFUL) { - api = api.replace(":page", me.page); - for (j in me.config.RESTFUL) { - if (me.config.RESTFUL.hasOwnProperty(j)) { - api = api.replace(j, me.config.RESTFUL[j]); - } - } - } else { - api = me.api + connector + "page=" + me.page; - } - return api; - }, - /** - * 运行状态反馈 - * @description 该方法用于记录程序运行状态,并针对不同状态做出 UI 更新及事件重新绑定等操作。 - * @param {string} state 运行状态,值包括:loading、loaded、scrollEnd、noMore、TXT_LOADED_ERROR、TXT_UNKNOWN_ERROR。 - * @private - */ - _changeState: function (state) { - var me = this; - // 当预执行状态与程序当前运行状态相同时,退出状态变更方法,以避免多次重复操作。 - if (me._currentState === state) { - return; - } - me._currentState = state; - - // 状态判断 - switch (state) { - case "loading": //正在加载阶段,添加 J_loading 标识,更新提示文字 - me.$stateBox.addClass("J_loading").show().text(me.config.TXT_LOADING_TIP); - if (me.loading) { - me.loading(); - } - break; - case "loaded": //加载完成 - me.$stateBox.removeClass("J_loading"); - - if (me.currentState === "loadError") { - //me._changeBind("scroll"); // 点击加载出错会导致无法展示状态栏 - me.currentState = undefined; - } - - if (me.currentEventType === "scroll") { - me.$stateBox.hide().text(""); - } - - if (me.currentEventType === "click") { - me.$stateBox.text(me.config.TXT_CLICK_TIP); - } - - me.page += 1; - if (me.loaded) { - me.loaded(); - } - break; - case "scrollEnd": //滑动加载次数已达到上限 - me._changeBind("click"); - me.$stateBox.show().text(me.config.TXT_CLICK_TIP); - if (me.scrollEnd) { - me.scrollEnd(); - } - break; - case "noMore": // 无下页数据 - //me._unbind(); // 与 lazyload 插件冲突 - me.$stateBox.addClass("J_noMore").hide(); - if (me.loaded) { - me.loaded(); - } - break; - case "loadError": // 加载错误提示 - me.currentState = "loadError"; - me._changeBind("click"); - me.$stateBox.removeClass("J_loading").text(me.config.TXT_LOADED_ERROR); - if (me.loadError) { - me.loadError(); - } - break; - case "unknowError": // 服务器返回数据无法识别 - me.$stateBox.removeClass("J_loading").text(me.config.TXT_UNKNOWN_ERROR); - break; - } - }, - /** - * 数据加载 - * @param {string} api 请求数据的 API 接口。 - * @private - */ - _loadData: function (api) { - var me = this; - me._changeState("loading"); - - if (me.config.LOCAL_DATA) { - var localData = SQ.store.localStorage.get(api, me.config.NUM_EXPIRES); - localData = SQ.core.isString(localData) ? $.parseJSON(localData) : localData; - if (localData) { - me._render(localData); - return; - } - } - - $.ajax({ - type: me.config.XHR_METHOD, - url: api, - timeout: me.config.XHR_TIMEOUT, - success: function (data) { - me._render(data); - if (me.config.LOCAL_DATA) { - SQ.store.localStorage.set(api, data); - } - }, - error: function () { - me._changeState("loadError"); - } - }); - }, - /** - * 数据渲染 - * @param {object} data data 服务器返回的数据 - * @private - */ - _render: function (data) { - var me = this; - if (!data) { - me._changeState("loadError"); - return; - } - var jsonData = SQ.core.isString(data) ? $.parseJSON(data) : data; - if (me.config.DATA_TYPE === "html") { - var code = parseInt(jsonData.code, 10); - - switch (code) { - case me.config.NUM_SUCCESS_CODE: //成功加载 - me.$ajaxBox.append(jsonData.data); - me._changeState("loaded"); - break; - case me.config.NUM_NO_MORE_CODE: //无下页数据 - me.$ajaxBox.append(jsonData.data); - me._changeState("noMore"); - break; - default: - me._changeState("unknowError"); - } - me._reset(); - } - if (me.render) { - me.render(jsonData); - } - } - }; - module.exports = LoadMore; -}); \ No newline at end of file diff --git a/src_cmd/popup/popup.js b/src_cmd/popup/popup.js deleted file mode 100644 index 1c7514b..0000000 --- a/src_cmd/popup/popup.js +++ /dev/null @@ -1,470 +0,0 @@ -/** - * @file SQ.Popup 弹窗组件 - * @version 1.0.1 - */ - -/** - * @changelog - * 1.0.1 * 在设置了 ANIMATE 时,_setPopupPos 函数不使用 translate(-50%, -50%) 方法定位,因为会与动画产生冲突。 - * * 修复 ANIMATE 设置问题。 - * 1.0.0 * 原 Dialog 组件重构为 Popup 组件。 - */ - -/*global - $: false, - SQ: false, - console: false - */ - -define(function(require, exports, module) { - "use strict"; - var SQ = require("core"); - /** - * @name Popup - * @classdesc 对话框组件,依赖 jQuery 或 Zepto 库。 - * @constructor - * @param {object} config 组件配置(下面的参数为配置项,配置会写入属性) - * @param {string} config.EVE_EVENT_TYPE 绑定事件设置,默认值为:"click" - * @param {string} config.DOM_TRIGGER_TARGET 被绑定事件的 Dom 元素 - * @param {string} config.DOM_PARENT 被绑定事件的 Dom 元素的父元素,用于确定定位原 - * @param {string} config.CSS_CLASS 弹窗样式类 - * @param {string} config.CSS_POSITION 弹窗定位方式,默认值:"fixed", 可以设置为:"absolute" - * @param {number} config.CSS_TOP 弹窗 top 属性值 - * @param {number} config.CSS_RIGHT 弹窗 right 属性值 - * @param {number} config.CSS_BOTTOM 弹窗 bottom 属性值 - * @param {number} config.CSS_LEFT 弹窗 left 属性值 - * @param {number} config.CSS_WIDTH 弹窗 width 属性值 - * @param {number} config.CSS_HEIGHT 弹窗 height 属性值 - * @param {boolen} config.VERTICAL_CENTER 弹窗是否垂直居中设定,默认值:true - * @param {boolen} config.HORIZONTAL_CENTER 弹窗是否水平居中设定,默认值:true - * @param {boolen} config.CLOSE_BTN 关闭按钮显示设定,默认值:true - * @param {boolen} config.OK_BTN 去掉按钮显示设定,默认值:false - * @param {boolen} config.CANCEL_BTN 取消按钮显示设定,默认值:false - * @param {string} config.TXT_CLOSE_VAL 关闭按钮显示文字,默认值:"×" - * @param {string} config.TXT_OK_VAL 确定按钮显示文字,默认值:"确定" - * @param {string} config.TXT_CANCEL_VAL 取消按钮显示文字,默认值:"取消" - * @param {string} config.ANIMATE 动画类 - * @param {boolen} config.MASK 遮罩设定,默认为 false,设为 true 将显示遮罩效果 - * @param {string} config.CSS_MASK_BACKGROUND 遮罩背景色,默认值:"#000000" - * @param {string} config.CSS_MASK_OPACITY 遮罩透明度,默认值:0.5 - * @param {number} config.NUM_CLOSE_TIME 对话框自动关闭时间,单位:毫秒 - * @param {boolen} config.LOCK 锁定操作,默认为 false,设为 true 将屏蔽触摸操作,默认值:false - * @param {boolen} config.PREVENT_DEFAULT 默认动作响应设置,默认为 true,不响应默认操作 - * @param {boolen} config.DISPOSABLE 设置弹窗是否是只显示一次,默认为 false - * @param {number} config.DELAY 延时显示对话框设置,单位:毫秒 - * @param {function} config.beforeShow 打开弹窗前回调函数,该函数必须返回为 true 才能继续执行 show 函数 - * @param {function} config.show 打开弹窗回调函数 - * @param {function} config.ok 点击确定按钮回调函数 - * @param {function} config.cancel 点击取消按钮回调函数 - * @param {function} config.close 关闭对话框回调函数 - * @param {function} config.reszie resize 回调函数 - */ - function Popup(config) { - var me = this; - var i; - - me.config = { - EVE_EVENT_TYPE: "click", - CSS_POSITION: "fixed", - TXT_CLOSE_VAL: "×", - TXT_OK_VAL: "确定", - TXT_CANCEL_VAL: "取消", - PREVENT_DEFAULT: true, - LOCK: false, - MASK: false, - CSS_MASK_BACKGROUND: "#000000", - CSS_MASK_OPACITY: 0.5, - CLOSE_BTN: true - }; - - for (i in config) { - if (config.hasOwnProperty(i)) { - me.config[i] = config[i]; - } - } - - me.beforeShowFun = me.config.beforeShow; - me.showFun = me.config.show; - me.closeFun = me.config.close; - me.okFun = me.config.ok; - me.cancelFun = me.config.cancel; - me.resizeFun = me.config.resize; - - if (me._verify()) { - me._init(); - } - } - Popup.prototype = { - construtor: Popup, - version: "1.0.1", - timer : undefined, - resizeTimer : false, // resize - closed : true, - - /** 验证参数是否合法 */ - _verify: function () { - return true; - }, - /** - * 初始化 - * @private - */ - _init: function () { - var me = this; - me.$win = $(window); - me.$doc = $(document); - me.$body = $("body"); - // 如果页面中没有指定的 Dom 则生成一个插入到文档中 - if ($(me.config.DOM_TRIGGER_TARGET).length === 0) { - me.$body.append(""); - } - me.$triggerTarget = $(me.config.DOM_TRIGGER_TARGET); // 触发元素 - me.$parent = $(me.config.DOM_PARENT); // 触发元素的父元素 - - me._bind(); - }, - /** - * 事件绑定方法 - * @param {string} EVE_EVENT_TYPE 事件类型,"scroll" 或 "click"。 - * @private - */ - _bind: function () { - var me = this; - function bindEvent(e) { - if (me.config.PREVENT_DEFAULT) { - e.preventDefault(); - } - if (me.config.DISPOSABLE) { - me.$doc.off(me.config.EVE_EVENT_TYPE, me.config.DOM_TRIGGER_TARGET, bindEvent); - } - me._trigger(e); - } - // 绑定在 document 上是为了解决 Ajax 内容绑定问题 - me.$doc.on(me.config.EVE_EVENT_TYPE, me.config.DOM_TRIGGER_TARGET, bindEvent); - }, - /** - * 事件触发 - * @param e - * @private - */ - _trigger: function (e) { - var me = this; - if (me.config.DELAY) { - setTimeout(function () { - me.show(e); - }, me.config.DELAY); - return; - } - me.show(e); - }, - /** - * 新建弹窗对象 - * @returns {*} $popupPanel - * @private - */ - _createPopup: function () { - var me = this; - - if (me.$popupPanel) { - return me.$popupPanel; - } - // 初始化 - var $popupPanel = $("
    "); - var $popupContent = $("
    "); - var $close = $("
    " + me.config.TXT_CLOSE_VAL + "
    "); - var $okBtn = $("
    " + me.config.TXT_OK_VAL + "
    "); - var $cancelBtn = $("
    " + me.config.TXT_CANCEL_VAL + "
    "); - - // 设置样式 - $popupPanel.css({ - "position" : me.config.CSS_POSITION, - "width" : me.config.CSS_WIDTH, - "height" : me.config.CSS_HEIGHT, - "z-index" : 1000 - }); - - if (me.config.CSS_CLASS) { - $popupPanel.addClass(me.config.CSS_CLASS.indexOf(".") === 0 ? me.config.CSS_CLASS.slice(1) : me.config.CSS_CLASS); - } - // 装载内容 - $popupPanel.append($popupContent); - // 设置显示按钮 - if (me.config.CLOSE_BTN) { - $popupPanel.append($close); - } - if (me.config.OK_BTN) { - $popupPanel.append($okBtn); - } - if (me.config.CANCEL_BTN) { - $popupPanel.append($cancelBtn); - } - - $popupPanel.appendTo(me.$body); - // 保存 Dom - me.$popupPanel = $popupPanel; - me.$popupContent = $popupContent; - me.$okBtn = $okBtn; - me.$cancelBtn = $cancelBtn; - me.$close = $close; - - return $popupPanel; - }, - /** - * 设置弹窗位置 - * @private - */ - _setPopupPos: function () { - var me = this; - var top; - var supportBroswer = "chrome"; - var isAnimate = me.config.ANIMATE; - var isMiddle = me.config.VERTICAL === "middle" ? true : false; - var isCenter = me.config.HORIZONTAL === "center" ? true : false; - var isSupportTransform = SQ.ua.browser.shell === "ucweb" && SQ.ua.browser.version >= 9 || supportBroswer.indexOf(SQ.ua.browser.shell) !== -1; - - if (me.config.CSS_POSITION === "fixed") { - top = "50%"; - } else if (me.config.CSS_POSITION === "absolute") { - var winHeight = window.innerHeight || me.$win.height(); - top = me.$body.scrollTop() + winHeight / 2; - } - - if (!me.config.CSS_TOP && !me.config.CSS_LEFT && !me.config.CSS_BOTTOM && !me.config.CSS_RIGHT) { - // 当坐标全部未设置时给一个默认值,避免弹窗定位到页面最底部 - me.config.CSS_TOP = 0; - me.config.CSS_LEFT = 0; - } - - if (isSupportTransform && !isAnimate) { - if (isMiddle && isCenter) { - me.$popupPanel.css({ - "top": top, - "left": "50%", - "-webkit-transform": "translate(-50%, -50%)" - }); - } else if (isMiddle) { - me.$popupPanel.css({ - "top": top, - "left": me.config.CSS_LEFT || 0, - "-webkit-transform": "translateY(-50%)" - }); - } else if (isCenter) { - me.$popupPanel.css({ - "top": me.config.CSS_TOP || 0, - "left": "50%", - "-webkit-transform": "translateX(-50%)" - }); - } else { - me.$popupPanel.css({ - "top": me.config.CSS_TOP, - "left": me.config.CSS_LEFT, - "bottom": me.config.CSS_BOTTOM, - "right": me.config.CSS_RIGHT - }); - } - } else { - var mt = me.config.CSS_HEIGHT ? me.config.CSS_HEIGHT / 2 * -1 : me.$popupPanel.height() / 2 * -1; - var ml = me.config.CSS_WIDTH ? me.config.CSS_WIDTH / 2 * -1 : me.$popupPanel.width() / 2 * -1; - if (isMiddle && isCenter) { - me.$popupPanel.css({ - "top": top, - "left": "50%", - "margin-top": mt, - "margin-left": ml - }); - } else if (isMiddle) { - me.$popupPanel.css({ - "top": top, - "left": me.config.CSS_LEFT || 0, - "margin-top": mt - }); - } else if (isCenter) { - me.$popupPanel.css({ - "top": me.config.CSS_TOP || 0, - "left": "50%", - "margin-left": ml - }); - } else { - me.$popupPanel.css({ - "top": me.config.CSS_TOP, - "left": me.config.CSS_LEFT, - "bottom": me.config.CSS_BOTTOM, - "right": me.config.CSS_RIGHT - }); - } - } - }, - /** - * 设置弹窗事件 - * @private - */ - _setPopupEvent : function () { - var me = this; - // 锁定操作 - if (me.config.LOCK) { - // 优化 Android 下 UCweb 浏览器触摸操作,减少滑动误操作 - if (SQ.ua.os.name === "android" && SQ.ua.browser.shell === "ucweb" && SQ.ua.browser.version >= 9) { - me.$popupPanel.on("touchstart", function (e) { - e.preventDefault(); - }); - } else { - me.$popupPanel.on("touchmove", function (e) { - e.preventDefault(); - }); - } - me.$popupPanel.on("mousewheel", function (e) { - e.preventDefault(); - }); - } - me.$okBtn.on("click", function () { - me.ok(); - }); - me.$cancelBtn.on("click", function () { - me.cancel(); - }); - me.$close.on("click", function () { - me.close(); - }); - - me.$win.resize(function () { - me.resize(); - }); - }, - _beforeShow: function (e) { - var me = this; - // 创建弹窗 - me.$popupPanel = me._createPopup(); - // 绑定弹窗事件 - me._setPopupEvent(); - // 添加动画 - if (me.config.ANIMATE) { - var animateClassName = me.config.ANIMATE.indexOf(".") === 0 ? me.config.ANIMATE.slice(1) : me.config.ANIMATE; - me.$popupPanel.addClass("animated " + animateClassName); - } - if (me.beforeShowFun) { - return me.beforeShowFun(e); - } - return true; - }, - /** - * 显示对话框 - * @param e - */ - show: function (e) { - var me = this; - if (!me.closed) { - return; - } - if (!me._beforeShow(e)) { - console.warn("SQ.Popup: _beforeShow function return false"); - return; - } - me.closed = false; - if (me.config.MASK) { - me.mask(); - } - // 执行回调函数,优先执行 show 回调函数可以确定弹窗中的内容,从而方便计算弹窗尺寸。 - if (me.showFun) { - me.showFun(e); - } - // 设置弹窗位置 - me._setPopupPos(); - me.$popupPanel.show(); - // 设置自动关闭 - if (me.config.NUM_CLOSE_TIME) { - me.time(me.config.NUM_CLOSE_TIME); - } - }, - /** - * 关闭对话框 - * @param e - */ - close: function (type) { - var me = this; - // 清除定时关闭 - if (me.timer) { - clearTimeout(me.timer); - } - me.$popupPanel.remove(); - me.$popupContent.empty(); - me.$popupPanel = null; - if (me.config.MASK) { - me.$mask.hide(); - } - me.closed = true; - - if (me.closeFun && !type) { - me.closeFun(); - } - }, - /** - * 定时关闭 - * @param {Number} 单位为秒, 无参数则停止计时器 - */ - time: function (second) { - var me = this; - if (!me.closed) { - me.timer = setTimeout(function () { - me.close(); - }, second); - } - }, - /** 显示遮罩 */ - mask: function () { - var me = this; - var bodyH = me.$body.height(); - var winH = me.$win.height(); - var h = bodyH > winH ? bodyH : winH; - - if (me.$mask) { - me.$mask.css({ - "width" : "100%", - "height" : h - }); - me.$mask.show(); - } else { - var $mask = $("
    "); - $mask.css({ - "position" : "absolute", - "top" : 0, - "left" : 0, - "right" : 0, - "width" : "100%", - "height" : h, - "background" : me.config.CSS_MASK_BACKGROUND, - "opacity" : me.config.CSS_MASK_OPACITY, - "z-index" : 999 - }).appendTo(me.$body); - - if (me.config.LOCK) { - $mask.on("touchstart", function (e) { - e.preventDefault(); - }); - $mask.on("mousewheel", function (e) { - e.preventDefault(); - }); - } - me.$mask = $mask; - } - }, - ok: function (e) { - var me = this; - me.close("ok"); - if (me.okFun) { - me.okFun(e); - } - }, - cancel: function (e) { - var me = this; - me.close("cancel"); - if (me.cancelFun) { - me.cancelFun(e); - } - }, - resize: function () { - var me = this; - me._setPopupPos(); - } - }; - module.exports = Popup; -}); \ No newline at end of file diff --git a/src_cmd/suggest/suggest.js b/src_cmd/suggest/suggest.js deleted file mode 100644 index 638cdf7..0000000 --- a/src_cmd/suggest/suggest.js +++ /dev/null @@ -1,244 +0,0 @@ -/** - * @file Squirrel Suggest - * @version 0.5.10 - */ - -/** - * @changelog - * 0.5.10 * 修复 jshint 问题 - * 0.5.9 * 修复在输入搜索后删除搜索词,再次输入相同字符,首字符无请求问题。issues#11 - * 0.5.8 * 修复 IE 下对 XHR 对象处理问题。 - * 0.5.7 * 修复多次发送请求时,老请求因为响应慢覆盖新请求问题。 - * 0.5.6 * 修改组件名称为 Suggest。 - * 0.5.5 * 完成搜索联想词基本功能。 - * 0.0.1 + 新建。 - */ - -define(function(require, exports, module) { - "use strict"; - var SQ = require("core"); - /** - * @name Suggest - * @classdesc 搜索联想词交互组件 - * @constructor - * @param {object} config 组件配置(下面的参数为配置项,配置会写入属性) - * @param {string} config.DOM_INPUT 需要绑定联想词交互的输入框 - * @param {string} config.DOM_CLEAR_BTN 清空按钮 - * @param {string} config.DOM_SUGGEST_PANEL 联想词展示面板 - * @param {string} config.API_URL 联想词接口 - * @param {function} config.beforeStart 检测输入框前的回调函数 - * @param {function} config.start 开始检测输入框时回调函数 - * @param {function} config.show 显示联想词面板时回调函数 - * @param {function} config.clear 清除时回调函数 - * @example var appList = new SQ.Suggest({ - DOM_INPUT : ".J_searchInput", - DOM_CLEAR_BTN : ".J_clearInput", - DOM_SUGGEST_PANEL : ".suggest-panel", - API_URL : config.search_API, - beforeStart : function () { - - }, - start : function () { - - }, - show : function (ds) { - // ds 为 XHR 返回数据 - }, - clear : function () { - - } - }); - */ - function Suggest(config) { - var me = this; - var i; - - me.config = { - "NUM_TIMER_DELAY" : 300, - "NUM_XHR_TIMEER" : 5000, - "NUM_SUCCESS_CODE" : 200, - "suggestion" : true - }; - - for (i in config) { - if (config.hasOwnProperty(i)) { - me.config[i] = config[i]; - } - } - - //me.$triggerTarget = $(me.config.DOM_TRIGGER_TARGET); // 触发元素 - me.$clearBtn = $(me.config.DOM_CLEAR_BTN); - me.$input = $(me.config.DOM_INPUT); - me.$suggestPanel = $(me.config.DOM_SUGGEST_PANEL); - me.beforeStartFun = me.config.beforeStart; - me.startFun = me.config.start; - me.clearFun = me.config.clear; - me.showFun = me.config.show; - - if (me._verify()) { - me._init(); - } - } - Suggest.prototype = { - construtor: Suggest, - version: "0.5.10", - lastKeyword: "", // 为 300ms(检测时长) 前的关键词 - lastSendKeyword : "", // 上一次符合搜索条件的关键词 - canSendRequest : true, // 是否可以进行下次联想请求 - /** 验证参数是否合法 */ - _verify : function () { - return true; - }, - _init : function (e) { - var me = this; - me.$input.on("focus", function () { - me.start(); - }); - me.$input.on("blur", function () { - me.stop(); - }); - me.$clearBtn.on("click", function () { - me.clear(); - }); - if (me.beforeStartFun) { - me.beforeStartFun(e); - } - //me.beforeStartFun && me.beforeStartFun(e); - }, - /** 过滤输入内容 */ - _filter : function (originalKeyword) { - return originalKeyword.replace(/\s+/g, "").replace(/[^\u4e00-\u9fa5a-zA-Z0-9]/g, ""); - }, - /** 初始化提示层容器 */ - _initSuggest : function () { - var me = this; - me.$suggestPanel.empty(); - }, - /** 请求数据 */ - _requestData : function (keyword) { - var me = this; - var api = me.config.API_URL; - var XHR; - //console.log("request -> " + "keyword: " + keyword, "lastSendKeyword: " + me.lastSendKeyword); - if (XHR && SQ.core.isObject(XHR)) { - XHR.abort(); - } - XHR = $.ajax({ - type : "POST", - url : api, - dataType : "json", - data : {"keyword": keyword}, - timeout : me.config.NUM_XHR_TIMEER, - success : function (data) { - me.showSuggest(data); - me.lastSendKeyword = keyword; - }, - error : function () { - me.canSendRequest = false; - setTimeout(function () { - me.canSendRequest = true; - }, 500); - } - }); - }, - _compare : function (keyword) { - var me = this; - var cLen = keyword.length; - var lsLen = me.lastSendKeyword.length; - //console.log("keyword: " + keyword, "lastSendKeyword: " + me.lastSendKeyword); - - if (me.lastKeyword === keyword) { - //console.log("same " + "me.lastKeyword = " + me.lastKeyword + " | " + "keyword = " + keyword + " | " + "me.lastSendKeyword =" + me.lastSendKeyword); - return false; - } - - if (lsLen > 0 && cLen < lsLen) { - me.canSendRequest = true; - } - - if (!me.canSendRequest) { - // canSendRequest 为能否发送请求的判断条件 - // 有几种情况会改变 canSendRequest 的值: - // true 情况 - // 1、当前输入关键词少于上次发送请求关键词时,canSendRequest 为 true - // 2、请求服务器成功返回并有联想结果时,canSendRequest 为 true - // 3、调用 clear() 函数时,canSendRequest 为 true - // 4、请求服务器失败,500ms 后 canSendRequest 为 true - // false 情况 - // 1、请求服务器成功,但返回的 code 与 NUM_SUCCESS_CODE 不一致,canSendRequest 为 false - // 2、请求服务器失败,canSendRequest 为 false - //console.log("!canSendRequest"); - return false; - } - if (me.lastSendKeyword === keyword) { - //console.log("关键词相同") - return false; - } - return true; - }, - /** 启动计时器,开始监听用户输入 */ - start : function () { - var me = this; - me.inputListener = setInterval(function () { - var originalKeyword = me.$input.val(); - var keyword = me._filter(originalKeyword); - - if (keyword.length > 0) { - if (me.$clearBtn.css("display") === "none") { - me.$clearBtn.show(); - } - if (me._compare(keyword)) { - me._requestData(keyword); - if (me.startFun) { - me.startFun(); - } - //me.startFun && me.startFun(); - } - me.lastKeyword = keyword; - } else { - me.lastKeyword = undefined; - me.clear(); - } - }, me.config.NUM_TIMER_DELAY); - }, - /** 停止计时器 */ - stop : function () { - var me = this; - clearInterval(me.inputListener); - }, - /** 显示提示层 */ - showSuggest : function (data) { - var me = this; - var ds = typeof data === "object" ? data : JSON.parse(data); - if (ds.code !== me.config.NUM_SUCCESS_CODE) { - me.canSendRequest = false; - return; - } - me.canSendRequest = true; - me._initSuggest(); - if (me.showFun) { - me.showFun(ds); - } - //me.showFun && me.showFun(ds); - }, - /** 隐藏提示层 */ - hideSuggest : function () { - var me = this; - me.$suggestPanel.hide(); - }, - /** 清除输入内容 */ - clear : function () { - var me = this; - me.$input.val(""); - me.hideSuggest(); - me.$clearBtn.hide(); - me.canSendRequest = true; - me.lastSendKeyword = ""; - if (me.clearFun) { - me.clearFun(); - } - //me.clearFun && me.clearFun(); - } - }; - module.exports = Suggest; -}); \ No newline at end of file diff --git a/src_cmd/tabs/tabs.js b/src_cmd/tabs/tabs.js deleted file mode 100644 index 5fee890..0000000 --- a/src_cmd/tabs/tabs.js +++ /dev/null @@ -1,293 +0,0 @@ -/** - * @file Squirrel Tabs - * @version 0.7.4 - */ - -/** - * @changelog - * 0.7.4 * 解决 localStorage 问题,API_URL 兼容 ["","test.json",""] 这种写法; - * * CSS_LOADING_TIP 兼容 ".demo" 和 "demo" 写法。 - * 0.7.3 * 修复 reload 按钮多次绑定问题。 - * 0.7.2 * 修复初始化时,me.$loadingTip 无法找到的问题。 - * 0.7.1 * 修复 jshint 问题。 - * 0.7.0 + 添加对 localStorage 支持,通过将 LOCAL_DATA 设置为 true 开启,通过 NUM_EXPIRES 来设置过期时间(单位:分钟)。 - * 0.6.1 * 屏蔽 click 默认动作,新增自定义 CSS_HIGHLIGHT 属性。 - * 0.6.0 * 重写 Tabs 插件,使 Tabs 插件能够在同一页面多次实例化。 - * 0.5.6 * 修改组件名称为 Tabs。 - * 0.5.1 * 完成选项卡基本功能。 - * 0.0.1 + 新建。 - */ - -define(function(require, exports, module) { - "use strict"; - var SQ = require("core"); - /** - * @name Tabs - * @classdesc 选项卡交互组件 - * @constructor - * @param {object} config 组件配置(下面的参数为配置项,配置会写入属性) - * @param {string} config.EVE_EVENT_TYPE 触发事件,click 或 mouseover - * @param {string} config.DOM_TRIGGER_TARGET 被绑定事件的 Dom 元素 - * @param {string} config.DOM_TABS 标签 Dom 元素 - * @param {string} config.DOM_PANELS 面板 Dom 元素 - * @param {string} config.API_URL API 接口① 字符串形式 - * @param {array} config.API_URL API 接口② 数组形式,数组中各项对应各个选项卡 - * @param {string} config.CSS_HIGHLIGHT 自定义高亮样式名称,默认为 .active - * @param {string} config.CSS_LOADING_TIP loading 提示样式 - * @param {string} config.TXT_LOADING_TIP loading 提示文字 - * @param {number} config.NUM_ACTIVE 初始高亮选项卡序号,0 - n - * @param {number} config.NUM_XHR_TIMEER XHR 超时时间 - * @param {boolean} config.CLEAR_PANEL 切换选项卡时是否自动清理面板数据 - * @param {string} config.LOCAL_DATA Ajax 数据 loaclstorage 开关,默认为 false - * @param {number} config.NUM_EXPIRES Ajax 数据 loaclstorage 过期时间(单位:分钟),默认为 15 分钟 - * @param {function} config.trigger($tabs, $panels, tabIndex) 触发选项卡切换回调函数 - * @param {function} config.show($tabs, $panels, tabIndex) 显示选项卡时回调函数 - * @param {function} config.beforeLoad($activePanels) 异步加载前回调函数,当设定了该回调函数时,必须返回 - * true 才能继续执行,异步加载事件,可中断异步加载事件。 - * 参数:$activePanels 是当前激活的面板 - * @param {function} config.loaded(data, $activePanels) 异步加载成功回调函数,参数:data 是异步加载返回数据 - * 参数:$activePanels 是当前激活的面板 - * @example var tabs = new SQ.Tabs({ - EVE_EVENT_TYPE: "mouseover", - DOM_TRIGGER_TARGET: ".J_tabs", - DOM_TABS: ".tabs>li", - DOM_PANELS: ".panels", - API_URL: ["../data/content1.json", "../data/content2.json", "../data/content3.json"], - CSS_LOADING_TIP: ".tab-loading-tip", - NUM_ACTIVE: 0, - trigger: function () { - - }, - show: function () { - - }, - beforeLoad: function () { - - }, - loaded: function (data) { - - } - }); - */ - function Tabs(config) { - var me = this; - var i; - - me.config = { - CSS_HIGHLIGHT: ".active", - NUM_ACTIVE : 0, - NUM_XHR_TIMEER : 5000, - TXT_LOADING_TIP : "正在加载请稍后...", // 正在加载提示 - CLEAR_PANEL : false, - LOCAL_DATA : false, - NUM_EXPIRES : 15 - }; - - for (i in config) { - if (config.hasOwnProperty(i)) { - me.config[i] = config[i]; - } - } - - me.CSS_HIGHLIGHT = me.config.CSS_HIGHLIGHT.indexOf(".") === 0 ? me.config.CSS_HIGHLIGHT.slice(1) : me.config.CSS_HIGHLIGHT; - if (me.config.CSS_LOADING_TIP) { - me.CSS_LOADING_TIP = me.config.CSS_LOADING_TIP.indexOf(".") === 0 ? me.config.CSS_LOADING_TIP.slice(1) : me.config.CSS_LOADING_TIP; - } - - me.$triggerTarget = $(me.config.DOM_TRIGGER_TARGET); // 目标元素 - me.tabsLen = me.$triggerTarget.length; - me.triggerFun = me.config.trigger; - me.showFun = me.config.show; - me.beforeLoadFun = me.config.beforeLoad; - me.loadFun = me.config.loaded; - - me.$triggerTarget.each(function () { - var $tabMould = $(this); - var $tabs = $tabMould.find(me.config.DOM_TABS); - var $panels = $tabMould.find(me.config.DOM_PANELS); - if (me._verify()) { - me._init($tabMould, $tabs, $panels); - } - }); - } - Tabs.prototype = { - construtor: Tabs, - version: "0.7.4", - needLoadContent : false, // 选项卡内容是否需要异步加载 - /** - * 验证参数是否合法 - * @returns {boolean} - * @private - */ - _verify: function () { - return true; - }, - _init: function ($tabMould, $tabs, $panels) { - var me = this; - var i = 0; - // 为选项卡添加序号 - $tabs.each(function () { - $(this).attr("data-tabIndex", i); - i++; - }); - // 判断是否需要生成异步加载提示语 - if (me.config.API_URL && (SQ.core.isString(me.config.API_URL) || SQ.core.isArray(me.config.API_URL))) { - me.$loadingTip = $("
    "); - if (me.CSS_LOADING_TIP) { - me.$loadingTip.addClass(me.CSS_LOADING_TIP); - } else { - me.$loadingTip.css({ - "height" : 60, - "text-align" : "center", - "line-height" : "60px" - }); - } - me.$loadingTip.text(me.config.TXT_LOADING_TIP); - me.needLoadContent = true; - } - // 初始化高亮 - if (me.config.NUM_ACTIVE !== undefined) { - me.show($tabs, $panels, me.config.NUM_ACTIVE); - } - // 绑定事件 - $tabs.on(me.config.EVE_EVENT_TYPE, function (e) { - var $tab = $(this); - e.preventDefault(); - me._trigger($tabMould, $tabs, $panels, $tab); - }); - }, - /** - * 触发事件方法,在满足绑定事件条件时或满足指定触发条件的情况下调用触发方法, - * 该方法用于集中处理触发事件,判定是否需要加载数据或者更新 UI 显示。 - * @param $tabMould - * @param $tabs - * @param $panels - * @param $tab - * @private - */ - _trigger: function ($tabMould, $tabs, $panels, $tab) { - var me = this; - var tabIndex = $tab.attr("data-tabIndex"); - var isCurrentActive = $tab.hasClass(me.CSS_HIGHLIGHT); - - if (isCurrentActive) { - return; - } - - me.show($tabs, $panels, tabIndex); - if (me.triggerFun) { - me.triggerFun($tabs, $panels, tabIndex); - } - }, - _cleanPanel: function ($activePanels) { - $activePanels.empty(); - }, - /** - * 显示目标选项卡,可以在外部调用该方法 - * @param $tabs - * @param $panels - * @param tabIndex - */ - show: function ($tabs, $panels, tabIndex) { - var me = this; - var $activeTab = $tabs.eq(tabIndex); - var $activePanels = $panels.eq(tabIndex); - - $tabs.removeClass(me.CSS_HIGHLIGHT); - $panels.removeClass(me.CSS_HIGHLIGHT); - $activeTab.addClass(me.CSS_HIGHLIGHT); - $activePanels.addClass(me.CSS_HIGHLIGHT); - - if (me.showFun) { - me.showFun($tabs, $panels, tabIndex); - } - if (me.config.API_URL) { - me._load($activePanels, tabIndex); - } - }, - _load: function ($activePanels, tabIndex) { - var me = this; - var api = me.config.API_URL; - var $currentLoadTip = $activePanels.find(".dpl-tabs-loadingTip"); - var hasLoadingTip = $currentLoadTip.length > 0 ? true : false; - var hasLoaded = $activePanels.hasClass("hasLoaded"); - - if (hasLoaded) { - return; - } - // 如果设置了 beforeLoadFun 回调函数,则 beforeLoadFun 必须返回 true 才能继续向下执行, - // 用于人为中断 _load 事件。 - if (me.beforeLoadFun) { - if (!me.beforeLoadFun()) { - return; - } - } - // 是否清空面板 - if (me.config.CLEAR_PANEL) { - me._cleanPanel($activePanels); - } - // 是否启用本地缓存 - if (me.config.LOCAL_DATA) { - var localData = SQ.store.localStorage.get(api, me.config.NUM_EXPIRES); - if (localData) { - $activePanels.addClass("hasLoaded"); - if (me.loadFun) { - me.loadFun(JSON.parse(localData), $activePanels); - } - return; - } - } - // 开始 Ajax 流程 - if (SQ.core.isArray(me.config.API_URL)) { - api = me.config.API_URL[tabIndex]; - } - if (!api || api.length === 0) { - return; - } - if (me.xhr) { - me.xhr.abort(); - } - // 显示加载提示语 - if (hasLoadingTip) { - $currentLoadTip.show(); - } else { - $activePanels.append(me.$loadingTip); - $currentLoadTip = $activePanels.find(".dpl-tabs-loadingTip"); - $currentLoadTip.show(); - } - me.xhr = $.ajax({ - type : "POST", - url : api, - dataType : "json", - timeout : me.config.NUM_XHR_TIMEER, - success : function (data) { - $currentLoadTip.hide(); - $activePanels.addClass("hasLoaded"); // 为已经加载过的面板添加 .hasLoaded 标记 - if (me.config.LOCAL_DATA) { - SQ.store.localStorage.set(api, data); - } - if (me.loadFun) { - me.loadFun(data, $activePanels); - } - }, - error : function () { - me._showReloadTips($activePanels, tabIndex); - } - }); - }, - _showReloadTips: function ($activePanels, tabIndex) { - var me = this; - var $tip = $activePanels.find(".dpl-tabs-loadingTip"); - $tip.show().empty(); - var reloadHTML = "
    " + - "

    抱歉,加载失败,请重试

    " + - "
    重新加载
    " + - "
    "; - $tip.append(reloadHTML); - $activePanels.find(".J_reload").off("click").on("click", function () { - me._load($activePanels, tabIndex); - }); - } - }; - module.exports = Tabs; -}); \ No newline at end of file diff --git a/src_cmd/touchslip/touchslip.js b/src_cmd/touchslip/touchslip.js deleted file mode 100644 index b3c6ea4..0000000 --- a/src_cmd/touchslip/touchslip.js +++ /dev/null @@ -1,594 +0,0 @@ -/** - * @file SQ.TouchSlip 触摸滑动组件 - * @data 2013.7.10 - * @version 1.0.0 - */ - -/*global - $: false, - SQ: true, - Zepto: true - */ - -define(function(require, exports, module) { - var SQ = require("core"); - _fun = { - ios: function () { // 作用:判断是否为苹果的IOS设备 - var regularResult = navigator.userAgent.match(/.*OS\s([\d_]+)/), - isiOS = !!regularResult; - if (!this._versionValue && isiOS) { - this._versionValue = regularResult[1].replace(/_/g, '.'); - } - this.ios = function () { - return isiOS; - }; - return isiOS; - }, - version: function () { // 作用:返回IOS的版本号 - return this._versionValue; - }, - clone: function (object) { // 作用:用于原型继承 - function f() {} - f.prototype = object; - return new f(); - } - }; - - var slipjs = { - _refreshCommon: function (wide_high, parent_wide_high) { // 作用:当尺寸改变时,需要重新取得相关的值 - var me = this; - me.wide_high = wide_high || me.core[me.offset] - me.up_range; - me.parent_wide_high = parent_wide_high || me.core.parentNode[me.offset]; - me._getCoreWidthSubtractShellWidth(); - }, - _initCommon: function (core, param) { // 作用:初始化 - var me = this; - me.core = core; - me.startFun = param.startFun; - me.moveFun = param.moveFun; - me.touchEndFun = param.touchEndFun; - me.endFun = param.endFun; - me.DIRECTION = param.DIRECTION; - me.up_range = param.up_range || 0; - me.down_range = param.down_range || 0; - if (me.DIRECTION === 'x') { - me.offset = 'offsetWidth'; - me._pos = me.__posX; - } else { - me.offset = 'offsetHeight'; - me._pos = me.__posY; - } - me.wide_high = param.wide_high || me.core[me.offset] - me.up_range; - me.parent_wide_high = param.parent_wide_high || me.core.parentNode[me.offset]; - me._getCoreWidthSubtractShellWidth(); - - me._bind("touchstart"); - me._bind("touchmove"); - me._bind("touchend"); - me._bind("webkitTransitionEnd"); - - me.xy = 0; - me.y = 0; - me._pos(-me.up_range); - }, - _getCoreWidthSubtractShellWidth: function () { // 作用:取得滑动对象和它父级元素的宽度或者高度的差 - var me = this; - me.width_cut_coreWidth = me.parent_wide_high - me.wide_high; - me.coreWidth_cut_width = me.wide_high - me.parent_wide_high; - }, - handleEvent: function (e) { // 作用:简化addEventListener的事件绑定 - switch (e.type) { - case "touchstart": - this._start(e); - break; - case "touchmove": - this._move(e); - break; - case "touchend": - case "touchcancel": - this._end(e); - break; - case "webkitTransitionEnd": - this._transitionEnd(e); - break; - } - }, - _bind: function (type, boole) { // 作用:事件绑定 - this.core.addEventListener(type, this, !!boole); - }, - _unBind: function (type, boole) { // 作用:事件移除 - this.core.removeEventListener(type, this, !!boole); - }, - __posX: function (x) { // 作用:当设置滑动的方向为“X”时用于设置滑动元素的坐标 - this.xy = x; - this.core.style['webkitTransform'] = 'translate3d(' + x + 'px, 0px, 0px)'; - //this.core.style['webkitTransform'] = 'translate('+x+'px, 0px) scale(1) translateZ(0px)'; - }, - __posY: function (x) { // 作用:当设置滑动的方向为“Y”时用于设置滑动元素的坐标 - this.xy = x; - this.core.style['webkitTransform'] = 'translate3d(0px, ' + x + 'px, 0px)'; - //this.core.style['webkitTransform'] = 'translate(0px, '+x+'px) scale(1) translateZ(0px)'; - }, - _posTime: function (x, time) { // 作用:缓慢移动 - this.core.style.webkitTransitionDuration = time + 'ms'; - this._pos(x); - } - }; - - var SlipPage = _fun.clone(slipjs); - //function SlipPage() {} - //SQ.util.extend(SlipPage, slipjs); - - SlipPage._init = function (core, param) { // 作用:初始化 - var me = this; - me._initCommon(core, param); - me.NUM_PAGES = param.NUM_PAGES; - me.page = 0; - me.AUTO_TIMER = param.AUTO_TIMER; - me.lastPageFun = param.lastPageFun; - me.firstPageFun = param.firstPageFun; - param.AUTO_TIMER && me._autoChange(); - param.no_follow ? (me._move = me._moveNoMove, me.next_time = 500) : me.next_time = 300; - }; - SlipPage._start = function(e) { // 触摸开始 - var me = this, - e = e.touches[0]; - me._abrupt_x = 0; - me._abrupt_x_abs = 0; - me._start_x = me._start_x_clone = e.pageX; - me._start_y = e.pageY; - me._movestart = undefined; - me.AUTO_TIMER && me._stop(); - me.startFun && me.startFun(e); - }; - SlipPage._move = function(evt) { // 触摸中,跟随移动 - var me = this; - me._moveShare(evt); - if(!me._movestart){ - var e = evt.touches[0]; - evt.preventDefault(); - me.offset_x = (me.xy > 0 || me.xy < me.width_cut_coreWidth) ? me._dis_x/2 + me.xy : me._dis_x + me.xy; - me._start_x = e.pageX; - if (me._abrupt_x_abs < 6) { - me._abrupt_x += me._dis_x; - me._abrupt_x_abs = Math.abs(me._abrupt_x); - return; - } - me._pos(me.offset_x); - me.moveFun && me.moveFun(e); - } - }; - SlipPage._moveNoMove = function(evt) { // 触摸中,不跟随移动,只记录必要的值 - var me = this; - me._moveShare(evt); - if(!me._movestart){ - evt.preventDefault(); - me.moveFun && me.moveFun(e); - } - }; - SlipPage._moveShare = function(evt) { // 不跟随移动和跟随移动的公共操作 - var me = this, - e = evt.touches[0]; - me._dis_x = e.pageX - me._start_x; - me._dis_y = e.pageY - me._start_y; - typeof me._movestart == "undefined" && (me._movestart = !!(me._movestart || Math.abs(me._dis_x) < Math.abs(me._dis_y))); - }; - SlipPage._end = function(e) { // 触摸结束 - if (!this._movestart) { - var me = this; - me._end_x = e.changedTouches[0].pageX; - me._range = me._end_x - me._start_x_clone; - if(me._range > 35){ - me.page != 0 ? me.page -= 1 : (me.firstPageFun && me.firstPageFun(e)); - }else if(Math.abs(me._range) > 35){ - me.page != me.NUM_PAGES - 1 ? me.page += 1 : (me.lastPageFun && me.lastPageFun(e)); - } - me.toPage(me.page, me.next_time); - me.touchEndFun && me.touchEndFun(e); - } - }; - SlipPage._transitionEnd = function(e) { // 动画结束 - var me = this; - e.stopPropagation(); - me.core.style.webkitTransitionDuration = '0'; - me._stop_ing && me._autoChange(), me._stop_ing = false; - me.endFun && me.endFun(); - }; - SlipPage.toPage = function(num, time) { // 可在外部调用的函数,指定轮换到第几张,只要传入:“轮换到第几张”和“时间”两个参数。 - this._posTime(-this.parent_wide_high * num, time || 0); - this.page = num; - }; - SlipPage._stop = function() { // 作用:停止自动轮换 - clearInterval(this._autoChangeSet); - this._stop_ing = true; - }; - SlipPage._autoChange = function() { // 作用:自动轮换 - var me = this; - me._autoChangeSet = setInterval(function() { - me.page != me.NUM_PAGES - 1 ? me.page += 1 : me.page = 0; - me.toPage(me.page, me.next_time); - },me.AUTO_TIMER); - }; - SlipPage.refresh = function(wide_high, parent_wide_high) { // 可在外部调用,作用:当尺寸改变时(如手机横竖屏时),需要重新取得相关的值。这时候就可以调用该函数 - this._refreshCommon(wide_high, parent_wide_high); - }; - - var SlipPx = _fun.clone(slipjs); - //function SlipPx() {} - //SQ.util.extend(SlipPx, slipjs); - - SlipPx._init = function(core,param) { // 作用:初始化 - var me = this; - me._initCommon(core,param); - me.perfect = param.perfect; - me.SHOW_SCROLL_BAR = param.SHOW_SCROLL_BAR; - if(me.DIRECTION == 'x'){ - me.page_x = "pageX"; - me.page_y = "pageY"; - me.width_or_height = "width"; - me._real = me._realX; - me._posBar = me.__posBarX; - }else{ - me.page_x = "pageY"; - me.page_y = "pageX"; - me.width_or_height = "height"; - me._real = me._realY; - me._posBar = me.__posBarY; - } - if(me.perfect){ - me._transitionEnd = function(){}; - me._stop = me._stopPerfect; - me._slipBar = me._slipBarPerfect; - me._posTime = me._posTimePerfect; - me._bar_upRange = me.up_range; - me.no_bar = false; - me._slipBarTime = function(){}; - }else{ - me.no_bar = param.no_bar; - me.core.style.webkitTransitionTimingFunction = "cubic-bezier(0.33, 0.66, 0.66, 1)"; - } - if(me.SHOW_SCROLL_BAR){ - me._hideBar = function(){}; - me._showBar = function(){}; - } - if(_fun.ios()){ - me.radius = 11; - }else{ - me.radius = 0; - } - if(!me.no_bar){ - me._insertSlipBar(param); - if(me.coreWidth_cut_width <= 0){ - me._bar_shell_opacity = 0; - me._showBarStorage = me._showBar; - me._showBar = function(){}; - } - }else{ - me._hideBar = function(){}; - me._showBar = function(){}; - } - }; - SlipPx._start = function(e) { // 触摸开始 - var me = this, - e = e.touches[0]; - me._animating = false; - me._steps = []; - me._abrupt_x = 0; - me._abrupt_x_abs = 0; - me._start_x = me._start_x_clone = e[me.page_x]; - me._start_y = e[me.page_y]; - me._start_time = e.timeStamp || Date.now(); - me._movestart = undefined; - !me.perfect && me._need_stop && me._stop(); - me.core.style.webkitTransitionDuration = '0'; - me.startFun && me.startFun(e); - }; - SlipPx._move = function(evt) { // 触摸中 - var me = this, - e = evt.touches[0], - _e_page = e[me.page_x], - _e_page_other = e[me.page_y], - that_x = me.xy; - me._dis_x = _e_page - me._start_x; - me._dis_y = _e_page_other - me._start_y; - (me.DIRECTION == 'x' && typeof me._movestart == "undefined") && (me._movestart = !!(me._movestart || (Math.abs(me._dis_x) < Math.abs(me._dis_y)))); - - if(!me._movestart){ - evt.preventDefault(); - me._move_time = e.timeStamp || Date.now(); - me.offset_x = (that_x > 0 || that_x < me.width_cut_coreWidth - me.up_range) ? me._dis_x/2 + that_x : me._dis_x + that_x; - me._start_x = _e_page; - me._start_y = _e_page_other; - me._showBar(); - if (me._abrupt_x_abs < 6 ) { - me._abrupt_x += me._dis_x; - me._abrupt_x_abs = Math.abs(me._abrupt_x); - return; - } - me._pos(me.offset_x); - me.no_bar || me._slipBar(); - if (me._move_time - me._start_time > 300) { - me._start_time = me._move_time; - me._start_x_clone = _e_page; - } - me.moveFun && me.moveFun(e); - } - }; - SlipPx._end = function(e) { // 触摸结束 - if (!this._movestart) { - var me = this, - e = e.changedTouches[0], - duration = (e.timeStamp || Date.now()) - me._start_time, - fast_dist_x = e[me.page_x] - me._start_x_clone; - me._need_stop = true; - if(duration < 300 && Math.abs(fast_dist_x) > 10) { - if (me.xy > -me.up_range || me.xy < me.width_cut_coreWidth) { - me._rebound(); - }else{ - var _momentum = me._momentum(fast_dist_x, duration, -me.xy - me.up_range, me.coreWidth_cut_width + (me.xy), me.parent_wide_high); - me._posTime(me.xy + _momentum.dist, _momentum.time); - me.no_bar || me._slipBarTime(_momentum.time); - } - }else{ - me._rebound(); - } - me.touchEndFun && me.touchEndFun(e); - } - }; - SlipPx._transitionEnd = function(e) { // 滑动结束 - var me = this; - if (e.target != me.core) return; - me._rebound(); - me._need_stop = false; - }; - SlipPx._rebound = function(time) { // 作用:滑动对象超出时复位 - var me = this, - _reset = (me.coreWidth_cut_width <= 0) ? 0 : (me.xy >= -me.up_range ? -me.up_range : me.xy <= me.width_cut_coreWidth - me.up_range ? me.width_cut_coreWidth - me.up_range : me.xy); - if (_reset == me.xy) { - me.endFun && me.endFun(); - me._hideBar(); - return; - } - me._posTime(_reset, time || 400); - me.no_bar || me._slipBarTime(time); - }; - SlipPx._insertSlipBar = function(param) { // 插入滚动条 - var me = this; - me._bar = document.createElement('div'); - me._bar_shell = document.createElement('div'); - if(me.DIRECTION == 'x'){ - var _bar_css = 'height: 5px; position: absolute;z-index: 10; pointer-events: none;'; - var _bar_shell_css = 'opacity: '+me._bar_shell_opacity+'; left:2px; bottom: 2px; right: 2px; height: 5px; position: absolute; z-index: 10; pointer-events: none;'; - }else{ - var _bar_css = 'width: 5px; position: absolute;z-index: 10; pointer-events: none;'; - var _bar_shell_css = 'opacity: '+me._bar_shell_opacity+'; top:2px; bottom: 2px; right: 2px; width: 5px; position: absolute; z-index: 10; pointer-events: none; '; - } - var _default_bar_css = ' background-color: rgba(0, 0, 0, 0.5); border-radius: '+me.radius+'px; -webkit-transition: cubic-bezier(0.33, 0.66, 0.66, 1);' ; - var _bar_css = _bar_css + _default_bar_css + param.bar_css; - - me._bar.style.cssText = _bar_css; - me._bar_shell.style.cssText = _bar_shell_css - me._countAboutBar(); - me._countBarSize(); - me._setBarSize(); - me._countWidthCutBarSize(); - me._bar_shell.appendChild(me._bar); - me.core.parentNode.appendChild(me._bar_shell); - setTimeout(function(){me._hideBar();}, 500); - }; - SlipPx._posBar = function(pos) {}; - SlipPx.__posBarX = function(pos) { // 作用:当设置滑动的方向为“X”时用于设置滚动条的坐标 - var me = this; - me._bar.style['webkitTransform'] = 'translate3d('+pos+'px, 0px, 0px)'; - //me._bar.style['webkitTransform'] = 'translate('+pos+'px, 0px) translateZ(0px)'; - }; - SlipPx.__posBarY = function(pos) { // 作用:当设置滑动的方向为“Y”时用于设置滚动条的坐标 - var me = this; - //me._bar.style['webkitTransform'] = 'translate(0px, '+pos+'px) translateZ(0px)'; - me._bar.style['webkitTransform'] = 'translate3d(0px, '+pos+'px, 0px)'; - }; - SlipPx._slipBar = function() { // 流畅模式下滚动条的滑动 - var me = this; - var pos = me._about_bar * (me.xy + me.up_range); - if (pos <= 0) { - pos = 0; - }else if(pos >= me._width_cut_barSize){ - pos = Math.round(me._width_cut_barSize); - } - me._posBar(pos); - me._showBar(); - }; - SlipPx._slipBarPerfect = function() { // 完美模式下滚动条的滑动 - var me = this; - var pos = me._about_bar * (me.xy + me._bar_upRange); - me._bar.style[me.width_or_height] = me._bar_size + 'px'; - if (pos < 0) { - var size = me._bar_size + pos * 3; - me._bar.style[me.width_or_height] = Math.round(Math.max(size, 5)) + 'px'; - pos = 0; - }else if(pos >= me._width_cut_barSize){ - var size = me._bar_size - (pos - me._width_cut_barSize) * 3; - if(size < 5) {size = 5;} - me._bar.style[me.width_or_height] = Math.round(size) + 'px'; - pos = Math.round(me._width_cut_barSize + me._bar_size - size); - } - me._posBar(pos); - }; - SlipPx._slipBarTime = function(time) { // 作用:指定时间滑动滚动条 - this._bar.style.webkitTransitionDuration = ''+time+'ms'; - this._slipBar(); - }; - SlipPx._stop = function() { // 流畅模式下的动画停止 - var me = this, - _real_x = me._real(); - me._pos(_real_x); - if(!me.no_bar){ - me._bar.style.webkitTransitionDuration = '0'; - me._posBar(me._about_bar * _real_x); - } - }; - SlipPx._stopPerfect = function() { // 完美模式下的动画停止 - clearTimeout(this._aniTime); - this._animating = false; - }; - SlipPx._realX = function() { // 作用:取得滑动X坐标 - var _real_xy = getComputedStyle(this.core, null)['webkitTransform'].replace(/[^0-9-.,]/g, '').split(','); - return _real_xy[4] * 1; - }; - SlipPx._realY = function() { // 作用:取得滑动Y坐标 - var _real_xy = getComputedStyle(this.core, null)['webkitTransform'].replace(/[^0-9-.,]/g, '').split(','); - return _real_xy[5] * 1; - }; - SlipPx._countBarSize = function() { // 作用:根据比例计算滚动条的高度 - this._bar_size = Math.round(Math.max(this.parent_wide_high * this.parent_wide_high / this.wide_high, 5)); - }; - SlipPx._setBarSize = function() { // 作用:设置滚动条的高度 - this._bar.style[this.width_or_height] = this._bar_size + 'px'; - }; - SlipPx._countAboutBar = function() { // 作用:计算一个关于滚动条的的数值 - this._about_bar = ((this.parent_wide_high-4) - (this.parent_wide_high-4) * this.parent_wide_high / this.wide_high)/this.width_cut_coreWidth; - }; - SlipPx._countWidthCutBarSize = function() { // 作用:计算一个关于滚动条的的数值 - this._width_cut_barSize = (this.parent_wide_high-4) - this._bar_size; - }; - SlipPx.refresh = function(wide_high, parent_wide_high) {// 可在外部调用,作用:当尺寸改变时(如手机横竖屏时),需要重新取得相关的值。这时候就可以调用该函数 - var me = this; - me._refreshCommon(wide_high, parent_wide_high); - if(!me.no_bar){ - if(me.coreWidth_cut_width <= 0) { - me._bar_shell_opacity = 0; - me._showBar = function(){}; - }else{ - me._showBar = me._showBarStorage || me._showBar; - me._countAboutBar(); - me._countBarSize(); - me._setBarSize(); - me._countWidthCutBarSize(); - } - } - me._rebound(0); - }; - SlipPx._posTimePerfect = function (x, time) { // 作用:完美模式下的改变坐标函数 - var me = this, - step = x, - i, l; - me._steps.push({ x: x, time: time || 0 }); - me._startAni(); - }; - SlipPx._startAni = function () {// 作用:完美模式下的改变坐标函数 - var me = this, - startX = me.xy, - startTime = Date.now(), - step, easeOut, - animate; - if (me._animating) return; - if (!me._steps.length) { - me._rebound(); - return; - } - step = me._steps.shift(); - if (step.x == startX) step.time = 0; - me._animating = true; - animate = function () { - var now = Date.now(), - newX; - if (now >= startTime + step.time) { - me._pos(step.x); - me._animating = false; - me._startAni(); - return; - } - now = (now - startTime) / step.time - 1; - easeOut = Math.sqrt(1 - now * now); - newX = (step.x - startX) * easeOut + startX; - me._pos(newX); - if (me._animating) { - me._slipBar(); - me._aniTime = setTimeout(animate, 1); - } - }; - animate(); - }; - SlipPx._momentum = function (dist, time, maxDistUpper, maxDistLower, size) { // 作用:计算惯性 - var deceleration = 0.001, - speed = Math.abs(dist) / time, - newDist = (speed * speed) / (2 * deceleration), - newTime = 0, outsideDist = 0; - if (dist > 0 && newDist > maxDistUpper) { - outsideDist = size / (6 / (newDist / speed * deceleration)); - maxDistUpper = maxDistUpper + outsideDist; - speed = speed * maxDistUpper / newDist; - newDist = maxDistUpper; - } else if (dist < 0 && newDist > maxDistLower) { - outsideDist = size / (6 / (newDist / speed * deceleration)); - maxDistLower = maxDistLower + outsideDist; - speed = speed * maxDistLower / newDist; - newDist = maxDistLower; - } - newDist = newDist * (dist < 0 ? -1 : 1); - newTime = speed / deceleration; - return { dist: newDist, time: newTime }; - }; - SlipPx._showBar = function() {// 作用:显示滚动条 - var me = this; - me._bar_shell.style.webkitTransitionDelay = "0ms"; - me._bar_shell.style.webkitTransitionDuration = '0ms'; - me._bar_shell.style.opacity = "1"; - }; - SlipPx._hideBar = function() {// 作用:隐藏滚动条 - var me = this; - me._bar_shell.style.opacity = "0"; - me._bar_shell.style.webkitTransitionDelay = "300ms"; - me._bar_shell.style.webkitTransitionDuration = '300ms'; - }; - - function TouchSlip(config) { - var me = this; - var i; - - me.config = { - - }; - - for (i in config) { - if (config.hasOwnProperty(i)) { - me.config[i] = config[i]; - } - } - - me.triggerTarget = $(me.config.DOM_TRIGGER_TARGET)[0]; - - if (_fun.ios() && (parseInt(_fun.version()) >= 5 && config.DIRECTION === 'x') && config.wit) { - me.triggerTarget.parentNode.style.cssText += "overflow:scroll; -webkit-overflow-scrolling:touch;"; - return; - } - - switch (me.config.MODE) { - case "page": - config.DIRECTION = "x"; - if (!this.SlipPage) { - this.SlipPage = true; - SlipPage._init(me.triggerTarget, config); - return SlipPage; - } else { - var page = _fun.clone(SlipPage); - page._init(me.triggerTarget, config); - return page; - } - break; - case "px": - if (!this.SlipPx) { - this.SlipPx = true; - SlipPx._init(me.triggerTarget, config); - return SlipPx; - } else { - var Px = _fun.clone(SlipPx); - Px._init(me.triggerTarget, config); - return Px; - } - break; - } - - } - module.exports = TouchSlip; -}); \ No newline at end of file diff --git a/src_cmd/zepto/zepto.js b/src_cmd/zepto/zepto.js deleted file mode 100644 index a4bba74..0000000 --- a/src_cmd/zepto/zepto.js +++ /dev/null @@ -1,12 +0,0 @@ -/* Zepto v1.1.2 - zepto event ajax form ie - zeptojs.com/license */ -define(function(require, exports, module) { -var Zepto=function(){function G(a){return a==null?String(a):z[A.call(a)]||"object"}function H(a){return G(a)=="function"}function I(a){return a!=null&&a==a.window}function J(a){return a!=null&&a.nodeType==a.DOCUMENT_NODE}function K(a){return G(a)=="object"}function L(a){return K(a)&&!I(a)&&Object.getPrototypeOf(a)==Object.prototype}function M(a){return a instanceof Array}function N(a){return typeof a.length=="number"}function O(a){return g.call(a,function(a){return a!=null})}function P(a){return a.length>0?c.fn.concat.apply([],a):a}function Q(a){return a.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function R(a){return a in j?j[a]:j[a]=new RegExp("(^|\\s)"+a+"(\\s|$)")}function S(a,b){return typeof b=="number"&&!k[Q(a)]?b+"px":b}function T(a){var b,c;return i[a]||(b=h.createElement(a),h.body.appendChild(b),c=getComputedStyle(b,"").getPropertyValue("display"),b.parentNode.removeChild(b),c=="none"&&(c="block"),i[a]=c),i[a]}function U(a){return"children"in a?f.call(a.children):c.map(a.childNodes,function(a){if(a.nodeType==1)return a})}function V(c,d,e){for(b in d)e&&(L(d[b])||M(d[b]))?(L(d[b])&&!L(c[b])&&(c[b]={}),M(d[b])&&!M(c[b])&&(c[b]=[]),V(c[b],d[b],e)):d[b]!==a&&(c[b]=d[b])}function W(a,b){return b==null?c(a):c(a).filter(b)}function X(a,b,c,d){return H(b)?b.call(a,c,d):b}function Y(a,b,c){c==null?a.removeAttribute(b):a.setAttribute(b,c)}function Z(b,c){var d=b.className,e=d&&d.baseVal!==a;if(c===a)return e?d.baseVal:d;e?d.baseVal=c:b.className=c}function $(a){var b;try{return a?a=="true"||(a=="false"?!1:a=="null"?null:!/^0/.test(a)&&!isNaN(b=Number(a))?b:/^[\[\{]/.test(a)?c.parseJSON(a):a):a}catch(d){return a}}function _(a,b){b(a);for(var c in a.childNodes)_(a.childNodes[c],b)}var a,b,c,d,e=[],f=e.slice,g=e.filter,h=window.document,i={},j={},k={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},l=/^\s*<(\w+|!)[^>]*>/,m=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,n=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,o=/^(?:body|html)$/i,p=/([A-Z])/g,q=["val","css","html","text","data","width","height","offset"],r=["after","prepend","before","append"],s=h.createElement("table"),t=h.createElement("tr"),u={tr:h.createElement("tbody"),tbody:s,thead:s,tfoot:s,td:t,th:t,"*":h.createElement("div")},v=/complete|loaded|interactive/,w=/^\.([\w-]+)$/,x=/^#([\w-]*)$/,y=/^[\w-]*$/,z={},A=z.toString,B={},C,D,E=h.createElement("div"),F={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"};return B.matches=function(a,b){if(!b||!a||a.nodeType!==1)return!1;var c=a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.matchesSelector;if(c)return c.call(a,b);var d,e=a.parentNode,f=!e;return f&&(e=E).appendChild(a),d=~B.qsa(e,b).indexOf(a),f&&E.removeChild(a),d},C=function(a){return a.replace(/-+(.)?/g,function(a,b){return b?b.toUpperCase():""})},D=function(a){return g.call(a,function(b,c){return a.indexOf(b)==c})},B.fragment=function(b,d,e){var g,i,j;return m.test(b)&&(g=c(h.createElement(RegExp.$1))),g||(b.replace&&(b=b.replace(n,"<$1>")),d===a&&(d=l.test(b)&&RegExp.$1),d in u||(d="*"),j=u[d],j.innerHTML=""+b,g=c.each(f.call(j.childNodes),function(){j.removeChild(this)})),L(e)&&(i=c(g),c.each(e,function(a,b){q.indexOf(a)>-1?i[a](b):i.attr(a,b)})),g},B.Z=function(a,b){return a=a||[],a.__proto__=c.fn,a.selector=b||"",a},B.isZ=function(a){return a instanceof B.Z},B.init=function(b,d){var e;if(!b)return B.Z();if(typeof b=="string"){b=b.trim();if(b[0]=="<"&&l.test(b))e=B.fragment(b,RegExp.$1,d),b=null;else{if(d!==a)return c(d).find(b);e=B.qsa(h,b)}}else{if(H(b))return c(h).ready(b);if(B.isZ(b))return b;if(M(b))e=O(b);else if(K(b))e=[b],b=null;else if(l.test(b))e=B.fragment(b.trim(),RegExp.$1,d),b=null;else{if(d!==a)return c(d).find(b);e=B.qsa(h,b)}}return B.Z(e,b)},c=function(a,b){return B.init(a,b)},c.extend=function(a){var b,c=f.call(arguments,1);return typeof a=="boolean"&&(b=a,a=c.shift()),c.forEach(function(c){V(a,c,b)}),a},B.qsa=function(a,b){var c,d=b[0]=="#",e=!d&&b[0]==".",g=d||e?b.slice(1):b,h=y.test(g);return J(a)&&h&&d?(c=a.getElementById(g))?[c]:[]:a.nodeType!==1&&a.nodeType!==9?[]:f.call(h&&!d?e?a.getElementsByClassName(g):a.getElementsByTagName(b):a.querySelectorAll(b))},c.contains=function(a,b){return a!==b&&a.contains(b)},c.type=G,c.isFunction=H,c.isWindow=I,c.isArray=M,c.isPlainObject=L,c.isEmptyObject=function(a){var b;for(b in a)return!1;return!0},c.inArray=function(a,b,c){return e.indexOf.call(b,a,c)},c.camelCase=C,c.trim=function(a){return a==null?"":String.prototype.trim.call(a)},c.uuid=0,c.support={},c.expr={},c.map=function(a,b){var c,d=[],e,f;if(N(a))for(e=0;e=0?b:b+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){this.parentNode!=null&&this.parentNode.removeChild(this)})},each:function(a){return e.every.call(this,function(b,c){return a.call(b,c,b)!==!1}),this},filter:function(a){return H(a)?this.not(this.not(a)):c(g.call(this,function(b){return B.matches(b,a)}))},add:function(a,b){return c(D(this.concat(c(a,b))))},is:function(a){return this.length>0&&B.matches(this[0],a)},not:function(b){var d=[];if(H(b)&&b.call!==a)this.each(function(a){b.call(this,a)||d.push(this)});else{var e=typeof b=="string"?this.filter(b):N(b)&&H(b.item)?f.call(b):c(b);this.forEach(function(a){e.indexOf(a)<0&&d.push(a)})}return c(d)},has:function(a){return this.filter(function(){return K(a)?c.contains(this,a):c(this).find(a).size()})},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){var a=this[0];return a&&!K(a)?a:c(a)},last:function(){var a=this[this.length-1];return a&&!K(a)?a:c(a)},find:function(a){var b,d=this;return typeof a=="object"?b=c(a).filter(function(){var a=this;return e.some.call(d,function(b){return c.contains(b,a)})}):this.length==1?b=c(B.qsa(this[0],a)):b=this.map(function(){return B.qsa(this,a)}),b},closest:function(a,b){var d=this[0],e=!1;typeof a=="object"&&(e=c(a));while(d&&!(e?e.indexOf(d)>=0:B.matches(d,a)))d=d!==b&&!J(d)&&d.parentNode;return c(d)},parents:function(a){var b=[],d=this;while(d.length>0)d=c.map(d,function(a){if((a=a.parentNode)&&!J(a)&&b.indexOf(a)<0)return b.push(a),a});return W(b,a)},parent:function(a){return W(D(this.pluck("parentNode")),a)},children:function(a){return W(this.map(function(){return U(this)}),a)},contents:function(){return this.map(function(){return f.call(this.childNodes)})},siblings:function(a){return W(this.map(function(a,b){return g.call(U(b.parentNode),function(a){return a!==b})}),a)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(a){return c.map(this,function(b){return b[a]})},show:function(){return this.each(function(){this.style.display=="none"&&(this.style.display=""),getComputedStyle(this,"").getPropertyValue("display")=="none"&&(this.style.display=T(this.nodeName))})},replaceWith:function(a){return this.before(a).remove()},wrap:function(a){var b=H(a);if(this[0]&&!b)var d=c(a).get(0),e=d.parentNode||this.length>1;return this.each(function(f){c(this).wrapAll(b?a.call(this,f):e?d.cloneNode(!0):d)})},wrapAll:function(a){if(this[0]){c(this[0]).before(a=c(a));var b;while((b=a.children()).length)a=b.first();c(a).append(this)}return this},wrapInner:function(a){var b=H(a);return this.each(function(d){var e=c(this),f=e.contents(),g=b?a.call(this,d):a;f.length?f.wrapAll(g):e.append(g)})},unwrap:function(){return this.parent().each(function(){c(this).replaceWith(c(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(b){return this.each(function(){var d=c(this);(b===a?d.css("display")=="none":b)?d.show():d.hide()})},prev:function(a){return c(this.pluck("previousElementSibling")).filter(a||"*")},next:function(a){return c(this.pluck("nextElementSibling")).filter(a||"*")},html:function(a){return arguments.length===0?this.length>0?this[0].innerHTML:null:this.each(function(b){var d=this.innerHTML;c(this).empty().append(X(this,a,b,d))})},text:function(b){return arguments.length===0?this.length>0?this[0].textContent:null:this.each(function(){this.textContent=b===a?"":""+b})},attr:function(c,d){var e;return typeof c=="string"&&d===a?this.length==0||this[0].nodeType!==1?a:c=="value"&&this[0].nodeName=="INPUT"?this.val():!(e=this[0].getAttribute(c))&&c in this[0]?this[0][c]:e:this.each(function(a){if(this.nodeType!==1)return;if(K(c))for(b in c)Y(this,b,c[b]);else Y(this,c,X(this,d,a,this.getAttribute(c)))})},removeAttr:function(a){return this.each(function(){this.nodeType===1&&Y(this,a)})},prop:function(b,c){return b=F[b]||b,c===a?this[0]&&this[0][b]:this.each(function(a){this[b]=X(this,c,a,this[b])})},data:function(b,c){var d=this.attr("data-"+b.replace(p,"-$1").toLowerCase(),c);return d!==null?$(d):a},val:function(a){return arguments.length===0?this[0]&&(this[0].multiple?c(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value):this.each(function(b){this.value=X(this,a,b,this.value)})},offset:function(a){if(a)return this.each(function(b){var d=c(this),e=X(this,a,b,d.offset()),f=d.offsetParent().offset(),g={top:e.top-f.top,left:e.left-f.left};d.css("position")=="static"&&(g.position="relative"),d.css(g)});if(this.length==0)return null;var b=this[0].getBoundingClientRect();return{left:b.left+window.pageXOffset,top:b.top+window.pageYOffset,width:Math.round(b.width),height:Math.round(b.height)}},css:function(a,d){if(arguments.length<2){var e=this[0],f=getComputedStyle(e,"");if(!e)return;if(typeof a=="string")return e.style[C(a)]||f.getPropertyValue(a);if(M(a)){var g={};return c.each(M(a)?a:[a],function(a,b){g[b]=e.style[C(b)]||f.getPropertyValue(b)}),g}}var h="";if(G(a)=="string")!d&&d!==0?this.each(function(){this.style.removeProperty(Q(a))}):h=Q(a)+":"+S(a,d);else for(b in a)!a[b]&&a[b]!==0?this.each(function(){this.style.removeProperty(Q(b))}):h+=Q(b)+":"+S(b,a[b])+";";return this.each(function(){this.style.cssText+=";"+h})},index:function(a){return a?this.indexOf(c(a)[0]):this.parent().children().indexOf(this[0])},hasClass:function(a){return a?e.some.call(this,function(a){return this.test(Z(a))},R(a)):!1},addClass:function(a){return a?this.each(function(b){d=[];var e=Z(this),f=X(this,a,b,e);f.split(/\s+/g).forEach(function(a){c(this).hasClass(a)||d.push(a)},this),d.length&&Z(this,e+(e?" ":"")+d.join(" "))}):this},removeClass:function(b){return this.each(function(c){if(b===a)return Z(this,"");d=Z(this),X(this,b,c,d).split(/\s+/g).forEach(function(a){d=d.replace(R(a)," ")}),Z(this,d.trim())})},toggleClass:function(b,d){return b?this.each(function(e){var f=c(this),g=X(this,b,e,Z(this));g.split(/\s+/g).forEach(function(b){(d===a?!f.hasClass(b):d)?f.addClass(b):f.removeClass(b)})}):this},scrollTop:function(b){if(!this.length)return;var c="scrollTop"in this[0];return b===a?c?this[0].scrollTop:this[0].pageYOffset:this.each(c?function(){this.scrollTop=b}:function(){this.scrollTo(this.scrollX,b)})},scrollLeft:function(b){if(!this.length)return;var c="scrollLeft"in this[0];return b===a?c?this[0].scrollLeft:this[0].pageXOffset:this.each(c?function(){this.scrollLeft=b}:function(){this.scrollTo(b,this.scrollY)})},position:function(){if(!this.length)return;var a=this[0],b=this.offsetParent(),d=this.offset(),e=o.test(b[0].nodeName)?{top:0,left:0}:b.offset();return d.top-=parseFloat(c(a).css("margin-top"))||0,d.left-=parseFloat(c(a).css("margin-left"))||0,e.top+=parseFloat(c(b[0]).css("border-top-width"))||0,e.left+=parseFloat(c(b[0]).css("border-left-width"))||0,{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||h.body;while(a&&!o.test(a.nodeName)&&c(a).css("position")=="static")a=a.offsetParent;return a})}},c.fn.detach=c.fn.remove,["width","height"].forEach(function(b){var d=b.replace(/./,function(a){return a[0].toUpperCase()});c.fn[b]=function(e){var f,g=this[0];return e===a?I(g)?g["inner"+d]:J(g)?g.documentElement["scroll"+d]:(f=this.offset())&&f[b]:this.each(function(a){g=c(this),g.css(b,X(this,e,a,g[b]()))})}}),r.forEach(function(a,b){var d=b%2;c.fn[a]=function(){var a,e=c.map(arguments,function(b){return a=G(b),a=="object"||a=="array"||b==null?b:B.fragment(b)}),f,g=this.length>1;return e.length<1?this:this.each(function(a,h){f=d?h:h.parentNode,h=b==0?h.nextSibling:b==1?h.firstChild:b==2?h:null,e.forEach(function(a){if(g)a=a.cloneNode(!0);else if(!f)return c(a).remove();_(f.insertBefore(a,h),function(a){a.nodeName!=null&&a.nodeName.toUpperCase()==="SCRIPT"&&(!a.type||a.type==="text/javascript")&&!a.src&&window.eval.call(window,a.innerHTML)})})})},c.fn[d?a+"To":"insert"+(b?"Before":"After")]=function(b){return c(b)[a](this),this}}),B.Z.prototype=c.fn,B.uniq=D,B.deserializeValue=$,c.zepto=B,c}();window.Zepto=Zepto,window.$===undefined&&(window.$=Zepto),function(a){function m(a){return a._zid||(a._zid=c++)}function n(a,b,c,d){b=o(b);if(b.ns)var e=p(b.ns);return(h[m(a)]||[]).filter(function(a){return a&&(!b.e||a.e==b.e)&&(!b.ns||e.test(a.ns))&&(!c||m(a.fn)===m(c))&&(!d||a.sel==d)})}function o(a){var b=(""+a).split(".");return{e:b[0],ns:b.slice(1).sort().join(" ")}}function p(a){return new RegExp("(?:^| )"+a.replace(" "," .* ?")+"(?: |$)")}function q(a,b){return a.del&&!j&&a.e in k||!!b}function r(a){return l[a]||j&&k[a]||a}function s(b,c,e,f,g,i,j){var k=m(b),n=h[k]||(h[k]=[]);c.split(/\s/).forEach(function(c){if(c=="ready")return a(document).ready(e);var h=o(c);h.fn=e,h.sel=g,h.e in l&&(e=function(b){var c=b.relatedTarget;if(!c||c!==this&&!a.contains(this,c))return h.fn.apply(this,arguments)}),h.del=i;var k=i||e;h.proxy=function(a){a=y(a);if(a.isImmediatePropagationStopped())return;a.data=f;var c=k.apply(b,a._args==d?[a]:[a].concat(a._args));return c===!1&&(a.preventDefault(),a.stopPropagation()),c},h.i=n.length,n.push(h),"addEventListener"in b&&b.addEventListener(r(h.e),h.proxy,q(h,j))})}function t(a,b,c,d,e){var f=m(a);(b||"").split(/\s/).forEach(function(b){n(a,b,c,d).forEach(function(b){delete h[f][b.i],"removeEventListener"in a&&a.removeEventListener(r(b.e),b.proxy,q(b,e))})})}function y(b,c){if(c||!b.isDefaultPrevented){c||(c=b),a.each(x,function(a,d){var e=c[a];b[a]=function(){return this[d]=u,e&&e.apply(c,arguments)},b[d]=v});if(c.defaultPrevented!==d?c.defaultPrevented:"returnValue"in c?c.returnValue===!1:c.getPreventDefault&&c.getPreventDefault())b.isDefaultPrevented=u}return b}function z(a){var b,c={originalEvent:a};for(b in a)!w.test(b)&&a[b]!==d&&(c[b]=a[b]);return y(c,a)}var b=a.zepto.qsa,c=1,d,e=Array.prototype.slice,f=a.isFunction,g=function(a){return typeof a=="string"},h={},i={},j="onfocusin"in window,k={focus:"focusin",blur:"focusout"},l={mouseenter:"mouseover",mouseleave:"mouseout"};i.click=i.mousedown=i.mouseup=i.mousemove="MouseEvents",a.event={add:s,remove:t},a.proxy=function(b,c){if(f(b)){var d=function(){return b.apply(c,arguments)};return d._zid=m(b),d}if(g(c))return a.proxy(b[c],b);throw new TypeError("expected function")},a.fn.bind=function(a,b,c){return this.on(a,b,c)},a.fn.unbind=function(a,b){return this.off(a,b)},a.fn.one=function(a,b,c,d){return this.on(a,b,c,d,1)};var u=function(){return!0},v=function(){return!1},w=/^([A-Z]|returnValue$|layer[XY]$)/,x={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};a.fn.delegate=function(a,b,c){return this.on(b,a,c)},a.fn.undelegate=function(a,b,c){return this.off(b,a,c)},a.fn.live=function(b,c){return a(document.body).delegate(this.selector,b,c),this},a.fn.die=function(b,c){return a(document.body).undelegate(this.selector,b,c),this},a.fn.on=function(b,c,h,i,j){var k,l,m=this;if(b&&!g(b))return a.each(b,function(a,b){m.on(a,c,h,b,j)}),m;!g(c)&&!f(i)&&i!==!1&&(i=h,h=c,c=d);if(f(h)||h===!1)i=h,h=d;return i===!1&&(i=v),m.each(function(d,f){j&&(k=function(a){return t(f,a.type,i),i.apply(this,arguments)}),c&&(l=function(b){var d,g=a(b.target).closest(c,f).get(0);if(g&&g!==f)return d=a.extend(z(b),{currentTarget:g,liveFired:f}),(k||i).apply(g,[d].concat(e.call(arguments,1)))}),s(f,b,i,h,c,l||k)})},a.fn.off=function(b,c,e){var h=this;return b&&!g(b)?(a.each(b,function(a,b){h.off(a,c,b)}),h):(!g(c)&&!f(e)&&e!==!1&&(e=c,c=d),e===!1&&(e=v),h.each(function(){t(this,b,e,c)}))},a.fn.trigger=function(b,c){return b=g(b)||a.isPlainObject(b)?a.Event(b):y(b),b._args=c,this.each(function(){"dispatchEvent"in this?this.dispatchEvent(b):a(this).triggerHandler(b,c)})},a.fn.triggerHandler=function(b,c){var d,e;return this.each(function(f,h){d=z(g(b)?a.Event(b):b),d._args=c,d.target=h,a.each(n(h,b.type||b),function(a,b){e=b.proxy(d);if(d.isImmediatePropagationStopped())return!1})}),e},"focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(b){a.fn[b]=function(a){return a?this.bind(b,a):this.trigger(b)}}),["focus","blur"].forEach(function(b){a.fn[b]=function(a){return a?this.bind(b,a):this.each(function(){try{this[b]()}catch(a){}}),this}}),a.Event=function(a,b){g(a)||(b=a,a=b.type);var c=document.createEvent(i[a]||"Events"),d=!0;if(b)for(var e in b)e=="bubbles"?d=!!b[e]:c[e]=b[e];return c.initEvent(a,d,!0),y(c)}}(Zepto),function($){function triggerAndReturn(a,b,c){var d=$.Event(b);return $(a).trigger(d,c),!d.isDefaultPrevented()}function triggerGlobal(a,b,c,d){if(a.global)return triggerAndReturn(b||document,c,d)}function ajaxStart(a){a.global&&$.active++===0&&triggerGlobal(a,null,"ajaxStart")}function ajaxStop(a){a.global&&!--$.active&&triggerGlobal(a,null,"ajaxStop")}function ajaxBeforeSend(a,b){var c=b.context;if(b.beforeSend.call(c,a,b)===!1||triggerGlobal(b,c,"ajaxBeforeSend",[a,b])===!1)return!1;triggerGlobal(b,c,"ajaxSend",[a,b])}function ajaxSuccess(a,b,c,d){var e=c.context,f="success";c.success.call(e,a,f,b),d&&d.resolveWith(e,[a,f,b]),triggerGlobal(c,e,"ajaxSuccess",[b,c,a]),ajaxComplete(f,b,c)}function ajaxError(a,b,c,d,e){var f=d.context;d.error.call(f,c,b,a),e&&e.rejectWith(f,[c,b,a]),triggerGlobal(d,f,"ajaxError",[c,d,a||b]),ajaxComplete(b,c,d)}function ajaxComplete(a,b,c){var d=c.context;c.complete.call(d,b,a),triggerGlobal(c,d,"ajaxComplete",[b,c]),ajaxStop(c)}function empty(){}function mimeToDataType(a){return a&&(a=a.split(";",2)[0]),a&&(a==htmlType?"html":a==jsonType?"json":scriptTypeRE.test(a)?"script":xmlTypeRE.test(a)&&"xml")||"text"}function appendQuery(a,b){return b==""?a:(a+"&"+b).replace(/[&?]{1,2}/,"?")}function serializeData(a){a.processData&&a.data&&$.type(a.data)!="string"&&(a.data=$.param(a.data,a.traditional)),a.data&&(!a.type||a.type.toUpperCase()=="GET")&&(a.url=appendQuery(a.url,a.data),a.data=undefined)}function parseArguments(a,b,c,d){var e=!$.isFunction(b);return{url:a,data:e?b:undefined,success:e?$.isFunction(c)?c:undefined:b,dataType:e?d||c:c}}function serialize(a,b,c,d){var e,f=$.isArray(b),g=$.isPlainObject(b);$.each(b,function(b,h){e=$.type(h),d&&(b=c?d:d+"["+(g||e=="object"||e=="array"?b:"")+"]"),!d&&f?a.add(h.name,h.value):e=="array"||!c&&e=="object"?serialize(a,h,c,b):a.add(b,h)})}var jsonpID=0,document=window.document,key,name,rscript=/)<[^<]*)*<\/script>/gi,scriptTypeRE=/^(?:text|application)\/javascript/i,xmlTypeRE=/^(?:text|application)\/xml/i,jsonType="application/json",htmlType="text/html",blankRE=/^\s*$/;$.active=0,$.ajaxJSONP=function(a,b){if("type"in a){var c=a.jsonpCallback,d=($.isFunction(c)?c():c)||"jsonp"+ ++jsonpID,e=document.createElement("script"),f=window[d],g,h=function(a){$(e).triggerHandler("error",a||"abort")},i={abort:h},j;return b&&b.promise(i),$(e).on("load error",function(c,h){clearTimeout(j),$(e).off().remove(),c.type=="error"||!g?ajaxError(null,h||"error",i,a,b):ajaxSuccess(g[0],i,a,b),window[d]=f,g&&$.isFunction(f)&&f(g[0]),f=g=undefined}),ajaxBeforeSend(i,a)===!1?(h("abort"),i):(window[d]=function(){g=arguments},e.src=a.url.replace(/=\?/,"="+d),document.head.appendChild(e),a.timeout>0&&(j=setTimeout(function(){h("timeout")},a.timeout)),i)}return $.ajax(a)},$.ajaxSettings={type:"GET",beforeSend:empty,success:empty,error:empty,complete:empty,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:jsonType,xml:"application/xml, text/xml",html:htmlType,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0},$.ajax=function(options){var settings=$.extend({},options||{}),deferred=$.Deferred&&$.Deferred();for(key in $.ajaxSettings)settings[key]===undefined&&(settings[key]=$.ajaxSettings[key]);ajaxStart(settings),settings.crossDomain||(settings.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(settings.url)&&RegExp.$2!=window.location.host),settings.url||(settings.url=window.location.toString()),serializeData(settings),settings.cache===!1&&(settings.url=appendQuery(settings.url,"_="+Date.now()));var dataType=settings.dataType,hasPlaceholder=/=\?/.test(settings.url);if(dataType=="jsonp"||hasPlaceholder)return hasPlaceholder||(settings.url=appendQuery(settings.url,settings.jsonp?settings.jsonp+"=?":settings.jsonp===!1?"":"callback=?")),$.ajaxJSONP(settings,deferred);var mime=settings.accepts[dataType],headers={},setHeader=function(a,b){headers[a.toLowerCase()]=[a,b]},protocol=/^([\w-]+:)\/\//.test(settings.url)?RegExp.$1:window.location.protocol,xhr=settings.xhr(),nativeSetHeader=xhr.setRequestHeader,abortTimeout;deferred&&deferred.promise(xhr),settings.crossDomain||setHeader("X-Requested-With","XMLHttpRequest"),setHeader("Accept",mime||"*/*");if(mime=settings.mimeType||mime)mime.indexOf(",")>-1&&(mime=mime.split(",",2)[0]),xhr.overrideMimeType&&xhr.overrideMimeType(mime);(settings.contentType||settings.contentType!==!1&&settings.data&&settings.type.toUpperCase()!="GET")&&setHeader("Content-Type",settings.contentType||"application/x-www-form-urlencoded");if(settings.headers)for(name in settings.headers)setHeader(name,settings.headers[name]);xhr.setRequestHeader=setHeader,xhr.onreadystatechange=function(){if(xhr.readyState==4){xhr.onreadystatechange=empty,clearTimeout(abortTimeout);var result,error=!1;if(xhr.status>=200&&xhr.status<300||xhr.status==304||xhr.status==0&&protocol=="file:"){dataType=dataType||mimeToDataType(settings.mimeType||xhr.getResponseHeader("content-type")),result=xhr.responseText;try{dataType=="script"?(1,eval)(result):dataType=="xml"?result=xhr.responseXML:dataType=="json"&&(result=blankRE.test(result)?null:$.parseJSON(result))}catch(e){error=e}error?ajaxError(error,"parsererror",xhr,settings,deferred):ajaxSuccess(result,xhr,settings,deferred)}else ajaxError(xhr.statusText||null,xhr.status?"error":"abort",xhr,settings,deferred)}};if(ajaxBeforeSend(xhr,settings)===!1)return xhr.abort(),ajaxError(null,"abort",xhr,settings,deferred),xhr;if(settings.xhrFields)for(name in settings.xhrFields)xhr[name]=settings.xhrFields[name];var async="async"in settings?settings.async:!0;xhr.open(settings.type,settings.url,async,settings.username,settings.password);for(name in headers)nativeSetHeader.apply(xhr,headers[name]);return settings.timeout>0&&(abortTimeout=setTimeout(function(){xhr.onreadystatechange=empty,xhr.abort(),ajaxError(null,"timeout",xhr,settings,deferred)},settings.timeout)),xhr.send(settings.data?settings.data:null),xhr},$.get=function(a,b,c,d){return $.ajax(parseArguments.apply(null,arguments))},$.post=function(a,b,c,d){var e=parseArguments.apply(null,arguments);return e.type="POST",$.ajax(e)},$.getJSON=function(a,b,c){var d=parseArguments.apply(null,arguments);return d.dataType="json",$.ajax(d)},$.fn.load=function(a,b,c){if(!this.length)return this;var d=this,e=a.split(/\s/),f,g=parseArguments(a,b,c),h=g.success;return e.length>1&&(g.url=e[0],f=e[1]),g.success=function(a){d.html(f?$("
    ").html(a.replace(rscript,"")).find(f):a),h&&h.apply(d,arguments)},$.ajax(g),this};var escape=encodeURIComponent;$.param=function(a,b){var c=[];return c.add=function(a,b){this.push(escape(a)+"="+escape(b))},serialize(c,a,b),c.join("&").replace(/%20/g,"+")}}(Zepto),function(a){a.fn.serializeArray=function(){var b=[],c;return a([].slice.call(this.get(0).elements)).each(function(){c=a(this);var d=c.attr("type");this.nodeName.toLowerCase()!="fieldset"&&!this.disabled&&d!="submit"&&d!="reset"&&d!="button"&&(d!="radio"&&d!="checkbox"||this.checked)&&b.push({name:c.attr("name"),value:c.val()})}),b},a.fn.serialize=function(){var a=[];return this.serializeArray().forEach(function(b){a.push(encodeURIComponent(b.name)+"="+encodeURIComponent(b.value))}),a.join("&")},a.fn.submit=function(b){if(b)this.bind("submit",b);else if(this.length){var c=a.Event("submit");this.eq(0).trigger(c),c.isDefaultPrevented()||this.get(0).submit()}return this}}(Zepto),function(a){"__proto__"in{}||a.extend(a.zepto,{Z:function(b,c){return b=b||[],a.extend(b,a.fn),b.selector=c||"",b.__Z=!0,b},isZ:function(b){return a.type(b)==="array"&&"__Z"in b}});try{getComputedStyle(undefined)}catch(b){var c=getComputedStyle;window.getComputedStyle=function(a){try{return c(a)}catch(b){return null}}}}(Zepto); - if ( typeof module === "object" && module && typeof module.exports === "object" ) { - module.exports = Zepto; - } else { - window.Zepto = window.$ = Zepto; - if ( typeof define === "function" && define.amd ) { - define( "zepto", [], function () { return Zepto; } ); - } - } -}); \ No newline at end of file diff --git a/test/components/all.html b/test/components/all.html deleted file mode 100644 index 84df2b0..0000000 --- a/test/components/all.html +++ /dev/null @@ -1,627 +0,0 @@ - - - - - - - Squirrel Test All Components - - -
    - -
    -

    LoadMore

    -
    -
    -
    - - - -
    -
    -
    -
      -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    -
    -
    -
    -
    - -
    -

    LazyLoad

    -
    -
    -
    - - - -
    -
    -
    -
      -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    -
    -
    -
    - -
    -

    Dialog

    -
    -
    -
    - - - -
    -
    -
    单次响应全屏窗口
    -
    -
    固定尺寸窗口
    关闭固定窗口
    -
    -
    自动关闭窗口
    -
    -
    -
    -
    -

    TouchSlip

    -
    -
    -
    - - -
    -
    -
    -
      -
    • -
    • -
    • -
    -
    - -
    -
    -
    -
    -
    -

    Suggest

    -
    -
    -
    - - - -
    -
    - -
    -
    -
    -

    Tabs

    -
    -
    -
    - - - -
    -
    -
    -
      -
    • tab 1
    • -
    • tab 2
    • -
    • tab 3
    • -
    -
    -
    -
      -
    • -
      -
      -
      UC浏览器9.0不止所见
      -
      32372 人推荐下载
      -
      工具软件 | 8.2MB
      -
      - - -
    • -
    -
    -
    -
    -
    -
      -
      -
      -
      -
      -
        -
        -
        -
        -
        -
        -
        - - - - - - - \ No newline at end of file diff --git a/test/components/css/test-all.css b/test/components/css/test-all.css deleted file mode 100644 index f94069f..0000000 --- a/test/components/css/test-all.css +++ /dev/null @@ -1,70 +0,0 @@ -/*Test All*/ -.test-all-components{ min-width:1800px; padding-right:12px; overflow:hidden;} -.test-all-components section{ float:left; width:300px;} -.test-all-components section h2{ padding:5px 10px; background:#eee; font-size:30px; border-left:1px solid #fff; border-right:1px solid #d7d7d7;} -.test-all-components section .demo{ min-height:700px; padding:20px 10px; border-right:1px dotted #d7d7d7;} -.test-all-components .test-key-point{ padding:0 10px 20px;} -.test-all-components .space{ height:30px;} -.test-key-point .sq-form{ margin-bottom:0;} -.test-key-point .sq-form label{ padding-right:0;} - -/*Dialog*/ -/* 全屏窗口 */ -.dialog-demo1 .ok, -.dialog-demo1 .cancel{ display:none;} -.dialog-demo1 .demo-text, -.dialog-demo2 .demo-text, -.dialog-demo3 .demo-text{ position:absolute; top:50%; left:50%; width:150px; height:30px; margin:-15px 0 0 -75px; line-height:30px; text-align:center; font-size:20px;} - -/* 固定尺寸窗口 */ -.dialog-demo2{ border:8px solid rgba(0,0,0,.3);} -.dialog-demo2 .close-btn{ display:none;} -.dialog-demo2 .demo-text{ margin:-25px 0 0 -75px;} - -/* 自动关闭窗口 */ -.dialog-demo3.sq-dialog{ background:rgba(0,0,0,.4);} -.dialog-demo3 .ok, -.dialog-demo3 .cancel, -.dialog-demo3 .close-btn{ display:none;} -.dialog-demo3 .content{ bottom:10px; color:#fff;} - -/*TouchSlip*/ -.touch-gallery { -webkit-box-sizing:border-box; position:relative; width:100%; height:260px; padding:10px; -webkit-transform:translate3d(0px, 0px, 0px); overflow:hidden;} -.touch-gallery ul { position:absolute; -webkit-user-select:none;} -.touch-gallery img { max-width:160px; max-height:240px;} -.touch-gallery .touch-item { float: left; width:160px; height:240px; margin-right:10px;} -.touch-gallery .touch-item:last-of-type { margin-right:0;} -.touch-img-slider { position:relative; width:280px; height:160px; -webkit-transform:translate3d(0px, 0px, 0px); overflow:hidden;} -.touch-img-slider ul { position:absolute;} -.touch-img-slider .touch-item { float:left; width:280px; height:160px;} -.touch-img-slider .dot { position:absolute; right:10px; bottom:10px; overflow:hidden;} -.touch-img-slider .dot i { display:block; float:left; width:20px; height:5px; margin-right:3px; background:#999;} -.touch-img-slider .dot .active { background:#ff6600;} -.touch-box-scroll { position:relative; height:300px; overflow:hidden;} -.touch-box-scroll ul { -webkit-box-sizing:border-box; position:absolute; width:100%; padding-right:10px;} - -/*Suggest*/ -.dpl-searchbar{ position:relative;} -.suggest-panel { display:none; -webkit-box-sizing:border-box; position:absolute; top:44px; left:0px; right:0px; background: #f9f9f9; border:1px solid #d7d7d7; z-index:1; box-shadow:0 6px 9px #999;} -.suggest-panel li:last-of-type { border-bottom:none;} -.suggest-panel .sq-list { border-bottom:1px solid #d7d7d7;} -.suggest-panel .sq-list li { padding:5px 10px;} -.suggest-panel .sq-list .icon { width:35px; height:35px;} -.suggest-panel .sq-list img { width:35px; height:35px;} -.suggest-panel .sq-list .description { margin-top:1px;} -.suggest-panel .sq-list .description dt { margin-bottom:2px;} -.suggest-panel .sq-list .description dd { color:#999;} -.suggest-panel .sq-list .description em { margin-left:8px; padding-left:8px; border-left:1px solid #ddd;} -.suggest-panel .sq-list .sq-btn { width:45px;} -.suggest-panel .sq-list .trigger-area { right:80px;} -.suggest-panel .keyword { height:30px; padding:0 10px; line-height:30px; border-bottom:1px solid #d7d7d7;} -.suggest-panel .keyword a { display:block; height:30px; line-height:30px; color:#555; overflow:hidden; text-overflow: ellipsis;} - -/*Tabs*/ -.dpl-tabs .tabs {border-top:1px solid #d7d7d7; border-right:1px solid #d7d7d7; overflow:hidden;} -.dpl-tabs .tabs li { min-width:40px; height:40px; padding:0 10px; border-left:1px solid #d7d7d7; line-height:40px; text-align:center; overflow:hidden; cursor:pointer;} -.dpl-tabs .tabs li.active { background:#d7d7d7;} -.dpl-tabs .panels { display:none; border:1px solid#d7d7d7; min-height:100px;} -.dpl-tabs .panels.active { display:block;} -.tab-loading-tip{ padding:40px 10px; text-align:center; line-height:1.5;} - diff --git a/test/components/data/list-900.json b/test/components/data/list-900.json deleted file mode 100644 index 4e80d50..0000000 --- a/test/components/data/list-900.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "code": 900, - "context": "", - "data": "
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>" -} \ No newline at end of file diff --git a/test/components/data/list.json b/test/components/data/list.json deleted file mode 100644 index ec4c47b..0000000 --- a/test/components/data/list.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "code": 200, - "context": "", - "data": "
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>" -} \ No newline at end of file diff --git a/test/components/data/suggest.json b/test/components/data/suggest.json deleted file mode 100644 index 453e81e..0000000 --- a/test/components/data/suggest.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "code":200, - "context":{}, - "data":[ - {"appName": "UC浏览器", "icon": "http://s1.app.uc.cn/asset/2013/06/07/UCweb72.png", "version":"9.1.457", "size":"9.5MB", "detailURL":"#detail", "packageURL": "#package"}, - {"appName": "来电通", "icon": "http://s1.app.uc.cn/asset/2013/05/30/CallMaster72.png", "version":"5.2.1", "size":"6.5MB", "detailURL":"#detail", "packageURL": "#package"}, - {"keyword": "QQ浏览器"}, - {"keyword": "Firefox"}, - {"keyword": "Safari"}, - {"keyword": "Chrome"}, - {"keyword": "猎豹浏览器"}, - {"keyword": "360浏览器"} - ] -} \ No newline at end of file diff --git a/test/components/data/tabs1.json b/test/components/data/tabs1.json deleted file mode 100644 index c605748..0000000 --- a/test/components/data/tabs1.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "code":200, - "context":{}, - "data": "
      • <\/i><\/div>
        UC浏览器9.1不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>" -} \ No newline at end of file diff --git a/test/components/data/tabs2.json b/test/components/data/tabs2.json deleted file mode 100644 index 5c2d6b2..0000000 --- a/test/components/data/tabs2.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "code":200, - "context":{}, - "data": "
      • <\/i><\/div>
        UC浏览器9.2不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>" -} \ No newline at end of file diff --git a/test/components/data/tabs3.json b/test/components/data/tabs3.json deleted file mode 100644 index b62eb98..0000000 --- a/test/components/data/tabs3.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "code":200, - "context":{}, - "data": "
      • <\/i><\/div>
        UC浏览器9.3不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>
      • <\/i><\/div>
        UC浏览器9.0不止所见<\/dt>
        32372 人推荐下载<\/dd>
        工具软件 | 8.2MB<\/dd><\/dl>
        免费下载<\/a><\/div><\/div><\/a><\/li>" -} \ No newline at end of file diff --git a/test/components/images/sq-icon.png b/test/components/images/sq-icon.png deleted file mode 100644 index 995fa1f45cdcf0d6c511d7ee8e0662c49a380374..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2064 zcmV+r2=DiaP)FMd{ z=;+ha)BF4T(b3W6<>lJi+Wr0g{QUg(_V&`!(%0A5_4W1E*4E+A3D@A~@s?d|RA>gwO$-|Xz{ z;o;%%@bKj1 zc8J=~k6>&V-E4JO9ajC&q~&G?Kpe-w@zsU+FJR5pkqiq%-`tJA#j?E_#0@K&{2i8U z_91D==fA?bTd-lfF+ezV@AbAN^t}TIADpad%z=`>XMh2 zFOCTfmWsc3*enP%DlrratONd5|0nlp2g|0w+F|cBelNQ1)QKn7*?LCTq#dk1t8G1t zfxg%ZR=~Iujn`GF6)cxAhe*Fp^ha2-jl1vix_oK{YgmgFWA9t0)Mn5E){U{u$On3` z=Zc15Jy<8&9k;YZh4kIwnUfldU2XamnpQ;DsgVOaalwCqx60 z6PC&}Std(<-2iJMGsMHdXR6*BVAX1GdN~$Gl{Z8ju+-*0Yp=8HkVaUy#wpDnu$OPN zSmRp5D#{|lc}kP{U*E$r;#!Te(Cb*nkZQ#5Vbz+upYx8r1GTV8$_weRe0rUExSYZU z5!~fBY@aoJo0jho^aU`9+Nc35-ZGo zg@%9a>K%%cqOXp*XA%0hyXIJA?`|FOcPx^k9ZkKg%$^*mE6YkOi5vne^w~>sm-KUM zIS)BtkxPo2a;jH!R@+?XtQWp*@=F3#Kc9w9u18Z%mgmK|kOKD0TQ-g5xnYnWa4Y4C7UlzKOcV0&Kqcj(q=UaqI%6a+9Kq* zoLW(FWk=d3WINM6sciKF9#~RkmU|@!y1~oz1T=7+dhcUlyJGTl1tYqee^Z)EW%wo* z*5GeQqy%9Y&dPy!@cQr_W-@o?&1S~J)`ja_H$y(D(sSpHC3U0Y6IOgDQU>8J@@@=R zxInSZ1lp~F_<0d23_Xhe6*wDBu>dhOa=#*?iE}vDf^&bKo-!(vTdQF~W|I{b08gYZ zdBz;psA(}A8)3Obdskt_DY77MVndo;i^5KjTWElFEZi>rgb1bNRrB%HIU4N2r;L>k zX708s6be>J^_rhopl@wM#hbqs6HA$?m9tF4suphcSV2Z?aMBpisx*K`gu9e%iSghk zpv|^&7Jsj8a;op1oT7H8nKr5w5~!1}!wOH;7rA1&MK z)U~8xh6cV2kgZuFiTtsO#o0>*v5N&RkZ>AAHj|qncdSPb;Le{6@BT9&$LmZP5de?3 zH0W|#LBYS0r7g};bj;W98o6cejCo^yP0fgEcg?FB?hT?geFflV+W)|%SH-Yp3P-H3 z+~Ja@I%`}ORsV9!xecuEPxcN^llIYaS*m_VsjoZ!%4-Sh$IOn(!3R)2dDqm4C;M-& zt8eu!0AM单次响应的全屏窗口示例

        "); - }, - resize : function () { - - } -}); -var dialogDemo2 = new SQ.Dialog({ - EVE_EVENT_TYPE : "click", - DOM_TRIGGER_TARGET : ".J_showDemo2", - CSS_STYLE : ".dialog-demo2", - CSS_WIDTH : 240, - CSS_HEIGHT : 150, - VERTICAL : "middle", - HORIZONTAL : "center", - //MASK : true, - //LOCK : true, - show : function () { - var me = this; - me.$dialogContent.append("

        固定尺寸窗口

        "); - $(".J_closeBtn").off("click").on("click", function () { - me.$okBtn.trigger("click"); - }); - }, - ok : function () { - - }, - cancel : function () { - - } -}); -var dialogDemo3 = new SQ.Dialog({ - EVE_EVENT_TYPE : "click", - DOM_TRIGGER_TARGET : ".J_showDemo3", - CSS_STYLE : ".dialog-demo3", - CSS_WIDTH : 240, - CSS_HEIGHT : 100, - VERTICAL : "middle", - HORIZONTAL : "center", - NUM_CLOSE_TIME : 2000, - MASK : true, - show : function () { - var me = this; - me.$dialogContent.append("

        2 秒后自动关闭

        "); - }, - ok : function () { - - }, - cancel : function () { - - } -}); - -//---------------------------------------------------------------------------- -// LazyLoad test -//---------------------------------------------------------------------------- -var imglazyload = new SQ.LazyLoad({ - DOM_LAZY_ITEMS : ".J_lazyload", - DOM_LAZY_PARENT : ".sq-list .icon", - CSS_PLACEHOLDER : ".default-icon", - IMG_PLACEHOLDER : "images/sq-icon.png", - NUM_THRESHOLD : 250 -}); - -//---------------------------------------------------------------------------- -// LoadMore test -//---------------------------------------------------------------------------- -var LoadMoreDemo = new SQ.LoadMore({ - EVE_EVENT_TYPE : "scroll", - DOM_TRIGGER_TARGET : window, - DOM_AJAX_BOX : ".J_ajaxWrap", - DOM_STATE_BOX : ".J_scrollLoadMore", - CSS_INIT_STYLE : "sq-loadMore-btn", - //NUM_START_PAGE_INDEX : 1, - //NUM_SCROLL_MAX_PAGE : 3, - DATA_TYPE : "html", - //LOCAL_DATA : true, - render : function (data) { - //console.log("render: " + data); - }, - scrollEnd : function () { - var me = this; - me.$stateBox.addClass("sq-loadMore-clickState"); - //console.log("scrollEnd"); - }, - loaded : function () { - var me = this; - console.log(me.page); - /*if (me.page === 3) { - me.api = "data/list-900.json"; - }*/ - // 模拟第 n 次滑动加载失败 - if (me.page === 3) { - me.api = "data/list-error.json"; - } - //console.log("loaded"); - }, - loadError : function () { - var me = this; - //console.log(me.api) - // 模拟滑动加载在点击加载后恢复正常 - me.api = "data/list.json"; - //console.log("loadError"); - } -}); - -//---------------------------------------------------------------------------- -// TouchSlip test -//---------------------------------------------------------------------------- -(function imgSlider() { - // 图片画廊,横向滑动的图片 - var $imgSlider = $(".touch-img-slider").find("ul"); - var $dot = $(".dot").find("i"); - var len = $imgSlider.find(".touch-item").length; - var W = len * 290; - - $imgSlider.width(W); - - function changeScreenEndFun() { - $dot.removeClass("active"); - $dot.eq(this.page).addClass("active"); - } - - var picSlider = SQ.TouchSlip({ - MODE : "page", - DOM_TRIGGER_TARGET : ".J_imgSlider", - AUTO_TIMER: 5000, - NUM_PAGES: 3, - endFun: changeScreenEndFun - }); -}()); - -//---------------------------------------------------------------------------- -// Suggest test -//---------------------------------------------------------------------------- -(function suggest() { - function renderSuggestPanel(me, ds) { - SQ.TEMP = SQ.TEMP || {}; - var searchUri = config.search_URI + "&keyword="; - var suggestList = "
        "; - me.$suggestPanel.append(suggestList).show(); - } - - var suggestTips = new SQ.Suggest({ - DOM_INPUT : ".J_searchInput", - DOM_CLEAR_BTN : ".J_clearInput", - DOM_SUGGEST_PANEL : ".J_suggest", - API_URL : config.search_API, - show : function (ds) { - var me = this; - renderSuggestPanel(me, ds); - } - }); -}()); - -//---------------------------------------------------------------------------- -// Tabs test -//---------------------------------------------------------------------------- -function renderPanelContent(ds, $panel) { - var hasLoadTab = $panel.find(".J_hasLoadTab").length > 0 ? true : false; - // 选项卡异步加载 - if (!hasLoadTab && !SQ.core.isNull(ds)) { - var $tabLoadWrap = $panel.find(".J_tabLoadWrap"); - $tabLoadWrap.addClass("J_hasLoadTab").append(ds.data); - } -} - -function creatLoadMore($panel, tabIndex) { - // 清除原有滑动加载内容 - $(".J_scrollLoadWrap").remove(); - $(window).off("scroll"); - - var index = parseInt(tabIndex, 10) + 1; - var $appListWrap = $('
        '); - var $ul = $('
          '); - var $loadMore = $('
          '); - $appListWrap.append($ul).append($loadMore); - $panel.append($appListWrap); - - var appList = new SQ.LoadMore({ - EVE_EVENT_TYPE: "scroll", - DOM_TRIGGER_TARGET: window, - DOM_AJAX_BOX: ".J_ajaxWrap" + index, - DOM_STATE_BOX: ".J_scrollLoadMore" + index, - CSS_INIT_STYLE: "sq-loadMore-btn", - DATA_TYPE: "html", - NUM_SCROLL_MAX_PAGE: 2 - }); -} - -var tabs = new SQ.Tabs({ - EVE_EVENT_TYPE: "click", - DOM_TRIGGER_TARGET: ".J_tabs", - DOM_TABS: ".tabs>li", - DOM_PANELS: ".panels", - //API_URL: "data/content.json", - API_URL: ["data/tabs1.json", "data/tabs2.json", "data/tabs3.json"], - CSS_LOADING_TIP: "tab-loading-tip", - NUM_ACTIVE: 0, - LOCAL_DATA: true, - show: function ($tabs, $panels, tabIndex) { - /*var $activePanels = $panels.eq(tabIndex); - // 选项卡只会进行一次异步加载,所以要在 show 回调函数里执行 creatLoadMore - if ($activePanels.hasClass("hasLoad")) { - creatLoadMore($activePanels, tabIndex); - }*/ - }, - loaded: function (data, $activePanels) { - var tabIndex = $activePanels.index() - 1; - renderPanelContent(data, $activePanels); - /*// 首先在 loaded 回调函数里执行 creatLoadMore 确保显示顺序 - creatLoadMore($activePanels, tabIndex); - $activePanels.addClass("hasLoad");*/ - } -}); \ No newline at end of file diff --git a/test/unit/base/modules-loaded.js b/test/unit/base/modules-loaded.js deleted file mode 100644 index cef5ac1..0000000 --- a/test/unit/base/modules-loaded.js +++ /dev/null @@ -1,29 +0,0 @@ -//module("模块集成测试"); - -test("核心", function() { - notEqual(typeof SQ.core, "undefined", "core 已集成"); - notEqual(typeof SQ.dom, "undefined", "dom 已集成"); - notEqual(typeof SQ.store, "undefined", "store 已集成"); - notEqual(typeof SQ.ua, "undefined", "ua 已集成"); - notEqual(typeof SQ.util, "undefined", "util 已集成"); -}); - -test("插件", function() { - notEqual(typeof SQ.Button, "undefined", "Button 已集成"); - notEqual(typeof SQ.LoadMore, "undefined", "LoadMore 已集成"); - notEqual(typeof SQ.Suggest, "undefined", "Suggest 已集成"); - notEqual(typeof SQ.Tabs, "undefined", "Tabs 已集成"); - notEqual(typeof SQ.TouchSlip, "undefined", "TouchSlip 已集成"); -}); - -test("插件样式", function() { - -}); -console.log($(".sq-btn").css("min-width")); - -/* -module("Test"); - -test( "a test", function() { - notEqual(typeof SQ.Hello, "undefined", "Button 已集成"); -});*/ diff --git a/test/unit/test-runner.html b/test/unit/test-runner.html deleted file mode 100644 index 1a76840..0000000 --- a/test/unit/test-runner.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Squirrel 模块集成测试 - - - - - -
          -
          -
          -
          Button
          -
          - - - - - - - \ No newline at end of file
        • 55jDLx6g_=;sJC|~Z7e}YYA{jvV6 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 k_ejX>oT6PI31FL0jCN04-LW0);}MK&idH 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