├── old
├── control
│ └── Acore.js
├── image
│ ├── 1.jpg
│ └── loading_img_56@2x.png
├── dist
│ ├── fonts
│ │ ├── ionicons.eot
│ │ ├── ionicons.ttf
│ │ └── ionicons.woff
│ ├── css
│ │ └── base.css
│ └── js
│ │ └── angular-animate.js
├── register.php
├── view
│ ├── map.html
│ ├── preview.html
│ ├── setting.html
│ ├── gameDetail.html
│ ├── login.html
│ ├── register.html
│ ├── game.html
│ ├── hot.html
│ └── index.html
├── baiduApi.php
├── baiduApi2.php
├── login.php
├── baiduApi3.php
├── ghpage
│ ├── tab.html
│ └── touch.html
├── README.md
└── index.html
├── vue-news
├── .babelrc
├── public
│ ├── wscats.jpg
│ ├── images
│ │ └── wscats.jpg
│ ├── b30684b1cb89e7e4851903728c77296f.jpg
│ ├── index.html
│ └── api
│ │ ├── detail.json
│ │ └── list.json
├── app
│ ├── channel
│ │ ├── hot.vue
│ │ ├── recommend.vue
│ │ └── entertainment.vue
│ ├── index.vue
│ ├── wheader.vue
│ ├── wdetail.vue
│ ├── wsearch.vue
│ ├── wswiper.vue
│ └── wpannel.vue
├── package.json
├── webpack.config.js
└── main.js
├── webroot
├── index.css
├── news
│ ├── README.md
│ ├── dist
│ │ ├── html
│ │ │ ├── template
│ │ │ │ ├── setting.html
│ │ │ │ ├── login.html
│ │ │ │ ├── newsList.html
│ │ │ │ ├── secondList.html
│ │ │ │ ├── thirdList.html
│ │ │ │ ├── index.html
│ │ │ │ ├── register.html
│ │ │ │ ├── logins.html
│ │ │ │ └── detail.html
│ │ │ └── directive
│ │ │ │ ├── loading.html
│ │ │ │ ├── searchBar.html
│ │ │ │ ├── swiper.html
│ │ │ │ └── newsList.html
│ │ ├── image
│ │ │ ├── psb.webp.jpg
│ │ │ ├── psb.webp2.jpg
│ │ │ ├── windiest.jpg
│ │ │ └── loading_img_56@2x.png
│ │ └── js
│ │ │ └── main.windiest.js
│ ├── template
│ │ ├── setting.html
│ │ ├── newsList.html
│ │ ├── secondList.html
│ │ ├── thirdList.html
│ │ ├── index.html
│ │ ├── register.html
│ │ ├── logins.html
│ │ └── detail.html
│ ├── image
│ │ ├── psb.webp.jpg
│ │ ├── psb.webp2.jpg
│ │ ├── windiest.jpg
│ │ ├── windiest.png
│ │ ├── loading_img_56@2x.png
│ │ └── b5fd500a56552f4687a0.jpg
│ ├── directive
│ │ ├── loading.html
│ │ ├── searchBar.html
│ │ ├── swiper.html
│ │ └── newsList.html
│ ├── index.html
│ ├── package.json
│ ├── news.php
│ ├── test.html
│ ├── indexTest.html
│ ├── js
│ │ ├── directive
│ │ │ └── directive.js
│ │ ├── service
│ │ │ └── service.js
│ │ ├── ngPost.js
│ │ ├── base.js
│ │ └── controller
│ │ │ └── controller.js
│ ├── gulpfile.js
│ └── css
│ │ └── swiper.css
├── favicon.ico
├── cms
│ ├── sqll.js
│ ├── test.html
│ ├── cms.js
│ ├── sql.js
│ └── news.js
├── index.js
└── index.html
├── .gitignore
├── index.js
├── mime.js
├── .project
├── turingApi.js
├── newsApi.js
├── package.json
├── README.md
├── gulpfile.js
└── http.js
/old/control/Acore.js:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/vue-news/.babelrc:
--------------------------------------------------------------------------------
1 | { "presets": [ "es2015" ] }
2 |
--------------------------------------------------------------------------------
/webroot/index.css:
--------------------------------------------------------------------------------
1 | p {
2 | color: red;
3 | }
4 |
--------------------------------------------------------------------------------
/webroot/news/README.md:
--------------------------------------------------------------------------------
1 | ###Hello I'm wscat, nice to meet u~
2 |
--------------------------------------------------------------------------------
/webroot/news/dist/html/template/setting.html:
--------------------------------------------------------------------------------
1 |

52 | .loading {
53 | position: absolute;
54 | z-index: 20;
55 | width: 100%;
56 | height: 100%;
57 | top: 0;
58 | opacity: 0.5;
59 | }
60 |
61 | .loading img {
62 | position: fixed;
63 | left: 50%;
64 | top: 50%;
65 | margin-left: -28px;
66 | margin-top: -28px;
67 | animation: mymove 2s infinite;
68 | animation-timing-function: linear;
69 | animation-direction: normal;
70 | }
71 | ```
72 |
73 | #页内切换视图
74 | [页内切换视图DEMO](https://wscats.github.io/news/ghpage/tab.html)
75 |
76 | 
77 | 
78 |
79 | 视图如下,思路为根据点击的选项卡,用ng-if或者ng-show实现隐藏或者出现
80 | ```
81 |
82 |
86 |
87 |
88 |
89 | ```
90 | ```
91 | $scope.page1 =true
92 | $scope.page2 =false
93 | $scope.show = function(page){
94 | if(page==1){
95 | $scope.page1 =true;
96 | $scope.page2 =false;
97 | }else if(page==2){
98 | $scope.page2 = true;
99 | $scope.page1 =false
100 | }
101 | }
102 | ```
103 |
--------------------------------------------------------------------------------
/webroot/news/directive/newsList.html:
--------------------------------------------------------------------------------
1 |
2 |
点击文字此处进行排序
3 |
4 |
10 |
11 |
24 |
31 |
32 |
33 | 正在加载
34 |
35 |
36 |
37 |
44 |
45 |
46 |
47 |
48 |
60 |
--------------------------------------------------------------------------------
/http.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @author wsscat
3 | */
4 | //require属于AMD加载方案 seajs属于CMD加载方案
5 | //创建服务器模块
6 | var http = require('http');
7 | //读取文件的模块
8 | var fs = require('fs');
9 | //处理url的模块
10 | var url = require('url');
11 | //解析url的信息
12 | var path = require('path');
13 | //mime格式content-type格式
14 | var mime = require('./mime.js')
15 | //处理字符串的模块
16 | var querystring = require('querystring')
17 |
18 | //获取新闻信息的函数拿回来
19 | var newsApi = require('./newsApi.js');
20 | exports.newsApi = newsApi.newsApi;
21 |
22 | //获取图灵机器人信息的函数拿回来
23 | var turingApi = require('./turingApi.js');
24 | exports.turingApi = turingApi.turingApi;
25 |
26 | //引入cms的路由模块
27 | var newsCms = require('./webroot/cms/cms.js');
28 |
29 | //用nodejs的原生模块http的createServer方法创建一个服务器
30 | http.createServer((request, response) => {
31 | //解决跨域
32 | //response.setHeader('Access-Control-Allow-Origin', '*');
33 | //处理字符串,避免中文或者符号的识别问题
34 | var pathname = url.parse(request.url).pathname;
35 | //拿url的参数
36 | var paramStr = url.parse(request.url).query;
37 | //把url拿回来的参数处理成对象
38 | var param = querystring.parse(paramStr)
39 | //console.log("路由" + pathname);
40 | //判断浏览器只输入localhost:12345的情况
41 | if(pathname.slice(-1) === "/") {
42 | pathname = pathname + 'index.html';
43 | }
44 | //拼接绝对路径
45 | var absPath = __dirname + '/webroot' + pathname
46 | //注意/webroot/index.html资源路径是错误的
47 | //这个才是正确的./webroot/index.html
48 | //判断是否存在我们要请求的文件
49 | fs.exists(absPath, function(exists) {
50 | //exists返回一个布尔值,根据布尔值判断文件是否存在,如果存在则fs.readFile读取该文件,并把读取的结果返回给浏览器
51 | if(exists) {
52 | //读取webroot服务器文件夹的某个资源,以二进制的方式读取
53 | fs.readFile(absPath, 'binary', function(err, data) {
54 | //如果找到对应的资源文件,提示404错误
55 | if(err) {
56 | console.log(err);
57 | //HTTP 状态码: 404 : NOT FOUND
58 | //Content Type: text/plain
59 | response.writeHead(404, {
60 | 'Content-Type': 'text/html'
61 | });
62 | }
63 | //获取文件的后缀格式,格式如.css .html .js
64 | var ext = path.extname(pathname);
65 | //处理后缀,例如把.css处理成css
66 | ext = ext.slice(1);
67 | var contentType = mime.types[ext];
68 | //写文件的请求头
69 | response.writeHead(200, {
70 | 'Content-Type': contentType
71 | })
72 | //以二进制的方式解析结果,并输出到浏览器
73 | response.end(data, 'binary');
74 | })
75 | } else {
76 | //文件不存在则判断是否能进入某个路由,没有则输出404
77 | //根据路由判断进入到那个分支
78 | switch(pathname) {
79 | case '/newsApi':
80 | //请求新闻的内容
81 | // 测试链接 http://localhost:12345/newsApi?callback=JSON_CALLBACK&page=1&channelId=5572a109b3cdc86cf39001db&channelName=%E5%9B%BD%E5%86%85%E6%9C%80%E6%96%B0
82 | newsApi.newsApi(param, function() {}, response);
83 | break;
84 | case '/turingApi':
85 | //请求新闻的内容
86 | //测试链接 http://localhost:12345/turingApi?callback=JSON_CALLBACK&message=%E5%A7%9A%E6%98%8E
87 | turingApi.turingApi(param, function() {}, response);
88 | break;
89 | /*default:
90 | //在找不到任何文件的情况重定向到index.html
91 | response.writeHead(302, {
92 | 'Location': '/index.html'
93 | });
94 | //在服务器目录下找不到文件就报404错误
95 | response.end();
96 | //response.end('
404
');
97 | break;*/
98 | }
99 | //新闻CMS的路由,增删查改逻辑
100 | newsCms.curd(request, response)
101 | }
102 | })
103 | }).listen(12345);
104 | //监听12345端口,端口号可以自定义
105 | console.log('在浏览器里面打开http://localhost:12345/news/index.html');
--------------------------------------------------------------------------------
/old/ghpage/touch.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Javascript事件监听
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
32 |
105 |
106 |
--------------------------------------------------------------------------------
/webroot/news/dist/html/template/detail.html:
--------------------------------------------------------------------------------
1 |
{{new.title}}
{{'来源:'+new.source}}
{{new.desc}}
点击查看大图
--------------------------------------------------------------------------------
/webroot/cms/news.js:
--------------------------------------------------------------------------------
1 | var http = require('http');
2 | var url = require('url');
3 | var querystring = require('querystring');
4 | var sqll = require('./sqll');
5 | //输出JSON数据,API接口
6 | var writeOut = function(query, response) {
7 | response.write(JSON.stringify(query));
8 | response.end();
9 | }
10 | //request 接受请求
11 | //response 相应请求
12 | http.createServer(function(request, response) {
13 | request.setEncoding('utf-8');
14 | var pathName = url.parse(request.url).pathname;
15 | var paramsStr = url.parse(request.url).query;
16 | var param = querystring.parse(paramsStr);
17 | //后端路由
18 | console.log("路由:" + pathName);
19 | console.log("参数:" + paramsStr);
20 | //解决跨域
21 | response.setHeader('Access-Control-Allow-Origin', '*');
22 | response.writeHead(200, {
23 | "Content-Type": "text/jsonp;charset=utf-8"
24 | })
25 | console.log(request.method);
26 | if(request.method.toUpperCase() == 'POST') {
27 | var postData = "";
28 | /**
29 | * 因为post方式的数据不太一样可能很庞大复杂,
30 | * 所以要添加监听来获取传递的数据
31 | * 也可写作 req.on("data",function(data){});
32 | */
33 | request.addListener("data", function(data) {
34 | postData += data;
35 | });
36 | /**
37 | * 这个是如果数据读取完毕就会执行的监听方法
38 | */
39 | request.addListener("end", function() {
40 | console.log(postData);
41 | //处理angular的post请求的,去掉"[]",因为replace只替换一次,所以用循环替换
42 | while(postData.indexOf('params%5B') >= 0) {
43 | postData = postData.replace('params%5B', '');
44 | }
45 | while(postData.indexOf('%5D') >= 0) {
46 | postData = postData.replace('%5D', '');
47 | }
48 | var query = querystring.parse(postData);
49 | writeOut(query, response);
50 | });
51 | } else if(request.method.toUpperCase() == 'GET') {
52 | /**
53 | * 也可使用var query=querystring.parse(url.parse(req.url).query);
54 | * 区别就是url.parse的arguments[1]为true:
55 | * 也能达到'querystring库'的解析效果,而且不使用querystring
56 | */
57 | if(pathName == '/add') {
58 | sqll.curd.add('news', 'title,source,text', '"' + param.title + '",' + '"' + param.source + '",' + '"' + param.text + '"', function(err) {
59 | if(err) {
60 |
61 | } else {
62 | var obj = {
63 | status: 1,
64 | info: 'success'
65 | }
66 | response.end(param.callback + "(" + JSON.stringify(obj) + ")");
67 | }
68 | });
69 | /*
70 | * API:http://localhost:8899/find
71 | * params:NULL
72 | * return 新闻:title:标题,source:来源,text:内容
73 | * */
74 | } else if(pathName == '/find') {
75 | sqll.curd.find('news', '*', function(err, rows) {
76 | console.log(rows);
77 | var obj = {};
78 | obj.arr = rows;
79 | response.end(param.callback + "(" + JSON.stringify(obj) + ")");
80 | });
81 | } else if(pathName == '/delete') {
82 | sqll.curd.delete('news', 'id=' + param.id, function(err) {
83 | sqll.curd.find('news', '*', function(err, rows) {
84 | console.log(rows);
85 | var obj = {};
86 | obj.arr = rows;
87 | response.end(param.callback + "(" + JSON.stringify(obj) + ")");
88 | });
89 | });
90 | } else if(pathName == '/findByPk') {
91 | sqll.curd.findByPk('news', '*', 'id=' + param.id, function(err, rows) {
92 | console.log(rows);
93 | var obj = {};
94 | obj.new = rows;
95 | response.end(param.callback + "(" + JSON.stringify(obj) + ")");
96 | });
97 | } else if(pathName == '/update') {
98 | sqll.curd.update('news', 'title="' + param.title + '"' + ', text="' + param.text + '"' + ', source="' + param.source + '"', 'id=' + param.id, function(err) {
99 | if(err) {} else {
100 | var obj = {
101 | status: 1,
102 | info: 'success'
103 | }
104 | response.end(param.callback + "(" + JSON.stringify(obj) + ")");
105 | }
106 | });
107 | } else if(pathName == '/search') {
108 | sqll.curd.findByPk('news', '*', 'text=' + '"' + param.search + '"', function(err, rows) {
109 | console.log(rows);
110 | var obj = {};
111 | obj.new = rows;
112 | response.end(param.callback + "(" + JSON.stringify(obj) + ")");
113 | });
114 | }
115 | } else {
116 | //head put delete options etc.
117 | //注意angular的post请求监听到的了类型是option,所以记得处理
118 | }
119 | }).listen(8899);
120 | console.log("Start server:localhost:8899");
--------------------------------------------------------------------------------
/webroot/index.js:
--------------------------------------------------------------------------------
1 | digit =
2 | [
3 | // [
4 | // [0,0,0,1,1,1,0,0,0],
5 | // [0,0,1,1,0,1,1,0,0],
6 | // [0,1,1,0,0,0,1,1,0],
7 | // [0,1,1,0,0,0,1,1,0],
8 | // [0,1,1,0,0,0,1,1,0],
9 | // [0,1,1,0,0,0,1,1,0],
10 | // [0,1,1,0,0,0,1,1,0],
11 | // [0,1,1,0,0,0,1,1,0],
12 | // [0,0,1,1,0,1,1,0,0],
13 | // [0,0,0,1,1,1,0,0,0]
14 | // ],//0
15 | [
16 | [0,0,1,1,1,1,1,1,1,0,0,0],
17 | [0,0,0,0,0,0,0,1,1,0,0,0],
18 | [0,0,0,0,0,0,1,1,0,0,0,0],
19 | [0,0,0,0,0,1,1,0,0,0,0,0],
20 | [0,0,0,0,1,1,1,0,0,0,0,0],
21 | [0,0,0,0,0,0,1,1,0,0,0,0],
22 | [0,0,0,0,0,0,0,1,1,0,0,0],
23 | [0,0,0,0,0,0,0,1,1,0,0,0],
24 | [0,0,1,1,0,0,0,1,1,0,0,0],
25 | [0,0,0,1,1,1,1,1,0,0,0,0]
26 | ],//3
27 | [
28 | [0,0,0,1,1,1,1,1,0,0,0,0],
29 | [0,0,1,1,0,0,0,1,1,0,0,0],
30 | [0,0,0,0,0,0,0,1,1,0,0,0],
31 | [0,0,0,0,0,0,1,1,0,0,0,0],
32 | [0,0,0,0,0,1,1,0,0,0,0,0],
33 | [0,0,0,0,1,1,0,0,0,0,0,0],
34 | [0,0,0,1,1,0,0,0,0,0,0,0],
35 | [0,0,1,1,0,0,0,0,0,0,0,0],
36 | [0,0,1,1,0,0,0,1,1,0,0,0],
37 | [0,0,1,1,1,1,1,1,1,0,0,0]
38 | ],//2
39 | [
40 | [0,0,0,0,0,1,1,0,0,0,0,0],
41 | [0,0,0,1,1,1,1,0,0,0,0,0],
42 | [0,0,0,0,0,1,1,0,0,0,0,0],
43 | [0,0,0,0,0,1,1,0,0,0,0,0],
44 | [0,0,0,0,0,1,1,0,0,0,0,0],
45 | [0,0,0,0,0,1,1,0,0,0,0,0],
46 | [0,0,0,0,0,1,1,0,0,0,0,0],
47 | [0,0,0,0,0,1,1,0,0,0,0,0],
48 | [0,0,0,0,0,1,1,0,0,0,0,0],
49 | [0,0,1,1,1,1,1,1,1,0,0,0]
50 | ],//1
51 | [
52 | [0,0,0,0,0,0,0,0,0,0,0,0],
53 | [0,0,0,0,0,0,0,0,0,0,0,0],
54 | [0,0,0,1,0,0,0,0,1,0,0,0],
55 | [0,0,1,1,1,1,1,1,1,1,0,0],
56 | [0,0,1,0,0,0,0,0,0,1,0,0],
57 | [1,1,1,0,1,0,0,1,0,1,1,1],
58 | [0,0,1,0,0,1,1,0,0,1,0,0],
59 | [1,1,1,0,0,0,0,0,0,1,1,1],
60 | [0,0,0,1,1,1,1,1,1,0,0,0],
61 | [0,0,0,0,0,0,0,0,0,0,0,0]
62 | ],//Cat
63 | // [
64 | // [0,0,0,0,1,1,0],
65 | // [0,0,0,1,1,1,0],
66 | // [0,0,1,1,1,1,0],
67 | // [0,1,1,0,1,1,0],
68 | // [1,1,0,0,1,1,0],
69 | // [1,1,1,1,1,1,1],
70 | // [0,0,0,0,1,1,0],
71 | // [0,0,0,0,1,1,0],
72 | // [0,0,0,0,1,1,0],
73 | // [0,0,0,1,1,1,1]
74 | // ],//4
75 | // [
76 | // [1,1,1,1,1,1,1],
77 | // [1,1,0,0,0,0,0],
78 | // [1,1,0,0,0,0,0],
79 | // [1,1,1,1,1,1,0],
80 | // [0,0,0,0,0,1,1],
81 | // [0,0,0,0,0,1,1],
82 | // [0,0,0,0,0,1,1],
83 | // [0,0,0,0,0,1,1],
84 | // [1,1,0,0,0,1,1],
85 | // [0,1,1,1,1,1,0]
86 | // ],//5
87 | // [
88 | // [0,0,0,0,1,1,0],
89 | // [0,0,1,1,0,0,0],
90 | // [0,1,1,0,0,0,0],
91 | // [1,1,0,0,0,0,0],
92 | // [1,1,0,1,1,1,0],
93 | // [1,1,0,0,0,1,1],
94 | // [1,1,0,0,0,1,1],
95 | // [1,1,0,0,0,1,1],
96 | // [1,1,0,0,0,1,1],
97 | // [0,1,1,1,1,1,0]
98 | // ],//6
99 | // [
100 | // [1,1,1,1,1,1,1],
101 | // [1,1,0,0,0,1,1],
102 | // [0,0,0,0,1,1,0],
103 | // [0,0,0,0,1,1,0],
104 | // [0,0,0,1,1,0,0],
105 | // [0,0,0,1,1,0,0],
106 | // [0,0,1,1,0,0,0],
107 | // [0,0,1,1,0,0,0],
108 | // [0,0,1,1,0,0,0],
109 | // [0,0,1,1,0,0,0]
110 | // ],//7
111 | // [
112 | // [0,1,1,1,1,1,0],
113 | // [1,1,0,0,0,1,1],
114 | // [1,1,0,0,0,1,1],
115 | // [1,1,0,0,0,1,1],
116 | // [0,1,1,1,1,1,0],
117 | // [1,1,0,0,0,1,1],
118 | // [1,1,0,0,0,1,1],
119 | // [1,1,0,0,0,1,1],
120 | // [1,1,0,0,0,1,1],
121 | // [0,1,1,1,1,1,0]
122 | // ],//8
123 | // [
124 | // [0,1,1,1,1,1,0],
125 | // [1,1,0,0,0,1,1],
126 | // [1,1,0,0,0,1,1],
127 | // [1,1,0,0,0,1,1],
128 | // [0,1,1,1,0,1,1],
129 | // [0,0,0,0,0,1,1],
130 | // [0,0,0,0,0,1,1],
131 | // [0,0,0,0,1,1,0],
132 | // [0,0,0,1,1,0,0],
133 | // [0,1,1,0,0,0,0]
134 | // ],//9
135 | // [
136 | // [0,0,0,0,0,0,0],
137 | // [0,0,0,0,0,0,0],
138 | // [0,1,1,0,0,0,0],
139 | // [0,1,1,0,0,0,0],
140 | // [0,0,0,0,0,0,0],
141 | // [0,0,0,0,0,0,0],
142 | // [0,1,1,0,0,0,0],
143 | // [0,1,1,0,0,0,0],
144 | // [0,0,0,0,0,0,0],
145 | // [0,0,0,0,0,0,0]
146 | // ],//:
147 | ];
--------------------------------------------------------------------------------
/webroot/news/template/detail.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{new.title}}
4 |
5 | {{'来源:'+new.source}}
6 |
7 | {{new.desc}}
8 |
9 |
10 |
11 |
12 | 点击查看大图
13 |
14 |
15 |
16 |
17 |
18 |
28 |
29 |
30 |
其他感兴趣
31 |
42 |
48 |
49 |
50 |
相关新闻
51 |
52 |
53 |
54 |
{{new.desc}}
55 |
56 |
57 |
63 |
64 |
80 |
81 |
评论
82 |
83 |
84 |
85 |
{{new.desc}}
86 |
91 |
92 |
93 |
94 |
117 |
118 |
119 |
--------------------------------------------------------------------------------
/webroot/news/dist/js/main.windiest.js:
--------------------------------------------------------------------------------
1 | var app=angular.module("newsApp",["ui.router","ng.post","news.controller","news.service","news.directive"]);app.config(["$stateProvider","$urlRouterProvider",function(e,n){e.state("index",{url:"/index",templateUrl:"template/index.html",controller:"indexCtrl"}).state("index.list",{url:"/list",templateUrl:"template/newsList.html",controller:"listCtrl"}).state("index.secondlist",{url:"/secondlist",templateUrl:"template/secondList.html",controller:"secondListCtrl"}).state("index.thirdlist",{url:"/thirdlist",templateUrl:"template/thirdList.html",controller:"thirdListCtrl"}).state("detail",{url:"/detail/:channelId/:id",templateUrl:"template/detail.html",controller:"detailCtrl"}).state("login",{url:"/login",templateUrl:"template/logins.html",controller:"loginsCtrl"}).state("register",{url:"/register",templateUrl:"template/register.html",controller:"registerCtrl"}).state("setting",{url:"/setting",templateUrl:"template/setting.html",controller:"settingCtrl"}),n.when("","/index/list")}]),app.value("apiUrl","http://localhost:12345/newsApi"),app.value("apiMethod","get");var news=json;console.log(news),function(){var e=angular.module("news.controller",[]);e.controller("indexCtrl",["$scope","$rootScope","$http","cookie","$window",function(e,n,o,t,i){var s=t.getCookie("token"),a=t.getCookie("username");o.post("http://localhost:81/angular/news/index.php/login_api/auto_login",{params:{token:s,username:a}}).success(function(e){console.log(e),e.code||(window.location.href="#/login")}),e.tabs=[{name:"国内最新",id:1,url:"#/index/list"},{name:"国际焦点",id:2,url:"#/index/secondlist"},{name:"游戏焦点",id:3,url:"#/index/thirdlist"},{name:"登录",id:4,url:"#/login"}],n.id=1,e.toggleTab=function(e,o){console.log(e),n.id=e,i.location.href=o}}]),e.controller("listCtrl",["$scope","$http","swiperImg","apiUrl",function(e,n,o,t){e.isShowSwiper=!0,e.page=1,e.isShow=!1,e.sortList=!1,e.type="pubDate",e.channelId="5572a109b3cdc86cf39001db",e.news=[],e.swiperImg=[];var i=function(){n.jsonp(t,{params:{page:e.page,channelId:"5572a109b3cdc86cf39001db",channelName:"国内最新",callback:"JSON_CALLBACK"}}).success(function(n){n=json,e.isShow=!0,console.log(n),e.news=e.news.concat(n.showapi_res_body.pagebean.contentlist),e.swiperImg=o.get(e.news)})};i(),e.searchName="",e.isSearch=!1,e.search=function(){e.isSearch=!0},e.cancelSearch=function(){e.isSearch=!1},e.loadMore=function(){e.isShow=!1,e.page++,i()}}]),e.controller("thirdListCtrl",["$scope","$http","$rootScope","swiperImg","apiUrl","apiMethod",function(e,n,o,t,i,s){e.isShowSwiper=!0,o.id=3,e.page=1,e.isShow=!1,e.channelId="5572a108b3cdc86cf39001d6",e.swiperImg=[],e.news=[];var a=function(){n.jsonp(i,{params:{page:e.page,channelId:"5572a108b3cdc86cf39001d6",channelName:"游戏焦点",callback:"JSON_CALLBACK"}}).success(function(n){n=json,e.isShow=!0,console.log(n),e.news=e.news.concat(n.showapi_res_body.pagebean.contentlist),e.swiperImg=t.get(e.news)})};a(),e.searchName="",e.isSearch=!1,e.search=function(){e.isSearch=!0},e.cancelSearch=function(){e.isSearch=!1},e.loadMore=function(){e.isShow=!1,e.page++,a()}}]),e.controller("secondListCtrl",["$scope","$http","$rootScope","swiperImg","apiUrl",function(e,n,o,t,i){e.isShowSwiper=!0,o.id=2,e.page=1,e.isShow=!1,e.channelId="5572a108b3cdc86cf39001ce",e.swiperImg=[],e.news=[];var s=function(){n.jsonp(i,{params:{page:e.page,channelId:"5572a108b3cdc86cf39001ce",channelName:"游戏焦点",callback:"JSON_CALLBACK"}}).success(function(n){n=json,e.isShow=!0,console.log(n),e.news=e.news.concat(n.showapi_res_body.pagebean.contentlist),e.swiperImg=t.get(e.news)})};s(),e.searchName="",e.isSearch=!1,e.search=function(){e.isSearch=!0},e.cancelSearch=function(){e.isSearch=!1},e.loadMore=function(){e.isShow=!1,e.page++,s()}}]),e.controller("detailCtrl",["$scope","$http","$state","apiUrl",function(e,n,o,t){e.isShowGallery=!1,e.id=parseInt(o.params.id),e.channelId=o.params.channelId,e.isShow=!1,e.showGallery=function(n,o){e.isShowGallery=n,console.log(o),e.imgUrl="background-image:url("+o+")"},console.log(o.params),n.jsonp(t,{params:{page:1,channelId:e.channelId,channelName:"",callback:"JSON_CALLBACK"}}).success(function(n){n=json,console.log(n),e.isShow=!0,e.allNum=n.showapi_res_body.pagebean.allNum,e.new=n.showapi_res_body.pagebean.contentlist[o.params.id],console.log(e.new)})}]),e.controller("loginsCtrl",["$scope","$http","cookie",function(e,n,o){e.page1=!0,e.page2=!1,e.show=function(n){1==n?(e.page1=!0,e.page2=!1):2==n&&(e.page2=!0,e.page1=!1)},e.login=function(){console.log("username:"+e.username),console.log("password:"+e.password),n.post("http://localhost:81/angular/news/index.php/login_api/login",{params:{username:e.username,password:e.password}}).success(function(e){console.log(e),e.code&&(o.setCookie("token",e.info.token),o.setCookie("username",e.username),window.location.href="#/index/list")})}}]),e.controller("registerCtrl",["$scope","$http","cookie",function(e,n,o){e.register=function(){console.log("username:"+e.username),console.log("password:"+e.password),n.post("http://localhost:81/angular/news/index.php/login_api/register",{params:{username:e.username,password:e.password}}).success(function(e){console.log(e),e.code&&(o.setCookie("username",e.username),o.setCookie("token",e.info.token),window.location.href="#/index/list")})}}]),e.controller("settingCtrl",["$scope","$http","cookie",function(e,n,o){var t=o.getCookie("token"),i=o.getCookie("username");n.post("http://localhost:81/angular/news/index.php/login_api/auto_login",{params:{token:t,username:i}}).success(function(e){console.log(e),e.code||(window.location.href="#/login")})}])}(),function(){var e=angular.module("news.service",[]);e.service("cookie",["$document",function(e){return{setCookie:function(n,o){var t=10,i=new Date;i.setTime(i.getTime()+24*t*60*60*1e3),e[0].cookie=n+"="+o+";expires="+i},getCookie:function(n){var o,t=new RegExp("(^|)"+n+"=([^;]*)(;|$)");if(o=e[0].cookie.match(t))return o[2]}}}]),e.service("swiperImg",[function(){return{get:function(e,n){n||(n=2);var o=[];return angular.forEach(e,function(e,t){e.havePic&&o.length<=n&&(e.id=t,o.push(e))}),o}}}])}(),function(){var e=angular.module("news.directive",[]);e.directive("newsList",[function(){return{templateUrl:"directive/newsList.html"}}]),e.directive("searchBar",[function(){return{templateUrl:"directive/searchBar.html"}}]),e.directive("swiper",[function(){return{templateUrl:"directive/swiper.html",link:function(e,n,o){new Swiper(".swiper-container",{pagination:".swiper-pagination",paginationClickable:!0})}}}]),e.directive("loading",[function(){return{templateUrl:"directive/loading.html"}}])}();
--------------------------------------------------------------------------------
/webroot/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
267 |
268 |
269 |
289 |
290 |
--------------------------------------------------------------------------------
/webroot/news/js/controller/controller.js:
--------------------------------------------------------------------------------
1 | ;
2 | //控制器
3 | (function() {
4 | var app = angular.module('news.controller', []);
5 | app.controller('indexCtrl', ['$scope', '$rootScope', '$http', 'cookie', '$window',
6 | function($scope, $rootScope, $http, cookie, $window) {
7 | var token = cookie.getCookie('token');
8 | var username = cookie.getCookie('username')
9 | /*$http.post('http://localhost:81/angular/news/index.php/login_api/auto_login', {
10 | params: {
11 | token: token,
12 | username: username
13 | }
14 | }).success(function(data) {
15 | console.log(data);
16 | if(data.code) {} else {
17 | window.location.href = '#/login'
18 | }
19 | })*/
20 | $scope.tabs = [{
21 | name: '国内最新',
22 | id: 1,
23 | url: '#/index/list'
24 | }, {
25 | name: '国际焦点',
26 | id: 2,
27 | url: '#/index/secondlist'
28 | }, {
29 | name: '游戏焦点',
30 | id: 3,
31 | url: '#/index/thirdlist'
32 | }, {
33 | name: '登录',
34 | id: 4,
35 | url: '#/login'
36 | }];
37 | $rootScope.id = 1;
38 | $scope.toggleTab = function(id, url) {
39 | console.log(id);
40 | $rootScope.id = id;
41 | $window.location.href = url;
42 | }
43 | }
44 | ]);
45 | app.controller('listCtrl', ['$scope', '$http', 'swiperImg', 'apiUrl', function($scope, $http, swiperImg, apiUrl) {
46 | //默认显示轮播图
47 | $scope.isShowSwiper = true;
48 | //默认加载第一页
49 | $scope.page = 1;
50 | //默认显示loading
51 | $scope.isShow = false;
52 | //默认设置排序列表不出现
53 | $scope.sortList = false;
54 | $scope.type = 'pubDate';
55 | //设置chanelId传给详细页面
56 | $scope.channelId = '5572a109b3cdc86cf39001db';
57 | //渲染到视图的新闻数据数组
58 | $scope.news = [];
59 | //轮播图的三张图片
60 | $scope.swiperImg = [];
61 | var load = function() {
62 | $http.jsonp(apiUrl, {
63 | params: {
64 | page: $scope.page,
65 | channelId: '5572a109b3cdc86cf39001db',
66 | channelName: '国内最新',
67 | callback: 'JSON_CALLBACK'
68 | }
69 | }).success(function(data) {
70 | //测试数据,发布时删除
71 | data = json;
72 |
73 | $scope.isShow = true;
74 | console.log(data);
75 | $scope.news = $scope.news.concat(data.showapi_res_body.pagebean.contentlist);
76 | //用swiperImg自定义服务获取三张图片
77 | $scope.swiperImg = swiperImg.get($scope.news);
78 | }).error(function(data){
79 | //测试数据,发布时删除
80 | data = json;
81 |
82 | $scope.isShow = true;
83 | console.log(data);
84 | $scope.news = $scope.news.concat(data.showapi_res_body.pagebean.contentlist);
85 | //用swiperImg自定义服务获取三张图片
86 | $scope.swiperImg = swiperImg.get($scope.news);
87 | })
88 | }
89 | //第一次进来的时候自执行加载数据
90 | load();
91 | //默认搜索内容
92 | $scope.searchName = '';
93 | //搜索框默认的状态
94 | $scope.isSearch = false;
95 | $scope.search = function() {
96 | $scope.isSearch = true;
97 | }
98 |
99 | $scope.cancelSearch = function() {
100 | $scope.isSearch = false;
101 | }
102 |
103 | //加载更多的函数
104 | $scope.loadMore = function() {
105 | $scope.isShow = false;
106 | $scope.page++;
107 | load();
108 | }
109 |
110 | }]);
111 |
112 | app.controller('thirdListCtrl', ['$scope', '$http', '$rootScope', 'swiperImg', 'apiUrl', 'apiMethod', function($scope, $http, $rootScope, swiperImg, apiUrl, apiMethod) {
113 | //默认显示轮播图
114 | $scope.isShowSwiper = true;
115 | $rootScope.id = 3;
116 | //默认加载第一页
117 | $scope.page = 1;
118 | //默认显示loading
119 | $scope.isShow = false;
120 | //设置chanelId传给详细页面
121 | $scope.channelId = '5572a108b3cdc86cf39001d6';
122 | //轮播图的三张图片
123 | $scope.swiperImg = [];
124 | $scope.news = [];
125 | var load = function() {
126 | $http.jsonp(apiUrl, {
127 | params: {
128 | page: $scope.page,
129 | channelId: '5572a108b3cdc86cf39001d6',
130 | channelName: '游戏焦点',
131 | callback: 'JSON_CALLBACK'
132 | }
133 | }).success(function(data) {
134 | //测试数据,发布时删除
135 | data = json;
136 |
137 | $scope.isShow = true;
138 | console.log(data);
139 | $scope.news = $scope.news.concat(data.showapi_res_body.pagebean.contentlist);
140 | //用swiperImg自定义服务获取三张图片
141 | $scope.swiperImg = swiperImg.get($scope.news);
142 | }).error(function(data){
143 | //测试数据,发布时删除
144 | data = json;
145 |
146 | $scope.isShow = true;
147 | console.log(data);
148 | $scope.news = $scope.news.concat(data.showapi_res_body.pagebean.contentlist);
149 | //用swiperImg自定义服务获取三张图片
150 | $scope.swiperImg = swiperImg.get($scope.news);
151 | })
152 | }
153 | //第一次进来的时候自执行加载数据
154 | load();
155 | //默认搜索内容
156 | $scope.searchName = '';
157 | //搜索框默认的状态
158 | $scope.isSearch = false;
159 | $scope.search = function() {
160 | $scope.isSearch = true;
161 | }
162 |
163 | $scope.cancelSearch = function() {
164 | $scope.isSearch = false;
165 | }
166 |
167 | //加载更多的函数
168 | $scope.loadMore = function() {
169 | $scope.isShow = false;
170 | $scope.page++;
171 | load();
172 | }
173 | }]);
174 |
175 | app.controller('secondListCtrl', ['$scope', '$http', '$rootScope', 'swiperImg', 'apiUrl', function($scope, $http, $rootScope, swiperImg, apiUrl) {
176 | //默认显示轮播图
177 | $scope.isShowSwiper = true;
178 | $rootScope.id = 2;
179 | //默认加载第一页
180 | $scope.page = 1;
181 | //默认显示loading
182 | $scope.isShow = false;
183 | //设置chanelId传给详细页面
184 | $scope.channelId = '5572a108b3cdc86cf39001ce';
185 | //轮播图的三张图片
186 | $scope.swiperImg = [];
187 | $scope.news = [];
188 | var load = function() {
189 | $http.jsonp(apiUrl, {
190 | params: {
191 | page: $scope.page,
192 | channelId: '5572a108b3cdc86cf39001ce',
193 | channelName: '游戏焦点',
194 | callback: 'JSON_CALLBACK'
195 | }
196 | }).success(function(data) {
197 | //测试数据,发布时删除
198 | data = json;
199 |
200 | $scope.isShow = true;
201 | console.log(data);
202 | $scope.news = $scope.news.concat(data.showapi_res_body.pagebean.contentlist);
203 | //用swiperImg自定义服务获取三张图片
204 | $scope.swiperImg = swiperImg.get($scope.news);
205 | }).error(function(data){
206 | //测试数据,发布时删除
207 | data = json;
208 |
209 | $scope.isShow = true;
210 | console.log(data);
211 | $scope.news = $scope.news.concat(data.showapi_res_body.pagebean.contentlist);
212 | //用swiperImg自定义服务获取三张图片
213 | $scope.swiperImg = swiperImg.get($scope.news);
214 | })
215 | }
216 | //第一次进来的时候自执行加载数据
217 | load();
218 | //默认搜索内容
219 | $scope.searchName = '';
220 | //搜索框默认的状态
221 | $scope.isSearch = false;
222 | $scope.search = function() {
223 | $scope.isSearch = true;
224 | }
225 |
226 | $scope.cancelSearch = function() {
227 | $scope.isSearch = false;
228 | }
229 |
230 | //加载更多的函数
231 | $scope.loadMore = function() {
232 | $scope.isShow = false;
233 | $scope.page++;
234 | load();
235 | }
236 | }]);
237 |
238 | //新闻详细页的控制器
239 | app.controller('detailCtrl', ['$scope', '$http', '$state', 'apiUrl', function($scope, $http, $state, apiUrl) {
240 | //是否显示放大图片
241 | $scope.isShowGallery = false
242 | //获取id,视图下一页逻辑需要的数据
243 | $scope.id = parseInt($state.params.id);
244 | //获取channelId,根据频道取对应的新闻数据
245 | $scope.channelId = $state.params.channelId;
246 | //默认加载loading等待数据回调后消失
247 | $scope.isShow = false;
248 | $scope.showGallery = function(isshow, url) {
249 | $scope.isShowGallery = isshow;
250 | console.log(url);
251 | $scope.imgUrl = "background-image:url(" + url + ")";
252 | }
253 | console.log($state.params)
254 | $http.jsonp(apiUrl, {
255 | params: {
256 | page: 1,
257 | channelId: $scope.channelId,
258 | //channelName: '国内最新',
259 | channelName: '',
260 | callback: 'JSON_CALLBACK'
261 | }
262 | }).success(function(data) {
263 | //测试数据,发布时删除
264 | data = json;
265 |
266 | console.log(data);
267 | $scope.isShow = true;
268 | $scope.allNum = data.showapi_res_body.pagebean.allNum;
269 | $scope.new = data.showapi_res_body.pagebean.contentlist[$state.params.id];
270 | console.log($scope.new)
271 | }).error(function(data){
272 | //测试数据,发布时删除
273 | data = json;
274 |
275 | console.log(data);
276 | $scope.isShow = true;
277 | $scope.allNum = data.showapi_res_body.pagebean.allNum;
278 | $scope.new = data.showapi_res_body.pagebean.contentlist[$state.params.id];
279 | console.log($scope.new)
280 | })
281 | }]);
282 |
283 | app.controller('loginsCtrl', ['$scope', '$http', 'cookie', function($scope, $http, cookie) {
284 | $scope.page1 = true
285 | $scope.page2 = false
286 | $scope.show = function(page) {
287 | if(page == 1) {
288 | $scope.page1 = true;
289 | $scope.page2 = false;
290 | } else if(page == 2) {
291 | $scope.page2 = true;
292 | $scope.page1 = false
293 | }
294 | }
295 | $scope.login = function() {
296 | console.log('username:' + $scope.username);
297 | console.log('password:' + $scope.password);
298 | $http.post('http://localhost:81/angular/news/index.php/login_api/login', {
299 | params: {
300 | username: $scope.username,
301 | password: $scope.password
302 | }
303 | }).success(function(data) {
304 | console.log(data);
305 | if(data.code) {
306 | cookie.setCookie('token', data.info.token);
307 | cookie.setCookie('username', data.username);
308 | window.location.href = "#/index/list"
309 | }
310 | })
311 | }
312 | }]);
313 | app.controller('registerCtrl', ['$scope', '$http', 'cookie', function($scope, $http, cookie) {
314 | $scope.register = function() {
315 | console.log('username:' + $scope.username);
316 | console.log('password:' + $scope.password);
317 | $http.post('http://localhost:81/angular/news/index.php/login_api/register', {
318 | params: {
319 | username: $scope.username,
320 | password: $scope.password
321 | }
322 | }).success(function(data) {
323 | console.log(data);
324 | if(data.code) {
325 | cookie.setCookie('username', data.username);
326 | cookie.setCookie('token', data.info.token);
327 | window.location.href = '#/index/list';
328 | }
329 | })
330 | }
331 | }]);
332 | app.controller('settingCtrl', ['$scope', '$http', 'cookie', function($scope, $http, cookie) {
333 | var token = cookie.getCookie('token');
334 | var username = cookie.getCookie('username')
335 | $http.post('http://localhost:81/angular/news/index.php/login_api/auto_login', {
336 | params: {
337 | token: token,
338 | username: username
339 | }
340 | }).success(function(data) {
341 | console.log(data);
342 | if(data.code) {} else {
343 | window.location.href = '#/login'
344 | }
345 | })
346 | }])
347 | })();
--------------------------------------------------------------------------------
/old/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
29 |
30 |
31 |
32 |
33 |
68 |
641 |
642 |
643 |
644 |
645 |
646 |
647 |
--------------------------------------------------------------------------------
/webroot/news/css/swiper.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Swiper 3.4.0
3 | * Most modern mobile touch slider and framework with hardware accelerated transitions
4 | *
5 | * http://www.idangero.us/swiper/
6 | *
7 | * Copyright 2016, Vladimir Kharlampidi
8 | * The iDangero.us
9 | * http://www.idangero.us/
10 | *
11 | * Licensed under MIT
12 | *
13 | * Released on: October 16, 2016
14 | */
15 | .swiper-container {
16 | margin-left: auto;
17 | margin-right: auto;
18 | position: relative;
19 | overflow: hidden;
20 | /* Fix of Webkit flickering */
21 | z-index: 1;
22 | }
23 | .swiper-container-no-flexbox .swiper-slide {
24 | float: left;
25 | }
26 | .swiper-container-vertical > .swiper-wrapper {
27 | -webkit-box-orient: vertical;
28 | -moz-box-orient: vertical;
29 | -ms-flex-direction: column;
30 | -webkit-flex-direction: column;
31 | flex-direction: column;
32 | }
33 | .swiper-wrapper {
34 | position: relative;
35 | width: 100%;
36 | height: 100%;
37 | z-index: 1;
38 | display: -webkit-box;
39 | display: -moz-box;
40 | display: -ms-flexbox;
41 | display: -webkit-flex;
42 | display: flex;
43 | -webkit-transition-property: -webkit-transform;
44 | -moz-transition-property: -moz-transform;
45 | -o-transition-property: -o-transform;
46 | -ms-transition-property: -ms-transform;
47 | transition-property: transform;
48 | -webkit-box-sizing: content-box;
49 | -moz-box-sizing: content-box;
50 | box-sizing: content-box;
51 | }
52 | .swiper-container-android .swiper-slide,
53 | .swiper-wrapper {
54 | -webkit-transform: translate3d(0px, 0, 0);
55 | -moz-transform: translate3d(0px, 0, 0);
56 | -o-transform: translate(0px, 0px);
57 | -ms-transform: translate3d(0px, 0, 0);
58 | transform: translate3d(0px, 0, 0);
59 | }
60 | .swiper-container-multirow > .swiper-wrapper {
61 | -webkit-box-lines: multiple;
62 | -moz-box-lines: multiple;
63 | -ms-flex-wrap: wrap;
64 | -webkit-flex-wrap: wrap;
65 | flex-wrap: wrap;
66 | }
67 | .swiper-container-free-mode > .swiper-wrapper {
68 | -webkit-transition-timing-function: ease-out;
69 | -moz-transition-timing-function: ease-out;
70 | -ms-transition-timing-function: ease-out;
71 | -o-transition-timing-function: ease-out;
72 | transition-timing-function: ease-out;
73 | margin: 0 auto;
74 | }
75 | .swiper-slide {
76 | -webkit-flex-shrink: 0;
77 | -ms-flex: 0 0 auto;
78 | flex-shrink: 0;
79 | width: 100%;
80 | height: 100%;
81 | position: relative;
82 | }
83 | /* Auto Height */
84 | .swiper-container-autoheight,
85 | .swiper-container-autoheight .swiper-slide {
86 | height: auto;
87 | }
88 | .swiper-container-autoheight .swiper-wrapper {
89 | -webkit-box-align: start;
90 | -ms-flex-align: start;
91 | -webkit-align-items: flex-start;
92 | align-items: flex-start;
93 | -webkit-transition-property: -webkit-transform, height;
94 | -moz-transition-property: -moz-transform;
95 | -o-transition-property: -o-transform;
96 | -ms-transition-property: -ms-transform;
97 | transition-property: transform, height;
98 | }
99 | /* a11y */
100 | .swiper-container .swiper-notification {
101 | position: absolute;
102 | left: 0;
103 | top: 0;
104 | pointer-events: none;
105 | opacity: 0;
106 | z-index: -1000;
107 | }
108 | /* IE10 Windows Phone 8 Fixes */
109 | .swiper-wp8-horizontal {
110 | -ms-touch-action: pan-y;
111 | touch-action: pan-y;
112 | }
113 | .swiper-wp8-vertical {
114 | -ms-touch-action: pan-x;
115 | touch-action: pan-x;
116 | }
117 | /* Arrows */
118 | .swiper-button-prev,
119 | .swiper-button-next {
120 | position: absolute;
121 | top: 50%;
122 | width: 27px;
123 | height: 44px;
124 | margin-top: -22px;
125 | z-index: 10;
126 | cursor: pointer;
127 | -moz-background-size: 27px 44px;
128 | -webkit-background-size: 27px 44px;
129 | background-size: 27px 44px;
130 | background-position: center;
131 | background-repeat: no-repeat;
132 | }
133 | .swiper-button-prev.swiper-button-disabled,
134 | .swiper-button-next.swiper-button-disabled {
135 | opacity: 0.35;
136 | cursor: auto;
137 | pointer-events: none;
138 | }
139 | .swiper-button-prev,
140 | .swiper-container-rtl .swiper-button-next {
141 | background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
142 | left: 10px;
143 | right: auto;
144 | }
145 | .swiper-button-prev.swiper-button-black,
146 | .swiper-container-rtl .swiper-button-next.swiper-button-black {
147 | background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
148 | }
149 | .swiper-button-prev.swiper-button-white,
150 | .swiper-container-rtl .swiper-button-next.swiper-button-white {
151 | background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
152 | }
153 | .swiper-button-next,
154 | .swiper-container-rtl .swiper-button-prev {
155 | background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
156 | right: 10px;
157 | left: auto;
158 | }
159 | .swiper-button-next.swiper-button-black,
160 | .swiper-container-rtl .swiper-button-prev.swiper-button-black {
161 | background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
162 | }
163 | .swiper-button-next.swiper-button-white,
164 | .swiper-container-rtl .swiper-button-prev.swiper-button-white {
165 | background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
166 | }
167 | /* Pagination Styles */
168 | .swiper-pagination {
169 | position: absolute;
170 | text-align: center;
171 | -webkit-transition: 300ms;
172 | -moz-transition: 300ms;
173 | -o-transition: 300ms;
174 | transition: 300ms;
175 | -webkit-transform: translate3d(0, 0, 0);
176 | -ms-transform: translate3d(0, 0, 0);
177 | -o-transform: translate3d(0, 0, 0);
178 | transform: translate3d(0, 0, 0);
179 | z-index: 10;
180 | }
181 | .swiper-pagination.swiper-pagination-hidden {
182 | opacity: 0;
183 | }
184 | /* Common Styles */
185 | .swiper-pagination-fraction,
186 | .swiper-pagination-custom,
187 | .swiper-container-horizontal > .swiper-pagination-bullets {
188 | bottom: 10px;
189 | left: 0;
190 | width: 100%;
191 | }
192 | /* Bullets */
193 | .swiper-pagination-bullet {
194 | width: 8px;
195 | height: 8px;
196 | display: inline-block;
197 | border-radius: 100%;
198 | background: #000;
199 | opacity: 0.2;
200 | }
201 | button.swiper-pagination-bullet {
202 | border: none;
203 | margin: 0;
204 | padding: 0;
205 | box-shadow: none;
206 | -moz-appearance: none;
207 | -ms-appearance: none;
208 | -webkit-appearance: none;
209 | appearance: none;
210 | }
211 | .swiper-pagination-clickable .swiper-pagination-bullet {
212 | cursor: pointer;
213 | }
214 | .swiper-pagination-white .swiper-pagination-bullet {
215 | background: #fff;
216 | }
217 | .swiper-pagination-bullet-active {
218 | opacity: 1;
219 | background: #007aff;
220 | }
221 | .swiper-pagination-white .swiper-pagination-bullet-active {
222 | background: #fff;
223 | }
224 | .swiper-pagination-black .swiper-pagination-bullet-active {
225 | background: #000;
226 | }
227 | .swiper-container-vertical > .swiper-pagination-bullets {
228 | right: 10px;
229 | top: 50%;
230 | -webkit-transform: translate3d(0px, -50%, 0);
231 | -moz-transform: translate3d(0px, -50%, 0);
232 | -o-transform: translate(0px, -50%);
233 | -ms-transform: translate3d(0px, -50%, 0);
234 | transform: translate3d(0px, -50%, 0);
235 | }
236 | .swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet {
237 | margin: 5px 0;
238 | display: block;
239 | }
240 | .swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet {
241 | margin: 0 5px;
242 | }
243 | /* Progress */
244 | .swiper-pagination-progress {
245 | background: rgba(0, 0, 0, 0.25);
246 | position: absolute;
247 | }
248 | .swiper-pagination-progress .swiper-pagination-progressbar {
249 | background: #007aff;
250 | position: absolute;
251 | left: 0;
252 | top: 0;
253 | width: 100%;
254 | height: 100%;
255 | -webkit-transform: scale(0);
256 | -ms-transform: scale(0);
257 | -o-transform: scale(0);
258 | transform: scale(0);
259 | -webkit-transform-origin: left top;
260 | -moz-transform-origin: left top;
261 | -ms-transform-origin: left top;
262 | -o-transform-origin: left top;
263 | transform-origin: left top;
264 | }
265 | .swiper-container-rtl .swiper-pagination-progress .swiper-pagination-progressbar {
266 | -webkit-transform-origin: right top;
267 | -moz-transform-origin: right top;
268 | -ms-transform-origin: right top;
269 | -o-transform-origin: right top;
270 | transform-origin: right top;
271 | }
272 | .swiper-container-horizontal > .swiper-pagination-progress {
273 | width: 100%;
274 | height: 4px;
275 | left: 0;
276 | top: 0;
277 | }
278 | .swiper-container-vertical > .swiper-pagination-progress {
279 | width: 4px;
280 | height: 100%;
281 | left: 0;
282 | top: 0;
283 | }
284 | .swiper-pagination-progress.swiper-pagination-white {
285 | background: rgba(255, 255, 255, 0.5);
286 | }
287 | .swiper-pagination-progress.swiper-pagination-white .swiper-pagination-progressbar {
288 | background: #fff;
289 | }
290 | .swiper-pagination-progress.swiper-pagination-black .swiper-pagination-progressbar {
291 | background: #000;
292 | }
293 | /* 3D Container */
294 | .swiper-container-3d {
295 | -webkit-perspective: 1200px;
296 | -moz-perspective: 1200px;
297 | -o-perspective: 1200px;
298 | perspective: 1200px;
299 | }
300 | .swiper-container-3d .swiper-wrapper,
301 | .swiper-container-3d .swiper-slide,
302 | .swiper-container-3d .swiper-slide-shadow-left,
303 | .swiper-container-3d .swiper-slide-shadow-right,
304 | .swiper-container-3d .swiper-slide-shadow-top,
305 | .swiper-container-3d .swiper-slide-shadow-bottom,
306 | .swiper-container-3d .swiper-cube-shadow {
307 | -webkit-transform-style: preserve-3d;
308 | -moz-transform-style: preserve-3d;
309 | -ms-transform-style: preserve-3d;
310 | transform-style: preserve-3d;
311 | }
312 | .swiper-container-3d .swiper-slide-shadow-left,
313 | .swiper-container-3d .swiper-slide-shadow-right,
314 | .swiper-container-3d .swiper-slide-shadow-top,
315 | .swiper-container-3d .swiper-slide-shadow-bottom {
316 | position: absolute;
317 | left: 0;
318 | top: 0;
319 | width: 100%;
320 | height: 100%;
321 | pointer-events: none;
322 | z-index: 10;
323 | }
324 | .swiper-container-3d .swiper-slide-shadow-left {
325 | background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
326 | /* Safari 4+, Chrome */
327 | background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
328 | /* Chrome 10+, Safari 5.1+, iOS 5+ */
329 | background-image: -moz-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
330 | /* Firefox 3.6-15 */
331 | background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
332 | /* Opera 11.10-12.00 */
333 | background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
334 | /* Firefox 16+, IE10, Opera 12.50+ */
335 | }
336 | .swiper-container-3d .swiper-slide-shadow-right {
337 | background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
338 | /* Safari 4+, Chrome */
339 | background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
340 | /* Chrome 10+, Safari 5.1+, iOS 5+ */
341 | background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
342 | /* Firefox 3.6-15 */
343 | background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
344 | /* Opera 11.10-12.00 */
345 | background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
346 | /* Firefox 16+, IE10, Opera 12.50+ */
347 | }
348 | .swiper-container-3d .swiper-slide-shadow-top {
349 | background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
350 | /* Safari 4+, Chrome */
351 | background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
352 | /* Chrome 10+, Safari 5.1+, iOS 5+ */
353 | background-image: -moz-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
354 | /* Firefox 3.6-15 */
355 | background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
356 | /* Opera 11.10-12.00 */
357 | background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
358 | /* Firefox 16+, IE10, Opera 12.50+ */
359 | }
360 | .swiper-container-3d .swiper-slide-shadow-bottom {
361 | background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
362 | /* Safari 4+, Chrome */
363 | background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
364 | /* Chrome 10+, Safari 5.1+, iOS 5+ */
365 | background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
366 | /* Firefox 3.6-15 */
367 | background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
368 | /* Opera 11.10-12.00 */
369 | background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
370 | /* Firefox 16+, IE10, Opera 12.50+ */
371 | }
372 | /* Coverflow */
373 | .swiper-container-coverflow .swiper-wrapper,
374 | .swiper-container-flip .swiper-wrapper {
375 | /* Windows 8 IE 10 fix */
376 | -ms-perspective: 1200px;
377 | }
378 | /* Cube + Flip */
379 | .swiper-container-cube,
380 | .swiper-container-flip {
381 | overflow: visible;
382 | }
383 | .swiper-container-cube .swiper-slide,
384 | .swiper-container-flip .swiper-slide {
385 | pointer-events: none;
386 | -webkit-backface-visibility: hidden;
387 | -moz-backface-visibility: hidden;
388 | -ms-backface-visibility: hidden;
389 | backface-visibility: hidden;
390 | z-index: 1;
391 | }
392 | .swiper-container-cube .swiper-slide .swiper-slide,
393 | .swiper-container-flip .swiper-slide .swiper-slide {
394 | pointer-events: none;
395 | }
396 | .swiper-container-cube .swiper-slide-active,
397 | .swiper-container-flip .swiper-slide-active,
398 | .swiper-container-cube .swiper-slide-active .swiper-slide-active,
399 | .swiper-container-flip .swiper-slide-active .swiper-slide-active {
400 | pointer-events: auto;
401 | }
402 | .swiper-container-cube .swiper-slide-shadow-top,
403 | .swiper-container-flip .swiper-slide-shadow-top,
404 | .swiper-container-cube .swiper-slide-shadow-bottom,
405 | .swiper-container-flip .swiper-slide-shadow-bottom,
406 | .swiper-container-cube .swiper-slide-shadow-left,
407 | .swiper-container-flip .swiper-slide-shadow-left,
408 | .swiper-container-cube .swiper-slide-shadow-right,
409 | .swiper-container-flip .swiper-slide-shadow-right {
410 | z-index: 0;
411 | -webkit-backface-visibility: hidden;
412 | -moz-backface-visibility: hidden;
413 | -ms-backface-visibility: hidden;
414 | backface-visibility: hidden;
415 | }
416 | /* Cube */
417 | .swiper-container-cube .swiper-slide {
418 | visibility: hidden;
419 | -webkit-transform-origin: 0 0;
420 | -moz-transform-origin: 0 0;
421 | -ms-transform-origin: 0 0;
422 | transform-origin: 0 0;
423 | width: 100%;
424 | height: 100%;
425 | }
426 | .swiper-container-cube.swiper-container-rtl .swiper-slide {
427 | -webkit-transform-origin: 100% 0;
428 | -moz-transform-origin: 100% 0;
429 | -ms-transform-origin: 100% 0;
430 | transform-origin: 100% 0;
431 | }
432 | .swiper-container-cube .swiper-slide-active,
433 | .swiper-container-cube .swiper-slide-next,
434 | .swiper-container-cube .swiper-slide-prev,
435 | .swiper-container-cube .swiper-slide-next + .swiper-slide {
436 | pointer-events: auto;
437 | visibility: visible;
438 | }
439 | .swiper-container-cube .swiper-cube-shadow {
440 | position: absolute;
441 | left: 0;
442 | bottom: 0px;
443 | width: 100%;
444 | height: 100%;
445 | background: #000;
446 | opacity: 0.6;
447 | -webkit-filter: blur(50px);
448 | filter: blur(50px);
449 | z-index: 0;
450 | }
451 | /* Fade */
452 | .swiper-container-fade.swiper-container-free-mode .swiper-slide {
453 | -webkit-transition-timing-function: ease-out;
454 | -moz-transition-timing-function: ease-out;
455 | -ms-transition-timing-function: ease-out;
456 | -o-transition-timing-function: ease-out;
457 | transition-timing-function: ease-out;
458 | }
459 | .swiper-container-fade .swiper-slide {
460 | pointer-events: none;
461 | -webkit-transition-property: opacity;
462 | -moz-transition-property: opacity;
463 | -o-transition-property: opacity;
464 | transition-property: opacity;
465 | }
466 | .swiper-container-fade .swiper-slide .swiper-slide {
467 | pointer-events: none;
468 | }
469 | .swiper-container-fade .swiper-slide-active,
470 | .swiper-container-fade .swiper-slide-active .swiper-slide-active {
471 | pointer-events: auto;
472 | }
473 | .swiper-zoom-container {
474 | width: 100%;
475 | height: 100%;
476 | display: -webkit-box;
477 | display: -moz-box;
478 | display: -ms-flexbox;
479 | display: -webkit-flex;
480 | display: flex;
481 | -webkit-box-pack: center;
482 | -moz-box-pack: center;
483 | -ms-flex-pack: center;
484 | -webkit-justify-content: center;
485 | justify-content: center;
486 | -webkit-box-align: center;
487 | -moz-box-align: center;
488 | -ms-flex-align: center;
489 | -webkit-align-items: center;
490 | align-items: center;
491 | text-align: center;
492 | }
493 | .swiper-zoom-container > img,
494 | .swiper-zoom-container > svg,
495 | .swiper-zoom-container > canvas {
496 | max-width: 100%;
497 | max-height: 100%;
498 | object-fit: contain;
499 | }
500 | /* Scrollbar */
501 | .swiper-scrollbar {
502 | border-radius: 10px;
503 | position: relative;
504 | -ms-touch-action: none;
505 | background: rgba(0, 0, 0, 0.1);
506 | }
507 | .swiper-container-horizontal > .swiper-scrollbar {
508 | position: absolute;
509 | left: 1%;
510 | bottom: 3px;
511 | z-index: 50;
512 | height: 5px;
513 | width: 98%;
514 | }
515 | .swiper-container-vertical > .swiper-scrollbar {
516 | position: absolute;
517 | right: 3px;
518 | top: 1%;
519 | z-index: 50;
520 | width: 5px;
521 | height: 98%;
522 | }
523 | .swiper-scrollbar-drag {
524 | height: 100%;
525 | width: 100%;
526 | position: relative;
527 | background: rgba(0, 0, 0, 0.5);
528 | border-radius: 10px;
529 | left: 0;
530 | top: 0;
531 | }
532 | .swiper-scrollbar-cursor-drag {
533 | cursor: move;
534 | }
535 | /* Preloader */
536 | .swiper-lazy-preloader {
537 | width: 42px;
538 | height: 42px;
539 | position: absolute;
540 | left: 50%;
541 | top: 50%;
542 | margin-left: -21px;
543 | margin-top: -21px;
544 | z-index: 10;
545 | -webkit-transform-origin: 50%;
546 | -moz-transform-origin: 50%;
547 | transform-origin: 50%;
548 | -webkit-animation: swiper-preloader-spin 1s steps(12, end) infinite;
549 | -moz-animation: swiper-preloader-spin 1s steps(12, end) infinite;
550 | animation: swiper-preloader-spin 1s steps(12, end) infinite;
551 | }
552 | .swiper-lazy-preloader:after {
553 | display: block;
554 | content: "";
555 | width: 100%;
556 | height: 100%;
557 | background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
558 | background-position: 50%;
559 | -webkit-background-size: 100%;
560 | background-size: 100%;
561 | background-repeat: no-repeat;
562 | }
563 | .swiper-lazy-preloader-white:after {
564 | background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
565 | }
566 | @-webkit-keyframes swiper-preloader-spin {
567 | 100% {
568 | -webkit-transform: rotate(360deg);
569 | }
570 | }
571 | @keyframes swiper-preloader-spin {
572 | 100% {
573 | transform: rotate(360deg);
574 | }
575 | }
576 |
--------------------------------------------------------------------------------
/old/dist/js/angular-animate.js:
--------------------------------------------------------------------------------
1 | /*
2 | AngularJS v1.4.6
3 | (c) 2010-2015 Google, Inc. http://angularjs.org
4 | License: MIT
5 | */
6 | (function(F,x,Oa){'use strict';function va(a,b,c){if(!a)throw ngMinErr("areq",b||"?",c||"required");return a}function wa(a,b){if(!a&&!b)return"";if(!a)return b;if(!b)return a;Y(a)&&(a=a.join(" "));Y(b)&&(b=b.join(" "));return a+" "+b}function Fa(a){var b={};a&&(a.to||a.from)&&(b.to=a.to,b.from=a.from);return b}function V(a,b,c){var d="";a=Y(a)?a:a&&M(a)&&a.length?a.split(/\s+/):[];q(a,function(a,y){a&&0
=a&&(a=h,h=0,b.push(e),e=[]);e.push(l.fn);
29 | l.children.forEach(function(a){h++;c.push(a)});a--}e.length&&b.push(e);return b}(c)}var O=[],x=Q(a);return function(t,z,E){function h(a){a=a.hasAttribute("ng-animate-ref")?[a]:a.querySelectorAll("[ng-animate-ref]");var b=[];q(a,function(a){var c=a.getAttribute("ng-animate-ref");c&&c.length&&b.push(a)});return b}function S(a){var b=[],c={};q(a,function(a,g){var d=G(a.element),f=0<=["enter","move"].indexOf(a.event),d=a.structural?h(d):[];if(d.length){var e=f?"to":"from";q(d,function(a){var b=a.getAttribute("ng-animate-ref");
30 | c[b]=c[b]||{};c[b][e]={animationID:g,element:I(a)}})}else b.push(a)});var d={},f={};q(c,function(c,e){var h=c.from,r=c.to;if(h&&r){var J=a[h.animationID],k=a[r.animationID],B=h.animationID.toString();if(!f[B]){var l=f[B]={structural:!0,beforeStart:function(){J.beforeStart();k.beforeStart()},close:function(){J.close();k.close()},classes:u(J.classes,k.classes),from:J,to:k,anchors:[]};l.classes.length?b.push(l):(b.push(J),b.push(k))}f[B].anchors.push({out:h.element,"in":r.element})}else h=h?h.animationID:
31 | r.animationID,r=h.toString(),d[r]||(d[r]=!0,b.push(a[h]))});return b}function u(a,b){a=a.split(" ");b=b.split(" ");for(var c=[],d=0;dC.expectedEndTime)?v.cancel(C.timer):p.push(r)}z&&(u=v(d,u,!1),p[0]={timer:u,expectedEndTime:k},p.push(r),a.data("$$animateCss",p));a.on(m.join(" "),l);ya(a,c)}}
39 | function d(){var b=a.data("$$animateCss");if(b){for(var c=1;c=M&&b>=K&&(S=!0,r())}if(!s)if(g.parentNode){var H,m=[],k=function(a){if(S)z&&a&&(z=!1,r());else if(z=!a,D.animationDuration)if(a=ma(g,z),z)w.push(a);else{var b=w,c=b.indexOf(a);0<=a&&b.splice(c,1)}},p=0