Compare commits
53 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
910b079c55 | ||
|
|
b1b36cec23 | ||
|
|
8eab8c7310 | ||
|
|
ddd0c13d34 | ||
|
|
2d107b754d | ||
|
|
872f4e68cf | ||
|
|
8f86baa616 | ||
|
|
1fa03e901d | ||
|
|
04d41dff4a | ||
|
|
4d1f3b957e | ||
|
|
0929c715c0 | ||
|
|
cac06e673a | ||
|
|
ab5e5c7b76 | ||
|
|
88ad35e9be | ||
|
|
cd61592f74 | ||
|
|
bf6590eef9 | ||
|
|
0a75902865 | ||
|
|
58d1e0ec00 | ||
|
|
5244c89987 | ||
|
|
6ed0e30d2b | ||
|
|
2f79331ccf | ||
|
|
76ecc00ad0 | ||
|
|
418c70bad2 | ||
|
|
077e702ba1 | ||
|
|
6ee8fc999d | ||
|
|
4f7d2b5645 | ||
|
|
7a89eca49d | ||
|
|
d392c0eb36 | ||
|
|
e3f4b50c53 | ||
|
|
03f2ebe3f7 | ||
|
|
48c2474668 | ||
|
|
cbe62557f8 | ||
|
|
0b9dd488c2 | ||
|
|
3db06ed738 | ||
|
|
76b279c1e5 | ||
|
|
6eb4702cd2 | ||
|
|
f0b4012118 | ||
|
|
0e45f2c17f | ||
|
|
3baa31d44c | ||
|
|
365ad3853c | ||
|
|
98cf275e37 | ||
|
|
498f2dc3a8 | ||
|
|
98b048235c | ||
|
|
273028ea96 | ||
|
|
a93048b016 | ||
|
|
b63e79954a | ||
|
|
b8b103ace1 | ||
|
|
b2436ee711 | ||
|
|
91f4698c09 | ||
|
|
2605b86e00 | ||
|
|
cd7915f92b | ||
|
|
6f413bfa1f | ||
|
|
298f7bc1d6 |
3
.gitignore
vendored
@@ -2,9 +2,12 @@
|
||||
pkg
|
||||
bin2
|
||||
bin/i18n
|
||||
bin/leanote-linux
|
||||
bin/leanote-mac
|
||||
bin/release
|
||||
bin/tmp
|
||||
bin/test
|
||||
bin/src
|
||||
conf/app.conf
|
||||
conf/routes
|
||||
public/upload
|
||||
|
||||
106
README.md
@@ -1,46 +1,54 @@
|
||||
## Introduction
|
||||
## 1. Introduction
|
||||
|
||||
Leanote, a cloud note. You can create your own cloud note by leanote.
|
||||
Leanote, your own cloud note.
|
||||
|
||||
## Features
|
||||
* Knowledge: manage your knowledge in leanote. leanote contains tinymce editor and markdown editor, just enjoy yourself in writting.
|
||||
* Share: share your knowledge to your friends in leanote. Well, you are not alone, you can invite your friends to join your cloud note and share your knowledge each other.
|
||||
* Cooperation: collaborate with friends to improve your knowledge.
|
||||
* Blog: public your knowledge and leanote be your blog.
|
||||
**Some Features**
|
||||
|
||||
## Why we create leanote
|
||||
To be honest, our inspiration comes from evernote, and we use evenote to manage our knowledge everyday. But we find that:
|
||||
* Evernote's editor can't meet our needs, it hasn't document navigation, can't put our codes(as a programmer, put codes is the basic needs), can't resize images...)
|
||||
* We like markdown, but evernote don't support it.
|
||||
* We want to public our knowledge, so we have our blog(such as wordpress) and evernote, but why can't be the one!
|
||||
* Knowledge: Manage your knowledge in leanote. leanote contains the tinymce editor and a markdown editor, just enjoy yourself writing.
|
||||
* Share: Share your knowledge with your friends in leanote. You can invite your friends to join your notepad in the cloud so you can share knowledge.
|
||||
* Cooperation: Collaborate with friends to improve your skills.
|
||||
* Blog: Publish your knowledge and make leanote your blog.
|
||||
|
||||
## 2. Why we created leanote
|
||||
To be honest, our inspiration comes from Evernote. We use Evernote to manage our knowledge everyday. But we find that:
|
||||
* Evernote's editor can't meet our needs, it does not have document navigation, it does not render code properly (as a programmer, syntax highlighted code rendering is a basic need), it cannot resize images and so forth
|
||||
* We like markdown, but Evernote does not support it.
|
||||
* We want to share our knowledge, so all of us have our blogs (e.g. on Wordpress) and our Evernote accounts, but why can not those two be one!
|
||||
* ......
|
||||
|
||||
## How to use it
|
||||
Leanote build with golang(revel) and mongodb. so you must install mongodb at first.
|
||||
## 3. How to install leanote
|
||||
|
||||
### Install mongodb
|
||||
For more tips please go https://github.com/leanote/leanote/wiki/mongodb-in-leanote
|
||||
### 3.1. Download leanote
|
||||
|
||||
Go http://www.mongodb.org to download and install it.
|
||||
Leanote v0.1 has been released. Binaries:
|
||||
|
||||
### Export initial mongodb data
|
||||
* Linux: [leanote-linux-v0.1.bin.tar.gz](https://github.com/leanote/leanote/releases/download/0.1/leanote-linux-v0.1.bin.tar.gz)
|
||||
* MacOS X: [leanote-mac-v0.1.bin.tar.gz](https://github.com/leanote/leanote/releases/download/0.1/leanote-mac-v0.1.bin.tar.gz)
|
||||
|
||||
The mongodb data is in path_to_leante/mongodb_backup/leanote_install_data
|
||||
### 3.2. Install MongoDB
|
||||
|
||||
Leanote is written in go using [revel](https://revel.github.io/) and [MongoDB](https://www.mongodb.org). Thus, you need to first install MongoDB.
|
||||
|
||||
For more tips please have a look at [our wiki](https://github.com/leanote/leanote/wiki/Install-Mongodb)
|
||||
|
||||
### 3.3. Import initial MongoDB data
|
||||
|
||||
The mongodb data is in `[PATH_TO_LEANOTE]/mongodb_backup/leanote_install_data`
|
||||
|
||||
```
|
||||
$> mongorestore -h localhost -d leanote --directoryperdb path_to_leante/mongodb_backup/leanote_install_data
|
||||
$> mongorestore -h localhost -d leanote --directoryperdb PATH_TO_LEANOTE/mongodb_backup/leanote_install_data
|
||||
```
|
||||
|
||||
The initial data contains two users:
|
||||
The initial database contains two users:
|
||||
|
||||
```
|
||||
user1 username: leanote, password: abc123
|
||||
user2 username: admin, password: abc123
|
||||
```
|
||||
|
||||
### Configuration
|
||||
### 3.4. Configuration
|
||||
|
||||
Copy path_to_leante/conf/app-default.conf to path_to_leante/conf/app.conf, the options contains:
|
||||
Modify `[PATH_TO_LEANOTE]/conf/app.conf`. Available configuration options are:
|
||||
|
||||
``mongodb`` **required**
|
||||
|
||||
@@ -58,55 +66,61 @@ Default is 80
|
||||
|
||||
``site.url``
|
||||
|
||||
Default is http://localhost, you must config it when your domain isn't it, it is used when upload images.
|
||||
Default is `http://localhost`, you must edit this when hosting leanote anywhere else. This is used when uploading images.
|
||||
|
||||
``email``
|
||||
|
||||
for find password
|
||||
For password recovery mails
|
||||
|
||||
``adminUsername``
|
||||
|
||||
Default is admin. The index site is the adminUsername's blog
|
||||
Default is `admin`. The landing page is the admin user's blog.
|
||||
|
||||
For more infomation please see app/app.conf and revel manuals http://revel.github.io
|
||||
For more infomation please see `app/app.conf` and the [revel manuals](https://revel.github.io/)
|
||||
|
||||
### Run leanote
|
||||
### 3.5. Run leanote
|
||||
|
||||
```
|
||||
$> cd path_to_leanote/bin
|
||||
$> cd PATH_TO_LEANOTE/bin
|
||||
$> sudo sh run.sh
|
||||
```
|
||||
|
||||
## How to develop leanote
|
||||
## 4. How to develop leanote
|
||||
|
||||
For more tips please go https://github.com/leanote/leanote/wiki/How-to-develop-leanote
|
||||
For more tips please see [our wiki](https://github.com/leanote/leanote/wiki/How-to-develop-leanote)
|
||||
|
||||
Leanote is a app based on revel(http://revel.github.io), so if you want to develop leanote as you want, you must be familar with revel.
|
||||
Leanote is a app based on [revel](https://revel.github.io/), so if you want to work on leanote, you should be familar with revel.
|
||||
|
||||
### Install golang
|
||||
### 4.1 Install golang
|
||||
|
||||
Install golang and set GOPATH
|
||||
Install golang and set the `GOPATH` environment variable
|
||||
|
||||
### Install revel
|
||||
### 4.2 Install revel
|
||||
```
|
||||
go get github.com/revel/revel
|
||||
go get github.com/revel/cmd/revel
|
||||
$> go get github.com/revel/revel
|
||||
$> go get github.com/revel/cmd/revel
|
||||
```
|
||||
|
||||
### Get leanote
|
||||
### 4.3 Get leanote
|
||||
|
||||
```
|
||||
go get github.com/leanote/leanote/app
|
||||
$> go get github.com/leanote/leanote/app
|
||||
```
|
||||
|
||||
### Build/Run leanote via revel
|
||||
|
||||
cp conf/routes-default to conf/routes
|
||||
|
||||
Now you can modify leanote source and build/run with revel
|
||||
### 4.4 Build/Run leanote via revel
|
||||
|
||||
```
|
||||
revel run github.com/leanote/leanote
|
||||
$> cp conf/app.conf-default conf/app.conf
|
||||
$> cp conf/routes-default conf/routes
|
||||
```
|
||||
|
||||
Welcome to join with us and contribute your code to leanote! Thanks.
|
||||
Now you can modify the leanote source and build/run using `revel`
|
||||
|
||||
```
|
||||
$> revel run github.com/leanote/leanote
|
||||
```
|
||||
|
||||
You are welcome to join us and contribute code to leanote! Thanks.
|
||||
|
||||
## Discussion
|
||||
[leanote google group](https://groups.google.com/forum/#!forum/leanote)
|
||||
|
||||
@@ -22,6 +22,7 @@ func (c Mobile) Index() revel.Result {
|
||||
return c.RenderTemplate("mobile/login.html")
|
||||
}
|
||||
|
||||
/*
|
||||
// 已登录了, 那么得到所有信息
|
||||
notebooks := notebookService.GetNotebooks(userId)
|
||||
shareNotebooks, sharedUserInfos := shareService.GetShareNotebooks(userId)
|
||||
@@ -32,8 +33,9 @@ func (c Mobile) Index() revel.Result {
|
||||
c.RenderArgs["shareNotebooks"] = c.Json(shareNotebooks)
|
||||
c.RenderArgs["sharedUserInfos"] = c.Json(sharedUserInfos)
|
||||
c.RenderArgs["tagsJson"] = c.Json(tagService.GetTags(c.GetUserId()))
|
||||
*/
|
||||
|
||||
return c.RenderTemplate("mobile/index.html");
|
||||
return c.RenderTemplate("mobile/angular.html");
|
||||
}
|
||||
|
||||
func (c Mobile) Logout() revel.Result {
|
||||
|
||||
@@ -85,6 +85,11 @@ func (c Note) ListTrashNotes() revel.Result {
|
||||
return c.RenderJson(notes)
|
||||
}
|
||||
|
||||
// 得到note和内容
|
||||
func (c Note) GetNoteAndContent(noteId string) revel.Result {
|
||||
return c.RenderJson(noteService.GetNoteAndContent(noteId, c.GetUserId()))
|
||||
}
|
||||
|
||||
// 得到内容
|
||||
func (c Note) GetNoteContent(noteId string) revel.Result {
|
||||
noteContent := noteService.GetNoteContent(noteId, c.GetUserId())
|
||||
|
||||
@@ -13,17 +13,12 @@ type Notebook struct {
|
||||
BaseController
|
||||
}
|
||||
|
||||
// 得到笔记本
|
||||
// 该用户下的
|
||||
func (c Notebook) GetNotebooks() {
|
||||
}
|
||||
|
||||
func (c Notebook) Index(notebook info.Notebook, i int, name string) revel.Result {
|
||||
return c.RenderJson(notebook)
|
||||
}
|
||||
|
||||
// 得到用户的所有笔记本
|
||||
func (c Notebook) getNotebooks() revel.Result {
|
||||
func (c Notebook) GetNotebooks() revel.Result {
|
||||
re := notebookService.GetNotebooks(c.GetUserId())
|
||||
return c.RenderJson(re)
|
||||
}
|
||||
|
||||
@@ -10,8 +10,8 @@ import (
|
||||
|
||||
// convert revel msg to js msg
|
||||
|
||||
var msgBasePath = "/Users/life/Documents/Go/package/src/leanote/messages/"
|
||||
var targetBasePath = "/Users/life/Documents/Go/package/src/leanote/public/js/i18n/"
|
||||
var msgBasePath = "/Users/life/Documents/Go/package/src/github.com/leanote/leanote/messages/"
|
||||
var targetBasePath = "/Users/life/Documents/Go/package/src/github.com/leanote/leanote/public/js/i18n/"
|
||||
func parse(filename string) {
|
||||
file, err := os.Open(msgBasePath + filename)
|
||||
reader := bufio.NewReader(file)
|
||||
|
||||
@@ -28,8 +28,8 @@ var bodyTpl = `
|
||||
<div style="float:left; height: 40px;">
|
||||
<a href="http://leanote.com" style="font-size: 24px">leanote</a>
|
||||
</div>
|
||||
<div style="float:left; height:40px; line-height:16px;">
|
||||
| <span style="font-size:24px">$title</span>
|
||||
<div style="float:left; height:40px; line-height:40px;">
|
||||
| <span style="font-size:14px">$title</span>
|
||||
</div>
|
||||
<div style="clear:both"></div>
|
||||
</div>
|
||||
@@ -50,7 +50,7 @@ var bodyTpl = `
|
||||
font-size: 12px;
|
||||
}
|
||||
</style>
|
||||
<a href="http://leanote.com">leanote</a>, your own cloud note
|
||||
<a href="http://leanote.com">leanote</a>, your own cloud note!
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
@@ -78,6 +78,7 @@ func SendEmail(to, subject, title, body string) bool {
|
||||
err := smtp.SendMail(host+":"+port, auth, username, send_to, msg)
|
||||
|
||||
if err != nil {
|
||||
Log(err)
|
||||
return false
|
||||
}
|
||||
return true
|
||||
|
||||
@@ -31,6 +31,13 @@ func (this *NoteService) GetNoteContent(noteContentId, userId string) (noteConte
|
||||
return
|
||||
}
|
||||
|
||||
// 得到笔记和内容
|
||||
func (this *NoteService) GetNoteAndContent(noteId, userId string) (noteAndContent info.NoteAndContent) {
|
||||
note := this.GetNote(noteId, userId)
|
||||
noteContent := this.GetNoteContent(noteId, userId)
|
||||
return info.NoteAndContent{note, noteContent}
|
||||
}
|
||||
|
||||
// 列出note, 排序规则, 还有分页
|
||||
// CreatedTime, UpdatedTime, title 来排序
|
||||
func (this *NoteService) ListNotes(userId, notebookId string,
|
||||
|
||||
@@ -208,11 +208,11 @@ func (this *UserService) UpdateEmailSendActiveEmail(userId, email string) (ok bo
|
||||
}
|
||||
|
||||
// 发送邮件
|
||||
url := "http://115.28.133.226/user/updateEmail?token=" + token
|
||||
url := "http://leanote.com/user/updateEmail?token=" + token
|
||||
body := "邮箱验证后您的登录邮箱为: <b>" + email + "</b><br />";
|
||||
body += fmt.Sprintf("请点击链接验证邮箱: <a href='%v'>%v</a>. %v小时后过期.", url, url, tokenService.GetOverHours(info.TokenUpdateEmail));
|
||||
if !SendEmail(email, "leanote-验证邮箱", "验证邮箱", body) {
|
||||
msg = "发送失败"
|
||||
msg = "发送失败, 该邮箱存在?"
|
||||
return
|
||||
}
|
||||
ok = true
|
||||
@@ -291,4 +291,4 @@ func (this *UserService)UpdateColumnWidth(userId string, notebookWidth, noteList
|
||||
// 左侧是否隐藏
|
||||
func (this *UserService)UpdateLeftIsMin(userId string, leftIsMin bool) bool {
|
||||
return db.UpdateByQMap(db.Users, bson.M{"_id": bson.ObjectIdHex(userId)}, bson.M{"LeftIsMin": leftIsMin})
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
<div id="posts">
|
||||
<div class="each-post">
|
||||
<div class="title">
|
||||
关于我
|
||||
{{msg . "aboutMe"}}
|
||||
</div>
|
||||
<div class="created-time">
|
||||
</div>
|
||||
|
||||
@@ -2,19 +2,19 @@
|
||||
{{$userId := .userBlog.UserId.Hex}}
|
||||
<div class="container" id="footer">
|
||||
<div class="col-md-4">
|
||||
<h3>导航</h3>
|
||||
<h3>{{msg . "blogNavs"}}</h3>
|
||||
<ul>
|
||||
<li><a href="/blog/{{$userId}}">首页</a></li>
|
||||
<li><a href="/blog/{{$userId}}">{{msg . "home"}}</a></li>
|
||||
{{range .notebooks}}
|
||||
<li>
|
||||
<a href="/blog/{{$userId}}/{{.NotebookId.Hex}}">{{.Title}}</a>
|
||||
</li>
|
||||
{{end}}
|
||||
<li><a href="/blog/aboutMe/{{$userId}}">关于我</a></li>
|
||||
<li><a href="/blog/aboutMe/{{$userId}}">{{msg . "aboutMe"}}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<h3>最近发表</h3>
|
||||
<h3>{{msg . "latestPosts"}}</h3>
|
||||
<ul>
|
||||
{{range .recentBlogs}}
|
||||
<li title="{{.Title}}"><a href="/blog/view/{{.NoteId.Hex}}/">{{.Title}}</a></li>
|
||||
@@ -22,10 +22,10 @@
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<h3>快速链接</h3>
|
||||
<h3>{{msg . "quickLinks"}}</h3>
|
||||
<ul>
|
||||
<li><a href="/note">我的笔记</a></li>
|
||||
<li><a href="/login">登录</a></li>
|
||||
<li><a href="/note">{{msg . "myNote"}}</a></li>
|
||||
<li><a href="/login">{{msg . "login"}}</a></li>
|
||||
<li><a href="http://leanote.com" target="_blank">leanote</a></li>
|
||||
<li><a href="https://github.com/leanote/leanote" target="_blank">leanote github</a></li>
|
||||
</ul>
|
||||
|
||||
@@ -58,7 +58,7 @@ function log(o) {
|
||||
<div class="navbar-collapse collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
{{$navNotebookId := .notebookId}}
|
||||
<li class="{{if .index}}active{{end}}"><a href="/blog/{{$username}}">首页</a></li>
|
||||
<li class="{{if .index}}active{{end}}"><a href="/blog/{{$username}}">{{msg . "home"}}</a></li>
|
||||
{{range .notebooks}}
|
||||
{{$notebookId := .NotebookId.Hex}}
|
||||
<li class="{{if eq $navNotebookId $notebookId}}active{{else}}{{end}}">
|
||||
@@ -66,9 +66,9 @@ function log(o) {
|
||||
>{{.Title}}</a>
|
||||
</li>
|
||||
{{end}}
|
||||
<li class="{{if .aboutMe}}active{{end}}"><a href="/blog/aboutMe/{{$username}}">关于我</a></li>
|
||||
<li class="{{if .aboutMe}}active{{end}}"><a href="/blog/aboutMe/{{$username}}">{{msg . "aboutMe"}}</a></li>
|
||||
{{if .isMe}}
|
||||
<li class="{{if .set}}active{{end}}"><a href="/blog/set" >博客设置</a></li>
|
||||
<li class="{{if .set}}active{{end}}"><a href="/blog/set">{{msg . "blogSet"}}</a></li>
|
||||
<li><a href="/note" >{{msg . "myNote"}}</a></li>
|
||||
{{end}}
|
||||
</ul>
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
<!-- This file is Depreciated -->
|
||||
|
||||
<link href="/public/mdeditor/editor/google-code-prettify/prettify.css" type="text/css" rel="stylesheet">
|
||||
<script src="/public/mdeditor/editor/google-code-prettify/prettify.js"></script>
|
||||
|
||||
|
||||
@@ -3,14 +3,15 @@
|
||||
<div id="postsContainer">
|
||||
<div class="container">
|
||||
{{if .notebookId}}
|
||||
<h2>分类 {{.notebook.Title}}</h2>
|
||||
<h2>{{msg . "blogClass"}}: {{.notebook.Title}}</h2>
|
||||
{{end}}
|
||||
</div>
|
||||
<div id="posts">
|
||||
{{$G := .}}
|
||||
{{range .blogs}}
|
||||
<div class="each-post">
|
||||
<div class="title">
|
||||
<a href="/blog/view/{{.NoteId.Hex}}" title="全文">
|
||||
<a href="/blog/view/{{.NoteId.Hex}}" title="{{msg $G "fullBlog"}}">
|
||||
{{.Title}}
|
||||
</a>
|
||||
</div>
|
||||
@@ -19,16 +20,16 @@
|
||||
{{if .Tags}}
|
||||
{{blogTags .Tags}}
|
||||
{{else}}
|
||||
无
|
||||
{{msg $G "noTag"}}
|
||||
{{end}}
|
||||
|
|
||||
<i class="fa fa-calendar" style="color: #666"></i> 更新 {{.UpdatedTime | datetime}} |
|
||||
<i class="fa fa-calendar" style="color: #666"></i> 创建 {{.CreatedTime | datetime}}
|
||||
<i class="fa fa-calendar" style="color: #666"></i> {{msg $G "updatedTime"}} {{.UpdatedTime | datetime}} |
|
||||
<i class="fa fa-calendar" style="color: #666"></i> {{msg $G "createdTime"}} {{.CreatedTime | datetime}}
|
||||
</div>
|
||||
<div class="desc">
|
||||
{{.Content | raw}}
|
||||
</div>
|
||||
<a class="more" href="/blog/view/{{.NoteId.Hex}}" title="更多">More...</a>
|
||||
<a class="more" href="/blog/view/{{.NoteId.Hex}}" title="{{msg $G "fullBlog"}}">More...</a>
|
||||
</div>
|
||||
{{end}}
|
||||
<!-- 分页 -->
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
{{template "Blog/header.html" .}}
|
||||
|
||||
<!-- -->
|
||||
<link rel="stylesheet" href="/tinymce/skins/custom/skin.min.css"
|
||||
type="text/css">
|
||||
<link rel="stylesheet" href="/tinymce/skins/custom/skin.min.css" type="text/css">
|
||||
<style>
|
||||
.tab-pane {
|
||||
padding-top: 10px;
|
||||
@@ -11,9 +10,9 @@
|
||||
<div id="postsContainer">
|
||||
<div id="posts">
|
||||
<ul id="myTab" class="nav nav-tabs">
|
||||
<li class="active"><a href="#baseInfo" data-toggle="tab">基本设置</a></li>
|
||||
<li class=""><a href="#commentInfo" data-toggle="tab">评论设置</a></li>
|
||||
<li class=""><a href="#styleInfo" data-toggle="tab">主题设置</a></li>
|
||||
<li class="active"><a href="#baseInfo" data-toggle="tab">{{msg . "baseInfoSet"}}</a></li>
|
||||
<li class=""><a href="#commentInfo" data-toggle="tab">{{msg . "commentSet"}}</a></li>
|
||||
<li class=""><a href="#styleInfo" data-toggle="tab">{{msg . "themeSet"}}</a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Tab panes -->
|
||||
@@ -21,7 +20,7 @@
|
||||
<div class="tab-pane" id="styleInfo">
|
||||
<form class="form-horizontal" role="form">
|
||||
<div class="form-group">
|
||||
<label for="Style" class="col-sm-2 control-label">主题</label>
|
||||
<label for="Style" class="col-sm-2 control-label">{{msg . "theme"}}</label>
|
||||
<div class="col-sm-10">
|
||||
<label><input type="radio" name="Style"
|
||||
value="blog_default"
|
||||
@@ -32,19 +31,19 @@
|
||||
checked="checked"
|
||||
{{end}}
|
||||
{{end}}>
|
||||
默认 </label>
|
||||
{{msg . "default"}} </label>
|
||||
<label><input type="radio" name="Style"
|
||||
value="blog_daqi"
|
||||
{{if eq .userBlog.Style "blog_daqi"}}checked="checked"{{end}}>
|
||||
大气</label>
|
||||
{{msg . "elegant"}}</label>
|
||||
<label><input type="radio" name="Style"
|
||||
value="blog_left_fixed"
|
||||
{{if eq .userBlog.Style "blog_left_fixed"}}checked="checked"{{end}}>
|
||||
左侧导航固定</label>
|
||||
{{msg . "navFixed"}}</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<button class="btn btn-success">保存</button>
|
||||
<button class="btn btn-success">{{msg . "save"}}</button>
|
||||
<span class="msg"></span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -54,26 +53,25 @@
|
||||
<div class="tab-pane" id="commentInfo">
|
||||
<form class="form-horizontal" role="form">
|
||||
<div class="form-group">
|
||||
<label for="subTitle" class="col-sm-2 control-label">开启评论</label>
|
||||
<label for="subTitle" class="col-sm-2 control-label">{{msg . "openComment"}}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="checkbox" id="CanComment" name="CanComment"
|
||||
{{if .userBlog.CanComment}}checked="checked"{{end}} >
|
||||
<br />
|
||||
leanote采用 <a href="http://disqus.com" target="_blank">Disqus</a>
|
||||
作为评论系统
|
||||
{{msg . "commentSys"}}
|
||||
<div id="disqusSet">
|
||||
<label for="DisqusId">Disqus Id</label> <input type="text"
|
||||
class="form-control" style="display: inline; width: 50%"
|
||||
id="DisqusId" name="DisqusId"
|
||||
value="{{if .userBlog.DisqusId}}{{.userBlog.DisqusId}}{{else}}leanote{{end}}">
|
||||
<br /> (请填写您申请的Disqus唯一url前缀, 建议您申请Disqus帐号, 这样可以自己管理评论.
|
||||
或使用leanote的默认Disqus Id. <a target="_blank"
|
||||
href="/blog/view/52db8463e01c530ef8000001">需要帮助?</a>)
|
||||
<br />
|
||||
{{msg . "disqusHelp"}}
|
||||
<a target="_blank" href="http://leanote.com/blog/view/52db8463e01c530ef8000001">{{msg . "needHelp"}}</a>)
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<button class="btn btn-success">保存</button>
|
||||
<button class="btn btn-success">{{msg . "save"}}</button>
|
||||
<span class="msg"></span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -90,16 +88,16 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="title" class="col-sm-2 control-label">博客名称</label>
|
||||
<label for="title" class="col-sm-2 control-label">{{msg . "blogName"}}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="Title" name="Title"
|
||||
placeholder="比如: leanote的博客"
|
||||
value="{{if .userBlog.Title}}{{.userBlog.Title}}{{else}}{{.userInfo.Email}} 的博客{{end}}">
|
||||
placeholder="eg: leanote's blog"
|
||||
value="{{if .userBlog.Title}}{{.userBlog.Title}}{{else}}{{.userInfo.Email}} 's blog{{end}}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="logo" class="col-sm-2 control-label">博客Logo</label>
|
||||
<label for="logo" class="col-sm-2 control-label">{{msg . "blogLogo"}}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="hidden" name="Logo" id="Logo"
|
||||
value="{{.userBlog.Logo}}" />
|
||||
@@ -107,14 +105,15 @@
|
||||
enctype="multipart/form-data" target="logoTarget"
|
||||
onsubmit="inProgress()">
|
||||
<input type="file" class="form-control" id="logo2" name="file"
|
||||
onChange='$("#formLogo").submit();' /> 上传logo将显示logo(替代博客标题)
|
||||
onChange='$("#formLogo").submit();' />
|
||||
{{msg . "blogLogoTips"}}
|
||||
<div id="logoImg"
|
||||
{{if .userBlog.Logo }}
|
||||
{{else}}
|
||||
style="display: none"{{end}}
|
||||
>
|
||||
<img src="{{.userBlog.Logo}}" style="height: 40px" /> <a
|
||||
href="#" id="deleteLogo">删除</a>
|
||||
href="#" id="deleteLogo">{{msg . "delete"}}</a>
|
||||
</div>
|
||||
</form>
|
||||
<iframe id="logoTarget" name="logoTarget" src="#"
|
||||
@@ -123,11 +122,11 @@
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="subTitle" class="col-sm-2 control-label">博客描述</label>
|
||||
<label for="subTitle" class="col-sm-2 control-label">{{msg . "blogDesc"}}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="SubTitle"
|
||||
name="SubTitle" value="{{.userBlog.SubTitle}}"
|
||||
placeholder="比如: leanote, 不只是笔记">
|
||||
placeholder="eg: leanote, your own cloud note">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -139,7 +138,7 @@
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="aboutMe" class="col-sm-2 control-label">关于我</label>
|
||||
<label for="aboutMe" class="col-sm-2 control-label">{{msg . "aboutMe"}}</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea id="AboutMe" name="AboutMe">{{.userBlog.AboutMe}}</textarea>
|
||||
</div>
|
||||
@@ -147,7 +146,7 @@
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<button class="btn btn-success">保存</button>
|
||||
<button class="btn btn-success">{{msg . "save"}}</button>
|
||||
<span class="msg"></span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -167,19 +166,17 @@
|
||||
$(function() {
|
||||
tinymce.init({
|
||||
selector : "#AboutMe",
|
||||
content_css : [ "/css/bootstrap.css", "/css/editor.css" ],
|
||||
content_css : [ "/css/bootstrap.css", "/css/editor/editor.css" ],
|
||||
skin : "custom",
|
||||
language : "zh_CN",
|
||||
language : "zh",
|
||||
height : 300,
|
||||
width : "100%",
|
||||
skin : "custom",
|
||||
plugins : [
|
||||
"advlist autolink link image lists charmap hr ",
|
||||
"searchreplace visualblocks visualchars code tabfocus",
|
||||
"table contextmenu directionality textcolor paste fullpage textcolor" ],
|
||||
|
||||
toolbar1 : "formatselect fontselect fontsizeselect | forecolor backcolor | bold italic underline strikethrough | image | bullist numlist | alignleft aligncenter alignright alignjustify",
|
||||
toolbar2 : "outdent indent blockquote | link unlink | table | hr removeformat | subscript superscript | visualchars visualblocks | searchreplace | code",
|
||||
|
||||
"advlist autolink link leanote_image lists charmap hr ",
|
||||
"searchreplace visualblocks visualchars leanote_code tabfocus",
|
||||
"table contextmenu directionality textcolor paste fullpage textcolor"],
|
||||
toolbar1 : "formatselect |fontselect fontsizeselect| forecolor backcolor | bold italic underline strikethrough | bullist numlist |",
|
||||
menubar : false,
|
||||
toolbar_items_size : 'small',
|
||||
statusbar : false,
|
||||
@@ -218,7 +215,7 @@ $(function() {
|
||||
}
|
||||
|
||||
post("/blog/setUserBlogBase", data, function(ret) {
|
||||
showMsg2($("#baseInfo .msg"), "保存成功", 2000);
|
||||
showMsg2($("#baseInfo .msg"), "{{msg . "saveSuccess"}}", 2000);
|
||||
$("#blogDesc").html(data.SubTitle);
|
||||
$("#logo").html(data.Title);
|
||||
if(data.Logo) {
|
||||
@@ -234,7 +231,7 @@ $(function() {
|
||||
DisqusId : $("#DisqusId").val(),
|
||||
}
|
||||
post("/blog/setUserBlogComment", data, function(ret) {
|
||||
showMsg2($("#commentInfo .msg"), "保存成功", 2000);
|
||||
showMsg2($("#commentInfo .msg"), "{{msg . "saveSuccess"}}", 2000);
|
||||
}, this);
|
||||
});
|
||||
// 主题
|
||||
@@ -244,7 +241,7 @@ $(function() {
|
||||
Style : $("input[name='Style']:checked").val()
|
||||
}
|
||||
post("/blog/setUserBlogStyle", data, function(ret) {
|
||||
showMsg2($("#styleInfo .msg"), "保存成功", 2000);
|
||||
showMsg2($("#styleInfo .msg"), "{{msg . "saveSuccess"}}", 2000);
|
||||
}, this);
|
||||
});
|
||||
$("input[name='Style']").click(function() {
|
||||
|
||||
@@ -12,11 +12,11 @@
|
||||
{{if .blog.Tags}}
|
||||
{{blogTags .blog.Tags}}
|
||||
{{else}}
|
||||
无
|
||||
{{msg . "noTag"}}
|
||||
{{end}}
|
||||
|
|
||||
<i class="fa fa-calendar" style="color: #666"></i> 更新 {{.blog.UpdatedTime | datetime}} |
|
||||
<i class="fa fa-calendar" style="color: #666"></i> 创建 {{.blog.CreatedTime | datetime}}
|
||||
<i class="fa fa-calendar" style="color: #666"></i> {{msg . "updatedTime"}} {{.blog.UpdatedTime | datetime}} |
|
||||
<i class="fa fa-calendar" style="color: #666"></i> {{msg . "createdTime"}} {{.blog.CreatedTime | datetime}}
|
||||
</div>
|
||||
|
||||
<div class="desc" id="content">
|
||||
@@ -93,7 +93,7 @@
|
||||
<div id="blogNav">
|
||||
<div id="blogNavNav">
|
||||
<i class="fa fa-align-justify" title="文档导航"></i>
|
||||
<span>{{msg . "nav"}}</span>
|
||||
<span>{{msg . "blogNav"}}</span>
|
||||
</div>
|
||||
<div id="blogNavContent" style="max-width: 200px">
|
||||
</div>
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
</style>
|
||||
<section>
|
||||
<div class="header">
|
||||
<h2>leanote, Your own cloud note!</h2>
|
||||
<h2>leanote, your own cloud note!</h2>
|
||||
<p>Knowledge, Sharing, Cooperation, Blog... all just in leanote</p>
|
||||
|
||||
<div>
|
||||
<a class="btn btn-primary" href="https://github.com/leanote/leanote">Fork leanote from Github</a>
|
||||
<a class="btn btn-primary" href="https://github.com/leanote/leanote">Fork leanote on Github</a>
|
||||
|
||||
|
||||
<a class="btn btn-default" href="/demo">Try it</a>
|
||||
|
||||
49
app/views/Mobile/angular.html
Normal file
@@ -0,0 +1,49 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
|
||||
<link href="/public/mobile2/topcoat/css/topcoat-mobile-light.min.css" rel="stylesheet">
|
||||
<link href="/public/mobile2/css/styles.css" rel="stylesheet">
|
||||
<link href="/public/css/font-awesome-4.0.3/css/font-awesome.css" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
<body ng-controller="MainCtrl">
|
||||
|
||||
<div id="sidebar" class="page-sidebar">
|
||||
<h1>leanote</h1>
|
||||
<ul id="nav">
|
||||
<li ng-click="go('/notes/all')"><a>[[msg.all]]</a></li>
|
||||
<li ng-click="go('/notebooks')"><a>[[msg.notebook]]</a></li>
|
||||
<li><a href="#">[[msg.tag]]</a></li>
|
||||
</ul>
|
||||
<footer>
|
||||
<a href="/mobile/logout">[[msg.logout]]</a>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<div id="content" class="page-content">
|
||||
<div ng-view ng-class="slide" >
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="/js/jquery-1.9.0.min.js"></script>
|
||||
<script src="/js/i18n/msg.{{.locale}}.js"></script>
|
||||
<script src="/js/common.js"></script>
|
||||
|
||||
<script src="/public/js/angular/angular.min.js"></script>
|
||||
<script src="/public/js/angular/angular-touch.min.js"></script>
|
||||
<script src="/public/js/angular/angular-resource.min.js"></script>
|
||||
<script src="/public/js/angular/angular-animate.min.js"></script>
|
||||
<script src="/public/js/angular/angular-route.min.js"></script>
|
||||
<script src="/public/mobile2/js/app.js"></script>
|
||||
<script src="/public/mobile2/js/controllers.js"></script>
|
||||
<script src="/public/mobile2/js/services.js"></script>
|
||||
<script src="/public/mobile2/js/snap.js"></script>
|
||||
<script>
|
||||
angular.element(document).ready(function() {
|
||||
angular.bootstrap(document, ['myApp']);
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -61,7 +61,7 @@ function log(o) {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="content" class="page-content" style="position: absolute;background-color: #fff;width: 100%;">
|
||||
<div id="content" class="page-content" style="position: absolute; background-color: #fff;width: 100%;">
|
||||
<!-- notebooks -->
|
||||
<div id="notebooks">
|
||||
<!-- 头部 -->
|
||||
|
||||
@@ -4,14 +4,10 @@
|
||||
<meta name="viewport" content="user-scalable=no, initial-scale=1.0, maximum-scale=1.0"/>
|
||||
<meta name="apple-mobile-web-app-capable" content="yes"/>
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<title>leanote login</title>
|
||||
<title>leanote sign in</title>
|
||||
|
||||
<link href="/public/css/font-awesome-4.0.3/css/font-awesome.css" rel="stylesheet">
|
||||
<link href="/public/mobile/styles/style.css" rel="stylesheet" type="text/css">
|
||||
<link href="/public/mobile/styles/colors/default.css" rel="stylesheet" type="text/css" id="pagestyle">
|
||||
<link href="/public/mobile/styles/framework.css" rel="stylesheet" type="text/css">
|
||||
<link href="/public/css/font-awesome-4.0.3/css/font-awesome.css" rel="mobile/csssheet">
|
||||
<link href="/public/css/bootstrap.css" rel="stylesheet" />
|
||||
<link href="/public/mobile/styles/life.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<style>
|
||||
.alert {
|
||||
@@ -31,33 +27,24 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="preloader">
|
||||
<div id="status">
|
||||
<p class="center-text">
|
||||
loading...
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="text-align: center">
|
||||
<img src="/public/mobile/images/blog01.jpg" style="width: 100%"/>
|
||||
<form id="loginForm" style="width: 90%; margin: auto;">
|
||||
<div class="form-group">
|
||||
<h2 style="margin-top:10px">leanote 登录</h2>
|
||||
<h2 style="margin-top:10px">leanote {{msg . "login"}}</h2>
|
||||
</div>
|
||||
<div class="alert alert-danger" id="loginMsg" style="display: none"></div>
|
||||
<div class="form-group">
|
||||
<input class="form-control" id="email" name="email" placeholder="用户名或Email" value="">
|
||||
<input class="form-control" id="email" name="email" placeholder="{{msg . "usernameOrEmail"}}" value="">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input type="password" class="form-control" id="pwd" name="pwd" placeholder="密码">
|
||||
<input type="password" class="form-control" id="pwd" name="pwd" placeholder="{{msg . "password"}}">
|
||||
</div>
|
||||
<button id="loginBtn" class="btn btn-success" style="width: 100%">登录</button>
|
||||
<button id="loginBtn" class="btn btn-success" style="width: 100%">{{msg . "login"}}</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="/public/mobile/scripts/jquery.js"></script>
|
||||
<script type="text/javascript" src="/public/js/jquery-1.9.0.min.js"></script>
|
||||
<script>
|
||||
$(function() {
|
||||
$("#status").fadeOut(); // will first fade out the loading animation
|
||||
|
||||
@@ -11,10 +11,22 @@
|
||||
<link href="css/bootstrap.css" rel="stylesheet" />
|
||||
<!-- 先加载, 没有样式, 宽度不定 -->
|
||||
<link rel="stylesheet" href="tinymce/skins/custom/skin.min.css" type="text/css" />
|
||||
|
||||
<!-- leanote css -->
|
||||
<link rel="stylesheet" href="css/theme/{{if .userInfo.Theme}}{{.userInfo.Theme}}{{else}}default{{end}}.css" type="text/css" id="themeLink" />
|
||||
<script>
|
||||
var hash = location.hash;
|
||||
if(hash == "#writing") {
|
||||
var files = '<link rel="stylesheet" href="css/theme/writting-overwrite.css" type="text/css" id="themeLink" />';
|
||||
} else {
|
||||
var files ='<link rel="stylesheet" href="css/theme/{{if .userInfo.Theme}}{{.userInfo.Theme}}{{else}}default{{end}}.css" type="text/css" id="themeLink" />';
|
||||
}
|
||||
document.write(files);
|
||||
</script>
|
||||
|
||||
<link href="css/font-awesome-4.0.3/css/font-awesome.css" rel="stylesheet" />
|
||||
|
||||
<!-- For Develop writting mod -->
|
||||
|
||||
<script>
|
||||
function log(o) {
|
||||
console.log(o);
|
||||
@@ -42,14 +54,14 @@ function log(o) {
|
||||
<span id="leftSwitcher2" title="{{msg . "leftShow"}}">lea</span>
|
||||
</div>
|
||||
<!-- search -->
|
||||
<div class="pull-left">
|
||||
<div class="pull-left" id="searchWrap">
|
||||
<form class="navbar-form form-inline col-lg-2 hidden-xs" id="searchNote">
|
||||
<input class="form-control" placeholder="Search" type="text" id="searchNoteInput">
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- 全局按钮 -->
|
||||
<div class="pull-left" style="line-height: 40px; margin-top: 10px;">
|
||||
<div class="pull-left" style="" id="newNoteWrap">
|
||||
|
||||
<!-- 新建笔记 -->
|
||||
<div id="newMyNote">
|
||||
@@ -57,11 +69,12 @@ function log(o) {
|
||||
<i class="fa fa-file-o"></i>
|
||||
{{msg . "newNote"}}
|
||||
</a>
|
||||
|
|
||||
<span class="new-split">|</span>
|
||||
<a id="newNoteMarkdownBtn" title="{{msg . "newMarkdown"}}">
|
||||
Markdown
|
||||
</a>
|
||||
- <span id="curNotebookForNewNote" notebookId=""></span>
|
||||
<span class="for-split"> - </span>
|
||||
<span id="curNotebookForNewNote" notebookId=""></span>
|
||||
<div class="dropdown" style="display: inline-block">
|
||||
<a class="ios7-a dropdown-toggle"
|
||||
id="dropdownMenu2" data-toggle="dropdown">
|
||||
@@ -78,11 +91,12 @@ function log(o) {
|
||||
<i class="fa fa-file-o"></i>
|
||||
{{msg . "newNote"}}
|
||||
</a>
|
||||
|
|
||||
<span class="new-split">|</span>
|
||||
<a id="newShareNoteMarkdownBtn" title="{{msg . "newMarkdown"}}">
|
||||
Markdown
|
||||
</a>
|
||||
- <span id="curNotebookForNewSharedNote" notebookId="" userId=""></span>
|
||||
<span class="for-split"> - </span>
|
||||
<span id="curNotebookForNewSharedNote" notebookId="" userId=""></span>
|
||||
<div class="dropdown" style="display: inline-block">
|
||||
<a class="ios7-a dropdown-toggle"
|
||||
id="dropdownMenu2" data-toggle="dropdown">
|
||||
@@ -94,17 +108,10 @@ function log(o) {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pull-left" style="line-height: 40px; margin-top: 10px; margin-left: 10px;" id="leanoteMsg">
|
||||
<div class="pull-left" id="leanoteMsg">
|
||||
<span id="msg" style="display: inline-block;"></span>
|
||||
<img id="loading" style="visibility: hidden" src="/images/loading-a-20.gif" />
|
||||
|
||||
{{if .openRegister}}
|
||||
{{if eq .userInfo.Email "demo@leanote.com"}}
|
||||
<span>
|
||||
{{msg . "demoRegister"}}
|
||||
</span>
|
||||
{{end}}
|
||||
{{end}}
|
||||
<span id="loading">
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
@@ -159,6 +166,20 @@ function log(o) {
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="pull-right" style="line-height: 60px; margin-right:10px" id="toggleEditorMode">
|
||||
<a href="#writing">{{msg . "writingMode"}}</a>
|
||||
</div>
|
||||
|
||||
{{if eq .userInfo.Email "demo@leanote.com"}}
|
||||
{{if .openRegister}}
|
||||
<div class="pull-right" style="line-height: 60px; margin-right:10px" id="demoRegister">
|
||||
<span>
|
||||
{{msg . "demoRegister"}}
|
||||
</span>
|
||||
</div>
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
<!--
|
||||
<ul id="setting" class="pull-right">
|
||||
<li class="dropdown messages">
|
||||
@@ -236,7 +257,7 @@ function log(o) {
|
||||
<div class="folderHeader">
|
||||
<i class="fa fa-user fa-left"></i>
|
||||
<span>
|
||||
共享
|
||||
{{msg . "share"}}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -443,7 +464,7 @@ function log(o) {
|
||||
</div>
|
||||
|
||||
<div id="noteTitleDiv">
|
||||
<input name="noteTitle" id="noteTitle" value="" placeholder="{{msg . "unTitled"}}">
|
||||
<input name="noteTitle" id="noteTitle" value="" placeholder="{{msg . "unTitled"}}" tabindex="1" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -457,6 +478,7 @@ function log(o) {
|
||||
id="moreBtn"> <i class="fa fa-angle-down"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="editorBg"></div>
|
||||
<div id="leanoteNav">
|
||||
<h1>
|
||||
<i class="fa fa-align-justify" title="文档导航"></i>
|
||||
@@ -466,19 +488,20 @@ function log(o) {
|
||||
</div>
|
||||
</div>
|
||||
<!-- 由此可以算高度 -->
|
||||
<div id="editorContent" name="editorContent">
|
||||
<div id="editorContent" name="editorContent" tabindex="2" />
|
||||
{{.noteContent}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="mdEditor">
|
||||
<div id="wmd-button-bar" id="mdBar"></div>
|
||||
<div class="editorBg"></div>
|
||||
<!-- 为了scroll -->
|
||||
|
||||
<div class="clearfix" id="mdEditorPreview">
|
||||
<div id="left-column" class="pull-left">
|
||||
<div id="wmd-panel-editor" class="wmd-panel-editor">
|
||||
<textarea class="wmd-input theme" id="wmd-input" spellcheck="false"></textarea>
|
||||
<textarea class="wmd-input theme" id="wmd-input" spellcheck="false" tabindex="3"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div id="right-column" class="pull-right">
|
||||
@@ -707,7 +730,7 @@ function log(o) {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 长微博 -->
|
||||
<!-- 激活邮件 -->
|
||||
<div id="reSendActiveEmailDialog">
|
||||
<div class="modal-body">
|
||||
<div style="max-height: 300px; padding: 5px 0; text-align: center; overflow: scroll;" class="weibo">
|
||||
@@ -811,7 +834,7 @@ function log(o) {
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<button id="pwdBtn" class="btn btn-success" style="width: 100%">{{msg . "submit"}}</button>
|
||||
<button id="pwdBtn" class="btn btn-success">{{msg . "submit"}}</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -898,6 +921,7 @@ var sharedUserInfos = json({{.sharedUserInfos}});
|
||||
var notes = json({{.notes}});
|
||||
var noteContentJson = json({{.noteContentJson}});
|
||||
var tagsJson = json({{.tagsJson}});
|
||||
LEA.locale = "{{.locale}}";
|
||||
</script>
|
||||
|
||||
<!-- 渲染view -->
|
||||
|
||||
@@ -11,10 +11,22 @@
|
||||
<link href="css/bootstrap.css" rel="stylesheet" />
|
||||
<!-- 先加载, 没有样式, 宽度不定 -->
|
||||
<link rel="stylesheet" href="tinymce/skins/custom/skin.min.css" type="text/css" />
|
||||
|
||||
<!-- leanote css -->
|
||||
<link rel="stylesheet" href="css/theme/{{if .userInfo.Theme}}{{.userInfo.Theme}}{{else}}default{{end}}.css" type="text/css" id="themeLink" />
|
||||
<script>
|
||||
var hash = location.hash;
|
||||
if(hash == "#writing") {
|
||||
var files = '<link rel="stylesheet" href="css/theme/writting-overwrite.css" type="text/css" id="themeLink" />';
|
||||
} else {
|
||||
var files ='<link rel="stylesheet" href="css/theme/{{if .userInfo.Theme}}{{.userInfo.Theme}}{{else}}default{{end}}.css" type="text/css" id="themeLink" />';
|
||||
}
|
||||
document.write(files);
|
||||
</script>
|
||||
|
||||
<link href="css/font-awesome-4.0.3/css/font-awesome.css" rel="stylesheet" />
|
||||
|
||||
<!-- For Develop writting mod -->
|
||||
|
||||
<script>
|
||||
function log(o) {
|
||||
|
||||
@@ -42,14 +54,14 @@ function log(o) {
|
||||
<span id="leftSwitcher2" title="{{msg . "leftShow"}}">lea</span>
|
||||
</div>
|
||||
<!-- search -->
|
||||
<div class="pull-left">
|
||||
<div class="pull-left" id="searchWrap">
|
||||
<form class="navbar-form form-inline col-lg-2 hidden-xs" id="searchNote">
|
||||
<input class="form-control" placeholder="Search" type="text" id="searchNoteInput">
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- 全局按钮 -->
|
||||
<div class="pull-left" style="line-height: 40px; margin-top: 10px;">
|
||||
<div class="pull-left" style="" id="newNoteWrap">
|
||||
|
||||
<!-- 新建笔记 -->
|
||||
<div id="newMyNote">
|
||||
@@ -57,11 +69,12 @@ function log(o) {
|
||||
<i class="fa fa-file-o"></i>
|
||||
{{msg . "newNote"}}
|
||||
</a>
|
||||
|
|
||||
<span class="new-split">|</span>
|
||||
<a id="newNoteMarkdownBtn" title="{{msg . "newMarkdown"}}">
|
||||
Markdown
|
||||
</a>
|
||||
- <span id="curNotebookForNewNote" notebookId=""></span>
|
||||
<span class="for-split"> - </span>
|
||||
<span id="curNotebookForNewNote" notebookId=""></span>
|
||||
<div class="dropdown" style="display: inline-block">
|
||||
<a class="ios7-a dropdown-toggle"
|
||||
id="dropdownMenu2" data-toggle="dropdown">
|
||||
@@ -78,11 +91,12 @@ function log(o) {
|
||||
<i class="fa fa-file-o"></i>
|
||||
{{msg . "newNote"}}
|
||||
</a>
|
||||
|
|
||||
<span class="new-split">|</span>
|
||||
<a id="newShareNoteMarkdownBtn" title="{{msg . "newMarkdown"}}">
|
||||
Markdown
|
||||
</a>
|
||||
- <span id="curNotebookForNewSharedNote" notebookId="" userId=""></span>
|
||||
<span class="for-split"> - </span>
|
||||
<span id="curNotebookForNewSharedNote" notebookId="" userId=""></span>
|
||||
<div class="dropdown" style="display: inline-block">
|
||||
<a class="ios7-a dropdown-toggle"
|
||||
id="dropdownMenu2" data-toggle="dropdown">
|
||||
@@ -94,17 +108,10 @@ function log(o) {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pull-left" style="line-height: 40px; margin-top: 10px; margin-left: 10px;" id="leanoteMsg">
|
||||
<div class="pull-left" id="leanoteMsg">
|
||||
<span id="msg" style="display: inline-block;"></span>
|
||||
<img id="loading" style="visibility: hidden" src="/images/loading-a-20.gif" />
|
||||
|
||||
{{if .openRegister}}
|
||||
{{if eq .userInfo.Email "demo@leanote.com"}}
|
||||
<span>
|
||||
{{msg . "demoRegister"}}
|
||||
</span>
|
||||
{{end}}
|
||||
{{end}}
|
||||
<span id="loading">
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
@@ -159,6 +166,20 @@ function log(o) {
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="pull-right" style="line-height: 60px; margin-right:10px" id="toggleEditorMode">
|
||||
<a href="#writing">{{msg . "writingMode"}}</a>
|
||||
</div>
|
||||
|
||||
{{if eq .userInfo.Email "demo@leanote.com"}}
|
||||
{{if .openRegister}}
|
||||
<div class="pull-right" style="line-height: 60px; margin-right:10px" id="demoRegister">
|
||||
<span>
|
||||
{{msg . "demoRegister"}}
|
||||
</span>
|
||||
</div>
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
<!--
|
||||
<ul id="setting" class="pull-right">
|
||||
<li class="dropdown messages">
|
||||
@@ -236,7 +257,7 @@ function log(o) {
|
||||
<div class="folderHeader">
|
||||
<i class="fa fa-user fa-left"></i>
|
||||
<span>
|
||||
共享
|
||||
{{msg . "share"}}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -443,7 +464,7 @@ function log(o) {
|
||||
</div>
|
||||
|
||||
<div id="noteTitleDiv">
|
||||
<input name="noteTitle" id="noteTitle" value="" placeholder="{{msg . "unTitled"}}">
|
||||
<input name="noteTitle" id="noteTitle" value="" placeholder="{{msg . "unTitled"}}" tabindex="1" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -457,6 +478,7 @@ function log(o) {
|
||||
id="moreBtn"> <i class="fa fa-angle-down"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="editorBg"></div>
|
||||
<div id="leanoteNav">
|
||||
<h1>
|
||||
<i class="fa fa-align-justify" title="文档导航"></i>
|
||||
@@ -466,19 +488,20 @@ function log(o) {
|
||||
</div>
|
||||
</div>
|
||||
<!-- 由此可以算高度 -->
|
||||
<div id="editorContent" name="editorContent">
|
||||
<div id="editorContent" name="editorContent" tabindex="2" />
|
||||
{{.noteContent}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="mdEditor">
|
||||
<div id="wmd-button-bar" id="mdBar"></div>
|
||||
<div class="editorBg"></div>
|
||||
<!-- 为了scroll -->
|
||||
|
||||
<div class="clearfix" id="mdEditorPreview">
|
||||
<div id="left-column" class="pull-left">
|
||||
<div id="wmd-panel-editor" class="wmd-panel-editor">
|
||||
<textarea class="wmd-input theme" id="wmd-input" spellcheck="false"></textarea>
|
||||
<textarea class="wmd-input theme" id="wmd-input" spellcheck="false" tabindex="3"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div id="right-column" class="pull-right">
|
||||
@@ -707,7 +730,7 @@ function log(o) {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 长微博 -->
|
||||
<!-- 激活邮件 -->
|
||||
<div id="reSendActiveEmailDialog">
|
||||
<div class="modal-body">
|
||||
<div style="max-height: 300px; padding: 5px 0; text-align: center; overflow: scroll;" class="weibo">
|
||||
@@ -811,7 +834,7 @@ function log(o) {
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<button id="pwdBtn" class="btn btn-success" style="width: 100%">{{msg . "submit"}}</button>
|
||||
<button id="pwdBtn" class="btn btn-success">{{msg . "submit"}}</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -898,6 +921,7 @@ var sharedUserInfos = json({{.sharedUserInfos}});
|
||||
var notes = json({{.notes}});
|
||||
var noteContentJson = json({{.noteContentJson}});
|
||||
var tagsJson = json({{.tagsJson}});
|
||||
LEA.locale = "{{.locale}}";
|
||||
</script>
|
||||
|
||||
<!-- 渲染view -->
|
||||
|
||||
BIN
bin/leanote-mac
55
bin/release.sh
Normal file
@@ -0,0 +1,55 @@
|
||||
#!/bin/sh
|
||||
|
||||
# release leanote
|
||||
|
||||
SP=$(cd "$(dirname "$0")"; pwd)
|
||||
|
||||
cd $SP
|
||||
cd ../
|
||||
|
||||
# tmp path to store leanote release files
|
||||
tmp="/Users/life/Desktop/leanote_release"
|
||||
|
||||
rm -rf $tmp/leanote
|
||||
mkdir -p $tmp/leanote/app
|
||||
mkdir -p $tmp/leanote/conf
|
||||
mkdir -p $tmp/leanote/bin
|
||||
|
||||
# bin
|
||||
cp -r ./bin/src $tmp/leanote/bin/
|
||||
cp ./bin/run.sh $tmp/leanote/bin/
|
||||
|
||||
# views
|
||||
cp -r ./app/views $tmp/leanote/app
|
||||
# conf
|
||||
cp ./conf/app.conf-default $tmp/leanote/conf/app.conf
|
||||
cp ./conf/routes-default $tmp/leanote/conf/routes
|
||||
|
||||
# others
|
||||
cp -r ./messages ./public ./mongodb_backup $tmp/leanote/
|
||||
|
||||
# delete some files
|
||||
rm -r $tmp/leanote/public/tinymce/classes
|
||||
|
||||
# make link
|
||||
cd $tmp/leanote/bin
|
||||
ln -s ../../../../ ./src/github.com/leanote/leanote
|
||||
|
||||
# archieve
|
||||
# << 'BLOCK
|
||||
# linux
|
||||
cd $SP
|
||||
cd ../
|
||||
cp ./bin/leanote-linux $tmp/leanote/bin/
|
||||
cd $tmp
|
||||
tar -cvf $tmp/leanote-linux.tar.gz leanote
|
||||
|
||||
# mac
|
||||
rm $tmp/leanote/bin/leanote-linux
|
||||
cd $SP
|
||||
cd ../
|
||||
cp ./bin/leanote-mac $tmp/leanote/bin/
|
||||
cd $tmp
|
||||
tar -cvf $tmp/leanote-mac.tar.gz leanote
|
||||
|
||||
# BLOCK'
|
||||
@@ -1 +0,0 @@
|
||||
../../../../
|
||||
41
messages/blog.en
Normal file
@@ -0,0 +1,41 @@
|
||||
# blog
|
||||
|
||||
blog=Blog
|
||||
aboutMe=About me
|
||||
blogSet=Set blog
|
||||
|
||||
blogNavs=Navs
|
||||
quickLinks=Quick links
|
||||
latestPosts=Latest posts
|
||||
|
||||
noBlog=No blog
|
||||
noTag=No tag
|
||||
blogClass=Classification
|
||||
updatedTime=Updated at
|
||||
createdTime=Created at
|
||||
fullBlog=Full blog
|
||||
blogNav=Blog nav
|
||||
|
||||
#
|
||||
# set blog
|
||||
#
|
||||
baseInfoSet=Base info
|
||||
commentSet=Comment
|
||||
themeSet=Theme
|
||||
theme=Theme
|
||||
blogName=Title
|
||||
blogLogo=Logo
|
||||
blogDesc=Description
|
||||
|
||||
# theme
|
||||
elegant=Elegant
|
||||
navFixed=Nav fixed at left side
|
||||
|
||||
openComment=Open comment?
|
||||
commentSys=leanote use <a href="http://disqus.com" target="_blank">Disqus</a> as comment system
|
||||
disqusHelp=Please input your Disqus Id or use "leanote"
|
||||
needHelp=Need help?
|
||||
blogLogoTips=Upload image to replace blog title
|
||||
saveSuccess=Save success
|
||||
|
||||
a=a
|
||||
41
messages/blog.zh
Normal file
@@ -0,0 +1,41 @@
|
||||
# blog
|
||||
blog=博客
|
||||
aboutMe=关于我
|
||||
blogSet=博客设置
|
||||
|
||||
blogNavs=导航
|
||||
quickLinks=快速链接
|
||||
latestPosts=最近发表
|
||||
|
||||
noBlog=无博客
|
||||
noTag=无
|
||||
blogClass=分类
|
||||
updatedTime=更新
|
||||
createdTime=创建
|
||||
fullBlog=全文
|
||||
blogNav=导航
|
||||
|
||||
#
|
||||
# set blog
|
||||
#
|
||||
baseInfoSet=基本设置
|
||||
commentSet=评论设置
|
||||
themeSet=主题设置
|
||||
theme=主题
|
||||
blogName=博客标题
|
||||
blogLogo=博客Logo
|
||||
blogDesc=博客描述
|
||||
|
||||
# theme
|
||||
elegant=大气
|
||||
navFixed=导航左侧固定
|
||||
|
||||
openComment=开启评论?
|
||||
commentSys=leanote 使用 <a href="http://disqus.com" target="_blank">Disqus</a> 作为评论系统
|
||||
disqusHelp=请填写您申请的Disqus唯一url前缀. 建议您申请Disqus帐号, 这样可以自己管理评论. 或使用leanote的默认Disqus Id.
|
||||
needHelp=需要帮助?
|
||||
blogLogoTips=上传logo将显示logo(替代博客标题)
|
||||
saveSuccess=保存成功
|
||||
|
||||
|
||||
a=a
|
||||
@@ -1,5 +1,6 @@
|
||||
# leanote
|
||||
moto=Not just a note!
|
||||
moto=your own cloud note!
|
||||
|
||||
# 首页
|
||||
forgetPassword = Forget password?
|
||||
or=or
|
||||
@@ -26,7 +27,7 @@ emailOrOthers=Email or other contact way
|
||||
|
||||
hi=Hi
|
||||
welcomeUseLeanote=Welcome!
|
||||
myNote=Enter to my note
|
||||
myNote=My note
|
||||
curUser=Email
|
||||
|
||||
# form
|
||||
@@ -65,26 +66,30 @@ notGoodPassword=Tt's not a good password, the length is at least 6
|
||||
myBlog=Blog
|
||||
history=Histories
|
||||
save=Save
|
||||
editorTips=Editor Tips
|
||||
editorTipsInfo=<h4>1. Short Cuts</h4>ctrl+shift+c Toggle code <br /> ctrl+shift+i Insert/edit image <h4>2. shift+enter Get out of current block</h4> eg. <img src="/images/outofcode.png" style="width: 90px"/> in this situation you can use shift+enter to get out of current code block.
|
||||
newNote=New Note
|
||||
newMarkdown=New Markdown Note
|
||||
editorTips=Tips
|
||||
editorTipsInfo=<h4>1. Short cuts</h4>ctrl+shift+c Toggle code <br /> ctrl+shift+i Insert/edit image <h4>2. shift+enter Get out of current block</h4> eg. <img src="/images/outofcode.png" style="width: 90px"/> in this situation you can use shift+enter to get out of current code block.
|
||||
newNote=New note
|
||||
newMarkdown=New markdown note
|
||||
clickAddTag=Click to add Tag
|
||||
notebook=Notebook
|
||||
myNotebook=My Notebook
|
||||
addNotebook=Add Notebook
|
||||
myNotebook=My notebook
|
||||
addNotebook=Add notebook
|
||||
all=Newest
|
||||
trash=Trash
|
||||
unTitled=UnTitled
|
||||
defaultShare=Default sharing
|
||||
leftHidden=Hidden slide bar
|
||||
leftShow=Show slide bar
|
||||
nav=Note Nav
|
||||
nav=Note nav
|
||||
writingMode=Writing Mode
|
||||
normalMode=Normal Mode
|
||||
saving=Saving
|
||||
saveSuccess=Save success
|
||||
|
||||
update=Update
|
||||
create=Create
|
||||
|
||||
demoRegister=您现在使用的是体验帐号, <a href="/register">立即注册?</a>
|
||||
demoRegister=<a href="/register">Sign up</a>
|
||||
|
||||
close=Close
|
||||
cancel=Cancel
|
||||
@@ -92,7 +97,7 @@ send=Send
|
||||
|
||||
# 标签
|
||||
tag=Tag
|
||||
myTag=My Tag
|
||||
myTag=My tag
|
||||
red=red
|
||||
yellow=yellow
|
||||
blue=blue
|
||||
@@ -103,18 +108,20 @@ accountSetting=Account
|
||||
themeSetting=Theme
|
||||
logout=Logout
|
||||
basicInfo=Basic
|
||||
updateEmail=Update Email
|
||||
usernameSetting=Update Username
|
||||
oldPassword=Old Password
|
||||
newPassword=New Password
|
||||
updateEmail=Update email
|
||||
usernameSetting=Update username
|
||||
oldPassword=Old password
|
||||
newPassword=New password
|
||||
|
||||
default=Default
|
||||
simple=Simple
|
||||
|
||||
# tinymce
|
||||
uploadImage=Upload Image
|
||||
uploadImage=Upload image
|
||||
|
||||
# blog
|
||||
aboutMe=About me
|
||||
blogSet=Set blog
|
||||
|
||||
# error
|
||||
notFound=This page cann't found.
|
||||
|
||||
a=a
|
||||
@@ -27,7 +27,7 @@ emailOrOthers=Email或其它联系方式
|
||||
|
||||
hi=Hi
|
||||
welcomeUseLeanote=欢迎使用leanote
|
||||
myNote=进入我的笔记
|
||||
myNote=我的笔记
|
||||
curUser=当前登录帐户
|
||||
|
||||
# form
|
||||
@@ -82,11 +82,15 @@ defaultShare=默认共享
|
||||
leftHidden=隐藏左侧
|
||||
leftShow=展开左侧
|
||||
nav=文档导航
|
||||
writingMode=写作模式
|
||||
normalMode=普通模式
|
||||
saving=正在保存
|
||||
saveSuccess=保存成功
|
||||
|
||||
update=更新
|
||||
create=创建
|
||||
|
||||
demoRegister=您现在使用的是体验帐号, <a href="/register">立即注册?</a>
|
||||
demoRegister=<a href="/register">立即注册</a>
|
||||
|
||||
close=关闭
|
||||
cancel=取消
|
||||
@@ -116,8 +120,14 @@ simple=简约
|
||||
# tinymce
|
||||
uploadImage=上传图片
|
||||
|
||||
# blog
|
||||
aboutMe=关于我
|
||||
blogSet=博客设置
|
||||
|
||||
# error
|
||||
notFound=该页面不存在
|
||||
|
||||
|
||||
|
||||
# 必须要加这个, 奇怪
|
||||
[CN]
|
||||
@@ -1,2 +0,0 @@
|
||||
html{margin-top:3px;padding:3px;border:1px solid #ebeff2;border-radius:5px;-webkit-border-radius:5px;border-width:1px;box-shadow:none}
|
||||
*{font-family:'Open Sans','Helvetica Neue',Arial,'Hiragino Sans GB','Microsoft YaHei','WenQuanYi Micro Hei',sans-serif}
|
||||
12
public/css/editor/editor-writting-mode.css
Normal file
@@ -0,0 +1,12 @@
|
||||
html {
|
||||
border: none;
|
||||
}
|
||||
body {
|
||||
background-color: #fbfcf7;
|
||||
}
|
||||
* {
|
||||
font-size: 16px;
|
||||
}
|
||||
pre {
|
||||
font-size: 14px;
|
||||
}
|
||||
15
public/css/editor/editor-writting-mode.less
Normal file
@@ -0,0 +1,15 @@
|
||||
|
||||
@bgColor: #fbfcf7;
|
||||
|
||||
html {
|
||||
border: none;
|
||||
}
|
||||
body {
|
||||
background-color: @bgColor;
|
||||
}
|
||||
* {
|
||||
font-size: 16px;
|
||||
}
|
||||
pre {
|
||||
font-size:14px;
|
||||
}
|
||||
12
public/css/editor/editor.css
Normal file
@@ -0,0 +1,12 @@
|
||||
html {
|
||||
margin-top: 3px;
|
||||
padding: 3px;
|
||||
border: 1px solid #ebeff2;
|
||||
border-radius: 5px;
|
||||
-webkit-border-radius: 5px;
|
||||
border-width: 1px;
|
||||
box-shadow: none;
|
||||
}
|
||||
* {
|
||||
font-family: 'Open Sans', 'Helvetica Neue', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', sans-serif;
|
||||
}
|
||||
@@ -907,7 +907,6 @@ a.raw:hover {
|
||||
#leanoteNav {
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
top:32px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 3px;
|
||||
background-color: #fff;
|
||||
@@ -1191,4 +1190,22 @@ background-position:-1px -670px
|
||||
border-top: 1px dashed #eee;
|
||||
padding: 5px 0;
|
||||
}
|
||||
}
|
||||
#leanoteMsg {
|
||||
line-height: 40px; margin-top: 10px; margin-left: 10px;
|
||||
}
|
||||
#newNoteWrap {
|
||||
line-height: 40px; margin-top: 10px;
|
||||
}
|
||||
#loading {
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
content: url(../../images/loading-a-20.gif);
|
||||
margin-top:10px;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
#toggleEditorMode {
|
||||
margin: 0 10px !important;
|
||||
}
|
||||
@@ -872,7 +872,6 @@ border: 1px solid @borderColor;
|
||||
#leanoteNav {
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
top:32px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 3px;
|
||||
background-color: #fff;
|
||||
@@ -1152,3 +1151,22 @@ background-position:-1px -670px
|
||||
padding: 5px 0;
|
||||
}
|
||||
}
|
||||
|
||||
#leanoteMsg {
|
||||
line-height: 40px; margin-top: 10px; margin-left: 10px;
|
||||
}
|
||||
#newNoteWrap {
|
||||
line-height: 40px; margin-top: 10px;
|
||||
}
|
||||
#loading {
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
content: url(../../images/loading-a-20-black.gif);
|
||||
margin-top:10px;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
#toggleEditorMode {
|
||||
margin: 0 10px !important;
|
||||
}
|
||||
965
public/css/theme/writting-overwrite.css
Normal file
@@ -0,0 +1,965 @@
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: local('Open Sans Light'), local('OpenSans-Light'), url('../../fonts/open-sans2/DXI1ORHCpsQm3Vp6mXoaTXhCUOGz7vYGh680lGh-uXM.woff') format('woff');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url('../../fonts/open-sans2/cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff') format('woff');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('Open Sans Bold'), local('OpenSans-Bold'), url('../../fonts/open-sans2/k3k702ZOKiLJc3WVjuplzHhCUOGz7vYGh680lGh-uXM.woff') format('woff');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url('../../fonts/open-sans2/xjAJXh38I15wypJXxuGMBobN6UDyHWBl620a-IRfuBk.woff') format('woff');
|
||||
}
|
||||
/*"HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue", Helvetica, "Microsoft Yahei", Verdana, Simsun, "Segoe UI", "Segoe UI Web Regular", "Segoe UI Symbol", "BBAlpha Sans", "S60 Sans", Arial, sans-serif;*/
|
||||
::selection {
|
||||
background: #000000;
|
||||
color: #ffffff;
|
||||
}
|
||||
::-moz-selection {
|
||||
background: #000000;
|
||||
color: #ffffff;
|
||||
}
|
||||
::-webkit-selection {
|
||||
background: #000000;
|
||||
color: #ffffff;
|
||||
}
|
||||
html,
|
||||
body {
|
||||
background-color: #fbfcf7;
|
||||
}
|
||||
*,
|
||||
body {
|
||||
font-family: 'Open Sans', 'Helvetica Neue', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', sans-serif;
|
||||
font-weight: 300;
|
||||
font-size: 16px;
|
||||
}
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
font-family: 'Open Sans', 'Helvetica Neue', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', sans-serif;
|
||||
font-weight: 300 !important;
|
||||
}
|
||||
a {
|
||||
color: #000000;
|
||||
cursor: pointer;
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: none !important;
|
||||
color: #000000;
|
||||
}
|
||||
a.raw {
|
||||
color: #428bca;
|
||||
}
|
||||
a.raw:hover {
|
||||
color: #2a6496;
|
||||
}
|
||||
/* header */
|
||||
#header {
|
||||
height: 60px;
|
||||
background-color: #fbfcf7;
|
||||
color: #ffffff;
|
||||
border-bottom: 1px solid #ebeff2;
|
||||
/* for app */
|
||||
|
||||
webkit-user-select: none;
|
||||
/* 还不知 */
|
||||
|
||||
-webkit-app-region: drag;
|
||||
/* -webkit-app-region: no-drag; */
|
||||
|
||||
}
|
||||
#header a {
|
||||
color: #ccc;
|
||||
}
|
||||
#header li {
|
||||
color: #000000;
|
||||
}
|
||||
#header li a {
|
||||
color: #000000;
|
||||
}
|
||||
#searchWrap,
|
||||
#logo,
|
||||
#switcher,
|
||||
#leftNotebook,
|
||||
.noteSplit {
|
||||
display: none;
|
||||
}
|
||||
#header ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
#header ul li.dropdown {
|
||||
display: inline-block;
|
||||
height: 60px;
|
||||
}
|
||||
#header ul > li > a.dropdown-toggle {
|
||||
display: block;
|
||||
padding: 15px 5px 0 0;
|
||||
position: relative;
|
||||
}
|
||||
#header span.icon {
|
||||
display: inline-block;
|
||||
font-size: 28px;
|
||||
color: #999999;
|
||||
}
|
||||
.dropdown-menu {
|
||||
border-radius: 0;
|
||||
margin: 0;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
border: 1px solid #0fb264;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.dropdown-menu li {
|
||||
padding-left: 10px;
|
||||
width: 100%;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
.dropdown-menu > li > a {
|
||||
color: #000000;
|
||||
display: inline-block;
|
||||
padding: 3px 3px;
|
||||
}
|
||||
.dropdown-menu > li:hover,
|
||||
.dropdown-menu > li:focus {
|
||||
background-color: #ebeff2;
|
||||
}
|
||||
.dropdown-menu > li > a:hover,
|
||||
.dropdown-menu > li > a:focus {
|
||||
background-color: #ebeff2;
|
||||
}
|
||||
.ios7-a {
|
||||
display: inline-block;
|
||||
padding: 0 10px 0 5px;
|
||||
height: 40px;
|
||||
vertical-align: middle;
|
||||
line-height: 38px;
|
||||
cursor: pointer;
|
||||
}
|
||||
/*********************/
|
||||
#page {
|
||||
overflow: auto;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
#pageInner {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
#mainContainer {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
overflow: auto;
|
||||
zoom: 1;
|
||||
}
|
||||
#search {
|
||||
border: #bababa 1px solid;
|
||||
background-color: #fff;
|
||||
white-space: nowrap;
|
||||
position: absolute;
|
||||
height: 30px;
|
||||
left: 3px;
|
||||
right: 60px;
|
||||
margin-top: 3px;
|
||||
}
|
||||
#search label {
|
||||
display: none;
|
||||
}
|
||||
#searchButton {
|
||||
border: 0 none;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
overflow: hidden;
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
right: 3px;
|
||||
top: 5px;
|
||||
}
|
||||
#searchInput {
|
||||
border: 0 none;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
left: 0px;
|
||||
padding-left: 10px;
|
||||
height: 28px;
|
||||
}
|
||||
#searchInput:focus {
|
||||
border: none;
|
||||
outline: thin dotted #333;
|
||||
outline: 5px auto -webkit-focus-ring-color;
|
||||
outline-offset: -2px;
|
||||
}
|
||||
#notesAndSort {
|
||||
background-color: #eee;
|
||||
border-bottom: 1px solid #ebeff2;
|
||||
}
|
||||
/* item list */
|
||||
#noteItemList {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
overflow-y: hidden;
|
||||
background-color: #f7f7f7;
|
||||
padding: 0 5px;
|
||||
}
|
||||
#noteItemList .item {
|
||||
position: relative;
|
||||
height: 110px;
|
||||
overflow: hidden;
|
||||
cursor: pointer;
|
||||
padding: 5px;
|
||||
border: 1px solid #ebeff2;
|
||||
border-radius: 3px;
|
||||
margin-top: 5px;
|
||||
background-color: #fff;
|
||||
}
|
||||
#noteItemList .item:hover,
|
||||
#noteItemList .contextmenu-hover {
|
||||
background-color: #ddd !important;
|
||||
color: #000000;
|
||||
}
|
||||
#noteItemList .item-thumb {
|
||||
padding-left: 10px;
|
||||
width: 100px;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
height: 100px;
|
||||
background-color: #fff;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.item-thumb img {
|
||||
width: 100px;
|
||||
}
|
||||
#noteItemList .item-desc {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 100px;
|
||||
margin-left: 4px;
|
||||
}
|
||||
#noteItemList .item-desc .fa {
|
||||
color: #666;
|
||||
}
|
||||
#noteItemList .item-blog {
|
||||
position: absolute;
|
||||
right: 1px;
|
||||
font-size: 10px;
|
||||
z-index: 2;
|
||||
top: 1px;
|
||||
padding: 3px;
|
||||
cursor: pointer;
|
||||
width: 20px;
|
||||
text-align: center;
|
||||
opacity: 0.5;
|
||||
background-color: #464C5E;
|
||||
}
|
||||
#noteItemList .item-blog .fa {
|
||||
color: #fff !important;
|
||||
}
|
||||
#noteItemList .item-blog:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
.item-title {
|
||||
/*font-weight: 400;*/
|
||||
|
||||
font-size: 16px;
|
||||
height: 22px;
|
||||
line-height: 20px;
|
||||
overflow: hidden;
|
||||
margin-bottom: 0px;
|
||||
color: #000000;
|
||||
border-bottom: dashed 1px #ebeff2;
|
||||
}
|
||||
/* note */
|
||||
/* editor */
|
||||
#editorTool {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
#editorTool li {
|
||||
display: inline-block;
|
||||
}
|
||||
#noteTitle:focus {
|
||||
outline: none !important;
|
||||
}
|
||||
#editor,
|
||||
#mdEditor {
|
||||
z-index: 2;
|
||||
top: 71px;
|
||||
bottom: 0px;
|
||||
right: 0;
|
||||
left: 0;
|
||||
padding: 0;
|
||||
display: none;
|
||||
}
|
||||
#mdEditor {
|
||||
z-index: 1;
|
||||
background-color: #fff;
|
||||
bottom: 10px;
|
||||
}
|
||||
#mdEditor #md-section-helper,
|
||||
#mdEditor #wmd-input {
|
||||
font-size: 14px;
|
||||
line-height: 22px;
|
||||
}
|
||||
#editorContent {
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
bottom: 10px;
|
||||
right: 0;
|
||||
left: 0;
|
||||
overflow: auto;
|
||||
}
|
||||
/* 包裹iframe */
|
||||
#editor .mce-ifr {
|
||||
border: none;
|
||||
overflow: hidden !important;
|
||||
/*不知道哪里设置了auto*/
|
||||
|
||||
/*border-radius: 5px;*/
|
||||
|
||||
}
|
||||
/* 最顶层 */
|
||||
#editor .mce-tinymce {
|
||||
border: none;
|
||||
}
|
||||
/*编辑器按钮*/
|
||||
#mceToolbar,
|
||||
#wmd-button-bar {
|
||||
position: relative;
|
||||
height: 30px;
|
||||
overflow: hidden;
|
||||
background-color: #fbfcf7;
|
||||
}
|
||||
/* 编辑器工具 需要important, 因为mce还要有js加载css, 肯定在此之后 */
|
||||
/*加高, 之前显得拥挤*/
|
||||
.mce-btn-small button {
|
||||
padding: 5px 5px !important;
|
||||
line-height: 20px !important;
|
||||
}
|
||||
.mce-btn {
|
||||
background-color: #fbfcf7 !important;
|
||||
}
|
||||
.mce-menubtn.mce-btn-small span {
|
||||
line-height: 20px !important;
|
||||
}
|
||||
.mce-btn span {
|
||||
font-family: 'Open Sans', 'Helvetica Neue', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', sans-serif !important;
|
||||
}
|
||||
.mce-primary button,
|
||||
.mce-primary button i {
|
||||
text-shadow: none;
|
||||
}
|
||||
.mce-primary {
|
||||
background-color: #47a447 !important;
|
||||
border-color: #398439 !important;
|
||||
}
|
||||
.mce-menu-item:hover,
|
||||
.mce-menu-item.mce-selected,
|
||||
.mce-menu-item:focus {
|
||||
background-color: #ebeff2;
|
||||
}
|
||||
.mce-menu-item:hover span,
|
||||
.mce-menu-item.mce-selected span,
|
||||
.mce-menu-item:focus span {
|
||||
color: #000 !important;
|
||||
}
|
||||
.mce-menu-item-normal.mce-active {
|
||||
background-color: #ebeff2;
|
||||
}
|
||||
.tool-split {
|
||||
display: inline-block;
|
||||
line-height: 25px;
|
||||
color: #ddd;
|
||||
}
|
||||
/*标签与其它工具*/
|
||||
#tool {
|
||||
display: none;
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
/* tag */
|
||||
#tag {
|
||||
height: 40px;
|
||||
line-height: 38px;
|
||||
}
|
||||
#tag .dropdown {
|
||||
line-height: 30px;
|
||||
}
|
||||
#addTagInput {
|
||||
line-height: 25px;
|
||||
display: none;
|
||||
padding: 0;
|
||||
border: none;
|
||||
background-color: #fbfcf7;
|
||||
}
|
||||
#addTagInput:focus {
|
||||
outline: none;
|
||||
}
|
||||
.label-default {
|
||||
background-color: #464C5E;
|
||||
}
|
||||
.label-red {
|
||||
background-color: #d9534f;
|
||||
}
|
||||
.label-yellow {
|
||||
background-color: #f0ad4e;
|
||||
}
|
||||
.label-blue {
|
||||
background-color: #428bca;
|
||||
}
|
||||
.label-green {
|
||||
background-color: #5cb85c;
|
||||
}
|
||||
.label {
|
||||
border-radius: 0;
|
||||
font-weight: normal;
|
||||
}
|
||||
.label i {
|
||||
width: 10px;
|
||||
cursor: pointer;
|
||||
font-style: normal;
|
||||
/*border-left: 1px solid #ccc;*/
|
||||
|
||||
display: inline-block;
|
||||
padding-left: 3px;
|
||||
opacity: 0;
|
||||
}
|
||||
.label i:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
/* leanote nav */
|
||||
#leanoteNav {
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 3px;
|
||||
background-color: #fff;
|
||||
opacity: 0.5;
|
||||
z-index: 11;
|
||||
margin-right: 2px;
|
||||
}
|
||||
#leanoteNav h1 {
|
||||
margin: 0;
|
||||
font-size: 18px;
|
||||
padding: 3px;
|
||||
cursor: pointer;
|
||||
}
|
||||
#leanoteNav i {
|
||||
padding: 3px;
|
||||
}
|
||||
#leanoteNav span {
|
||||
display: none;
|
||||
}
|
||||
#leanoteNav #leanoteNavContent {
|
||||
display: none;
|
||||
overflow: auto;
|
||||
}
|
||||
#leanoteNav.unfolder {
|
||||
min-width: 200px;
|
||||
max-width: 300px;
|
||||
opacity: 0.8;
|
||||
}
|
||||
#leanoteNav.unfolder h1 {
|
||||
border-bottom: 1px dashed #ebeff2;
|
||||
}
|
||||
#leanoteNav.unfolder span {
|
||||
display: inline;
|
||||
}
|
||||
#leanoteNav.unfolder #leanoteNavContent {
|
||||
display: block;
|
||||
min-height: 30px;
|
||||
}
|
||||
#leanoteNav ul {
|
||||
margin: 0;
|
||||
padding-left: 23px;
|
||||
}
|
||||
#leanoteNav ul li {
|
||||
list-style-type: disc;
|
||||
}
|
||||
#leanoteNav ul li a:hover {
|
||||
color: #0fb264;
|
||||
}
|
||||
#leanoteNav ul .nav-h2 {
|
||||
margin-left: 20px;
|
||||
}
|
||||
#leanoteNav ul .nav-h3 {
|
||||
margin-left: 30px;
|
||||
}
|
||||
#leanoteNav ul .nav-h4 {
|
||||
margin-left: 40px;
|
||||
}
|
||||
#leanoteNav ul .nav-h5 {
|
||||
margin-left: 50px;
|
||||
}
|
||||
.scrollTo-a {
|
||||
cursor: pointer !important;
|
||||
}
|
||||
#noteRead {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
display: none;
|
||||
z-index: 100;
|
||||
padding-left: 5px;
|
||||
background-color: #fff;
|
||||
}
|
||||
#noteReadContainer {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
#noteReadTop {
|
||||
position: absolute;
|
||||
height: 60px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
border-bottom: 1px solid #ebeff2;
|
||||
}
|
||||
#noteReadTitle {
|
||||
margin: 3px 0;
|
||||
}
|
||||
#noteReadContent {
|
||||
position: absolute;
|
||||
top: 60px;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
overflow: auto;
|
||||
padding: 3px;
|
||||
}
|
||||
/*scroll*/
|
||||
/*
|
||||
::-webkit-scrollbar {
|
||||
width: 5px;
|
||||
height: 8px;
|
||||
background: none;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background-color: #41586e;
|
||||
opacity: 0.1;
|
||||
}
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background-color:#dadada
|
||||
}
|
||||
::-webkit-scrollbar-thumb:active {
|
||||
background-color:#606060
|
||||
}
|
||||
::-webkit-scrollbar-thumb:disabled {
|
||||
background-color:#f9f9f9
|
||||
}
|
||||
::-webkit-scrollbar-corner {
|
||||
background-color:#f0f0f0
|
||||
}
|
||||
::-webkit-scrollbar-button {
|
||||
height: 0;
|
||||
background-color:#f0f0f0;
|
||||
background-repeat:no-repeat
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical {
|
||||
height:0px
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal {
|
||||
width:33px
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:increment {
|
||||
background-position:0 -444px
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:decrement {
|
||||
background-position:12px -425px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:increment {
|
||||
background-position:-1px -391px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:decrement {
|
||||
background-position:-1px -358px
|
||||
}
|
||||
::-webkit-scrollbar-button:hover {
|
||||
background-color:#dadada
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:increment:hover {
|
||||
background-position:0 -548px
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:decrement:hover {
|
||||
background-position:12px -529px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:increment:hover {
|
||||
background-position:-1px -495px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:decrement:hover {
|
||||
background-position:-1px -462px
|
||||
}
|
||||
::-webkit-scrollbar-button:active {
|
||||
background-color:#606060
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:increment:active {
|
||||
background-position:0 -652px
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:decrement:active {
|
||||
background-position:12px -633px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:increment:active {
|
||||
background-position:-1px -599px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:decrement:active {
|
||||
background-position:-1px -566px
|
||||
}
|
||||
::-webkit-scrollbar-button:disabled {
|
||||
background-color:#f9f9f9
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:increment:disabled {
|
||||
background-position:0 -756px
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:decrement:disabled {
|
||||
background-position:12px -737px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:increment:disabled {
|
||||
background-position:-1px -703px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:decrement:disabled {
|
||||
background-position:-1px -670px
|
||||
}
|
||||
*/
|
||||
/*from notebook*/
|
||||
/*::-webkit-scrollbar{width:7px;height:7px;}::-webkit-scrollbar-thumb{background-color:rgba(50,50,50,0.3);}::-webkit-scrollbar-thumb:hover{background-color:rgba(50,50,50,0.6);}::-webkit-scrollbar-track{background-color:rgba(50,50,50,0.1);}::-webkit-scrollbar-track:hover{background-color:rgba(50,50,50,0.2);}
|
||||
*/
|
||||
.fa-calendar {
|
||||
color: #666;
|
||||
}
|
||||
.dropdown-menu .fa {
|
||||
width: 15px;
|
||||
}
|
||||
.dropdown-menu span,
|
||||
.dropdown-menu a,
|
||||
.dropdown-menu li {
|
||||
cursor: default;
|
||||
}
|
||||
#topNav a {
|
||||
display: inline-block;
|
||||
line-height: 60px;
|
||||
}
|
||||
.tab-pane {
|
||||
padding: 5px 0 0 0;
|
||||
}
|
||||
.alert {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.btn {
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
#notebookNavForNewNote li,
|
||||
#notebookNavForNewSharedNote > li {
|
||||
padding-left: 0;
|
||||
border-bottom: 1px solid #ebeff2;
|
||||
}
|
||||
#notebookNavForNewNote > li:hover,
|
||||
#notebookNavForNewNote > li:focus,
|
||||
#notebookNavForNewSharedNote > li:hover,
|
||||
#notebookNavForNewSharedNote > li:focus {
|
||||
background: none;
|
||||
}
|
||||
.new-note-left {
|
||||
padding: 0 5px;
|
||||
width: 95px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
border-right: 1px dashed #ebeff2;
|
||||
}
|
||||
.new-note-left:hover {
|
||||
background-color: #ebeff2;
|
||||
}
|
||||
.new-note-right {
|
||||
padding: 0 5px;
|
||||
}
|
||||
.new-note-right:hover {
|
||||
background-color: #ebeff2;
|
||||
}
|
||||
#historyList table {
|
||||
width: 100%;
|
||||
}
|
||||
#historyList .btns {
|
||||
border-top: 1px dashed #eee;
|
||||
padding: 5px 0;
|
||||
}
|
||||
#left-column {
|
||||
width: 100% !important;
|
||||
}
|
||||
#editorMask {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
bottom: 0px;
|
||||
right: 0;
|
||||
left: 0;
|
||||
background-color: #fff;
|
||||
z-index: -10;
|
||||
padding-top: 50px;
|
||||
text-align: center;
|
||||
}
|
||||
#editorMask .fa,
|
||||
#editorMask a {
|
||||
font-size: 24px;
|
||||
}
|
||||
#editorMask a {
|
||||
display: inline-block;
|
||||
border-radius: 3px;
|
||||
border: 1px solid #ebeff2;
|
||||
padding: 10px;
|
||||
}
|
||||
#editorMask a:hover {
|
||||
background-color: #65bd77;
|
||||
color: #fff;
|
||||
}
|
||||
html,
|
||||
body {
|
||||
background-color: #fbfcf7;
|
||||
overflow: hidden;
|
||||
}
|
||||
#right-column,
|
||||
#newNoteMarkdownBtn,
|
||||
#newShareNoteMarkdownBtn,
|
||||
.new-split,
|
||||
#editorMask,
|
||||
#sortType,
|
||||
#myProfile,
|
||||
#demoRegister {
|
||||
display: none;
|
||||
}
|
||||
#mainMask {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
top: 0;
|
||||
background-color: #fbfcf7;
|
||||
text-align: center;
|
||||
padding-top: 100px;
|
||||
z-index: 1000;
|
||||
}
|
||||
#header {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 1;
|
||||
color: #ccc;
|
||||
}
|
||||
#header #leanoteMsg {
|
||||
position: absolute;
|
||||
width: 700px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
text-align: right;
|
||||
line-height: 60px;
|
||||
margin: auto;
|
||||
}
|
||||
#newNoteWrap {
|
||||
line-height: 40px;
|
||||
margin-top: 10px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
#newNoteWrap,
|
||||
#topNav {
|
||||
opacity: 0;
|
||||
}
|
||||
#newNoteWrap:hover,
|
||||
#topNav:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
#mainContainer {
|
||||
overflow-y: hidden;
|
||||
}
|
||||
#newMyNote,
|
||||
#newSharedNote {
|
||||
position: relative;
|
||||
}
|
||||
#newMyNote .dropdown-menu,
|
||||
#newSharedNote .dropdown-menu {
|
||||
left: 0px !important;
|
||||
}
|
||||
#newMyNote .dropdown,
|
||||
#newSharedNote .dropdown {
|
||||
position: static;
|
||||
}
|
||||
.dropdown-menu {
|
||||
border: 1px solid #ccc;
|
||||
background-color: #fbfcf7;
|
||||
}
|
||||
#note {
|
||||
position: absolute;
|
||||
width: 700px;
|
||||
margin: auto;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
#editor,
|
||||
#mdEditor {
|
||||
position: absolute;
|
||||
top: 60px;
|
||||
z-index: 2;
|
||||
}
|
||||
#wmd-input {
|
||||
border: none;
|
||||
background-color: #fbfcf7;
|
||||
font-size: 16px !important;
|
||||
}
|
||||
#md-section-helper {
|
||||
display: none;
|
||||
}
|
||||
#mdEditorPreview {
|
||||
top: 43px !important;
|
||||
}
|
||||
#mceToolbar,
|
||||
#wmd-button-bar {
|
||||
height: 40px;
|
||||
padding: 5px 0;
|
||||
}
|
||||
.editorBg {
|
||||
height: 3px;
|
||||
background: url(/images/editor/editor-shadow.png) no-repeat center bottom #f9faf4;
|
||||
}
|
||||
.mce-btn-small i,
|
||||
.mce-menubtn.mce-btn-small span,
|
||||
.wmd-button > span {
|
||||
opacity: 0.85;
|
||||
}
|
||||
.mce-ico {
|
||||
font-size: 18px;
|
||||
line-height: 18px;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
}
|
||||
.tool-split {
|
||||
line-height: 30px;
|
||||
}
|
||||
.mce-menubtn.mce-fixed-width.mce-btn-small span {
|
||||
width: 80px;
|
||||
}
|
||||
.mce-menubtn.mce-btn-small span {
|
||||
font-size: 16px;
|
||||
}
|
||||
#editorContent_ifr html {
|
||||
border: none !important;
|
||||
}
|
||||
#noteTop {
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
left: 0;
|
||||
right: 150px;
|
||||
padding: 15px 0;
|
||||
height: 59px;
|
||||
}
|
||||
#noteTitleDiv {
|
||||
height: 30px;
|
||||
}
|
||||
#noteTitle {
|
||||
height: 100%;
|
||||
padding: 0px 3px;
|
||||
width: 100%;
|
||||
border: none;
|
||||
background-color: #fbfcf7;
|
||||
}
|
||||
#noteList {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 10px;
|
||||
margin-top: 60px;
|
||||
width: 200px;
|
||||
z-index: 0;
|
||||
opacity: 0.8;
|
||||
overflow-x: hidden;
|
||||
overflow-y: hidden;
|
||||
/*
|
||||
&:hover {
|
||||
#noteItemListWrap {
|
||||
display: block;
|
||||
}
|
||||
#notesAndSort {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
||||
#noteList #notesAndSort {
|
||||
display: none;
|
||||
}
|
||||
#noteList #noteItemListWrap {
|
||||
display: none;
|
||||
}
|
||||
#notesAndSort {
|
||||
background: none;
|
||||
}
|
||||
#noteItemList {
|
||||
background: none;
|
||||
}
|
||||
#noteItemList .item {
|
||||
background: none;
|
||||
}
|
||||
.item-active,
|
||||
#noteItemList .item-active:hover {
|
||||
background-color: #F5F8EA !important;
|
||||
color: #000;
|
||||
}
|
||||
.item-active .item-desc .fa,
|
||||
#noteItemList .item-active:hover .item-desc .fa {
|
||||
color: #666 !important;
|
||||
}
|
||||
.item-active .item-title,
|
||||
#noteItemList .item-active:hover .item-title {
|
||||
color: #000;
|
||||
}
|
||||
#leanoteNav {
|
||||
background-color: #fbfcf7;
|
||||
opacity: 0.3;
|
||||
right: -30px;
|
||||
}
|
||||
.new-note-right {
|
||||
padding: 0 2px;
|
||||
}
|
||||
#loading {
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
content: url(../../images/loading-a-20-black.gif);
|
||||
margin-top: 10px;
|
||||
visibility: hidden;
|
||||
}
|
||||
#moreBtn {
|
||||
right: 0 !important;
|
||||
}
|
||||
#toggleEditorMode {
|
||||
margin: 0 10px !important;
|
||||
}
|
||||
1062
public/css/theme/writting-overwrite.less
Normal file
743
public/css/theme/writting.css
Normal file
@@ -0,0 +1,743 @@
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: local('Open Sans Light'), local('OpenSans-Light'), url('../../fonts/open-sans2/DXI1ORHCpsQm3Vp6mXoaTXhCUOGz7vYGh680lGh-uXM.woff') format('woff');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url('../../fonts/open-sans2/cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff') format('woff');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('Open Sans Bold'), local('OpenSans-Bold'), url('../../fonts/open-sans2/k3k702ZOKiLJc3WVjuplzHhCUOGz7vYGh680lGh-uXM.woff') format('woff');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url('../../fonts/open-sans2/xjAJXh38I15wypJXxuGMBobN6UDyHWBl620a-IRfuBk.woff') format('woff');
|
||||
}
|
||||
/*"HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue", Helvetica, "Microsoft Yahei", Verdana, Simsun, "Segoe UI", "Segoe UI Web Regular", "Segoe UI Symbol", "BBAlpha Sans", "S60 Sans", Arial, sans-serif;*/
|
||||
::selection {
|
||||
background: #000000;
|
||||
color: #ffffff;
|
||||
}
|
||||
::-moz-selection {
|
||||
background: #000000;
|
||||
color: #ffffff;
|
||||
}
|
||||
::-webkit-selection {
|
||||
background: #000000;
|
||||
color: #ffffff;
|
||||
}
|
||||
html,
|
||||
body {
|
||||
background-color: #fbfcf7;
|
||||
}
|
||||
*,
|
||||
body {
|
||||
font-family: 'Open Sans', 'Helvetica Neue', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', sans-serif;
|
||||
font-weight: 300;
|
||||
font-size: 16px;
|
||||
}
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
font-family: 'Open Sans', 'Helvetica Neue', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', sans-serif;
|
||||
font-weight: 300 !important;
|
||||
}
|
||||
a {
|
||||
color: #000000;
|
||||
cursor: pointer;
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: none !important;
|
||||
color: #000000;
|
||||
}
|
||||
a.raw {
|
||||
color: #428bca;
|
||||
}
|
||||
a.raw:hover {
|
||||
color: #2a6496;
|
||||
}
|
||||
/* header */
|
||||
#header {
|
||||
height: 60px;
|
||||
background-color: #fbfcf7;
|
||||
color: #ffffff;
|
||||
border-bottom: 1px solid #ebeff2;
|
||||
/* for app */
|
||||
|
||||
webkit-user-select: none;
|
||||
/* 还不知 */
|
||||
|
||||
-webkit-app-region: drag;
|
||||
/* -webkit-app-region: no-drag; */
|
||||
|
||||
}
|
||||
#header a {
|
||||
color: #ccc;
|
||||
}
|
||||
#header li {
|
||||
color: #000000;
|
||||
}
|
||||
#header li a {
|
||||
color: #000000;
|
||||
}
|
||||
#searchWrap,
|
||||
#logo,
|
||||
#switcher,
|
||||
#leftNotebook,
|
||||
.noteSplit {
|
||||
display: none;
|
||||
}
|
||||
#header ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
#header ul li.dropdown {
|
||||
display: inline-block;
|
||||
height: 60px;
|
||||
}
|
||||
#header ul > li > a.dropdown-toggle {
|
||||
display: block;
|
||||
padding: 15px 5px 0 0;
|
||||
position: relative;
|
||||
}
|
||||
#header span.icon {
|
||||
display: inline-block;
|
||||
font-size: 28px;
|
||||
color: #999999;
|
||||
}
|
||||
.dropdown-menu {
|
||||
border-radius: 0;
|
||||
margin: 0;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
border: 1px solid #0fb264;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.dropdown-menu li {
|
||||
padding-left: 10px;
|
||||
width: 100%;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
.dropdown-menu > li > a {
|
||||
color: #000000;
|
||||
display: inline-block;
|
||||
padding: 3px 3px;
|
||||
}
|
||||
.dropdown-menu > li:hover,
|
||||
.dropdown-menu > li:focus {
|
||||
background-color: #ebeff2;
|
||||
}
|
||||
.dropdown-menu > li > a:hover,
|
||||
.dropdown-menu > li > a:focus {
|
||||
background-color: #ebeff2;
|
||||
}
|
||||
.ios7-a {
|
||||
display: inline-block;
|
||||
padding: 0 10px 0 5px;
|
||||
height: 40px;
|
||||
vertical-align: middle;
|
||||
line-height: 38px;
|
||||
cursor: pointer;
|
||||
}
|
||||
/*********************/
|
||||
#page {
|
||||
overflow: auto;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
#pageInner {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
#mainContainer {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
overflow: auto;
|
||||
zoom: 1;
|
||||
}
|
||||
#search {
|
||||
border: #bababa 1px solid;
|
||||
background-color: #fff;
|
||||
white-space: nowrap;
|
||||
position: absolute;
|
||||
height: 30px;
|
||||
left: 3px;
|
||||
right: 60px;
|
||||
margin-top: 3px;
|
||||
}
|
||||
#search label {
|
||||
display: none;
|
||||
}
|
||||
#searchButton {
|
||||
border: 0 none;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
overflow: hidden;
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
right: 3px;
|
||||
top: 5px;
|
||||
}
|
||||
#searchInput {
|
||||
border: 0 none;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
left: 0px;
|
||||
padding-left: 10px;
|
||||
height: 28px;
|
||||
}
|
||||
#searchInput:focus {
|
||||
border: none;
|
||||
outline: thin dotted #333;
|
||||
outline: 5px auto -webkit-focus-ring-color;
|
||||
outline-offset: -2px;
|
||||
}
|
||||
#notesAndSort {
|
||||
background-color: #eee;
|
||||
border-bottom: 1px solid #ebeff2;
|
||||
}
|
||||
/* item list */
|
||||
#noteItemList {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
overflow-y: hidden;
|
||||
background-color: #f7f7f7;
|
||||
padding: 0 5px;
|
||||
}
|
||||
#noteItemList .item {
|
||||
position: relative;
|
||||
height: 110px;
|
||||
overflow: hidden;
|
||||
cursor: pointer;
|
||||
padding: 5px;
|
||||
border: 1px solid #ebeff2;
|
||||
border-radius: 3px;
|
||||
margin-top: 5px;
|
||||
background-color: #fff;
|
||||
}
|
||||
#noteItemList .item:hover,
|
||||
#noteItemList .contextmenu-hover {
|
||||
background-color: #ddd !important;
|
||||
color: #000000;
|
||||
}
|
||||
#noteItemList .item-thumb {
|
||||
padding-left: 10px;
|
||||
width: 100px;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
height: 100px;
|
||||
background-color: #fff;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.item-thumb img {
|
||||
width: 100px;
|
||||
}
|
||||
#noteItemList .item-desc {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 100px;
|
||||
margin-left: 4px;
|
||||
}
|
||||
#noteItemList .item-desc .fa {
|
||||
color: #666;
|
||||
}
|
||||
#noteItemList .item-blog {
|
||||
position: absolute;
|
||||
right: 1px;
|
||||
font-size: 10px;
|
||||
z-index: 2;
|
||||
top: 1px;
|
||||
padding: 3px;
|
||||
cursor: pointer;
|
||||
width: 20px;
|
||||
text-align: center;
|
||||
opacity: 0.5;
|
||||
background-color: #464C5E;
|
||||
}
|
||||
#noteItemList .item-blog .fa {
|
||||
color: #fff !important;
|
||||
}
|
||||
#noteItemList .item-blog:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
.item-title {
|
||||
/*font-weight: 400;*/
|
||||
|
||||
font-size: 16px;
|
||||
height: 22px;
|
||||
line-height: 20px;
|
||||
overflow: hidden;
|
||||
margin-bottom: 0px;
|
||||
color: #000000;
|
||||
border-bottom: dashed 1px #ebeff2;
|
||||
}
|
||||
/* note */
|
||||
/* editor */
|
||||
#editorTool {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
#editorTool li {
|
||||
display: inline-block;
|
||||
}
|
||||
#noteTitle:focus {
|
||||
outline: none !important;
|
||||
}
|
||||
#editor,
|
||||
#mdEditor {
|
||||
z-index: 2;
|
||||
top: 71px;
|
||||
bottom: 0px;
|
||||
right: 0;
|
||||
left: 0;
|
||||
padding: 0;
|
||||
display: none;
|
||||
}
|
||||
#mdEditor {
|
||||
z-index: 1;
|
||||
background-color: #fff;
|
||||
bottom: 10px;
|
||||
}
|
||||
#mdEditor #md-section-helper,
|
||||
#mdEditor #wmd-input {
|
||||
font-size: 14px;
|
||||
line-height: 22px;
|
||||
}
|
||||
#editorContent {
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
bottom: 10px;
|
||||
right: 0;
|
||||
left: 0;
|
||||
overflow: auto;
|
||||
}
|
||||
/* 包裹iframe */
|
||||
#editor .mce-ifr {
|
||||
border: none;
|
||||
overflow: hidden !important;
|
||||
/*不知道哪里设置了auto*/
|
||||
|
||||
/*border-radius: 5px;*/
|
||||
|
||||
}
|
||||
/* 最顶层 */
|
||||
#editor .mce-tinymce {
|
||||
border: none;
|
||||
}
|
||||
/*编辑器按钮*/
|
||||
#mceToolbar,
|
||||
#wmd-button-bar {
|
||||
position: relative;
|
||||
height: 30px;
|
||||
overflow: hidden;
|
||||
background-color: #fbfcf7;
|
||||
}
|
||||
/* 编辑器工具 需要important, 因为mce还要有js加载css, 肯定在此之后 */
|
||||
/*加高, 之前显得拥挤*/
|
||||
.mce-btn-small button {
|
||||
padding: 5px 5px !important;
|
||||
line-height: 20px !important;
|
||||
}
|
||||
.mce-btn {
|
||||
background-color: #fbfcf7 !important;
|
||||
}
|
||||
.mce-menubtn.mce-btn-small span {
|
||||
line-height: 20px !important;
|
||||
}
|
||||
.mce-btn span {
|
||||
font-family: 'Open Sans', 'Helvetica Neue', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', sans-serif !important;
|
||||
}
|
||||
.mce-primary button,
|
||||
.mce-primary button i {
|
||||
text-shadow: none;
|
||||
}
|
||||
.mce-primary {
|
||||
background-color: #47a447 !important;
|
||||
border-color: #398439 !important;
|
||||
}
|
||||
.mce-menu-item:hover,
|
||||
.mce-menu-item.mce-selected,
|
||||
.mce-menu-item:focus {
|
||||
background-color: #ebeff2;
|
||||
}
|
||||
.mce-menu-item:hover span,
|
||||
.mce-menu-item.mce-selected span,
|
||||
.mce-menu-item:focus span {
|
||||
color: #000 !important;
|
||||
}
|
||||
.mce-menu-item-normal.mce-active {
|
||||
background-color: #ebeff2;
|
||||
}
|
||||
.tool-split {
|
||||
display: inline-block;
|
||||
line-height: 25px;
|
||||
color: #ddd;
|
||||
}
|
||||
/*标签与其它工具*/
|
||||
#tool {
|
||||
display: none;
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
/* tag */
|
||||
#tag {
|
||||
height: 40px;
|
||||
line-height: 38px;
|
||||
}
|
||||
#tag .dropdown {
|
||||
line-height: 30px;
|
||||
}
|
||||
#addTagInput {
|
||||
line-height: 25px;
|
||||
display: none;
|
||||
padding: 0;
|
||||
border: none;
|
||||
background-color: #fbfcf7;
|
||||
}
|
||||
#addTagInput:focus {
|
||||
outline: none;
|
||||
}
|
||||
.label-default {
|
||||
background-color: #464C5E;
|
||||
}
|
||||
.label-red {
|
||||
background-color: #d9534f;
|
||||
}
|
||||
.label-yellow {
|
||||
background-color: #f0ad4e;
|
||||
}
|
||||
.label-blue {
|
||||
background-color: #428bca;
|
||||
}
|
||||
.label-green {
|
||||
background-color: #5cb85c;
|
||||
}
|
||||
.label {
|
||||
border-radius: 0;
|
||||
font-weight: normal;
|
||||
}
|
||||
.label i {
|
||||
width: 10px;
|
||||
cursor: pointer;
|
||||
font-style: normal;
|
||||
/*border-left: 1px solid #ccc;*/
|
||||
|
||||
display: inline-block;
|
||||
padding-left: 3px;
|
||||
opacity: 0;
|
||||
}
|
||||
.label i:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
/* leanote nav */
|
||||
#leanoteNav {
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 3px;
|
||||
background-color: #fff;
|
||||
opacity: 0.5;
|
||||
z-index: 11;
|
||||
margin-right: 2px;
|
||||
}
|
||||
#leanoteNav h1 {
|
||||
margin: 0;
|
||||
font-size: 18px;
|
||||
padding: 3px;
|
||||
cursor: pointer;
|
||||
}
|
||||
#leanoteNav i {
|
||||
padding: 3px;
|
||||
}
|
||||
#leanoteNav span {
|
||||
display: none;
|
||||
}
|
||||
#leanoteNav #leanoteNavContent {
|
||||
display: none;
|
||||
overflow: auto;
|
||||
}
|
||||
#leanoteNav.unfolder {
|
||||
min-width: 200px;
|
||||
max-width: 300px;
|
||||
opacity: 0.8;
|
||||
}
|
||||
#leanoteNav.unfolder h1 {
|
||||
border-bottom: 1px dashed #ebeff2;
|
||||
}
|
||||
#leanoteNav.unfolder span {
|
||||
display: inline;
|
||||
}
|
||||
#leanoteNav.unfolder #leanoteNavContent {
|
||||
display: block;
|
||||
min-height: 30px;
|
||||
}
|
||||
#leanoteNav ul {
|
||||
margin: 0;
|
||||
padding-left: 23px;
|
||||
}
|
||||
#leanoteNav ul li {
|
||||
list-style-type: disc;
|
||||
}
|
||||
#leanoteNav ul li a:hover {
|
||||
color: #0fb264;
|
||||
}
|
||||
#leanoteNav ul .nav-h2 {
|
||||
margin-left: 20px;
|
||||
}
|
||||
#leanoteNav ul .nav-h3 {
|
||||
margin-left: 30px;
|
||||
}
|
||||
#leanoteNav ul .nav-h4 {
|
||||
margin-left: 40px;
|
||||
}
|
||||
#leanoteNav ul .nav-h5 {
|
||||
margin-left: 50px;
|
||||
}
|
||||
.scrollTo-a {
|
||||
cursor: pointer !important;
|
||||
}
|
||||
#noteRead {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
display: none;
|
||||
z-index: 100;
|
||||
padding-left: 5px;
|
||||
background-color: #fff;
|
||||
}
|
||||
#noteReadContainer {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
#noteReadTop {
|
||||
position: absolute;
|
||||
height: 60px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
border-bottom: 1px solid #ebeff2;
|
||||
}
|
||||
#noteReadTitle {
|
||||
margin: 3px 0;
|
||||
}
|
||||
#noteReadContent {
|
||||
position: absolute;
|
||||
top: 60px;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
overflow: auto;
|
||||
padding: 3px;
|
||||
}
|
||||
/*scroll*/
|
||||
/*
|
||||
::-webkit-scrollbar {
|
||||
width: 5px;
|
||||
height: 8px;
|
||||
background: none;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background-color: #41586e;
|
||||
opacity: 0.1;
|
||||
}
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background-color:#dadada
|
||||
}
|
||||
::-webkit-scrollbar-thumb:active {
|
||||
background-color:#606060
|
||||
}
|
||||
::-webkit-scrollbar-thumb:disabled {
|
||||
background-color:#f9f9f9
|
||||
}
|
||||
::-webkit-scrollbar-corner {
|
||||
background-color:#f0f0f0
|
||||
}
|
||||
::-webkit-scrollbar-button {
|
||||
height: 0;
|
||||
background-color:#f0f0f0;
|
||||
background-repeat:no-repeat
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical {
|
||||
height:0px
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal {
|
||||
width:33px
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:increment {
|
||||
background-position:0 -444px
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:decrement {
|
||||
background-position:12px -425px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:increment {
|
||||
background-position:-1px -391px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:decrement {
|
||||
background-position:-1px -358px
|
||||
}
|
||||
::-webkit-scrollbar-button:hover {
|
||||
background-color:#dadada
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:increment:hover {
|
||||
background-position:0 -548px
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:decrement:hover {
|
||||
background-position:12px -529px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:increment:hover {
|
||||
background-position:-1px -495px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:decrement:hover {
|
||||
background-position:-1px -462px
|
||||
}
|
||||
::-webkit-scrollbar-button:active {
|
||||
background-color:#606060
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:increment:active {
|
||||
background-position:0 -652px
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:decrement:active {
|
||||
background-position:12px -633px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:increment:active {
|
||||
background-position:-1px -599px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:decrement:active {
|
||||
background-position:-1px -566px
|
||||
}
|
||||
::-webkit-scrollbar-button:disabled {
|
||||
background-color:#f9f9f9
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:increment:disabled {
|
||||
background-position:0 -756px
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:decrement:disabled {
|
||||
background-position:12px -737px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:increment:disabled {
|
||||
background-position:-1px -703px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:decrement:disabled {
|
||||
background-position:-1px -670px
|
||||
}
|
||||
*/
|
||||
/*from notebook*/
|
||||
/*::-webkit-scrollbar{width:7px;height:7px;}::-webkit-scrollbar-thumb{background-color:rgba(50,50,50,0.3);}::-webkit-scrollbar-thumb:hover{background-color:rgba(50,50,50,0.6);}::-webkit-scrollbar-track{background-color:rgba(50,50,50,0.1);}::-webkit-scrollbar-track:hover{background-color:rgba(50,50,50,0.2);}
|
||||
*/
|
||||
.fa-calendar {
|
||||
color: #666;
|
||||
}
|
||||
.dropdown-menu .fa {
|
||||
width: 15px;
|
||||
}
|
||||
.dropdown-menu span,
|
||||
.dropdown-menu a,
|
||||
.dropdown-menu li {
|
||||
cursor: default;
|
||||
}
|
||||
#topNav a {
|
||||
display: inline-block;
|
||||
line-height: 60px;
|
||||
}
|
||||
.tab-pane {
|
||||
padding: 5px 0 0 0;
|
||||
}
|
||||
.alert {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.btn {
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
#notebookNavForNewNote li,
|
||||
#notebookNavForNewSharedNote > li {
|
||||
padding-left: 0;
|
||||
border-bottom: 1px solid #ebeff2;
|
||||
}
|
||||
#notebookNavForNewNote > li:hover,
|
||||
#notebookNavForNewNote > li:focus,
|
||||
#notebookNavForNewSharedNote > li:hover,
|
||||
#notebookNavForNewSharedNote > li:focus {
|
||||
background: none;
|
||||
}
|
||||
.new-note-left {
|
||||
padding: 0 5px;
|
||||
width: 95px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
border-right: 1px dashed #ebeff2;
|
||||
}
|
||||
.new-note-left:hover {
|
||||
background-color: #ebeff2;
|
||||
}
|
||||
.new-note-right {
|
||||
padding: 0 5px;
|
||||
}
|
||||
.new-note-right:hover {
|
||||
background-color: #ebeff2;
|
||||
}
|
||||
#historyList table {
|
||||
width: 100%;
|
||||
}
|
||||
#historyList .btns {
|
||||
border-top: 1px dashed #eee;
|
||||
padding: 5px 0;
|
||||
}
|
||||
#left-column {
|
||||
width: 100% !important;
|
||||
}
|
||||
#editorMask {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
bottom: 0px;
|
||||
right: 0;
|
||||
left: 0;
|
||||
background-color: #fff;
|
||||
z-index: -10;
|
||||
padding-top: 50px;
|
||||
text-align: center;
|
||||
}
|
||||
#editorMask .fa,
|
||||
#editorMask a {
|
||||
font-size: 24px;
|
||||
}
|
||||
#editorMask a {
|
||||
display: inline-block;
|
||||
border-radius: 3px;
|
||||
border: 1px solid #ebeff2;
|
||||
padding: 10px;
|
||||
}
|
||||
#editorMask a:hover {
|
||||
background-color: #65bd77;
|
||||
color: #fff;
|
||||
}
|
||||
832
public/css/theme/writting.less
Normal file
@@ -0,0 +1,832 @@
|
||||
|
||||
@bgColor: #fff;
|
||||
@headerBgColor: #25313e;
|
||||
@fontFamily: 'Open Sans','Helvetica Neue',Arial,'Hiragino Sans GB','Microsoft YaHei','WenQuanYi Micro Hei',sans-serif;
|
||||
@aWhiteColor: #fff;
|
||||
@aBlackColor: #000;
|
||||
@borderColor: #EBEFF2;
|
||||
@headerHeight: 60px;
|
||||
@headerHeightNoBorder: 59px;
|
||||
@hColor: #0fb264; // #47a447;// 更深 #198764; // boostrap: #5cb85c; bootstrap:hover #47a447; // #5AD4A0; // #47a447
|
||||
@titleColor: @hColor;
|
||||
@fontSize: 14px;
|
||||
@leftNotebookWidth: 170px;
|
||||
@noteListWidth: 250px;
|
||||
@noteActiveBg: #65bd77;
|
||||
|
||||
@bgColor: #fbfcf7;
|
||||
@headerBgColor: #fbfcf7;
|
||||
@fontFamily: 'Open Sans','Helvetica Neue',Arial,'Hiragino Sans GB','Microsoft YaHei','WenQuanYi Micro Hei',sans-serif;
|
||||
@aWhiteColor: #fff;
|
||||
@aBlackColor: #000;
|
||||
@borderColor: #EBEFF2;
|
||||
@headerHeight: 60px;
|
||||
@hColor: #0fb264; // #47a447;// 更深 #198764; // boostrap: #5cb85c; bootstrap:hover #47a447; // #5AD4A0; // #47a447
|
||||
@titleColor: @hColor;
|
||||
@fontSize: 16px;
|
||||
@leftNotebookWidth: 170px;
|
||||
@noteListWidth: 250px;
|
||||
@noteActiveBg: #65bd77;
|
||||
@editorWidth: 700px;
|
||||
|
||||
|
||||
// font
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: local('Open Sans Light'), local('OpenSans-Light'), url('../../fonts/open-sans2/DXI1ORHCpsQm3Vp6mXoaTXhCUOGz7vYGh680lGh-uXM.woff') format('woff');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url('../../fonts/open-sans2/cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff') format('woff');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('Open Sans Bold'), local('OpenSans-Bold'), url('../../fonts/open-sans2/k3k702ZOKiLJc3WVjuplzHhCUOGz7vYGh680lGh-uXM.woff') format('woff');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url('../../fonts/open-sans2/xjAJXh38I15wypJXxuGMBobN6UDyHWBl620a-IRfuBk.woff') format('woff');
|
||||
}
|
||||
|
||||
/*"HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue", Helvetica, "Microsoft Yahei", Verdana, Simsun, "Segoe UI", "Segoe UI Web Regular", "Segoe UI Symbol", "BBAlpha Sans", "S60 Sans", Arial, sans-serif;*/
|
||||
|
||||
@selectionBg: @aBlackColor;
|
||||
@selectionColor: #fff;
|
||||
::selection { background:@selectionBg; color:@selectionColor; }
|
||||
::-moz-selection { background:@selectionBg; color:@selectionColor; }
|
||||
::-webkit-selection { background:@selectionBg; color:@selectionColor; }
|
||||
|
||||
html,body {
|
||||
background-color: @bgColor;
|
||||
}
|
||||
*, body {
|
||||
font-family: @fontFamily;
|
||||
font-weight: 300;
|
||||
font-size: @fontSize;
|
||||
}
|
||||
h1, h2, h3 {
|
||||
font-family: @fontFamily;
|
||||
font-weight: 300 !important;
|
||||
}
|
||||
a {
|
||||
color: @aBlackColor;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: none !important;
|
||||
color: @aBlackColor;
|
||||
}
|
||||
|
||||
// 原生的a
|
||||
a.raw {
|
||||
color: #428bca;
|
||||
}
|
||||
a.raw:hover {
|
||||
color: #2a6496;
|
||||
}
|
||||
|
||||
/* header */
|
||||
|
||||
#header {
|
||||
height: @headerHeight;
|
||||
background-color: @headerBgColor;
|
||||
color: @aWhiteColor;
|
||||
a {
|
||||
color: #ccc;//@aWhiteColor;
|
||||
}
|
||||
li {
|
||||
color: @aBlackColor;
|
||||
}
|
||||
li a {
|
||||
color: @aBlackColor;
|
||||
}
|
||||
border-bottom: 1px solid @borderColor;
|
||||
|
||||
/* for app */
|
||||
webkit-user-select: none; /* 还不知 */
|
||||
-webkit-app-region: drag; /* -webkit-app-region: no-drag; */
|
||||
}
|
||||
|
||||
#searchWrap, #logo, #switcher,
|
||||
#leftNotebook,
|
||||
.noteSplit
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
#header ul {
|
||||
margin:0;
|
||||
padding:0;
|
||||
list-style: none;
|
||||
}
|
||||
#header ul li.dropdown {
|
||||
display: inline-block;
|
||||
height: @headerHeight;
|
||||
}
|
||||
|
||||
#header ul > li > a.dropdown-toggle {
|
||||
display: block;
|
||||
padding: 15px 5px 0 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#header span.icon {
|
||||
display: inline-block;
|
||||
font-size: 28px;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.dropdown-menu {
|
||||
border-radius: 0;
|
||||
margin:0;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
border: 1px solid @hColor;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.dropdown-menu li {
|
||||
padding-left: 10px;
|
||||
width: 100%;
|
||||
height: 30px; // 父设置了line-height, 子下拉也受影响, "新建笔记"
|
||||
line-height: 30px;
|
||||
}
|
||||
.dropdown-menu > li > a {
|
||||
color: @aBlackColor;
|
||||
display: inline-block;
|
||||
padding: 3px 3px;
|
||||
}
|
||||
.dropdown-menu>li:hover, .dropdown-menu>li:focus {
|
||||
background-color: @borderColor;
|
||||
}
|
||||
.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {
|
||||
background-color: @borderColor;
|
||||
}
|
||||
|
||||
.ios7-a {
|
||||
display: inline-block;
|
||||
padding: 0 10px 0 5px;
|
||||
height: 40px;
|
||||
vertical-align: middle;
|
||||
line-height: 38px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/*********************/
|
||||
#page {
|
||||
overflow: auto;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
#pageInner {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
#mainContainer {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
overflow: auto;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#search {
|
||||
border: #bababa 1px solid;
|
||||
background-color: #fff;
|
||||
white-space: nowrap;
|
||||
position: absolute;
|
||||
height: 30px;
|
||||
left:3px;
|
||||
right:60px;
|
||||
margin-top: 3px;
|
||||
}
|
||||
#search label {
|
||||
display: none;
|
||||
}
|
||||
#searchButton {
|
||||
border: 0 none;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
overflow: hidden;
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
right:3px;
|
||||
top: 5px;
|
||||
}
|
||||
#searchInput {
|
||||
border: 0 none;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
right:20px;
|
||||
left: 0px;
|
||||
padding-left: 10px;
|
||||
height: 28px;
|
||||
}
|
||||
#searchInput:focus {
|
||||
border: none;
|
||||
outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px
|
||||
}
|
||||
|
||||
#notesAndSort {
|
||||
background-color: #eee; // #65bd77; // @bgColor;
|
||||
border-bottom: 1px solid @borderColor;
|
||||
a.dropdown-toggle {
|
||||
// color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
/* item list */
|
||||
#noteItemList {
|
||||
position: absolute;
|
||||
left:0;
|
||||
right:0;
|
||||
bottom: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
overflow-y: hidden;
|
||||
background-color: #f7f7f7;
|
||||
padding: 0 5px;
|
||||
}
|
||||
#noteItemList .item {
|
||||
position: relative;
|
||||
height: 110px;
|
||||
overflow: hidden;
|
||||
cursor: pointer;
|
||||
padding: 5px;
|
||||
border: 1px solid @borderColor;
|
||||
border-radius: 3px;
|
||||
margin-top: 5px;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
#noteItemList .item:hover,
|
||||
#noteItemList .contextmenu-hover {
|
||||
background-color: #ddd !important;
|
||||
color: @aBlackColor;
|
||||
.item-title {
|
||||
// color: @aBlackColor;
|
||||
//font-weight: 800;
|
||||
}
|
||||
}
|
||||
|
||||
#noteItemList .item-thumb {
|
||||
padding-left: 10px;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
height: 100px;
|
||||
background-color: #fff;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.item-thumb img {
|
||||
width: 100px;
|
||||
}
|
||||
#noteItemList .item-desc {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 100px;
|
||||
margin-left: 4px;
|
||||
.fa { // folder, calender 颜色暗些
|
||||
color: #666;
|
||||
}
|
||||
}
|
||||
// blog
|
||||
#noteItemList .item-blog {
|
||||
position: absolute;
|
||||
right: 1px;
|
||||
font-size: 10px;
|
||||
z-index: 2;
|
||||
top: 1px;
|
||||
padding: 3px;
|
||||
cursor: pointer;
|
||||
.fa {
|
||||
color: #fff !important;
|
||||
}
|
||||
width: 20px;
|
||||
text-align: center;
|
||||
opacity: 0.5;
|
||||
&:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
background-color: #464C5E;
|
||||
}
|
||||
.item-title {
|
||||
/*font-weight: 400;*/
|
||||
font-size: 16px;
|
||||
height: 22px;
|
||||
line-height: 20px;
|
||||
overflow: hidden;
|
||||
margin-bottom: 0px;
|
||||
color: @aBlackColor;
|
||||
border-bottom: dashed 1px @borderColor;
|
||||
}
|
||||
|
||||
/* note */
|
||||
|
||||
/* editor */
|
||||
#editorTool {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
// width: 200px;
|
||||
}
|
||||
#editorTool li {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
|
||||
#noteTitle:focus {
|
||||
// outline:thin dotted #333;outline:1px auto -webkit-focus-ring-color;outline-offset:-2px
|
||||
outline: none !important;
|
||||
// border: 1px solid @hColor;
|
||||
}
|
||||
|
||||
#editor, #mdEditor{
|
||||
z-index: 2;
|
||||
top: 71px;
|
||||
bottom: 0px;
|
||||
right: 0;
|
||||
left: 0;
|
||||
padding: 0; // 0px 0px 0px 0px;
|
||||
display: none;
|
||||
}
|
||||
#mdEditor {
|
||||
z-index: 1;
|
||||
background-color: #fff;
|
||||
bottom: 10px;
|
||||
#md-section-helper, #wmd-input {
|
||||
font-size: 14px;
|
||||
line-height: 22px;
|
||||
}
|
||||
}
|
||||
#editorContent {
|
||||
position: absolute;
|
||||
top:30px;
|
||||
bottom: 10px;
|
||||
right: 0;
|
||||
left: 0;
|
||||
overflow: auto; // 不设置editor隐藏时没有scroll
|
||||
}
|
||||
#editorContent_ifr {
|
||||
// padding-top: 10px;
|
||||
}
|
||||
|
||||
/* 包裹iframe */
|
||||
#editor .mce-ifr {
|
||||
border: none;
|
||||
// padding: 10px;
|
||||
overflow: hidden !important; /*不知道哪里设置了auto*/
|
||||
/*border-radius: 5px;*/
|
||||
// border: 1px solid @borderColor;
|
||||
// border-top-left-radius: 5px;
|
||||
// border-bottom-left-radius: 5px;
|
||||
}
|
||||
|
||||
/* 最顶层 */
|
||||
#editor .mce-tinymce {
|
||||
border: none;
|
||||
}
|
||||
#editor iframe {
|
||||
}
|
||||
/*编辑器按钮*/
|
||||
#mceToolbar, #wmd-button-bar {
|
||||
position: relative;
|
||||
height: 30px;
|
||||
overflow: hidden;
|
||||
background-color: @bgColor;
|
||||
}
|
||||
/* 编辑器工具 需要important, 因为mce还要有js加载css, 肯定在此之后 */
|
||||
|
||||
/*加高, 之前显得拥挤*/
|
||||
.mce-btn-small button {
|
||||
padding: 5px 5px !important;
|
||||
line-height: 20px !important;
|
||||
}
|
||||
.mce-btn {
|
||||
background-color: @bgColor !important;
|
||||
}
|
||||
.mce-menubtn.mce-btn-small span {
|
||||
line-height: 20px !important;
|
||||
}
|
||||
.mce-btn span {
|
||||
font-family: @fontFamily !important;
|
||||
}
|
||||
.mce-primary button, .mce-primary button i {
|
||||
text-shadow: none;
|
||||
}
|
||||
.mce-primary {
|
||||
background-color: #47a447 !important;
|
||||
border-color: #398439 !important;
|
||||
}
|
||||
// 下拉
|
||||
.mce-menu-item:hover, .mce-menu-item.mce-selected, .mce-menu-item:focus {
|
||||
background-color: @borderColor;
|
||||
span {
|
||||
color: #000 !important;
|
||||
}
|
||||
}
|
||||
// 下拉选中
|
||||
.mce-menu-item-normal.mce-active {
|
||||
background-color: @borderColor;
|
||||
}
|
||||
// tool的分隔
|
||||
.tool-split {
|
||||
display: inline-block;
|
||||
line-height: 25px;
|
||||
color: #ddd;
|
||||
}
|
||||
|
||||
/*标签与其它工具*/
|
||||
#tool {
|
||||
display: none;
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
|
||||
/* tag */
|
||||
#tag {
|
||||
height: 40px;
|
||||
line-height: 38px
|
||||
}
|
||||
// 前面的38影响了dropdown
|
||||
#tag .dropdown {
|
||||
line-height: 30px;
|
||||
}
|
||||
#addTagInput {
|
||||
line-height: 25px;
|
||||
display: none;
|
||||
padding:0;
|
||||
border: none;
|
||||
background-color: @bgColor;
|
||||
}
|
||||
#addTagInput:focus {
|
||||
outline: none;
|
||||
}
|
||||
.label-default {
|
||||
background-color: #464C5E;
|
||||
}
|
||||
.label-red {
|
||||
background-color: #d9534f;
|
||||
}
|
||||
.label-yellow {
|
||||
background-color: #f0ad4e;
|
||||
}
|
||||
.label-blue {
|
||||
background-color: #428bca;
|
||||
}
|
||||
.label-green {
|
||||
background-color: #5cb85c;
|
||||
}
|
||||
.label {
|
||||
border-radius: 0;
|
||||
font-weight: normal;
|
||||
}
|
||||
.label i {
|
||||
width: 10px;
|
||||
cursor: pointer;
|
||||
font-style: normal;
|
||||
/*border-left: 1px solid #ccc;*/
|
||||
display: inline-block;
|
||||
padding-left: 3px;
|
||||
opacity: 0;
|
||||
}
|
||||
.label i:hover {
|
||||
opacity: 1;
|
||||
// font-weight: bold;
|
||||
}
|
||||
|
||||
/* leanote nav */
|
||||
|
||||
#leanoteNav {
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 3px;
|
||||
background-color: #fff;
|
||||
opacity: 0.5;
|
||||
// display: none;
|
||||
z-index: 11;
|
||||
margin-right: 2px;
|
||||
h1 {
|
||||
margin:0;
|
||||
font-size: 18px;
|
||||
padding: 3px;
|
||||
cursor: pointer;
|
||||
}
|
||||
i {
|
||||
padding: 3px;
|
||||
}
|
||||
span {
|
||||
display: none;
|
||||
}
|
||||
#leanoteNavContent {
|
||||
display: none;
|
||||
overflow: auto;
|
||||
}
|
||||
}
|
||||
|
||||
#leanoteNav.unfolder {
|
||||
min-width: 200px;
|
||||
max-width: 300px;
|
||||
// bottom: 1px;
|
||||
opacity: 0.8;
|
||||
h1 {
|
||||
border-bottom: 1px dashed @borderColor;
|
||||
}
|
||||
span {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
#leanoteNavContent {
|
||||
display: block;
|
||||
min-height: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
#leanoteNav ul {
|
||||
margin:0;
|
||||
padding-left: 23px;
|
||||
li {
|
||||
list-style-type: disc;
|
||||
a {
|
||||
&:hover {
|
||||
color: @hColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#leanoteNav ul .nav-h1 {
|
||||
}
|
||||
#leanoteNav ul .nav-h2 {
|
||||
margin-left: 20px;
|
||||
}
|
||||
#leanoteNav ul .nav-h3 {
|
||||
margin-left: 30px;
|
||||
}
|
||||
#leanoteNav ul .nav-h4 {
|
||||
margin-left: 40px;
|
||||
}
|
||||
#leanoteNav ul .nav-h5 {
|
||||
margin-left: 50px;
|
||||
}
|
||||
.scrollTo-a {
|
||||
cursor: pointer !important;
|
||||
}
|
||||
|
||||
//---------------
|
||||
// note for read
|
||||
#noteRead {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
display: none;
|
||||
z-index: 100;
|
||||
padding-left: 5px;
|
||||
background-color: #fff;
|
||||
}
|
||||
#noteReadContainer {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
@noteReadTopHeight: 60px;
|
||||
#noteReadTop {
|
||||
position: absolute;
|
||||
height: @noteReadTopHeight;
|
||||
left:0;
|
||||
right: 0;
|
||||
border-bottom: 1px solid @borderColor;
|
||||
}
|
||||
#noteReadTitle {
|
||||
margin: 3px 0;
|
||||
}
|
||||
#noteReadContent {
|
||||
position: absolute;
|
||||
top: @noteReadTopHeight;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
overflow: auto;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
@sbc: @bgColor;
|
||||
|
||||
/*scroll*/
|
||||
/*
|
||||
::-webkit-scrollbar {
|
||||
width: 5px;
|
||||
height: 8px;
|
||||
background: none;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background-color: #41586e;
|
||||
opacity: 0.1;
|
||||
}
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background-color:#dadada
|
||||
}
|
||||
::-webkit-scrollbar-thumb:active {
|
||||
background-color:#606060
|
||||
}
|
||||
::-webkit-scrollbar-thumb:disabled {
|
||||
background-color:#f9f9f9
|
||||
}
|
||||
::-webkit-scrollbar-corner {
|
||||
background-color:#f0f0f0
|
||||
}
|
||||
::-webkit-scrollbar-button {
|
||||
height: 0;
|
||||
background-color:#f0f0f0;
|
||||
background-repeat:no-repeat
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical {
|
||||
height:0px
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal {
|
||||
width:33px
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:increment {
|
||||
background-position:0 -444px
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:decrement {
|
||||
background-position:12px -425px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:increment {
|
||||
background-position:-1px -391px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:decrement {
|
||||
background-position:-1px -358px
|
||||
}
|
||||
::-webkit-scrollbar-button:hover {
|
||||
background-color:#dadada
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:increment:hover {
|
||||
background-position:0 -548px
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:decrement:hover {
|
||||
background-position:12px -529px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:increment:hover {
|
||||
background-position:-1px -495px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:decrement:hover {
|
||||
background-position:-1px -462px
|
||||
}
|
||||
::-webkit-scrollbar-button:active {
|
||||
background-color:#606060
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:increment:active {
|
||||
background-position:0 -652px
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:decrement:active {
|
||||
background-position:12px -633px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:increment:active {
|
||||
background-position:-1px -599px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:decrement:active {
|
||||
background-position:-1px -566px
|
||||
}
|
||||
::-webkit-scrollbar-button:disabled {
|
||||
background-color:#f9f9f9
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:increment:disabled {
|
||||
background-position:0 -756px
|
||||
}
|
||||
::-webkit-scrollbar-button:horizontal:decrement:disabled {
|
||||
background-position:12px -737px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:increment:disabled {
|
||||
background-position:-1px -703px
|
||||
}
|
||||
::-webkit-scrollbar-button:vertical:decrement:disabled {
|
||||
background-position:-1px -670px
|
||||
}
|
||||
*/
|
||||
|
||||
/*from notebook*/
|
||||
/*::-webkit-scrollbar{width:7px;height:7px;}::-webkit-scrollbar-thumb{background-color:rgba(50,50,50,0.3);}::-webkit-scrollbar-thumb:hover{background-color:rgba(50,50,50,0.6);}::-webkit-scrollbar-track{background-color:rgba(50,50,50,0.1);}::-webkit-scrollbar-track:hover{background-color:rgba(50,50,50,0.2);}
|
||||
*/
|
||||
|
||||
#editorContent_ifr {
|
||||
// border: 1px solid red;
|
||||
}
|
||||
|
||||
.fa-calendar {
|
||||
color: #666;
|
||||
}
|
||||
.dropdown-menu .fa {
|
||||
width: 15px;
|
||||
}
|
||||
.dropdown-menu span, .dropdown-menu a, .dropdown-menu li {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
// 顶部导航, 博客
|
||||
#topNav a {
|
||||
display: inline-block;
|
||||
line-height: 60px;
|
||||
}
|
||||
|
||||
.tab-pane {
|
||||
padding: 5px 0 0 0;
|
||||
}
|
||||
.alert {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.btn {
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
|
||||
.mce-container-body iframe {
|
||||
//overflow-x: hidden; // firefox 不能要
|
||||
//overflow-y: hidden;
|
||||
}
|
||||
// 新建笔记item
|
||||
#notebookNavForNewNote li, #notebookNavForNewSharedNote > li {
|
||||
padding-left: 0;
|
||||
border-bottom: 1px solid @borderColor;
|
||||
}
|
||||
#notebookNavForNewNote > li:hover, #notebookNavForNewNote > li:focus,
|
||||
#notebookNavForNewSharedNote > li:hover, #notebookNavForNewSharedNote > li:focus {
|
||||
background: none;
|
||||
}
|
||||
|
||||
.new-note-left {
|
||||
padding: 0 5px;
|
||||
width: 95px;
|
||||
overflow: hidden;
|
||||
white-space:nowrap;
|
||||
border-right: 1px dashed @borderColor;
|
||||
&:hover {
|
||||
background-color:@borderColor;
|
||||
}
|
||||
}
|
||||
.new-note-right {
|
||||
padding: 0 5px;
|
||||
&:hover {
|
||||
background-color:@borderColor;
|
||||
}
|
||||
}
|
||||
|
||||
// 历史记录
|
||||
#historyList {
|
||||
table {
|
||||
width: 100%;
|
||||
}
|
||||
.btns{
|
||||
border-top: 1px dashed #eee;
|
||||
padding: 5px 0;
|
||||
}
|
||||
}
|
||||
|
||||
#left-column {
|
||||
width: 100% !important;
|
||||
}
|
||||
#editorMask {
|
||||
position: absolute; top: 0px; bottom: 0px; right: 0; left: 0;
|
||||
background-color: #fff;
|
||||
z-index: -10;
|
||||
.fa, a {
|
||||
font-size: 24px;
|
||||
}
|
||||
padding-top: 50px;
|
||||
text-align: center;
|
||||
a {
|
||||
display: inline-block;
|
||||
border-radius: 3px;
|
||||
border: 1px solid @borderColor;
|
||||
padding: 10px;
|
||||
&:hover {
|
||||
background-color: @noteActiveBg;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
public/images/editor/editor-shadow.png
Normal file
|
After Width: | Height: | Size: 309 B |
BIN
public/images/loading-a-20-black.gif
Normal file
|
After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.9 KiB |
BIN
public/images/sprites.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
27
public/js/angular/angular-animate.min.js
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
AngularJS v1.2.16
|
||||
(c) 2010-2014 Google, Inc. http://angularjs.org
|
||||
License: MIT
|
||||
*/
|
||||
(function(s,g,P){'use strict';g.module("ngAnimate",["ng"]).factory("$$animateReflow",["$$rAF","$document",function(g,s){return function(e){return g(function(){e()})}}]).config(["$provide","$animateProvider",function(ga,G){function e(e){for(var p=0;p<e.length;p++){var g=e[p];if(g.nodeType==ba)return g}}function u(p){return g.element(e(p))}var m=g.noop,p=g.forEach,Q=G.$$selectors,ba=1,h="$$ngAnimateState",J="ng-animate",r={running:!0};ga.decorator("$animate",["$delegate","$injector","$sniffer","$rootElement",
|
||||
"$$asyncCallback","$rootScope","$document",function(t,s,aa,K,E,H,P){function R(a){if(a){var b=[],c={};a=a.substr(1).split(".");(aa.transitions||aa.animations)&&b.push(s.get(Q[""]));for(var d=0;d<a.length;d++){var f=a[d],e=Q[f];e&&!c[f]&&(b.push(s.get(e)),c[f]=!0)}return b}}function L(a,b,c){function d(a,b){var c=a[b],d=a["before"+b.charAt(0).toUpperCase()+b.substr(1)];if(c||d)return"leave"==b&&(d=c,c=null),A.push({event:b,fn:c}),l.push({event:b,fn:d}),!0}function f(b,d,e){var f=[];p(b,function(a){a.fn&&
|
||||
f.push(a)});var n=0;p(f,function(b,p){var C=function(){a:{if(d){(d[p]||m)();if(++n<f.length)break a;d=null}e()}};switch(b.event){case "setClass":d.push(b.fn(a,q,y,C));break;case "addClass":d.push(b.fn(a,q||c,C));break;case "removeClass":d.push(b.fn(a,y||c,C));break;default:d.push(b.fn(a,C))}});d&&0===d.length&&e()}var e=a[0];if(e){var h="setClass"==b,r=h||"addClass"==b||"removeClass"==b,q,y;g.isArray(c)&&(q=c[0],y=c[1],c=q+" "+y);var z=a.attr("class")+" "+c;if(T(z)){var v=m,w=[],l=[],x=m,n=[],A=[],
|
||||
z=(" "+z).replace(/\s+/g,".");p(R(z),function(a){!d(a,b)&&h&&(d(a,"addClass"),d(a,"removeClass"))});return{node:e,event:b,className:c,isClassBased:r,isSetClassOperation:h,before:function(a){v=a;f(l,w,function(){v=m;a()})},after:function(a){x=a;f(A,n,function(){x=m;a()})},cancel:function(){w&&(p(w,function(a){(a||m)(!0)}),v(!0));n&&(p(n,function(a){(a||m)(!0)}),x(!0))}}}}}function F(a,b,c,d,f,e,r){function m(d){var e="$animate:"+d;x&&(x[e]&&0<x[e].length)&&E(function(){c.triggerHandler(e,{event:a,
|
||||
className:b})})}function q(){m("before")}function y(){m("after")}function z(){m("close");r&&E(function(){r()})}function v(){v.hasBeenRun||(v.hasBeenRun=!0,e())}function w(){if(!w.hasBeenRun){w.hasBeenRun=!0;var d=c.data(h);d&&(l&&l.isClassBased?B(c,b):(E(function(){var d=c.data(h)||{};t==d.index&&B(c,b,a)}),c.data(h,d)));z()}}var l=L(c,a,b);if(l){b=l.className;var x=g.element._data(l.node),x=x&&x.events;d||(d=f?f.parent():c.parent());var n=c.data(h)||{};f=n.active||{};var A=n.totalActive||0,C=n.last;
|
||||
if(l.isClassBased&&(n.disabled||C&&!C.isClassBased)||N(c,d))v(),q(),y(),w();else{d=!1;if(0<A){n=[];if(l.isClassBased)"setClass"==C.event?(n.push(C),B(c,b)):f[b]&&(s=f[b],s.event==a?d=!0:(n.push(s),B(c,b)));else if("leave"==a&&f["ng-leave"])d=!0;else{for(var s in f)n.push(f[s]),B(c,s);f={};A=0}0<n.length&&p(n,function(a){a.cancel()})}!l.isClassBased||(l.isSetClassOperation||d)||(d="addClass"==a==c.hasClass(b));if(d)q(),y(),z();else{if("leave"==a)c.one("$destroy",function(a){a=g.element(this);var b=
|
||||
a.data(h);b&&(b=b.active["ng-leave"])&&(b.cancel(),B(a,"ng-leave"))});c.addClass(J);var t=O++;A++;f[b]=l;c.data(h,{last:l,active:f,index:t,totalActive:A});q();l.before(function(d){var e=c.data(h);d=d||!e||!e.active[b]||l.isClassBased&&e.active[b].event!=a;v();!0===d?w():(y(),l.after(w))})}}}else v(),q(),y(),w()}function U(a){if(a=e(a))a=g.isFunction(a.getElementsByClassName)?a.getElementsByClassName(J):a.querySelectorAll("."+J),p(a,function(a){a=g.element(a);(a=a.data(h))&&a.active&&p(a.active,function(a){a.cancel()})})}
|
||||
function B(a,b){if(e(a)==e(K))r.disabled||(r.running=!1,r.structural=!1);else if(b){var c=a.data(h)||{},d=!0===b;!d&&(c.active&&c.active[b])&&(c.totalActive--,delete c.active[b]);if(d||!c.totalActive)a.removeClass(J),a.removeData(h)}}function N(a,b){if(r.disabled)return!0;if(e(a)==e(K))return r.disabled||r.running;do{if(0===b.length)break;var c=e(b)==e(K),d=c?r:b.data(h),d=d&&(!!d.disabled||d.running||0<d.totalActive);if(c||d)return d;if(c)break}while(b=b.parent());return!0}var O=0;K.data(h,r);H.$$postDigest(function(){H.$$postDigest(function(){r.running=
|
||||
!1})});var V=G.classNameFilter(),T=V?function(a){return V.test(a)}:function(){return!0};return{enter:function(a,b,c,d){this.enabled(!1,a);t.enter(a,b,c);H.$$postDigest(function(){a=u(a);F("enter","ng-enter",a,b,c,m,d)})},leave:function(a,b){U(a);this.enabled(!1,a);H.$$postDigest(function(){F("leave","ng-leave",u(a),null,null,function(){t.leave(a)},b)})},move:function(a,b,c,d){U(a);this.enabled(!1,a);t.move(a,b,c);H.$$postDigest(function(){a=u(a);F("move","ng-move",a,b,c,m,d)})},addClass:function(a,
|
||||
b,c){a=u(a);F("addClass",b,a,null,null,function(){t.addClass(a,b)},c)},removeClass:function(a,b,c){a=u(a);F("removeClass",b,a,null,null,function(){t.removeClass(a,b)},c)},setClass:function(a,b,c,d){a=u(a);F("setClass",[b,c],a,null,null,function(){t.setClass(a,b,c)},d)},enabled:function(a,b){switch(arguments.length){case 2:if(a)B(b);else{var c=b.data(h)||{};c.disabled=!0;b.data(h,c)}break;case 1:r.disabled=!a;break;default:a=!r.disabled}return!!a}}}]);G.register("",["$window","$sniffer","$timeout",
|
||||
"$$animateReflow",function(h,r,u,K){function E(a,k){S&&S();W.push(k);S=K(function(){p(W,function(a){a()});W=[];S=null;M={}})}function H(a,k){var b=e(a);a=g.element(b);Y.push(a);b=Date.now()+k;b<=fa||(u.cancel(ea),fa=b,ea=u(function(){J(Y);Y=[]},k,!1))}function J(a){p(a,function(a){(a=a.data(n))&&(a.closeAnimationFn||m)()})}function R(a,k){var b=k?M[k]:null;if(!b){var c=0,d=0,e=0,f=0,n,Z,$,g;p(a,function(a){if(a.nodeType==ba){a=h.getComputedStyle(a)||{};$=a[I+z];c=Math.max(L($),c);g=a[I+v];n=a[I+w];
|
||||
d=Math.max(L(n),d);Z=a[q+w];f=Math.max(L(Z),f);var k=L(a[q+z]);0<k&&(k*=parseInt(a[q+l],10)||1);e=Math.max(k,e)}});b={total:0,transitionPropertyStyle:g,transitionDurationStyle:$,transitionDelayStyle:n,transitionDelay:d,transitionDuration:c,animationDelayStyle:Z,animationDelay:f,animationDuration:e};k&&(M[k]=b)}return b}function L(a){var k=0;a=g.isString(a)?a.split(/\s*,\s*/):[];p(a,function(a){k=Math.max(parseFloat(a)||0,k)});return k}function F(a){var k=a.parent(),b=k.data(x);b||(k.data(x,++da),
|
||||
b=da);return b+"-"+e(a).getAttribute("class")}function U(a,k,b,c){var d=F(k),f=d+" "+b,p=M[f]?++M[f].total:0,g={};if(0<p){var h=b+"-stagger",g=d+" "+h;(d=!M[g])&&k.addClass(h);g=R(k,g);d&&k.removeClass(h)}c=c||function(a){return a()};k.addClass(b);var h=k.data(n)||{},l=c(function(){return R(k,f)});c=l.transitionDuration;d=l.animationDuration;if(0===c&&0===d)return k.removeClass(b),!1;k.data(n,{running:h.running||0,itemIndex:p,stagger:g,timings:l,closeAnimationFn:m});a=0<h.running||"setClass"==a;0<
|
||||
c&&B(k,b,a);0<d&&(0<g.animationDelay&&0===g.animationDuration)&&(e(k).style[q]="none 0s");return!0}function B(a,b,c){"ng-enter"!=b&&("ng-move"!=b&&"ng-leave"!=b)&&c?a.addClass(A):e(a).style[I+v]="none"}function N(a,b){var c=I+v,d=e(a);d.style[c]&&0<d.style[c].length&&(d.style[c]="");a.removeClass(A)}function O(a){var b=q;a=e(a);a.style[b]&&0<a.style[b].length&&(a.style[b]="")}function V(a,b,c,f){function g(a){b.off(z,h);b.removeClass(r);d(b,c);a=e(b);for(var X in u)a.style.removeProperty(u[X])}function h(a){a.stopPropagation();
|
||||
var b=a.originalEvent||a;a=b.$manualTimeStamp||b.timeStamp||Date.now();b=parseFloat(b.elapsedTime.toFixed(C));Math.max(a-A,0)>=x&&b>=v&&f()}var l=e(b);a=b.data(n);if(-1!=l.getAttribute("class").indexOf(c)&&a){var r="";p(c.split(" "),function(a,b){r+=(0<b?" ":"")+a+"-active"});var q=a.stagger,m=a.timings,s=a.itemIndex,v=Math.max(m.transitionDuration,m.animationDuration),w=Math.max(m.transitionDelay,m.animationDelay),x=w*ca,A=Date.now(),z=y+" "+G,t="",u=[];if(0<m.transitionDuration){var B=m.transitionPropertyStyle;
|
||||
-1==B.indexOf("all")&&(t+=D+"transition-property: "+B+";",t+=D+"transition-duration: "+m.transitionDurationStyle+";",u.push(D+"transition-property"),u.push(D+"transition-duration"))}0<s&&(0<q.transitionDelay&&0===q.transitionDuration&&(t+=D+"transition-delay: "+T(m.transitionDelayStyle,q.transitionDelay,s)+"; ",u.push(D+"transition-delay")),0<q.animationDelay&&0===q.animationDuration&&(t+=D+"animation-delay: "+T(m.animationDelayStyle,q.animationDelay,s)+"; ",u.push(D+"animation-delay")));0<u.length&&
|
||||
(m=l.getAttribute("style")||"",l.setAttribute("style",m+" "+t));b.on(z,h);b.addClass(r);a.closeAnimationFn=function(){g();f()};l=(s*(Math.max(q.animationDelay,q.transitionDelay)||0)+(w+v)*Q)*ca;a.running++;H(b,l);return g}f()}function T(a,b,c){var d="";p(a.split(","),function(a,X){d+=(0<X?",":"")+(c*b+parseInt(a,10))+"s"});return d}function a(a,b,c,e){if(U(a,b,c,e))return function(a){a&&d(b,c)}}function b(a,b,c,e){if(b.data(n))return V(a,b,c,e);d(b,c);e()}function c(c,d,e,f){var g=a(c,d,e);if(g){var h=
|
||||
g;E(d,function(){N(d,e);O(d);h=b(c,d,e,f)});return function(a){(h||m)(a)}}f()}function d(a,b){a.removeClass(b);var c=a.data(n);c&&(c.running&&c.running--,c.running&&0!==c.running||a.removeData(n))}function f(a,b){var c="";a=g.isArray(a)?a:a.split(/\s+/);p(a,function(a,d){a&&0<a.length&&(c+=(0<d?" ":"")+a+b)});return c}var D="",I,G,q,y;s.ontransitionend===P&&s.onwebkittransitionend!==P?(D="-webkit-",I="WebkitTransition",G="webkitTransitionEnd transitionend"):(I="transition",G="transitionend");s.onanimationend===
|
||||
P&&s.onwebkitanimationend!==P?(D="-webkit-",q="WebkitAnimation",y="webkitAnimationEnd animationend"):(q="animation",y="animationend");var z="Duration",v="Property",w="Delay",l="IterationCount",x="$$ngAnimateKey",n="$$ngAnimateCSS3Data",A="ng-animate-block-transitions",C=3,Q=1.5,ca=1E3,M={},da=0,W=[],S,ea=null,fa=0,Y=[];return{enter:function(a,b){return c("enter",a,"ng-enter",b)},leave:function(a,b){return c("leave",a,"ng-leave",b)},move:function(a,b){return c("move",a,"ng-move",b)},beforeSetClass:function(b,
|
||||
c,d,e){var g=f(d,"-remove")+" "+f(c,"-add"),h=a("setClass",b,g,function(a){var e=b.attr("class");b.removeClass(d);b.addClass(c);a=a();b.attr("class",e);return a});if(h)return E(b,function(){N(b,g);O(b);e()}),h;e()},beforeAddClass:function(b,c,d){var e=a("addClass",b,f(c,"-add"),function(a){b.addClass(c);a=a();b.removeClass(c);return a});if(e)return E(b,function(){N(b,c);O(b);d()}),e;d()},setClass:function(a,c,d,e){d=f(d,"-remove");c=f(c,"-add");return b("setClass",a,d+" "+c,e)},addClass:function(a,
|
||||
c,d){return b("addClass",a,f(c,"-add"),d)},beforeRemoveClass:function(b,c,d){var e=a("removeClass",b,f(c,"-remove"),function(a){var d=b.attr("class");b.removeClass(c);a=a();b.attr("class",d);return a});if(e)return E(b,function(){N(b,c);O(b);d()}),e;d()},removeClass:function(a,c,d){return b("removeClass",a,f(c,"-remove"),d)}}}])}])})(window,window.angular);
|
||||
//# sourceMappingURL=angular-animate.min.js.map
|
||||
8
public/js/angular/angular-cookies.min.js
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
/*
|
||||
AngularJS v1.2.16
|
||||
(c) 2010-2014 Google, Inc. http://angularjs.org
|
||||
License: MIT
|
||||
*/
|
||||
(function(p,f,n){'use strict';f.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(e,b){var c={},g={},h,k=!1,l=f.copy,m=f.isUndefined;b.addPollFn(function(){var a=b.cookies();h!=a&&(h=a,l(a,g),l(a,c),k&&e.$apply())})();k=!0;e.$watch(function(){var a,d,e;for(a in g)m(c[a])&&b.cookies(a,n);for(a in c)d=c[a],f.isString(d)||(d=""+d,c[a]=d),d!==g[a]&&(b.cookies(a,d),e=!0);if(e)for(a in d=b.cookies(),c)c[a]!==d[a]&&(m(d[a])?delete c[a]:c[a]=d[a])});return c}]).factory("$cookieStore",
|
||||
["$cookies",function(e){return{get:function(b){return(b=e[b])?f.fromJson(b):b},put:function(b,c){e[b]=f.toJson(c)},remove:function(b){delete e[b]}}}])})(window,window.angular);
|
||||
//# sourceMappingURL=angular-cookies.min.js.map
|
||||
13
public/js/angular/angular-resource.min.js
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
/*
|
||||
AngularJS v1.2.16
|
||||
(c) 2010-2014 Google, Inc. http://angularjs.org
|
||||
License: MIT
|
||||
*/
|
||||
(function(H,a,A){'use strict';function D(p,g){g=g||{};a.forEach(g,function(a,c){delete g[c]});for(var c in p)!p.hasOwnProperty(c)||"$"===c.charAt(0)&&"$"===c.charAt(1)||(g[c]=p[c]);return g}var v=a.$$minErr("$resource"),C=/^(\.[a-zA-Z_$][0-9a-zA-Z_$]*)+$/;a.module("ngResource",["ng"]).factory("$resource",["$http","$q",function(p,g){function c(a,c){this.template=a;this.defaults=c||{};this.urlParams={}}function t(n,w,l){function r(h,d){var e={};d=x({},w,d);s(d,function(b,d){u(b)&&(b=b());var k;if(b&&
|
||||
b.charAt&&"@"==b.charAt(0)){k=h;var a=b.substr(1);if(null==a||""===a||"hasOwnProperty"===a||!C.test("."+a))throw v("badmember",a);for(var a=a.split("."),f=0,c=a.length;f<c&&k!==A;f++){var g=a[f];k=null!==k?k[g]:A}}else k=b;e[d]=k});return e}function e(a){return a.resource}function f(a){D(a||{},this)}var F=new c(n);l=x({},B,l);s(l,function(h,d){var c=/^(POST|PUT|PATCH)$/i.test(h.method);f[d]=function(b,d,k,w){var q={},n,l,y;switch(arguments.length){case 4:y=w,l=k;case 3:case 2:if(u(d)){if(u(b)){l=
|
||||
b;y=d;break}l=d;y=k}else{q=b;n=d;l=k;break}case 1:u(b)?l=b:c?n=b:q=b;break;case 0:break;default:throw v("badargs",arguments.length);}var t=this instanceof f,m=t?n:h.isArray?[]:new f(n),z={},B=h.interceptor&&h.interceptor.response||e,C=h.interceptor&&h.interceptor.responseError||A;s(h,function(a,b){"params"!=b&&("isArray"!=b&&"interceptor"!=b)&&(z[b]=G(a))});c&&(z.data=n);F.setUrlParams(z,x({},r(n,h.params||{}),q),h.url);q=p(z).then(function(b){var d=b.data,k=m.$promise;if(d){if(a.isArray(d)!==!!h.isArray)throw v("badcfg",
|
||||
h.isArray?"array":"object",a.isArray(d)?"array":"object");h.isArray?(m.length=0,s(d,function(b){m.push(new f(b))})):(D(d,m),m.$promise=k)}m.$resolved=!0;b.resource=m;return b},function(b){m.$resolved=!0;(y||E)(b);return g.reject(b)});q=q.then(function(b){var a=B(b);(l||E)(a,b.headers);return a},C);return t?q:(m.$promise=q,m.$resolved=!1,m)};f.prototype["$"+d]=function(b,a,k){u(b)&&(k=a,a=b,b={});b=f[d].call(this,b,this,a,k);return b.$promise||b}});f.bind=function(a){return t(n,x({},w,a),l)};return f}
|
||||
var B={get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}},E=a.noop,s=a.forEach,x=a.extend,G=a.copy,u=a.isFunction;c.prototype={setUrlParams:function(c,g,l){var r=this,e=l||r.template,f,p,h=r.urlParams={};s(e.split(/\W/),function(a){if("hasOwnProperty"===a)throw v("badname");!/^\d+$/.test(a)&&(a&&RegExp("(^|[^\\\\]):"+a+"(\\W|$)").test(e))&&(h[a]=!0)});e=e.replace(/\\:/g,":");g=g||{};s(r.urlParams,function(d,c){f=g.hasOwnProperty(c)?
|
||||
g[c]:r.defaults[c];a.isDefined(f)&&null!==f?(p=encodeURIComponent(f).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"%20").replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+"),e=e.replace(RegExp(":"+c+"(\\W|$)","g"),function(a,c){return p+c})):e=e.replace(RegExp("(/?):"+c+"(\\W|$)","g"),function(a,c,d){return"/"==d.charAt(0)?d:c+d})});e=e.replace(/\/+$/,"")||"/";e=e.replace(/\/\.(?=\w+($|\?))/,".");c.url=e.replace(/\/\\\./,"/.");s(g,function(a,
|
||||
e){r.urlParams[e]||(c.params=c.params||{},c.params[e]=a)})}};return t}])})(window,window.angular);
|
||||
//# sourceMappingURL=angular-resource.min.js.map
|
||||
14
public/js/angular/angular-route.min.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
AngularJS v1.2.16
|
||||
(c) 2010-2014 Google, Inc. http://angularjs.org
|
||||
License: MIT
|
||||
*/
|
||||
(function(n,e,A){'use strict';function x(s,g,k){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(a,c,b,f,w){function y(){p&&(p.remove(),p=null);h&&(h.$destroy(),h=null);l&&(k.leave(l,function(){p=null}),p=l,l=null)}function v(){var b=s.current&&s.current.locals;if(e.isDefined(b&&b.$template)){var b=a.$new(),d=s.current;l=w(b,function(d){k.enter(d,null,l||c,function(){!e.isDefined(t)||t&&!a.$eval(t)||g()});y()});h=d.scope=b;h.$emit("$viewContentLoaded");h.$eval(u)}else y()}
|
||||
var h,l,p,t=b.autoscroll,u=b.onload||"";a.$on("$routeChangeSuccess",v);v()}}}function z(e,g,k){return{restrict:"ECA",priority:-400,link:function(a,c){var b=k.current,f=b.locals;c.html(f.$template);var w=e(c.contents());b.controller&&(f.$scope=a,f=g(b.controller,f),b.controllerAs&&(a[b.controllerAs]=f),c.data("$ngControllerController",f),c.children().data("$ngControllerController",f));w(a)}}}n=e.module("ngRoute",["ng"]).provider("$route",function(){function s(a,c){return e.extend(new (e.extend(function(){},
|
||||
{prototype:a})),c)}function g(a,e){var b=e.caseInsensitiveMatch,f={originalPath:a,regexp:a},k=f.keys=[];a=a.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)([\?\*])?/g,function(a,e,b,c){a="?"===c?c:null;c="*"===c?c:null;k.push({name:b,optional:!!a});e=e||"";return""+(a?"":e)+"(?:"+(a?e:"")+(c&&"(.+?)"||"([^/]+)")+(a||"")+")"+(a||"")}).replace(/([\/$\*])/g,"\\$1");f.regexp=RegExp("^"+a+"$",b?"i":"");return f}var k={};this.when=function(a,c){k[a]=e.extend({reloadOnSearch:!0},c,a&&g(a,c));if(a){var b=
|
||||
"/"==a[a.length-1]?a.substr(0,a.length-1):a+"/";k[b]=e.extend({redirectTo:a},g(b,c))}return this};this.otherwise=function(a){this.when(null,a);return this};this.$get=["$rootScope","$location","$routeParams","$q","$injector","$http","$templateCache","$sce",function(a,c,b,f,g,n,v,h){function l(){var d=p(),m=r.current;if(d&&m&&d.$$route===m.$$route&&e.equals(d.pathParams,m.pathParams)&&!d.reloadOnSearch&&!u)m.params=d.params,e.copy(m.params,b),a.$broadcast("$routeUpdate",m);else if(d||m)u=!1,a.$broadcast("$routeChangeStart",
|
||||
d,m),(r.current=d)&&d.redirectTo&&(e.isString(d.redirectTo)?c.path(t(d.redirectTo,d.params)).search(d.params).replace():c.url(d.redirectTo(d.pathParams,c.path(),c.search())).replace()),f.when(d).then(function(){if(d){var a=e.extend({},d.resolve),c,b;e.forEach(a,function(d,c){a[c]=e.isString(d)?g.get(d):g.invoke(d)});e.isDefined(c=d.template)?e.isFunction(c)&&(c=c(d.params)):e.isDefined(b=d.templateUrl)&&(e.isFunction(b)&&(b=b(d.params)),b=h.getTrustedResourceUrl(b),e.isDefined(b)&&(d.loadedTemplateUrl=
|
||||
b,c=n.get(b,{cache:v}).then(function(a){return a.data})));e.isDefined(c)&&(a.$template=c);return f.all(a)}}).then(function(c){d==r.current&&(d&&(d.locals=c,e.copy(d.params,b)),a.$broadcast("$routeChangeSuccess",d,m))},function(c){d==r.current&&a.$broadcast("$routeChangeError",d,m,c)})}function p(){var a,b;e.forEach(k,function(f,k){var q;if(q=!b){var g=c.path();q=f.keys;var l={};if(f.regexp)if(g=f.regexp.exec(g)){for(var h=1,p=g.length;h<p;++h){var n=q[h-1],r="string"==typeof g[h]?decodeURIComponent(g[h]):
|
||||
g[h];n&&r&&(l[n.name]=r)}q=l}else q=null;else q=null;q=a=q}q&&(b=s(f,{params:e.extend({},c.search(),a),pathParams:a}),b.$$route=f)});return b||k[null]&&s(k[null],{params:{},pathParams:{}})}function t(a,c){var b=[];e.forEach((a||"").split(":"),function(a,d){if(0===d)b.push(a);else{var e=a.match(/(\w+)(.*)/),f=e[1];b.push(c[f]);b.push(e[2]||"");delete c[f]}});return b.join("")}var u=!1,r={routes:k,reload:function(){u=!0;a.$evalAsync(l)}};a.$on("$locationChangeSuccess",l);return r}]});n.provider("$routeParams",
|
||||
function(){this.$get=function(){return{}}});n.directive("ngView",x);n.directive("ngView",z);x.$inject=["$route","$anchorScroll","$animate"];z.$inject=["$compile","$controller","$route"]})(window,window.angular);
|
||||
//# sourceMappingURL=angular-route.min.js.map
|
||||
13
public/js/angular/angular-touch.min.js
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
/*
|
||||
AngularJS v1.2.16
|
||||
(c) 2010-2014 Google, Inc. http://angularjs.org
|
||||
License: MIT
|
||||
*/
|
||||
(function(y,w,z){'use strict';function u(f,a,c){r.directive(f,["$parse","$swipe",function(m,p){var q=75,g=0.3,e=30;return function(h,n,l){function k(d){if(!b)return!1;var s=Math.abs(d.y-b.y);d=(d.x-b.x)*a;return v&&s<q&&0<d&&d>e&&s/d<g}var s=m(l[f]),b,v;p.bind(n,{start:function(d,s){b=d;v=!0},cancel:function(b){v=!1},end:function(b,a){k(b)&&h.$apply(function(){n.triggerHandler(c);s(h,{$event:a})})}})}}])}var r=w.module("ngTouch",[]);r.factory("$swipe",[function(){function f(a){var c=a.touches&&a.touches.length?
|
||||
a.touches:[a];a=a.changedTouches&&a.changedTouches[0]||a.originalEvent&&a.originalEvent.changedTouches&&a.originalEvent.changedTouches[0]||c[0].originalEvent||c[0];return{x:a.clientX,y:a.clientY}}return{bind:function(a,c){var m,p,q,g,e=!1;a.on("touchstart mousedown",function(a){q=f(a);e=!0;p=m=0;g=q;c.start&&c.start(q,a)});a.on("touchcancel",function(a){e=!1;c.cancel&&c.cancel(a)});a.on("touchmove mousemove",function(a){if(e&&q){var n=f(a);m+=Math.abs(n.x-g.x);p+=Math.abs(n.y-g.y);g=n;10>m&&10>p||
|
||||
(p>m?(e=!1,c.cancel&&c.cancel(a)):(a.preventDefault(),c.move&&c.move(n,a)))}});a.on("touchend mouseup",function(a){e&&(e=!1,c.end&&c.end(f(a),a))})}}}]);r.config(["$provide",function(f){f.decorator("ngClickDirective",["$delegate",function(a){a.shift();return a}])}]);r.directive("ngClick",["$parse","$timeout","$rootElement",function(f,a,c){function m(a,b,c){for(var d=0;d<a.length;d+=2)if(Math.abs(a[d]-b)<e&&Math.abs(a[d+1]-c)<e)return a.splice(d,d+2),!0;return!1}function p(a){if(!(Date.now()-n>g)){var b=
|
||||
a.touches&&a.touches.length?a.touches:[a],c=b[0].clientX,b=b[0].clientY;1>c&&1>b||k&&k[0]===c&&k[1]===b||(k&&(k=null),"label"===a.target.tagName.toLowerCase()&&(k=[c,b]),m(l,c,b)||(a.stopPropagation(),a.preventDefault(),a.target&&a.target.blur()))}}function q(c){c=c.touches&&c.touches.length?c.touches:[c];var b=c[0].clientX,e=c[0].clientY;l.push(b,e);a(function(){for(var a=0;a<l.length;a+=2)if(l[a]==b&&l[a+1]==e){l.splice(a,a+2);break}},g,!1)}var g=2500,e=25,h="ng-click-active",n,l,k;return function(a,
|
||||
b,e){function d(){k=!1;b.removeClass(h)}var g=f(e.ngClick),k=!1,t,r,u,x;b.on("touchstart",function(a){k=!0;t=a.target?a.target:a.srcElement;3==t.nodeType&&(t=t.parentNode);b.addClass(h);r=Date.now();a=a.touches&&a.touches.length?a.touches:[a];a=a[0].originalEvent||a[0];u=a.clientX;x=a.clientY});b.on("touchmove",function(a){d()});b.on("touchcancel",function(a){d()});b.on("touchend",function(a){var g=Date.now()-r,f=a.changedTouches&&a.changedTouches.length?a.changedTouches:a.touches&&a.touches.length?
|
||||
a.touches:[a],h=f[0].originalEvent||f[0],f=h.clientX,h=h.clientY,s=Math.sqrt(Math.pow(f-u,2)+Math.pow(h-x,2));k&&(750>g&&12>s)&&(l||(c[0].addEventListener("click",p,!0),c[0].addEventListener("touchstart",q,!0),l=[]),n=Date.now(),m(l,f,h),t&&t.blur(),w.isDefined(e.disabled)&&!1!==e.disabled||b.triggerHandler("click",[a]));d()});b.onclick=function(a){};b.on("click",function(b,c){a.$apply(function(){g(a,{$event:c||b})})});b.on("mousedown",function(a){b.addClass(h)});b.on("mousemove mouseup",function(a){b.removeClass(h)})}}]);
|
||||
u("ngSwipeLeft",-1,"swipeleft");u("ngSwipeRight",1,"swiperight")})(window,window.angular);
|
||||
//# sourceMappingURL=angular-touch.min.js.map
|
||||
210
public/js/angular/angular.min.js
vendored
Normal file
@@ -0,0 +1,210 @@
|
||||
/*
|
||||
AngularJS v1.2.16
|
||||
(c) 2010-2014 Google, Inc. http://angularjs.org
|
||||
License: MIT
|
||||
*/
|
||||
(function(O,U,s){'use strict';function t(b){return function(){var a=arguments[0],c,a="["+(b?b+":":"")+a+"] http://errors.angularjs.org/1.2.16/"+(b?b+"/":"")+a;for(c=1;c<arguments.length;c++)a=a+(1==c?"?":"&")+"p"+(c-1)+"="+encodeURIComponent("function"==typeof arguments[c]?arguments[c].toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof arguments[c]?"undefined":"string"!=typeof arguments[c]?JSON.stringify(arguments[c]):arguments[c]);return Error(a)}}function ab(b){if(null==b||Ca(b))return!1;
|
||||
var a=b.length;return 1===b.nodeType&&a?!0:w(b)||M(b)||0===a||"number"===typeof a&&0<a&&a-1 in b}function q(b,a,c){var d;if(b)if(P(b))for(d in b)"prototype"==d||("length"==d||"name"==d||b.hasOwnProperty&&!b.hasOwnProperty(d))||a.call(c,b[d],d);else if(b.forEach&&b.forEach!==q)b.forEach(a,c);else if(ab(b))for(d=0;d<b.length;d++)a.call(c,b[d],d);else for(d in b)b.hasOwnProperty(d)&&a.call(c,b[d],d);return b}function Qb(b){var a=[],c;for(c in b)b.hasOwnProperty(c)&&a.push(c);return a.sort()}function Sc(b,
|
||||
a,c){for(var d=Qb(b),e=0;e<d.length;e++)a.call(c,b[d[e]],d[e]);return d}function Rb(b){return function(a,c){b(c,a)}}function bb(){for(var b=ka.length,a;b;){b--;a=ka[b].charCodeAt(0);if(57==a)return ka[b]="A",ka.join("");if(90==a)ka[b]="0";else return ka[b]=String.fromCharCode(a+1),ka.join("")}ka.unshift("0");return ka.join("")}function Sb(b,a){a?b.$$hashKey=a:delete b.$$hashKey}function D(b){var a=b.$$hashKey;q(arguments,function(a){a!==b&&q(a,function(a,c){b[c]=a})});Sb(b,a);return b}function Y(b){return parseInt(b,
|
||||
10)}function Tb(b,a){return D(new (D(function(){},{prototype:b})),a)}function C(){}function Da(b){return b}function aa(b){return function(){return b}}function E(b){return"undefined"===typeof b}function B(b){return"undefined"!==typeof b}function X(b){return null!=b&&"object"===typeof b}function w(b){return"string"===typeof b}function vb(b){return"number"===typeof b}function Na(b){return"[object Date]"===wa.call(b)}function M(b){return"[object Array]"===wa.call(b)}function P(b){return"function"===typeof b}
|
||||
function cb(b){return"[object RegExp]"===wa.call(b)}function Ca(b){return b&&b.document&&b.location&&b.alert&&b.setInterval}function Tc(b){return!(!b||!(b.nodeName||b.prop&&b.attr&&b.find))}function Uc(b,a,c){var d=[];q(b,function(b,g,f){d.push(a.call(c,b,g,f))});return d}function db(b,a){if(b.indexOf)return b.indexOf(a);for(var c=0;c<b.length;c++)if(a===b[c])return c;return-1}function Oa(b,a){var c=db(b,a);0<=c&&b.splice(c,1);return a}function ba(b,a){if(Ca(b)||b&&b.$evalAsync&&b.$watch)throw Pa("cpws");
|
||||
if(a){if(b===a)throw Pa("cpi");if(M(b))for(var c=a.length=0;c<b.length;c++)a.push(ba(b[c]));else{c=a.$$hashKey;q(a,function(b,c){delete a[c]});for(var d in b)a[d]=ba(b[d]);Sb(a,c)}}else(a=b)&&(M(b)?a=ba(b,[]):Na(b)?a=new Date(b.getTime()):cb(b)?a=RegExp(b.source):X(b)&&(a=ba(b,{})));return a}function Ub(b,a){a=a||{};for(var c in b)!b.hasOwnProperty(c)||"$"===c.charAt(0)&&"$"===c.charAt(1)||(a[c]=b[c]);return a}function xa(b,a){if(b===a)return!0;if(null===b||null===a)return!1;if(b!==b&&a!==a)return!0;
|
||||
var c=typeof b,d;if(c==typeof a&&"object"==c)if(M(b)){if(!M(a))return!1;if((c=b.length)==a.length){for(d=0;d<c;d++)if(!xa(b[d],a[d]))return!1;return!0}}else{if(Na(b))return Na(a)&&b.getTime()==a.getTime();if(cb(b)&&cb(a))return b.toString()==a.toString();if(b&&b.$evalAsync&&b.$watch||a&&a.$evalAsync&&a.$watch||Ca(b)||Ca(a)||M(a))return!1;c={};for(d in b)if("$"!==d.charAt(0)&&!P(b[d])){if(!xa(b[d],a[d]))return!1;c[d]=!0}for(d in a)if(!c.hasOwnProperty(d)&&"$"!==d.charAt(0)&&a[d]!==s&&!P(a[d]))return!1;
|
||||
return!0}return!1}function Vb(){return U.securityPolicy&&U.securityPolicy.isActive||U.querySelector&&!(!U.querySelector("[ng-csp]")&&!U.querySelector("[data-ng-csp]"))}function eb(b,a){var c=2<arguments.length?ya.call(arguments,2):[];return!P(a)||a instanceof RegExp?a:c.length?function(){return arguments.length?a.apply(b,c.concat(ya.call(arguments,0))):a.apply(b,c)}:function(){return arguments.length?a.apply(b,arguments):a.call(b)}}function Vc(b,a){var c=a;"string"===typeof b&&"$"===b.charAt(0)?c=
|
||||
s:Ca(a)?c="$WINDOW":a&&U===a?c="$DOCUMENT":a&&(a.$evalAsync&&a.$watch)&&(c="$SCOPE");return c}function qa(b,a){return"undefined"===typeof b?s:JSON.stringify(b,Vc,a?" ":null)}function Wb(b){return w(b)?JSON.parse(b):b}function Qa(b){"function"===typeof b?b=!0:b&&0!==b.length?(b=K(""+b),b=!("f"==b||"0"==b||"false"==b||"no"==b||"n"==b||"[]"==b)):b=!1;return b}function ha(b){b=y(b).clone();try{b.empty()}catch(a){}var c=y("<div>").append(b).html();try{return 3===b[0].nodeType?K(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,
|
||||
function(a,b){return"<"+K(b)})}catch(d){return K(c)}}function Xb(b){try{return decodeURIComponent(b)}catch(a){}}function Yb(b){var a={},c,d;q((b||"").split("&"),function(b){b&&(c=b.split("="),d=Xb(c[0]),B(d)&&(b=B(c[1])?Xb(c[1]):!0,a[d]?M(a[d])?a[d].push(b):a[d]=[a[d],b]:a[d]=b))});return a}function Zb(b){var a=[];q(b,function(b,d){M(b)?q(b,function(b){a.push(za(d,!0)+(!0===b?"":"="+za(b,!0)))}):a.push(za(d,!0)+(!0===b?"":"="+za(b,!0)))});return a.length?a.join("&"):""}function wb(b){return za(b,
|
||||
!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function za(b,a){return encodeURIComponent(b).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,a?"%20":"+")}function Wc(b,a){function c(a){a&&d.push(a)}var d=[b],e,g,f=["ng:app","ng-app","x-ng-app","data-ng-app"],h=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/;q(f,function(a){f[a]=!0;c(U.getElementById(a));a=a.replace(":","\\:");b.querySelectorAll&&(q(b.querySelectorAll("."+a),c),q(b.querySelectorAll("."+
|
||||
a+"\\:"),c),q(b.querySelectorAll("["+a+"]"),c))});q(d,function(a){if(!e){var b=h.exec(" "+a.className+" ");b?(e=a,g=(b[2]||"").replace(/\s+/g,",")):q(a.attributes,function(b){!e&&f[b.name]&&(e=a,g=b.value)})}});e&&a(e,g?[g]:[])}function $b(b,a){var c=function(){b=y(b);if(b.injector()){var c=b[0]===U?"document":ha(b);throw Pa("btstrpd",c);}a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);a.unshift("ng");c=ac(a);c.invoke(["$rootScope","$rootElement","$compile","$injector","$animate",
|
||||
function(a,b,c,d,e){a.$apply(function(){b.data("$injector",d);c(b)(a)})}]);return c},d=/^NG_DEFER_BOOTSTRAP!/;if(O&&!d.test(O.name))return c();O.name=O.name.replace(d,"");Ea.resumeBootstrap=function(b){q(b,function(b){a.push(b)});c()}}function fb(b,a){a=a||"_";return b.replace(Xc,function(b,d){return(d?a:"")+b.toLowerCase()})}function xb(b,a,c){if(!b)throw Pa("areq",a||"?",c||"required");return b}function Ra(b,a,c){c&&M(b)&&(b=b[b.length-1]);xb(P(b),a,"not a function, got "+(b&&"object"==typeof b?
|
||||
b.constructor.name||"Object":typeof b));return b}function Aa(b,a){if("hasOwnProperty"===b)throw Pa("badname",a);}function bc(b,a,c){if(!a)return b;a=a.split(".");for(var d,e=b,g=a.length,f=0;f<g;f++)d=a[f],b&&(b=(e=b)[d]);return!c&&P(b)?eb(e,b):b}function yb(b){var a=b[0];b=b[b.length-1];if(a===b)return y(a);var c=[a];do{a=a.nextSibling;if(!a)break;c.push(a)}while(a!==b);return y(c)}function Yc(b){var a=t("$injector"),c=t("ng");b=b.angular||(b.angular={});b.$$minErr=b.$$minErr||t;return b.module||
|
||||
(b.module=function(){var b={};return function(e,g,f){if("hasOwnProperty"===e)throw c("badname","module");g&&b.hasOwnProperty(e)&&(b[e]=null);return b[e]||(b[e]=function(){function b(a,d,e){return function(){c[e||"push"]([a,d,arguments]);return n}}if(!g)throw a("nomod",e);var c=[],d=[],m=b("$injector","invoke"),n={_invokeQueue:c,_runBlocks:d,requires:g,name:e,provider:b("$provide","provider"),factory:b("$provide","factory"),service:b("$provide","service"),value:b("$provide","value"),constant:b("$provide",
|
||||
"constant","unshift"),animation:b("$animateProvider","register"),filter:b("$filterProvider","register"),controller:b("$controllerProvider","register"),directive:b("$compileProvider","directive"),config:m,run:function(a){d.push(a);return this}};f&&m(f);return n}())}}())}function Zc(b){D(b,{bootstrap:$b,copy:ba,extend:D,equals:xa,element:y,forEach:q,injector:ac,noop:C,bind:eb,toJson:qa,fromJson:Wb,identity:Da,isUndefined:E,isDefined:B,isString:w,isFunction:P,isObject:X,isNumber:vb,isElement:Tc,isArray:M,
|
||||
version:$c,isDate:Na,lowercase:K,uppercase:Fa,callbacks:{counter:0},$$minErr:t,$$csp:Vb});Sa=Yc(O);try{Sa("ngLocale")}catch(a){Sa("ngLocale",[]).provider("$locale",ad)}Sa("ng",["ngLocale"],["$provide",function(a){a.provider({$$sanitizeUri:bd});a.provider("$compile",cc).directive({a:cd,input:dc,textarea:dc,form:dd,script:ed,select:fd,style:gd,option:hd,ngBind:id,ngBindHtml:jd,ngBindTemplate:kd,ngClass:ld,ngClassEven:md,ngClassOdd:nd,ngCloak:od,ngController:pd,ngForm:qd,ngHide:rd,ngIf:sd,ngInclude:td,
|
||||
ngInit:ud,ngNonBindable:vd,ngPluralize:wd,ngRepeat:xd,ngShow:yd,ngStyle:zd,ngSwitch:Ad,ngSwitchWhen:Bd,ngSwitchDefault:Cd,ngOptions:Dd,ngTransclude:Ed,ngModel:Fd,ngList:Gd,ngChange:Hd,required:ec,ngRequired:ec,ngValue:Id}).directive({ngInclude:Jd}).directive(zb).directive(fc);a.provider({$anchorScroll:Kd,$animate:Ld,$browser:Md,$cacheFactory:Nd,$controller:Od,$document:Pd,$exceptionHandler:Qd,$filter:gc,$interpolate:Rd,$interval:Sd,$http:Td,$httpBackend:Ud,$location:Vd,$log:Wd,$parse:Xd,$rootScope:Yd,
|
||||
$q:Zd,$sce:$d,$sceDelegate:ae,$sniffer:be,$templateCache:ce,$timeout:de,$window:ee,$$rAF:fe,$$asyncCallback:ge})}])}function Ta(b){return b.replace(he,function(a,b,d,e){return e?d.toUpperCase():d}).replace(ie,"Moz$1")}function Ab(b,a,c,d){function e(b){var e=c&&b?[this.filter(b)]:[this],l=a,k,m,n,p,r,z;if(!d||null!=b)for(;e.length;)for(k=e.shift(),m=0,n=k.length;m<n;m++)for(p=y(k[m]),l?p.triggerHandler("$destroy"):l=!l,r=0,p=(z=p.children()).length;r<p;r++)e.push(Ga(z[r]));return g.apply(this,arguments)}
|
||||
var g=Ga.fn[b],g=g.$original||g;e.$original=g;Ga.fn[b]=e}function N(b){if(b instanceof N)return b;w(b)&&(b=ca(b));if(!(this instanceof N)){if(w(b)&&"<"!=b.charAt(0))throw Bb("nosel");return new N(b)}if(w(b)){var a=b;b=U;var c;if(c=je.exec(a))b=[b.createElement(c[1])];else{var d=b,e;b=d.createDocumentFragment();c=[];if(Cb.test(a)){d=b.appendChild(d.createElement("div"));e=(ke.exec(a)||["",""])[1].toLowerCase();e=ea[e]||ea._default;d.innerHTML="<div> </div>"+e[1]+a.replace(le,"<$1></$2>")+e[2];
|
||||
d.removeChild(d.firstChild);for(a=e[0];a--;)d=d.lastChild;a=0;for(e=d.childNodes.length;a<e;++a)c.push(d.childNodes[a]);d=b.firstChild;d.textContent=""}else c.push(d.createTextNode(a));b.textContent="";b.innerHTML="";b=c}Db(this,b);y(U.createDocumentFragment()).append(this)}else Db(this,b)}function Eb(b){return b.cloneNode(!0)}function Ha(b){hc(b);var a=0;for(b=b.childNodes||[];a<b.length;a++)Ha(b[a])}function ic(b,a,c,d){if(B(d))throw Bb("offargs");var e=la(b,"events");la(b,"handle")&&(E(a)?q(e,
|
||||
function(a,c){Fb(b,c,a);delete e[c]}):q(a.split(" "),function(a){E(c)?(Fb(b,a,e[a]),delete e[a]):Oa(e[a]||[],c)}))}function hc(b,a){var c=b[gb],d=Ua[c];d&&(a?delete Ua[c].data[a]:(d.handle&&(d.events.$destroy&&d.handle({},"$destroy"),ic(b)),delete Ua[c],b[gb]=s))}function la(b,a,c){var d=b[gb],d=Ua[d||-1];if(B(c))d||(b[gb]=d=++me,d=Ua[d]={}),d[a]=c;else return d&&d[a]}function jc(b,a,c){var d=la(b,"data"),e=B(c),g=!e&&B(a),f=g&&!X(a);d||f||la(b,"data",d={});if(e)d[a]=c;else if(g){if(f)return d&&d[a];
|
||||
D(d,a)}else return d}function Gb(b,a){return b.getAttribute?-1<(" "+(b.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+a+" "):!1}function hb(b,a){a&&b.setAttribute&&q(a.split(" "),function(a){b.setAttribute("class",ca((" "+(b.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+ca(a)+" "," ")))})}function ib(b,a){if(a&&b.setAttribute){var c=(" "+(b.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");q(a.split(" "),function(a){a=ca(a);-1===c.indexOf(" "+a+" ")&&
|
||||
(c+=a+" ")});b.setAttribute("class",ca(c))}}function Db(b,a){if(a){a=a.nodeName||!B(a.length)||Ca(a)?[a]:a;for(var c=0;c<a.length;c++)b.push(a[c])}}function kc(b,a){return jb(b,"$"+(a||"ngController")+"Controller")}function jb(b,a,c){b=y(b);9==b[0].nodeType&&(b=b.find("html"));for(a=M(a)?a:[a];b.length;){for(var d=b[0],e=0,g=a.length;e<g;e++)if((c=b.data(a[e]))!==s)return c;b=y(d.parentNode||11===d.nodeType&&d.host)}}function lc(b){for(var a=0,c=b.childNodes;a<c.length;a++)Ha(c[a]);for(;b.firstChild;)b.removeChild(b.firstChild)}
|
||||
function mc(b,a){var c=kb[a.toLowerCase()];return c&&nc[b.nodeName]&&c}function ne(b,a){var c=function(c,e){c.preventDefault||(c.preventDefault=function(){c.returnValue=!1});c.stopPropagation||(c.stopPropagation=function(){c.cancelBubble=!0});c.target||(c.target=c.srcElement||U);if(E(c.defaultPrevented)){var g=c.preventDefault;c.preventDefault=function(){c.defaultPrevented=!0;g.call(c)};c.defaultPrevented=!1}c.isDefaultPrevented=function(){return c.defaultPrevented||!1===c.returnValue};var f=Ub(a[e||
|
||||
c.type]||[]);q(f,function(a){a.call(b,c)});8>=S?(c.preventDefault=null,c.stopPropagation=null,c.isDefaultPrevented=null):(delete c.preventDefault,delete c.stopPropagation,delete c.isDefaultPrevented)};c.elem=b;return c}function Ia(b){var a=typeof b,c;"object"==a&&null!==b?"function"==typeof(c=b.$$hashKey)?c=b.$$hashKey():c===s&&(c=b.$$hashKey=bb()):c=b;return a+":"+c}function Va(b){q(b,this.put,this)}function oc(b){var a,c;"function"==typeof b?(a=b.$inject)||(a=[],b.length&&(c=b.toString().replace(oe,
|
||||
""),c=c.match(pe),q(c[1].split(qe),function(b){b.replace(re,function(b,c,d){a.push(d)})})),b.$inject=a):M(b)?(c=b.length-1,Ra(b[c],"fn"),a=b.slice(0,c)):Ra(b,"fn",!0);return a}function ac(b){function a(a){return function(b,c){if(X(b))q(b,Rb(a));else return a(b,c)}}function c(a,b){Aa(a,"service");if(P(b)||M(b))b=n.instantiate(b);if(!b.$get)throw Wa("pget",a);return m[a+h]=b}function d(a,b){return c(a,{$get:b})}function e(a){var b=[],c,d,g,h;q(a,function(a){if(!k.get(a)){k.put(a,!0);try{if(w(a))for(c=
|
||||
Sa(a),b=b.concat(e(c.requires)).concat(c._runBlocks),d=c._invokeQueue,g=0,h=d.length;g<h;g++){var f=d[g],l=n.get(f[0]);l[f[1]].apply(l,f[2])}else P(a)?b.push(n.invoke(a)):M(a)?b.push(n.invoke(a)):Ra(a,"module")}catch(m){throw M(a)&&(a=a[a.length-1]),m.message&&(m.stack&&-1==m.stack.indexOf(m.message))&&(m=m.message+"\n"+m.stack),Wa("modulerr",a,m.stack||m.message||m);}}});return b}function g(a,b){function c(d){if(a.hasOwnProperty(d)){if(a[d]===f)throw Wa("cdep",l.join(" <- "));return a[d]}try{return l.unshift(d),
|
||||
a[d]=f,a[d]=b(d)}catch(e){throw a[d]===f&&delete a[d],e;}finally{l.shift()}}function d(a,b,e){var g=[],h=oc(a),f,l,k;l=0;for(f=h.length;l<f;l++){k=h[l];if("string"!==typeof k)throw Wa("itkn",k);g.push(e&&e.hasOwnProperty(k)?e[k]:c(k))}a.$inject||(a=a[f]);return a.apply(b,g)}return{invoke:d,instantiate:function(a,b){var c=function(){},e;c.prototype=(M(a)?a[a.length-1]:a).prototype;c=new c;e=d(a,c,b);return X(e)||P(e)?e:c},get:c,annotate:oc,has:function(b){return m.hasOwnProperty(b+h)||a.hasOwnProperty(b)}}}
|
||||
var f={},h="Provider",l=[],k=new Va,m={$provide:{provider:a(c),factory:a(d),service:a(function(a,b){return d(a,["$injector",function(a){return a.instantiate(b)}])}),value:a(function(a,b){return d(a,aa(b))}),constant:a(function(a,b){Aa(a,"constant");m[a]=b;p[a]=b}),decorator:function(a,b){var c=n.get(a+h),d=c.$get;c.$get=function(){var a=r.invoke(d,c);return r.invoke(b,null,{$delegate:a})}}}},n=m.$injector=g(m,function(){throw Wa("unpr",l.join(" <- "));}),p={},r=p.$injector=g(p,function(a){a=n.get(a+
|
||||
h);return r.invoke(a.$get,a)});q(e(b),function(a){r.invoke(a||C)});return r}function Kd(){var b=!0;this.disableAutoScrolling=function(){b=!1};this.$get=["$window","$location","$rootScope",function(a,c,d){function e(a){var b=null;q(a,function(a){b||"a"!==K(a.nodeName)||(b=a)});return b}function g(){var b=c.hash(),d;b?(d=f.getElementById(b))?d.scrollIntoView():(d=e(f.getElementsByName(b)))?d.scrollIntoView():"top"===b&&a.scrollTo(0,0):a.scrollTo(0,0)}var f=a.document;b&&d.$watch(function(){return c.hash()},
|
||||
function(){d.$evalAsync(g)});return g}]}function ge(){this.$get=["$$rAF","$timeout",function(b,a){return b.supported?function(a){return b(a)}:function(b){return a(b,0,!1)}}]}function se(b,a,c,d){function e(a){try{a.apply(null,ya.call(arguments,1))}finally{if(z--,0===z)for(;u.length;)try{u.pop()()}catch(b){c.error(b)}}}function g(a,b){(function T(){q(F,function(a){a()});v=b(T,a)})()}function f(){x=null;J!=h.url()&&(J=h.url(),q(ma,function(a){a(h.url())}))}var h=this,l=a[0],k=b.location,m=b.history,
|
||||
n=b.setTimeout,p=b.clearTimeout,r={};h.isMock=!1;var z=0,u=[];h.$$completeOutstandingRequest=e;h.$$incOutstandingRequestCount=function(){z++};h.notifyWhenNoOutstandingRequests=function(a){q(F,function(a){a()});0===z?a():u.push(a)};var F=[],v;h.addPollFn=function(a){E(v)&&g(100,n);F.push(a);return a};var J=k.href,A=a.find("base"),x=null;h.url=function(a,c){k!==b.location&&(k=b.location);m!==b.history&&(m=b.history);if(a){if(J!=a)return J=a,d.history?c?m.replaceState(null,"",a):(m.pushState(null,"",
|
||||
a),A.attr("href",A.attr("href"))):(x=a,c?k.replace(a):k.href=a),h}else return x||k.href.replace(/%27/g,"'")};var ma=[],L=!1;h.onUrlChange=function(a){if(!L){if(d.history)y(b).on("popstate",f);if(d.hashchange)y(b).on("hashchange",f);else h.addPollFn(f);L=!0}ma.push(a);return a};h.baseHref=function(){var a=A.attr("href");return a?a.replace(/^(https?\:)?\/\/[^\/]*/,""):""};var Q={},da="",H=h.baseHref();h.cookies=function(a,b){var d,e,g,h;if(a)b===s?l.cookie=escape(a)+"=;path="+H+";expires=Thu, 01 Jan 1970 00:00:00 GMT":
|
||||
w(b)&&(d=(l.cookie=escape(a)+"="+escape(b)+";path="+H).length+1,4096<d&&c.warn("Cookie '"+a+"' possibly not set or overflowed because it was too large ("+d+" > 4096 bytes)!"));else{if(l.cookie!==da)for(da=l.cookie,d=da.split("; "),Q={},g=0;g<d.length;g++)e=d[g],h=e.indexOf("="),0<h&&(a=unescape(e.substring(0,h)),Q[a]===s&&(Q[a]=unescape(e.substring(h+1))));return Q}};h.defer=function(a,b){var c;z++;c=n(function(){delete r[c];e(a)},b||0);r[c]=!0;return c};h.defer.cancel=function(a){return r[a]?(delete r[a],
|
||||
p(a),e(C),!0):!1}}function Md(){this.$get=["$window","$log","$sniffer","$document",function(b,a,c,d){return new se(b,d,a,c)}]}function Nd(){this.$get=function(){function b(b,d){function e(a){a!=n&&(p?p==a&&(p=a.n):p=a,g(a.n,a.p),g(a,n),n=a,n.n=null)}function g(a,b){a!=b&&(a&&(a.p=b),b&&(b.n=a))}if(b in a)throw t("$cacheFactory")("iid",b);var f=0,h=D({},d,{id:b}),l={},k=d&&d.capacity||Number.MAX_VALUE,m={},n=null,p=null;return a[b]={put:function(a,b){if(k<Number.MAX_VALUE){var c=m[a]||(m[a]={key:a});
|
||||
e(c)}if(!E(b))return a in l||f++,l[a]=b,f>k&&this.remove(p.key),b},get:function(a){if(k<Number.MAX_VALUE){var b=m[a];if(!b)return;e(b)}return l[a]},remove:function(a){if(k<Number.MAX_VALUE){var b=m[a];if(!b)return;b==n&&(n=b.p);b==p&&(p=b.n);g(b.n,b.p);delete m[a]}delete l[a];f--},removeAll:function(){l={};f=0;m={};n=p=null},destroy:function(){m=h=l=null;delete a[b]},info:function(){return D({},h,{size:f})}}}var a={};b.info=function(){var b={};q(a,function(a,e){b[e]=a.info()});return b};b.get=function(b){return a[b]};
|
||||
return b}}function ce(){this.$get=["$cacheFactory",function(b){return b("templates")}]}function cc(b,a){var c={},d="Directive",e=/^\s*directive\:\s*([\d\w\-_]+)\s+(.*)$/,g=/(([\d\w\-_]+)(?:\:([^;]+))?;?)/,f=/^(on[a-z]+|formaction)$/;this.directive=function l(a,e){Aa(a,"directive");w(a)?(xb(e,"directiveFactory"),c.hasOwnProperty(a)||(c[a]=[],b.factory(a+d,["$injector","$exceptionHandler",function(b,d){var e=[];q(c[a],function(c,g){try{var f=b.invoke(c);P(f)?f={compile:aa(f)}:!f.compile&&f.link&&(f.compile=
|
||||
aa(f.link));f.priority=f.priority||0;f.index=g;f.name=f.name||a;f.require=f.require||f.controller&&f.name;f.restrict=f.restrict||"A";e.push(f)}catch(l){d(l)}});return e}])),c[a].push(e)):q(a,Rb(l));return this};this.aHrefSanitizationWhitelist=function(b){return B(b)?(a.aHrefSanitizationWhitelist(b),this):a.aHrefSanitizationWhitelist()};this.imgSrcSanitizationWhitelist=function(b){return B(b)?(a.imgSrcSanitizationWhitelist(b),this):a.imgSrcSanitizationWhitelist()};this.$get=["$injector","$interpolate",
|
||||
"$exceptionHandler","$http","$templateCache","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function(a,b,m,n,p,r,z,u,F,v,J,A){function x(a,b,c,d,e){a instanceof y||(a=y(a));q(a,function(b,c){3==b.nodeType&&b.nodeValue.match(/\S+/)&&(a[c]=y(b).wrap("<span></span>").parent()[0])});var g=L(a,b,a,c,d,e);ma(a,"ng-scope");return function(b,c,d){xb(b,"scope");var e=c?Ja.clone.call(a):a;q(d,function(a,b){e.data("$"+b+"Controller",a)});d=0;for(var f=e.length;d<f;d++){var l=
|
||||
e[d].nodeType;1!==l&&9!==l||e.eq(d).data("$scope",b)}c&&c(e,b);g&&g(b,e,e);return e}}function ma(a,b){try{a.addClass(b)}catch(c){}}function L(a,b,c,d,e,g){function f(a,c,d,e){var g,k,m,r,n,p,z;g=c.length;var I=Array(g);for(n=0;n<g;n++)I[n]=c[n];z=n=0;for(p=l.length;n<p;z++)k=I[z],c=l[n++],g=l[n++],m=y(k),c?(c.scope?(r=a.$new(),m.data("$scope",r)):r=a,(m=c.transclude)||!e&&b?c(g,r,k,d,Q(a,m||b)):c(g,r,k,d,e)):g&&g(a,k.childNodes,s,e)}for(var l=[],k,m,r,n,p=0;p<a.length;p++)k=new Hb,m=da(a[p],[],k,
|
||||
0===p?d:s,e),(g=m.length?ia(m,a[p],k,b,c,null,[],[],g):null)&&g.scope&&ma(y(a[p]),"ng-scope"),k=g&&g.terminal||!(r=a[p].childNodes)||!r.length?null:L(r,g?g.transclude:b),l.push(g,k),n=n||g||k,g=null;return n?f:null}function Q(a,b){return function(c,d,e){var g=!1;c||(c=a.$new(),g=c.$$transcluded=!0);d=b(c,d,e);if(g)d.on("$destroy",eb(c,c.$destroy));return d}}function da(a,b,c,d,f){var k=c.$attr,l;switch(a.nodeType){case 1:T(b,na(Ka(a).toLowerCase()),"E",d,f);var m,r,n;l=a.attributes;for(var p=0,z=
|
||||
l&&l.length;p<z;p++){var u=!1,F=!1;m=l[p];if(!S||8<=S||m.specified){r=m.name;n=na(r);W.test(n)&&(r=fb(n.substr(6),"-"));var J=n.replace(/(Start|End)$/,"");n===J+"Start"&&(u=r,F=r.substr(0,r.length-5)+"end",r=r.substr(0,r.length-6));n=na(r.toLowerCase());k[n]=r;c[n]=m=ca(m.value);mc(a,n)&&(c[n]=!0);N(a,b,m,n);T(b,n,"A",d,f,u,F)}}a=a.className;if(w(a)&&""!==a)for(;l=g.exec(a);)n=na(l[2]),T(b,n,"C",d,f)&&(c[n]=ca(l[3])),a=a.substr(l.index+l[0].length);break;case 3:t(b,a.nodeValue);break;case 8:try{if(l=
|
||||
e.exec(a.nodeValue))n=na(l[1]),T(b,n,"M",d,f)&&(c[n]=ca(l[2]))}catch(x){}}b.sort(E);return b}function H(a,b,c){var d=[],e=0;if(b&&a.hasAttribute&&a.hasAttribute(b)){do{if(!a)throw ja("uterdir",b,c);1==a.nodeType&&(a.hasAttribute(b)&&e++,a.hasAttribute(c)&&e--);d.push(a);a=a.nextSibling}while(0<e)}else d.push(a);return y(d)}function R(a,b,c){return function(d,e,g,f,l){e=H(e[0],b,c);return a(d,e,g,f,l)}}function ia(a,c,d,e,g,f,l,n,p){function u(a,b,c,d){if(a){c&&(a=R(a,c,d));a.require=G.require;if(Q===
|
||||
G||G.$$isolateScope)a=qc(a,{isolateScope:!0});l.push(a)}if(b){c&&(b=R(b,c,d));b.require=G.require;if(Q===G||G.$$isolateScope)b=qc(b,{isolateScope:!0});n.push(b)}}function F(a,b,c){var d,e="data",g=!1;if(w(a)){for(;"^"==(d=a.charAt(0))||"?"==d;)a=a.substr(1),"^"==d&&(e="inheritedData"),g=g||"?"==d;d=null;c&&"data"===e&&(d=c[a]);d=d||b[e]("$"+a+"Controller");if(!d&&!g)throw ja("ctreq",a,t);}else M(a)&&(d=[],q(a,function(a){d.push(F(a,b,c))}));return d}function J(a,e,g,f,p){function u(a,b){var c;2>arguments.length&&
|
||||
(b=a,a=s);D&&(c=lb);return p(a,b,c)}var I,x,v,A,R,H,lb={},da;I=c===g?d:Ub(d,new Hb(y(g),d.$attr));x=I.$$element;if(Q){var T=/^\s*([@=&])(\??)\s*(\w*)\s*$/;f=y(g);H=e.$new(!0);ia&&ia===Q.$$originalDirective?f.data("$isolateScope",H):f.data("$isolateScopeNoTemplate",H);ma(f,"ng-isolate-scope");q(Q.scope,function(a,c){var d=a.match(T)||[],g=d[3]||c,f="?"==d[2],d=d[1],l,m,n,p;H.$$isolateBindings[c]=d+g;switch(d){case "@":I.$observe(g,function(a){H[c]=a});I.$$observers[g].$$scope=e;I[g]&&(H[c]=b(I[g])(e));
|
||||
break;case "=":if(f&&!I[g])break;m=r(I[g]);p=m.literal?xa:function(a,b){return a===b};n=m.assign||function(){l=H[c]=m(e);throw ja("nonassign",I[g],Q.name);};l=H[c]=m(e);H.$watch(function(){var a=m(e);p(a,H[c])||(p(a,l)?n(e,a=H[c]):H[c]=a);return l=a},null,m.literal);break;case "&":m=r(I[g]);H[c]=function(a){return m(e,a)};break;default:throw ja("iscp",Q.name,c,a);}})}da=p&&u;L&&q(L,function(a){var b={$scope:a===Q||a.$$isolateScope?H:e,$element:x,$attrs:I,$transclude:da},c;R=a.controller;"@"==R&&(R=
|
||||
I[a.name]);c=z(R,b);lb[a.name]=c;D||x.data("$"+a.name+"Controller",c);a.controllerAs&&(b.$scope[a.controllerAs]=c)});f=0;for(v=l.length;f<v;f++)try{A=l[f],A(A.isolateScope?H:e,x,I,A.require&&F(A.require,x,lb),da)}catch(G){m(G,ha(x))}f=e;Q&&(Q.template||null===Q.templateUrl)&&(f=H);a&&a(f,g.childNodes,s,p);for(f=n.length-1;0<=f;f--)try{A=n[f],A(A.isolateScope?H:e,x,I,A.require&&F(A.require,x,lb),da)}catch(B){m(B,ha(x))}}p=p||{};for(var v=-Number.MAX_VALUE,A,L=p.controllerDirectives,Q=p.newIsolateScopeDirective,
|
||||
ia=p.templateDirective,T=p.nonTlbTranscludeDirective,E=!1,D=p.hasElementTranscludeDirective,Z=d.$$element=y(c),G,t,V,Xa=e,O,N=0,S=a.length;N<S;N++){G=a[N];var ra=G.$$start,W=G.$$end;ra&&(Z=H(c,ra,W));V=s;if(v>G.priority)break;if(V=G.scope)A=A||G,G.templateUrl||(K("new/isolated scope",Q,G,Z),X(V)&&(Q=G));t=G.name;!G.templateUrl&&G.controller&&(V=G.controller,L=L||{},K("'"+t+"' controller",L[t],G,Z),L[t]=G);if(V=G.transclude)E=!0,G.$$tlb||(K("transclusion",T,G,Z),T=G),"element"==V?(D=!0,v=G.priority,
|
||||
V=H(c,ra,W),Z=d.$$element=y(U.createComment(" "+t+": "+d[t]+" ")),c=Z[0],mb(g,y(ya.call(V,0)),c),Xa=x(V,e,v,f&&f.name,{nonTlbTranscludeDirective:T})):(V=y(Eb(c)).contents(),Z.empty(),Xa=x(V,e));if(G.template)if(K("template",ia,G,Z),ia=G,V=P(G.template)?G.template(Z,d):G.template,V=Y(V),G.replace){f=G;V=Cb.test(V)?y(V):[];c=V[0];if(1!=V.length||1!==c.nodeType)throw ja("tplrt",t,"");mb(g,Z,c);S={$attr:{}};V=da(c,[],S);var $=a.splice(N+1,a.length-(N+1));Q&&pc(V);a=a.concat(V).concat($);B(d,S);S=a.length}else Z.html(V);
|
||||
if(G.templateUrl)K("template",ia,G,Z),ia=G,G.replace&&(f=G),J=C(a.splice(N,a.length-N),Z,d,g,Xa,l,n,{controllerDirectives:L,newIsolateScopeDirective:Q,templateDirective:ia,nonTlbTranscludeDirective:T}),S=a.length;else if(G.compile)try{O=G.compile(Z,d,Xa),P(O)?u(null,O,ra,W):O&&u(O.pre,O.post,ra,W)}catch(aa){m(aa,ha(Z))}G.terminal&&(J.terminal=!0,v=Math.max(v,G.priority))}J.scope=A&&!0===A.scope;J.transclude=E&&Xa;p.hasElementTranscludeDirective=D;return J}function pc(a){for(var b=0,c=a.length;b<c;b++)a[b]=
|
||||
Tb(a[b],{$$isolateScope:!0})}function T(b,e,g,f,k,n,r){if(e===k)return null;k=null;if(c.hasOwnProperty(e)){var p;e=a.get(e+d);for(var z=0,u=e.length;z<u;z++)try{p=e[z],(f===s||f>p.priority)&&-1!=p.restrict.indexOf(g)&&(n&&(p=Tb(p,{$$start:n,$$end:r})),b.push(p),k=p)}catch(F){m(F)}}return k}function B(a,b){var c=b.$attr,d=a.$attr,e=a.$$element;q(a,function(d,e){"$"!=e.charAt(0)&&(b[e]&&(d+=("style"===e?";":" ")+b[e]),a.$set(e,d,!0,c[e]))});q(b,function(b,g){"class"==g?(ma(e,b),a["class"]=(a["class"]?
|
||||
a["class"]+" ":"")+b):"style"==g?(e.attr("style",e.attr("style")+";"+b),a.style=(a.style?a.style+";":"")+b):"$"==g.charAt(0)||a.hasOwnProperty(g)||(a[g]=b,d[g]=c[g])})}function C(a,b,c,d,e,g,f,l){var k=[],m,r,z=b[0],u=a.shift(),F=D({},u,{templateUrl:null,transclude:null,replace:null,$$originalDirective:u}),x=P(u.templateUrl)?u.templateUrl(b,c):u.templateUrl;b.empty();n.get(v.getTrustedResourceUrl(x),{cache:p}).success(function(n){var p,J;n=Y(n);if(u.replace){n=Cb.test(n)?y(n):[];p=n[0];if(1!=n.length||
|
||||
1!==p.nodeType)throw ja("tplrt",u.name,x);n={$attr:{}};mb(d,b,p);var v=da(p,[],n);X(u.scope)&&pc(v);a=v.concat(a);B(c,n)}else p=z,b.html(n);a.unshift(F);m=ia(a,p,c,e,b,u,g,f,l);q(d,function(a,c){a==p&&(d[c]=b[0])});for(r=L(b[0].childNodes,e);k.length;){n=k.shift();J=k.shift();var A=k.shift(),R=k.shift(),v=b[0];if(J!==z){var H=J.className;l.hasElementTranscludeDirective&&u.replace||(v=Eb(p));mb(A,y(J),v);ma(y(v),H)}J=m.transclude?Q(n,m.transclude):R;m(r,n,v,d,J)}k=null}).error(function(a,b,c,d){throw ja("tpload",
|
||||
d.url);});return function(a,b,c,d,e){k?(k.push(b),k.push(c),k.push(d),k.push(e)):m(r,b,c,d,e)}}function E(a,b){var c=b.priority-a.priority;return 0!==c?c:a.name!==b.name?a.name<b.name?-1:1:a.index-b.index}function K(a,b,c,d){if(b)throw ja("multidir",b.name,c.name,a,ha(d));}function t(a,c){var d=b(c,!0);d&&a.push({priority:0,compile:aa(function(a,b){var c=b.parent(),e=c.data("$binding")||[];e.push(d);ma(c.data("$binding",e),"ng-binding");a.$watch(d,function(a){b[0].nodeValue=a})})})}function O(a,b){if("srcdoc"==
|
||||
b)return v.HTML;var c=Ka(a);if("xlinkHref"==b||"FORM"==c&&"action"==b||"IMG"!=c&&("src"==b||"ngSrc"==b))return v.RESOURCE_URL}function N(a,c,d,e){var g=b(d,!0);if(g){if("multiple"===e&&"SELECT"===Ka(a))throw ja("selmulti",ha(a));c.push({priority:100,compile:function(){return{pre:function(c,d,l){d=l.$$observers||(l.$$observers={});if(f.test(e))throw ja("nodomevents");if(g=b(l[e],!0,O(a,e)))l[e]=g(c),(d[e]||(d[e]=[])).$$inter=!0,(l.$$observers&&l.$$observers[e].$$scope||c).$watch(g,function(a,b){"class"===
|
||||
e&&a!=b?l.$updateClass(a,b):l.$set(e,a)})}}}})}}function mb(a,b,c){var d=b[0],e=b.length,g=d.parentNode,f,l;if(a)for(f=0,l=a.length;f<l;f++)if(a[f]==d){a[f++]=c;l=f+e-1;for(var k=a.length;f<k;f++,l++)l<k?a[f]=a[l]:delete a[f];a.length-=e-1;break}g&&g.replaceChild(c,d);a=U.createDocumentFragment();a.appendChild(d);c[y.expando]=d[y.expando];d=1;for(e=b.length;d<e;d++)g=b[d],y(g).remove(),a.appendChild(g),delete b[d];b[0]=c;b.length=1}function qc(a,b){return D(function(){return a.apply(null,arguments)},
|
||||
a,b)}var Hb=function(a,b){this.$$element=a;this.$attr=b||{}};Hb.prototype={$normalize:na,$addClass:function(a){a&&0<a.length&&J.addClass(this.$$element,a)},$removeClass:function(a){a&&0<a.length&&J.removeClass(this.$$element,a)},$updateClass:function(a,b){var c=rc(a,b),d=rc(b,a);0===c.length?J.removeClass(this.$$element,d):0===d.length?J.addClass(this.$$element,c):J.setClass(this.$$element,c,d)},$set:function(a,b,c,d){var e=mc(this.$$element[0],a);e&&(this.$$element.prop(a,b),d=e);this[a]=b;d?this.$attr[a]=
|
||||
d:(d=this.$attr[a])||(this.$attr[a]=d=fb(a,"-"));e=Ka(this.$$element);if("A"===e&&"href"===a||"IMG"===e&&"src"===a)this[a]=b=A(b,"src"===a);!1!==c&&(null===b||b===s?this.$$element.removeAttr(d):this.$$element.attr(d,b));(c=this.$$observers)&&q(c[a],function(a){try{a(b)}catch(c){m(c)}})},$observe:function(a,b){var c=this,d=c.$$observers||(c.$$observers={}),e=d[a]||(d[a]=[]);e.push(b);u.$evalAsync(function(){e.$$inter||b(c[a])});return b}};var Z=b.startSymbol(),ra=b.endSymbol(),Y="{{"==Z||"}}"==ra?
|
||||
Da:function(a){return a.replace(/\{\{/g,Z).replace(/}}/g,ra)},W=/^ngAttr[A-Z]/;return x}]}function na(b){return Ta(b.replace(te,""))}function rc(b,a){var c="",d=b.split(/\s+/),e=a.split(/\s+/),g=0;a:for(;g<d.length;g++){for(var f=d[g],h=0;h<e.length;h++)if(f==e[h])continue a;c+=(0<c.length?" ":"")+f}return c}function Od(){var b={},a=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(a,d){Aa(a,"controller");X(a)?D(b,a):b[a]=d};this.$get=["$injector","$window",function(c,d){return function(e,g){var f,
|
||||
h,l;w(e)&&(f=e.match(a),h=f[1],l=f[3],e=b.hasOwnProperty(h)?b[h]:bc(g.$scope,h,!0)||bc(d,h,!0),Ra(e,h,!0));f=c.instantiate(e,g);if(l){if(!g||"object"!=typeof g.$scope)throw t("$controller")("noscp",h||e.name,l);g.$scope[l]=f}return f}}]}function Pd(){this.$get=["$window",function(b){return y(b.document)}]}function Qd(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b,arguments)}}]}function sc(b){var a={},c,d,e;if(!b)return a;q(b.split("\n"),function(b){e=b.indexOf(":");c=K(ca(b.substr(0,
|
||||
e)));d=ca(b.substr(e+1));c&&(a[c]=a[c]?a[c]+(", "+d):d)});return a}function tc(b){var a=X(b)?b:s;return function(c){a||(a=sc(b));return c?a[K(c)]||null:a}}function uc(b,a,c){if(P(c))return c(b,a);q(c,function(c){b=c(b,a)});return b}function Td(){var b=/^\s*(\[|\{[^\{])/,a=/[\}\]]\s*$/,c=/^\)\]\}',?\n/,d={"Content-Type":"application/json;charset=utf-8"},e=this.defaults={transformResponse:[function(d){w(d)&&(d=d.replace(c,""),b.test(d)&&a.test(d)&&(d=Wb(d)));return d}],transformRequest:[function(a){return X(a)&&
|
||||
"[object File]"!==wa.call(a)&&"[object Blob]"!==wa.call(a)?qa(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ba(d),put:ba(d),patch:ba(d)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},g=this.interceptors=[],f=this.responseInterceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(a,b,c,d,n,p){function r(a){function c(a){var b=D({},a,{data:uc(a.data,a.headers,d.transformResponse)});return 200<=a.status&&300>a.status?
|
||||
b:n.reject(b)}var d={method:"get",transformRequest:e.transformRequest,transformResponse:e.transformResponse},g=function(a){function b(a){var c;q(a,function(b,d){P(b)&&(c=b(),null!=c?a[d]=c:delete a[d])})}var c=e.headers,d=D({},a.headers),g,f,c=D({},c.common,c[K(a.method)]);b(c);b(d);a:for(g in c){a=K(g);for(f in d)if(K(f)===a)continue a;d[g]=c[g]}return d}(a);D(d,a);d.headers=g;d.method=Fa(d.method);(a=Ib(d.url)?b.cookies()[d.xsrfCookieName||e.xsrfCookieName]:s)&&(g[d.xsrfHeaderName||e.xsrfHeaderName]=
|
||||
a);var f=[function(a){g=a.headers;var b=uc(a.data,tc(g),a.transformRequest);E(a.data)&&q(g,function(a,b){"content-type"===K(b)&&delete g[b]});E(a.withCredentials)&&!E(e.withCredentials)&&(a.withCredentials=e.withCredentials);return z(a,b,g).then(c,c)},s],h=n.when(d);for(q(v,function(a){(a.request||a.requestError)&&f.unshift(a.request,a.requestError);(a.response||a.responseError)&&f.push(a.response,a.responseError)});f.length;){a=f.shift();var k=f.shift(),h=h.then(a,k)}h.success=function(a){h.then(function(b){a(b.data,
|
||||
b.status,b.headers,d)});return h};h.error=function(a){h.then(null,function(b){a(b.data,b.status,b.headers,d)});return h};return h}function z(b,c,g){function f(a,b,c,e){v&&(200<=a&&300>a?v.put(s,[a,b,sc(c),e]):v.remove(s));l(b,a,c,e);d.$$phase||d.$apply()}function l(a,c,d,e){c=Math.max(c,0);(200<=c&&300>c?p.resolve:p.reject)({data:a,status:c,headers:tc(d),config:b,statusText:e})}function k(){var a=db(r.pendingRequests,b);-1!==a&&r.pendingRequests.splice(a,1)}var p=n.defer(),z=p.promise,v,q,s=u(b.url,
|
||||
b.params);r.pendingRequests.push(b);z.then(k,k);(b.cache||e.cache)&&(!1!==b.cache&&"GET"==b.method)&&(v=X(b.cache)?b.cache:X(e.cache)?e.cache:F);if(v)if(q=v.get(s),B(q)){if(q.then)return q.then(k,k),q;M(q)?l(q[1],q[0],ba(q[2]),q[3]):l(q,200,{},"OK")}else v.put(s,z);E(q)&&a(b.method,s,c,f,g,b.timeout,b.withCredentials,b.responseType);return z}function u(a,b){if(!b)return a;var c=[];Sc(b,function(a,b){null===a||E(a)||(M(a)||(a=[a]),q(a,function(a){X(a)&&(a=qa(a));c.push(za(b)+"="+za(a))}))});0<c.length&&
|
||||
(a+=(-1==a.indexOf("?")?"?":"&")+c.join("&"));return a}var F=c("$http"),v=[];q(g,function(a){v.unshift(w(a)?p.get(a):p.invoke(a))});q(f,function(a,b){var c=w(a)?p.get(a):p.invoke(a);v.splice(b,0,{response:function(a){return c(n.when(a))},responseError:function(a){return c(n.reject(a))}})});r.pendingRequests=[];(function(a){q(arguments,function(a){r[a]=function(b,c){return r(D(c||{},{method:a,url:b}))}})})("get","delete","head","jsonp");(function(a){q(arguments,function(a){r[a]=function(b,c,d){return r(D(d||
|
||||
{},{method:a,url:b,data:c}))}})})("post","put");r.defaults=e;return r}]}function ue(b){if(8>=S&&(!b.match(/^(get|post|head|put|delete|options)$/i)||!O.XMLHttpRequest))return new O.ActiveXObject("Microsoft.XMLHTTP");if(O.XMLHttpRequest)return new O.XMLHttpRequest;throw t("$httpBackend")("noxhr");}function Ud(){this.$get=["$browser","$window","$document",function(b,a,c){return ve(b,ue,b.defer,a.angular.callbacks,c[0])}]}function ve(b,a,c,d,e){function g(a,b){var c=e.createElement("script"),d=function(){c.onreadystatechange=
|
||||
c.onload=c.onerror=null;e.body.removeChild(c);b&&b()};c.type="text/javascript";c.src=a;S&&8>=S?c.onreadystatechange=function(){/loaded|complete/.test(c.readyState)&&d()}:c.onload=c.onerror=function(){d()};e.body.appendChild(c);return d}var f=-1;return function(e,l,k,m,n,p,r,z){function u(){v=f;A&&A();x&&x.abort()}function F(a,d,e,g,f){L&&c.cancel(L);A=x=null;0===d&&(d=e?200:"file"==sa(l).protocol?404:0);a(1223===d?204:d,e,g,f||"");b.$$completeOutstandingRequest(C)}var v;b.$$incOutstandingRequestCount();
|
||||
l=l||b.url();if("jsonp"==K(e)){var J="_"+(d.counter++).toString(36);d[J]=function(a){d[J].data=a};var A=g(l.replace("JSON_CALLBACK","angular.callbacks."+J),function(){d[J].data?F(m,200,d[J].data):F(m,v||-2);d[J]=Ea.noop})}else{var x=a(e);x.open(e,l,!0);q(n,function(a,b){B(a)&&x.setRequestHeader(b,a)});x.onreadystatechange=function(){if(x&&4==x.readyState){var a=null,b=null;v!==f&&(a=x.getAllResponseHeaders(),b="response"in x?x.response:x.responseText);F(m,v||x.status,b,a,x.statusText||"")}};r&&(x.withCredentials=
|
||||
!0);if(z)try{x.responseType=z}catch(s){if("json"!==z)throw s;}x.send(k||null)}if(0<p)var L=c(u,p);else p&&p.then&&p.then(u)}}function Rd(){var b="{{",a="}}";this.startSymbol=function(a){return a?(b=a,this):b};this.endSymbol=function(b){return b?(a=b,this):a};this.$get=["$parse","$exceptionHandler","$sce",function(c,d,e){function g(g,k,m){for(var n,p,r=0,z=[],u=g.length,F=!1,v=[];r<u;)-1!=(n=g.indexOf(b,r))&&-1!=(p=g.indexOf(a,n+f))?(r!=n&&z.push(g.substring(r,n)),z.push(r=c(F=g.substring(n+f,p))),
|
||||
r.exp=F,r=p+h,F=!0):(r!=u&&z.push(g.substring(r)),r=u);(u=z.length)||(z.push(""),u=1);if(m&&1<z.length)throw vc("noconcat",g);if(!k||F)return v.length=u,r=function(a){try{for(var b=0,c=u,f;b<c;b++)"function"==typeof(f=z[b])&&(f=f(a),f=m?e.getTrusted(m,f):e.valueOf(f),null===f||E(f)?f="":"string"!=typeof f&&(f=qa(f))),v[b]=f;return v.join("")}catch(h){a=vc("interr",g,h.toString()),d(a)}},r.exp=g,r.parts=z,r}var f=b.length,h=a.length;g.startSymbol=function(){return b};g.endSymbol=function(){return a};
|
||||
return g}]}function Sd(){this.$get=["$rootScope","$window","$q",function(b,a,c){function d(d,f,h,l){var k=a.setInterval,m=a.clearInterval,n=c.defer(),p=n.promise,r=0,z=B(l)&&!l;h=B(h)?h:0;p.then(null,null,d);p.$$intervalId=k(function(){n.notify(r++);0<h&&r>=h&&(n.resolve(r),m(p.$$intervalId),delete e[p.$$intervalId]);z||b.$apply()},f);e[p.$$intervalId]=n;return p}var e={};d.cancel=function(a){return a&&a.$$intervalId in e?(e[a.$$intervalId].reject("canceled"),clearInterval(a.$$intervalId),delete e[a.$$intervalId],
|
||||
!0):!1};return d}]}function ad(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"\u00a4",posSuf:"",negPre:"(\u00a4",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January February March April May June July August September October November December".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),
|
||||
DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a"},pluralCat:function(b){return 1===b?"one":"other"}}}}function wc(b){b=b.split("/");for(var a=b.length;a--;)b[a]=wb(b[a]);return b.join("/")}function xc(b,a,c){b=sa(b,c);a.$$protocol=
|
||||
b.protocol;a.$$host=b.hostname;a.$$port=Y(b.port)||we[b.protocol]||null}function yc(b,a,c){var d="/"!==b.charAt(0);d&&(b="/"+b);b=sa(b,c);a.$$path=decodeURIComponent(d&&"/"===b.pathname.charAt(0)?b.pathname.substring(1):b.pathname);a.$$search=Yb(b.search);a.$$hash=decodeURIComponent(b.hash);a.$$path&&"/"!=a.$$path.charAt(0)&&(a.$$path="/"+a.$$path)}function oa(b,a){if(0===a.indexOf(b))return a.substr(b.length)}function Ya(b){var a=b.indexOf("#");return-1==a?b:b.substr(0,a)}function Jb(b){return b.substr(0,
|
||||
Ya(b).lastIndexOf("/")+1)}function zc(b,a){this.$$html5=!0;a=a||"";var c=Jb(b);xc(b,this,b);this.$$parse=function(a){var e=oa(c,a);if(!w(e))throw Kb("ipthprfx",a,c);yc(e,this,b);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var a=Zb(this.$$search),b=this.$$hash?"#"+wb(this.$$hash):"";this.$$url=wc(this.$$path)+(a?"?"+a:"")+b;this.$$absUrl=c+this.$$url.substr(1)};this.$$rewrite=function(d){var e;if((e=oa(b,d))!==s)return d=e,(e=oa(a,e))!==s?c+(oa("/",e)||e):b+d;if((e=oa(c,
|
||||
d))!==s)return c+e;if(c==d+"/")return c}}function Lb(b,a){var c=Jb(b);xc(b,this,b);this.$$parse=function(d){var e=oa(b,d)||oa(c,d),e="#"==e.charAt(0)?oa(a,e):this.$$html5?e:"";if(!w(e))throw Kb("ihshprfx",d,a);yc(e,this,b);d=this.$$path;var g=/^\/?.*?:(\/.*)/;0===e.indexOf(b)&&(e=e.replace(b,""));g.exec(e)||(d=(e=g.exec(d))?e[1]:d);this.$$path=d;this.$$compose()};this.$$compose=function(){var c=Zb(this.$$search),e=this.$$hash?"#"+wb(this.$$hash):"";this.$$url=wc(this.$$path)+(c?"?"+c:"")+e;this.$$absUrl=
|
||||
b+(this.$$url?a+this.$$url:"")};this.$$rewrite=function(a){if(Ya(b)==Ya(a))return a}}function Ac(b,a){this.$$html5=!0;Lb.apply(this,arguments);var c=Jb(b);this.$$rewrite=function(d){var e;if(b==Ya(d))return d;if(e=oa(c,d))return b+a+e;if(c===d+"/")return c}}function nb(b){return function(){return this[b]}}function Bc(b,a){return function(c){if(E(c))return this[b];this[b]=a(c);this.$$compose();return this}}function Vd(){var b="",a=!1;this.hashPrefix=function(a){return B(a)?(b=a,this):b};this.html5Mode=
|
||||
function(b){return B(b)?(a=b,this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement",function(c,d,e,g){function f(a){c.$broadcast("$locationChangeSuccess",h.absUrl(),a)}var h,l=d.baseHref(),k=d.url();a?(l=k.substring(0,k.indexOf("/",k.indexOf("//")+2))+(l||"/"),e=e.history?zc:Ac):(l=Ya(k),e=Lb);h=new e(l,"#"+b);h.$$parse(h.$$rewrite(k));g.on("click",function(a){if(!a.ctrlKey&&!a.metaKey&&2!=a.which){for(var b=y(a.target);"a"!==K(b[0].nodeName);)if(b[0]===g[0]||!(b=b.parent())[0])return;
|
||||
var e=b.prop("href");X(e)&&"[object SVGAnimatedString]"===e.toString()&&(e=sa(e.animVal).href);var f=h.$$rewrite(e);e&&(!b.attr("target")&&f&&!a.isDefaultPrevented())&&(a.preventDefault(),f!=d.url()&&(h.$$parse(f),c.$apply(),O.angular["ff-684208-preventDefault"]=!0))}});h.absUrl()!=k&&d.url(h.absUrl(),!0);d.onUrlChange(function(a){h.absUrl()!=a&&(c.$evalAsync(function(){var b=h.absUrl();h.$$parse(a);c.$broadcast("$locationChangeStart",a,b).defaultPrevented?(h.$$parse(b),d.url(b)):f(b)}),c.$$phase||
|
||||
c.$digest())});var m=0;c.$watch(function(){var a=d.url(),b=h.$$replace;m&&a==h.absUrl()||(m++,c.$evalAsync(function(){c.$broadcast("$locationChangeStart",h.absUrl(),a).defaultPrevented?h.$$parse(a):(d.url(h.absUrl(),b),f(a))}));h.$$replace=!1;return m});return h}]}function Wd(){var b=!0,a=this;this.debugEnabled=function(a){return B(a)?(b=a,this):b};this.$get=["$window",function(c){function d(a){a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:
|
||||
a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=c.console||{},e=b[a]||b.log||C;a=!1;try{a=!!e.apply}catch(l){}return a?function(){var a=[];q(arguments,function(b){a.push(d(b))});return e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){b&&c.apply(a,arguments)}}()}}]}function fa(b,a){if("constructor"===b)throw Ba("isecfld",a);return b}function Za(b,
|
||||
a){if(b){if(b.constructor===b)throw Ba("isecfn",a);if(b.document&&b.location&&b.alert&&b.setInterval)throw Ba("isecwindow",a);if(b.children&&(b.nodeName||b.prop&&b.attr&&b.find))throw Ba("isecdom",a);}return b}function ob(b,a,c,d,e){e=e||{};a=a.split(".");for(var g,f=0;1<a.length;f++){g=fa(a.shift(),d);var h=b[g];h||(h={},b[g]=h);b=h;b.then&&e.unwrapPromises&&(ta(d),"$$v"in b||function(a){a.then(function(b){a.$$v=b})}(b),b.$$v===s&&(b.$$v={}),b=b.$$v)}g=fa(a.shift(),d);return b[g]=c}function Cc(b,
|
||||
a,c,d,e,g,f){fa(b,g);fa(a,g);fa(c,g);fa(d,g);fa(e,g);return f.unwrapPromises?function(f,l){var k=l&&l.hasOwnProperty(b)?l:f,m;if(null==k)return k;(k=k[b])&&k.then&&(ta(g),"$$v"in k||(m=k,m.$$v=s,m.then(function(a){m.$$v=a})),k=k.$$v);if(!a)return k;if(null==k)return s;(k=k[a])&&k.then&&(ta(g),"$$v"in k||(m=k,m.$$v=s,m.then(function(a){m.$$v=a})),k=k.$$v);if(!c)return k;if(null==k)return s;(k=k[c])&&k.then&&(ta(g),"$$v"in k||(m=k,m.$$v=s,m.then(function(a){m.$$v=a})),k=k.$$v);if(!d)return k;if(null==
|
||||
k)return s;(k=k[d])&&k.then&&(ta(g),"$$v"in k||(m=k,m.$$v=s,m.then(function(a){m.$$v=a})),k=k.$$v);if(!e)return k;if(null==k)return s;(k=k[e])&&k.then&&(ta(g),"$$v"in k||(m=k,m.$$v=s,m.then(function(a){m.$$v=a})),k=k.$$v);return k}:function(g,f){var k=f&&f.hasOwnProperty(b)?f:g;if(null==k)return k;k=k[b];if(!a)return k;if(null==k)return s;k=k[a];if(!c)return k;if(null==k)return s;k=k[c];if(!d)return k;if(null==k)return s;k=k[d];return e?null==k?s:k=k[e]:k}}function xe(b,a){fa(b,a);return function(a,
|
||||
d){return null==a?s:(d&&d.hasOwnProperty(b)?d:a)[b]}}function ye(b,a,c){fa(b,c);fa(a,c);return function(c,e){if(null==c)return s;c=(e&&e.hasOwnProperty(b)?e:c)[b];return null==c?s:c[a]}}function Dc(b,a,c){if(Mb.hasOwnProperty(b))return Mb[b];var d=b.split("."),e=d.length,g;if(a.unwrapPromises||1!==e)if(a.unwrapPromises||2!==e)if(a.csp)g=6>e?Cc(d[0],d[1],d[2],d[3],d[4],c,a):function(b,g){var f=0,h;do h=Cc(d[f++],d[f++],d[f++],d[f++],d[f++],c,a)(b,g),g=s,b=h;while(f<e);return h};else{var f="var p;\n";
|
||||
q(d,function(b,d){fa(b,c);f+="if(s == null) return undefined;\ns="+(d?"s":'((k&&k.hasOwnProperty("'+b+'"))?k:s)')+'["'+b+'"];\n'+(a.unwrapPromises?'if (s && s.then) {\n pw("'+c.replace(/(["\r\n])/g,"\\$1")+'");\n if (!("$$v" in s)) {\n p=s;\n p.$$v = undefined;\n p.then(function(v) {p.$$v=v;});\n}\n s=s.$$v\n}\n':"")});var f=f+"return s;",h=new Function("s","k","pw",f);h.toString=aa(f);g=a.unwrapPromises?function(a,b){return h(a,b,ta)}:h}else g=ye(d[0],d[1],c);else g=xe(d[0],c);"hasOwnProperty"!==
|
||||
b&&(Mb[b]=g);return g}function Xd(){var b={},a={csp:!1,unwrapPromises:!1,logPromiseWarnings:!0};this.unwrapPromises=function(b){return B(b)?(a.unwrapPromises=!!b,this):a.unwrapPromises};this.logPromiseWarnings=function(b){return B(b)?(a.logPromiseWarnings=b,this):a.logPromiseWarnings};this.$get=["$filter","$sniffer","$log",function(c,d,e){a.csp=d.csp;ta=function(b){a.logPromiseWarnings&&!Ec.hasOwnProperty(b)&&(Ec[b]=!0,e.warn("[$parse] Promise found in the expression `"+b+"`. Automatic unwrapping of promises in Angular expressions is deprecated."))};
|
||||
return function(d){var e;switch(typeof d){case "string":if(b.hasOwnProperty(d))return b[d];e=new Nb(a);e=(new $a(e,c,a)).parse(d,!1);"hasOwnProperty"!==d&&(b[d]=e);return e;case "function":return d;default:return C}}}]}function Zd(){this.$get=["$rootScope","$exceptionHandler",function(b,a){return ze(function(a){b.$evalAsync(a)},a)}]}function ze(b,a){function c(a){return a}function d(a){return f(a)}var e=function(){var f=[],k,m;return m={resolve:function(a){if(f){var c=f;f=s;k=g(a);c.length&&b(function(){for(var a,
|
||||
b=0,d=c.length;b<d;b++)a=c[b],k.then(a[0],a[1],a[2])})}},reject:function(a){m.resolve(h(a))},notify:function(a){if(f){var c=f;f.length&&b(function(){for(var b,d=0,e=c.length;d<e;d++)b=c[d],b[2](a)})}},promise:{then:function(b,g,h){var m=e(),u=function(d){try{m.resolve((P(b)?b:c)(d))}catch(e){m.reject(e),a(e)}},F=function(b){try{m.resolve((P(g)?g:d)(b))}catch(c){m.reject(c),a(c)}},v=function(b){try{m.notify((P(h)?h:c)(b))}catch(d){a(d)}};f?f.push([u,F,v]):k.then(u,F,v);return m.promise},"catch":function(a){return this.then(null,
|
||||
a)},"finally":function(a){function b(a,c){var d=e();c?d.resolve(a):d.reject(a);return d.promise}function d(e,g){var f=null;try{f=(a||c)()}catch(h){return b(h,!1)}return f&&P(f.then)?f.then(function(){return b(e,g)},function(a){return b(a,!1)}):b(e,g)}return this.then(function(a){return d(a,!0)},function(a){return d(a,!1)})}}}},g=function(a){return a&&P(a.then)?a:{then:function(c){var d=e();b(function(){d.resolve(c(a))});return d.promise}}},f=function(a){var b=e();b.reject(a);return b.promise},h=function(c){return{then:function(g,
|
||||
f){var h=e();b(function(){try{h.resolve((P(f)?f:d)(c))}catch(b){h.reject(b),a(b)}});return h.promise}}};return{defer:e,reject:f,when:function(h,k,m,n){var p=e(),r,z=function(b){try{return(P(k)?k:c)(b)}catch(d){return a(d),f(d)}},u=function(b){try{return(P(m)?m:d)(b)}catch(c){return a(c),f(c)}},F=function(b){try{return(P(n)?n:c)(b)}catch(d){a(d)}};b(function(){g(h).then(function(a){r||(r=!0,p.resolve(g(a).then(z,u,F)))},function(a){r||(r=!0,p.resolve(u(a)))},function(a){r||p.notify(F(a))})});return p.promise},
|
||||
all:function(a){var b=e(),c=0,d=M(a)?[]:{};q(a,function(a,e){c++;g(a).then(function(a){d.hasOwnProperty(e)||(d[e]=a,--c||b.resolve(d))},function(a){d.hasOwnProperty(e)||b.reject(a)})});0===c&&b.resolve(d);return b.promise}}}function fe(){this.$get=["$window","$timeout",function(b,a){var c=b.requestAnimationFrame||b.webkitRequestAnimationFrame||b.mozRequestAnimationFrame,d=b.cancelAnimationFrame||b.webkitCancelAnimationFrame||b.mozCancelAnimationFrame||b.webkitCancelRequestAnimationFrame,e=!!c,g=e?
|
||||
function(a){var b=c(a);return function(){d(b)}}:function(b){var c=a(b,16.66,!1);return function(){a.cancel(c)}};g.supported=e;return g}]}function Yd(){var b=10,a=t("$rootScope"),c=null;this.digestTtl=function(a){arguments.length&&(b=a);return b};this.$get=["$injector","$exceptionHandler","$parse","$browser",function(d,e,g,f){function h(){this.$id=bb();this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null;this["this"]=this.$root=this;
|
||||
this.$$destroyed=!1;this.$$asyncQueue=[];this.$$postDigestQueue=[];this.$$listeners={};this.$$listenerCount={};this.$$isolateBindings={}}function l(b){if(p.$$phase)throw a("inprog",p.$$phase);p.$$phase=b}function k(a,b){var c=g(a);Ra(c,b);return c}function m(a,b,c){do a.$$listenerCount[c]-=b,0===a.$$listenerCount[c]&&delete a.$$listenerCount[c];while(a=a.$parent)}function n(){}h.prototype={constructor:h,$new:function(a){a?(a=new h,a.$root=this.$root,a.$$asyncQueue=this.$$asyncQueue,a.$$postDigestQueue=
|
||||
this.$$postDigestQueue):(a=function(){},a.prototype=this,a=new a,a.$id=bb());a["this"]=a;a.$$listeners={};a.$$listenerCount={};a.$parent=this;a.$$watchers=a.$$nextSibling=a.$$childHead=a.$$childTail=null;a.$$prevSibling=this.$$childTail;this.$$childHead?this.$$childTail=this.$$childTail.$$nextSibling=a:this.$$childHead=this.$$childTail=a;return a},$watch:function(a,b,d){var e=k(a,"watch"),g=this.$$watchers,f={fn:b,last:n,get:e,exp:a,eq:!!d};c=null;if(!P(b)){var h=k(b||C,"listener");f.fn=function(a,
|
||||
b,c){h(c)}}if("string"==typeof a&&e.constant){var l=f.fn;f.fn=function(a,b,c){l.call(this,a,b,c);Oa(g,f)}}g||(g=this.$$watchers=[]);g.unshift(f);return function(){Oa(g,f);c=null}},$watchCollection:function(a,b){var c=this,d,e,f,h=1<b.length,l=0,k=g(a),m=[],n={},p=!0,q=0;return this.$watch(function(){d=k(c);var a,b;if(X(d))if(ab(d))for(e!==m&&(e=m,q=e.length=0,l++),a=d.length,q!==a&&(l++,e.length=q=a),b=0;b<a;b++)e[b]!==e[b]&&d[b]!==d[b]||e[b]===d[b]||(l++,e[b]=d[b]);else{e!==n&&(e=n={},q=0,l++);a=
|
||||
0;for(b in d)d.hasOwnProperty(b)&&(a++,e.hasOwnProperty(b)?e[b]!==d[b]&&(l++,e[b]=d[b]):(q++,e[b]=d[b],l++));if(q>a)for(b in l++,e)e.hasOwnProperty(b)&&!d.hasOwnProperty(b)&&(q--,delete e[b])}else e!==d&&(e=d,l++);return l},function(){p?(p=!1,b(d,d,c)):b(d,f,c);if(h)if(X(d))if(ab(d)){f=Array(d.length);for(var a=0;a<d.length;a++)f[a]=d[a]}else for(a in f={},d)Fc.call(d,a)&&(f[a]=d[a]);else f=d})},$digest:function(){var d,g,f,h,k=this.$$asyncQueue,m=this.$$postDigestQueue,q,x,s=b,L,Q=[],y,H,R;l("$digest");
|
||||
c=null;do{x=!1;for(L=this;k.length;){try{R=k.shift(),R.scope.$eval(R.expression)}catch(B){p.$$phase=null,e(B)}c=null}a:do{if(h=L.$$watchers)for(q=h.length;q--;)try{if(d=h[q])if((g=d.get(L))!==(f=d.last)&&!(d.eq?xa(g,f):"number"==typeof g&&"number"==typeof f&&isNaN(g)&&isNaN(f)))x=!0,c=d,d.last=d.eq?ba(g):g,d.fn(g,f===n?g:f,L),5>s&&(y=4-s,Q[y]||(Q[y]=[]),H=P(d.exp)?"fn: "+(d.exp.name||d.exp.toString()):d.exp,H+="; newVal: "+qa(g)+"; oldVal: "+qa(f),Q[y].push(H));else if(d===c){x=!1;break a}}catch(w){p.$$phase=
|
||||
null,e(w)}if(!(h=L.$$childHead||L!==this&&L.$$nextSibling))for(;L!==this&&!(h=L.$$nextSibling);)L=L.$parent}while(L=h);if((x||k.length)&&!s--)throw p.$$phase=null,a("infdig",b,qa(Q));}while(x||k.length);for(p.$$phase=null;m.length;)try{m.shift()()}catch(T){e(T)}},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;this!==p&&(q(this.$$listenerCount,eb(null,m,this)),a.$$childHead==this&&(a.$$childHead=this.$$nextSibling),a.$$childTail==this&&
|
||||
(a.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=null,this.$$listeners={},this.$$watchers=this.$$asyncQueue=this.$$postDigestQueue=[],this.$destroy=this.$digest=this.$apply=C,this.$on=this.$watch=function(){return C})}},$eval:function(a,b){return g(a)(this,b)},$evalAsync:function(a){p.$$phase||
|
||||
p.$$asyncQueue.length||f.defer(function(){p.$$asyncQueue.length&&p.$digest()});this.$$asyncQueue.push({scope:this,expression:a})},$$postDigest:function(a){this.$$postDigestQueue.push(a)},$apply:function(a){try{return l("$apply"),this.$eval(a)}catch(b){e(b)}finally{p.$$phase=null;try{p.$digest()}catch(c){throw e(c),c;}}},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);
|
||||
var e=this;return function(){c[db(c,b)]=null;m(e,1,a)}},$emit:function(a,b){var c=[],d,g=this,f=!1,h={name:a,targetScope:g,stopPropagation:function(){f=!0},preventDefault:function(){h.defaultPrevented=!0},defaultPrevented:!1},l=[h].concat(ya.call(arguments,1)),k,m;do{d=g.$$listeners[a]||c;h.currentScope=g;k=0;for(m=d.length;k<m;k++)if(d[k])try{d[k].apply(null,l)}catch(n){e(n)}else d.splice(k,1),k--,m--;if(f)break;g=g.$parent}while(g);return h},$broadcast:function(a,b){for(var c=this,d=this,g={name:a,
|
||||
targetScope:this,preventDefault:function(){g.defaultPrevented=!0},defaultPrevented:!1},f=[g].concat(ya.call(arguments,1)),h,k;c=d;){g.currentScope=c;d=c.$$listeners[a]||[];h=0;for(k=d.length;h<k;h++)if(d[h])try{d[h].apply(null,f)}catch(l){e(l)}else d.splice(h,1),h--,k--;if(!(d=c.$$listenerCount[a]&&c.$$childHead||c!==this&&c.$$nextSibling))for(;c!==this&&!(d=c.$$nextSibling);)c=c.$parent}return g}};var p=new h;return p}]}function bd(){var b=/^\s*(https?|ftp|mailto|tel|file):/,a=/^\s*(https?|ftp|file):|data:image\//;
|
||||
this.aHrefSanitizationWhitelist=function(a){return B(a)?(b=a,this):b};this.imgSrcSanitizationWhitelist=function(b){return B(b)?(a=b,this):a};this.$get=function(){return function(c,d){var e=d?a:b,g;if(!S||8<=S)if(g=sa(c).href,""!==g&&!g.match(e))return"unsafe:"+g;return c}}}function Ae(b){if("self"===b)return b;if(w(b)){if(-1<b.indexOf("***"))throw ua("iwcard",b);b=b.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08").replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*");return RegExp("^"+
|
||||
b+"$")}if(cb(b))return RegExp("^"+b.source+"$");throw ua("imatcher");}function Gc(b){var a=[];B(b)&&q(b,function(b){a.push(Ae(b))});return a}function ae(){this.SCE_CONTEXTS=ga;var b=["self"],a=[];this.resourceUrlWhitelist=function(a){arguments.length&&(b=Gc(a));return b};this.resourceUrlBlacklist=function(b){arguments.length&&(a=Gc(b));return a};this.$get=["$injector",function(c){function d(a){var b=function(a){this.$$unwrapTrustedValue=function(){return a}};a&&(b.prototype=new a);b.prototype.valueOf=
|
||||
function(){return this.$$unwrapTrustedValue()};b.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()};return b}var e=function(a){throw ua("unsafe");};c.has("$sanitize")&&(e=c.get("$sanitize"));var g=d(),f={};f[ga.HTML]=d(g);f[ga.CSS]=d(g);f[ga.URL]=d(g);f[ga.JS]=d(g);f[ga.RESOURCE_URL]=d(f[ga.URL]);return{trustAs:function(a,b){var c=f.hasOwnProperty(a)?f[a]:null;if(!c)throw ua("icontext",a,b);if(null===b||b===s||""===b)return b;if("string"!==typeof b)throw ua("itype",a);return new c(b)},
|
||||
getTrusted:function(c,d){if(null===d||d===s||""===d)return d;var g=f.hasOwnProperty(c)?f[c]:null;if(g&&d instanceof g)return d.$$unwrapTrustedValue();if(c===ga.RESOURCE_URL){var g=sa(d.toString()),m,n,p=!1;m=0;for(n=b.length;m<n;m++)if("self"===b[m]?Ib(g):b[m].exec(g.href)){p=!0;break}if(p)for(m=0,n=a.length;m<n;m++)if("self"===a[m]?Ib(g):a[m].exec(g.href)){p=!1;break}if(p)return d;throw ua("insecurl",d.toString());}if(c===ga.HTML)return e(d);throw ua("unsafe");},valueOf:function(a){return a instanceof
|
||||
g?a.$$unwrapTrustedValue():a}}}]}function $d(){var b=!0;this.enabled=function(a){arguments.length&&(b=!!a);return b};this.$get=["$parse","$sniffer","$sceDelegate",function(a,c,d){if(b&&c.msie&&8>c.msieDocumentMode)throw ua("iequirks");var e=ba(ga);e.isEnabled=function(){return b};e.trustAs=d.trustAs;e.getTrusted=d.getTrusted;e.valueOf=d.valueOf;b||(e.trustAs=e.getTrusted=function(a,b){return b},e.valueOf=Da);e.parseAs=function(b,c){var d=a(c);return d.literal&&d.constant?d:function(a,c){return e.getTrusted(b,
|
||||
d(a,c))}};var g=e.parseAs,f=e.getTrusted,h=e.trustAs;q(ga,function(a,b){var c=K(b);e[Ta("parse_as_"+c)]=function(b){return g(a,b)};e[Ta("get_trusted_"+c)]=function(b){return f(a,b)};e[Ta("trust_as_"+c)]=function(b){return h(a,b)}});return e}]}function be(){this.$get=["$window","$document",function(b,a){var c={},d=Y((/android (\d+)/.exec(K((b.navigator||{}).userAgent))||[])[1]),e=/Boxee/i.test((b.navigator||{}).userAgent),g=a[0]||{},f=g.documentMode,h,l=/^(Moz|webkit|O|ms)(?=[A-Z])/,k=g.body&&g.body.style,
|
||||
m=!1,n=!1;if(k){for(var p in k)if(m=l.exec(p)){h=m[0];h=h.substr(0,1).toUpperCase()+h.substr(1);break}h||(h="WebkitOpacity"in k&&"webkit");m=!!("transition"in k||h+"Transition"in k);n=!!("animation"in k||h+"Animation"in k);!d||m&&n||(m=w(g.body.style.webkitTransition),n=w(g.body.style.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hashchange:"onhashchange"in b&&(!f||7<f),hasEvent:function(a){if("input"==a&&9==S)return!1;if(E(c[a])){var b=g.createElement("div");c[a]="on"+
|
||||
a in b}return c[a]},csp:Vb(),vendorPrefix:h,transitions:m,animations:n,android:d,msie:S,msieDocumentMode:f}}]}function de(){this.$get=["$rootScope","$browser","$q","$exceptionHandler",function(b,a,c,d){function e(e,h,l){var k=c.defer(),m=k.promise,n=B(l)&&!l;h=a.defer(function(){try{k.resolve(e())}catch(a){k.reject(a),d(a)}finally{delete g[m.$$timeoutId]}n||b.$apply()},h);m.$$timeoutId=h;g[h]=k;return m}var g={};e.cancel=function(b){return b&&b.$$timeoutId in g?(g[b.$$timeoutId].reject("canceled"),
|
||||
delete g[b.$$timeoutId],a.defer.cancel(b.$$timeoutId)):!1};return e}]}function sa(b,a){var c=b;S&&(W.setAttribute("href",c),c=W.href);W.setAttribute("href",c);return{href:W.href,protocol:W.protocol?W.protocol.replace(/:$/,""):"",host:W.host,search:W.search?W.search.replace(/^\?/,""):"",hash:W.hash?W.hash.replace(/^#/,""):"",hostname:W.hostname,port:W.port,pathname:"/"===W.pathname.charAt(0)?W.pathname:"/"+W.pathname}}function Ib(b){b=w(b)?sa(b):b;return b.protocol===Hc.protocol&&b.host===Hc.host}
|
||||
function ee(){this.$get=aa(O)}function gc(b){function a(d,e){if(X(d)){var g={};q(d,function(b,c){g[c]=a(c,b)});return g}return b.factory(d+c,e)}var c="Filter";this.register=a;this.$get=["$injector",function(a){return function(b){return a.get(b+c)}}];a("currency",Ic);a("date",Jc);a("filter",Be);a("json",Ce);a("limitTo",De);a("lowercase",Ee);a("number",Kc);a("orderBy",Lc);a("uppercase",Fe)}function Be(){return function(b,a,c){if(!M(b))return b;var d=typeof c,e=[];e.check=function(a){for(var b=0;b<e.length;b++)if(!e[b](a))return!1;
|
||||
return!0};"function"!==d&&(c="boolean"===d&&c?function(a,b){return Ea.equals(a,b)}:function(a,b){if(a&&b&&"object"===typeof a&&"object"===typeof b){for(var d in a)if("$"!==d.charAt(0)&&Fc.call(a,d)&&c(a[d],b[d]))return!0;return!1}b=(""+b).toLowerCase();return-1<(""+a).toLowerCase().indexOf(b)});var g=function(a,b){if("string"==typeof b&&"!"===b.charAt(0))return!g(a,b.substr(1));switch(typeof a){case "boolean":case "number":case "string":return c(a,b);case "object":switch(typeof b){case "object":return c(a,
|
||||
b);default:for(var d in a)if("$"!==d.charAt(0)&&g(a[d],b))return!0}return!1;case "array":for(d=0;d<a.length;d++)if(g(a[d],b))return!0;return!1;default:return!1}};switch(typeof a){case "boolean":case "number":case "string":a={$:a};case "object":for(var f in a)(function(b){"undefined"!=typeof a[b]&&e.push(function(c){return g("$"==b?c:c&&c[b],a[b])})})(f);break;case "function":e.push(a);break;default:return b}d=[];for(f=0;f<b.length;f++){var h=b[f];e.check(h)&&d.push(h)}return d}}function Ic(b){var a=
|
||||
b.NUMBER_FORMATS;return function(b,d){E(d)&&(d=a.CURRENCY_SYM);return Mc(b,a.PATTERNS[1],a.GROUP_SEP,a.DECIMAL_SEP,2).replace(/\u00A4/g,d)}}function Kc(b){var a=b.NUMBER_FORMATS;return function(b,d){return Mc(b,a.PATTERNS[0],a.GROUP_SEP,a.DECIMAL_SEP,d)}}function Mc(b,a,c,d,e){if(null==b||!isFinite(b)||X(b))return"";var g=0>b;b=Math.abs(b);var f=b+"",h="",l=[],k=!1;if(-1!==f.indexOf("e")){var m=f.match(/([\d\.]+)e(-?)(\d+)/);m&&"-"==m[2]&&m[3]>e+1?f="0":(h=f,k=!0)}if(k)0<e&&(-1<b&&1>b)&&(h=b.toFixed(e));
|
||||
else{f=(f.split(Nc)[1]||"").length;E(e)&&(e=Math.min(Math.max(a.minFrac,f),a.maxFrac));f=Math.pow(10,e);b=Math.round(b*f)/f;b=(""+b).split(Nc);f=b[0];b=b[1]||"";var m=0,n=a.lgSize,p=a.gSize;if(f.length>=n+p)for(m=f.length-n,k=0;k<m;k++)0===(m-k)%p&&0!==k&&(h+=c),h+=f.charAt(k);for(k=m;k<f.length;k++)0===(f.length-k)%n&&0!==k&&(h+=c),h+=f.charAt(k);for(;b.length<e;)b+="0";e&&"0"!==e&&(h+=d+b.substr(0,e))}l.push(g?a.negPre:a.posPre);l.push(h);l.push(g?a.negSuf:a.posSuf);return l.join("")}function Ob(b,
|
||||
a,c){var d="";0>b&&(d="-",b=-b);for(b=""+b;b.length<a;)b="0"+b;c&&(b=b.substr(b.length-a));return d+b}function $(b,a,c,d){c=c||0;return function(e){e=e["get"+b]();if(0<c||e>-c)e+=c;0===e&&-12==c&&(e=12);return Ob(e,a,d)}}function pb(b,a){return function(c,d){var e=c["get"+b](),g=Fa(a?"SHORT"+b:b);return d[g][e]}}function Jc(b){function a(a){var b;if(b=a.match(c)){a=new Date(0);var g=0,f=0,h=b[8]?a.setUTCFullYear:a.setFullYear,l=b[8]?a.setUTCHours:a.setHours;b[9]&&(g=Y(b[9]+b[10]),f=Y(b[9]+b[11]));
|
||||
h.call(a,Y(b[1]),Y(b[2])-1,Y(b[3]));g=Y(b[4]||0)-g;f=Y(b[5]||0)-f;h=Y(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));l.call(a,g,f,h,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,e){var g="",f=[],h,l;e=e||"mediumDate";e=b.DATETIME_FORMATS[e]||e;w(c)&&(c=Ge.test(c)?Y(c):a(c));vb(c)&&(c=new Date(c));if(!Na(c))return c;for(;e;)(l=He.exec(e))?(f=f.concat(ya.call(l,1)),e=f.pop()):(f.push(e),e=null);q(f,function(a){h=
|
||||
Ie[a];g+=h?h(c,b.DATETIME_FORMATS):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function Ce(){return function(b){return qa(b,!0)}}function De(){return function(b,a){if(!M(b)&&!w(b))return b;a=Y(a);if(w(b))return a?0<=a?b.slice(0,a):b.slice(a,b.length):"";var c=[],d,e;a>b.length?a=b.length:a<-b.length&&(a=-b.length);0<a?(d=0,e=a):(d=b.length+a,e=b.length);for(;d<e;d++)c.push(b[d]);return c}}function Lc(b){return function(a,c,d){function e(a,b){return Qa(b)?function(b,c){return a(c,b)}:a}
|
||||
function g(a,b){var c=typeof a,d=typeof b;return c==d?("string"==c&&(a=a.toLowerCase(),b=b.toLowerCase()),a===b?0:a<b?-1:1):c<d?-1:1}if(!M(a)||!c)return a;c=M(c)?c:[c];c=Uc(c,function(a){var c=!1,d=a||Da;if(w(a)){if("+"==a.charAt(0)||"-"==a.charAt(0))c="-"==a.charAt(0),a=a.substring(1);d=b(a);if(d.constant){var f=d();return e(function(a,b){return g(a[f],b[f])},c)}}return e(function(a,b){return g(d(a),d(b))},c)});for(var f=[],h=0;h<a.length;h++)f.push(a[h]);return f.sort(e(function(a,b){for(var d=
|
||||
0;d<c.length;d++){var e=c[d](a,b);if(0!==e)return e}return 0},d))}}function va(b){P(b)&&(b={link:b});b.restrict=b.restrict||"AC";return aa(b)}function Oc(b,a,c,d){function e(a,c){c=c?"-"+fb(c,"-"):"";d.removeClass(b,(a?qb:rb)+c);d.addClass(b,(a?rb:qb)+c)}var g=this,f=b.parent().controller("form")||sb,h=0,l=g.$error={},k=[];g.$name=a.name||a.ngForm;g.$dirty=!1;g.$pristine=!0;g.$valid=!0;g.$invalid=!1;f.$addControl(g);b.addClass(La);e(!0);g.$addControl=function(a){Aa(a.$name,"input");k.push(a);a.$name&&
|
||||
(g[a.$name]=a)};g.$removeControl=function(a){a.$name&&g[a.$name]===a&&delete g[a.$name];q(l,function(b,c){g.$setValidity(c,!0,a)});Oa(k,a)};g.$setValidity=function(a,b,c){var d=l[a];if(b)d&&(Oa(d,c),d.length||(h--,h||(e(b),g.$valid=!0,g.$invalid=!1),l[a]=!1,e(!0,a),f.$setValidity(a,!0,g)));else{h||e(b);if(d){if(-1!=db(d,c))return}else l[a]=d=[],h++,e(!1,a),f.$setValidity(a,!1,g);d.push(c);g.$valid=!1;g.$invalid=!0}};g.$setDirty=function(){d.removeClass(b,La);d.addClass(b,tb);g.$dirty=!0;g.$pristine=
|
||||
!1;f.$setDirty()};g.$setPristine=function(){d.removeClass(b,tb);d.addClass(b,La);g.$dirty=!1;g.$pristine=!0;q(k,function(a){a.$setPristine()})}}function pa(b,a,c,d){b.$setValidity(a,c);return c?d:s}function Je(b,a,c){var d=c.prop("validity");X(d)&&b.$parsers.push(function(c){if(b.$error[a]||!(d.badInput||d.customError||d.typeMismatch)||d.valueMissing)return c;b.$setValidity(a,!1)})}function ub(b,a,c,d,e,g){var f=a.prop("validity");if(!e.android){var h=!1;a.on("compositionstart",function(a){h=!0});
|
||||
a.on("compositionend",function(){h=!1;l()})}var l=function(){if(!h){var e=a.val();Qa(c.ngTrim||"T")&&(e=ca(e));if(d.$viewValue!==e||f&&""===e&&!f.valueMissing)b.$$phase?d.$setViewValue(e):b.$apply(function(){d.$setViewValue(e)})}};if(e.hasEvent("input"))a.on("input",l);else{var k,m=function(){k||(k=g.defer(function(){l();k=null}))};a.on("keydown",function(a){a=a.keyCode;91===a||(15<a&&19>a||37<=a&&40>=a)||m()});if(e.hasEvent("paste"))a.on("paste cut",m)}a.on("change",l);d.$render=function(){a.val(d.$isEmpty(d.$viewValue)?
|
||||
"":d.$viewValue)};var n=c.ngPattern;n&&((e=n.match(/^\/(.*)\/([gim]*)$/))?(n=RegExp(e[1],e[2]),e=function(a){return pa(d,"pattern",d.$isEmpty(a)||n.test(a),a)}):e=function(c){var e=b.$eval(n);if(!e||!e.test)throw t("ngPattern")("noregexp",n,e,ha(a));return pa(d,"pattern",d.$isEmpty(c)||e.test(c),c)},d.$formatters.push(e),d.$parsers.push(e));if(c.ngMinlength){var p=Y(c.ngMinlength);e=function(a){return pa(d,"minlength",d.$isEmpty(a)||a.length>=p,a)};d.$parsers.push(e);d.$formatters.push(e)}if(c.ngMaxlength){var r=
|
||||
Y(c.ngMaxlength);e=function(a){return pa(d,"maxlength",d.$isEmpty(a)||a.length<=r,a)};d.$parsers.push(e);d.$formatters.push(e)}}function Pb(b,a){b="ngClass"+b;return["$animate",function(c){function d(a,b){var c=[],d=0;a:for(;d<a.length;d++){for(var e=a[d],m=0;m<b.length;m++)if(e==b[m])continue a;c.push(e)}return c}function e(a){if(!M(a)){if(w(a))return a.split(" ");if(X(a)){var b=[];q(a,function(a,c){a&&b.push(c)});return b}}return a}return{restrict:"AC",link:function(g,f,h){function l(a,b){var c=
|
||||
f.data("$classCounts")||{},d=[];q(a,function(a){if(0<b||c[a])c[a]=(c[a]||0)+b,c[a]===+(0<b)&&d.push(a)});f.data("$classCounts",c);return d.join(" ")}function k(b){if(!0===a||g.$index%2===a){var k=e(b||[]);if(!m){var r=l(k,1);h.$addClass(r)}else if(!xa(b,m)){var q=e(m),r=d(k,q),k=d(q,k),k=l(k,-1),r=l(r,1);0===r.length?c.removeClass(f,k):0===k.length?c.addClass(f,r):c.setClass(f,r,k)}}m=ba(b)}var m;g.$watch(h[b],k,!0);h.$observe("class",function(a){k(g.$eval(h[b]))});"ngClass"!==b&&g.$watch("$index",
|
||||
function(c,d){var f=c&1;if(f!==d&1){var k=e(g.$eval(h[b]));f===a?(f=l(k,1),h.$addClass(f)):(f=l(k,-1),h.$removeClass(f))}})}}}]}var K=function(b){return w(b)?b.toLowerCase():b},Fc=Object.prototype.hasOwnProperty,Fa=function(b){return w(b)?b.toUpperCase():b},S,y,Ga,ya=[].slice,Ke=[].push,wa=Object.prototype.toString,Pa=t("ng"),Ea=O.angular||(O.angular={}),Sa,Ka,ka=["0","0","0"];S=Y((/msie (\d+)/.exec(K(navigator.userAgent))||[])[1]);isNaN(S)&&(S=Y((/trident\/.*; rv:(\d+)/.exec(K(navigator.userAgent))||
|
||||
[])[1]));C.$inject=[];Da.$inject=[];var ca=function(){return String.prototype.trim?function(b){return w(b)?b.trim():b}:function(b){return w(b)?b.replace(/^\s\s*/,"").replace(/\s\s*$/,""):b}}();Ka=9>S?function(b){b=b.nodeName?b:b[0];return b.scopeName&&"HTML"!=b.scopeName?Fa(b.scopeName+":"+b.nodeName):b.nodeName}:function(b){return b.nodeName?b.nodeName:b[0].nodeName};var Xc=/[A-Z]/g,$c={full:"1.2.16",major:1,minor:2,dot:16,codeName:"badger-enumeration"},Ua=N.cache={},gb=N.expando="ng-"+(new Date).getTime(),
|
||||
me=1,Pc=O.document.addEventListener?function(b,a,c){b.addEventListener(a,c,!1)}:function(b,a,c){b.attachEvent("on"+a,c)},Fb=O.document.removeEventListener?function(b,a,c){b.removeEventListener(a,c,!1)}:function(b,a,c){b.detachEvent("on"+a,c)};N._data=function(b){return this.cache[b[this.expando]]||{}};var he=/([\:\-\_]+(.))/g,ie=/^moz([A-Z])/,Bb=t("jqLite"),je=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,Cb=/<|&#?\w+;/,ke=/<([\w:]+)/,le=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ea=
|
||||
{option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ea.optgroup=ea.option;ea.tbody=ea.tfoot=ea.colgroup=ea.caption=ea.thead;ea.th=ea.td;var Ja=N.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;"complete"===U.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),N(O).on("load",a))},toString:function(){var b=
|
||||
[];q(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<=b?y(this[b]):y(this[this.length+b])},length:0,push:Ke,sort:[].sort,splice:[].splice},kb={};q("multiple selected checked disabled readOnly required open".split(" "),function(b){kb[K(b)]=b});var nc={};q("input select option textarea button form details".split(" "),function(b){nc[Fa(b)]=!0});q({data:jc,inheritedData:jb,scope:function(b){return y(b).data("$scope")||jb(b.parentNode||b,["$isolateScope","$scope"])},
|
||||
isolateScope:function(b){return y(b).data("$isolateScope")||y(b).data("$isolateScopeNoTemplate")},controller:kc,injector:function(b){return jb(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:Gb,css:function(b,a,c){a=Ta(a);if(B(c))b.style[a]=c;else{var d;8>=S&&(d=b.currentStyle&&b.currentStyle[a],""===d&&(d="auto"));d=d||b.style[a];8>=S&&(d=""===d?s:d);return d}},attr:function(b,a,c){var d=K(a);if(kb[d])if(B(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));
|
||||
else return b[a]||(b.attributes.getNamedItem(a)||C).specified?d:s;else if(B(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),null===b?s:b},prop:function(b,a,c){if(B(c))b[a]=c;else return b[a]},text:function(){function b(b,d){var e=a[b.nodeType];if(E(d))return e?b[e]:"";b[e]=d}var a=[];9>S?(a[1]="innerText",a[3]="nodeValue"):a[1]=a[3]="textContent";b.$dv="";return b}(),val:function(b,a){if(E(a)){if("SELECT"===Ka(b)&&b.multiple){var c=[];q(b.options,function(a){a.selected&&
|
||||
c.push(a.value||a.text)});return 0===c.length?null:c}return b.value}b.value=a},html:function(b,a){if(E(a))return b.innerHTML;for(var c=0,d=b.childNodes;c<d.length;c++)Ha(d[c]);b.innerHTML=a},empty:lc},function(b,a){N.prototype[a]=function(a,d){var e,g;if(b!==lc&&(2==b.length&&b!==Gb&&b!==kc?a:d)===s){if(X(a)){for(e=0;e<this.length;e++)if(b===jc)b(this[e],a);else for(g in a)b(this[e],g,a[g]);return this}e=b.$dv;g=e===s?Math.min(this.length,1):this.length;for(var f=0;f<g;f++){var h=b(this[f],a,d);e=
|
||||
e?e+h:h}return e}for(e=0;e<this.length;e++)b(this[e],a,d);return this}});q({removeData:hc,dealoc:Ha,on:function a(c,d,e,g){if(B(g))throw Bb("onargs");var f=la(c,"events"),h=la(c,"handle");f||la(c,"events",f={});h||la(c,"handle",h=ne(c,f));q(d.split(" "),function(d){var g=f[d];if(!g){if("mouseenter"==d||"mouseleave"==d){var m=U.body.contains||U.body.compareDocumentPosition?function(a,c){var d=9===a.nodeType?a.documentElement:a,e=c&&c.parentNode;return a===e||!!(e&&1===e.nodeType&&(d.contains?d.contains(e):
|
||||
a.compareDocumentPosition&&a.compareDocumentPosition(e)&16))}:function(a,c){if(c)for(;c=c.parentNode;)if(c===a)return!0;return!1};f[d]=[];a(c,{mouseleave:"mouseout",mouseenter:"mouseover"}[d],function(a){var c=a.relatedTarget;c&&(c===this||m(this,c))||h(a,d)})}else Pc(c,d,h),f[d]=[];g=f[d]}g.push(e)})},off:ic,one:function(a,c,d){a=y(a);a.on(c,function g(){a.off(c,d);a.off(c,g)});a.on(c,d)},replaceWith:function(a,c){var d,e=a.parentNode;Ha(a);q(new N(c),function(c){d?e.insertBefore(c,d.nextSibling):
|
||||
e.replaceChild(c,a);d=c})},children:function(a){var c=[];q(a.childNodes,function(a){1===a.nodeType&&c.push(a)});return c},contents:function(a){return a.contentDocument||a.childNodes||[]},append:function(a,c){q(new N(c),function(c){1!==a.nodeType&&11!==a.nodeType||a.appendChild(c)})},prepend:function(a,c){if(1===a.nodeType){var d=a.firstChild;q(new N(c),function(c){a.insertBefore(c,d)})}},wrap:function(a,c){c=y(c)[0];var d=a.parentNode;d&&d.replaceChild(c,a);c.appendChild(a)},remove:function(a){Ha(a);
|
||||
var c=a.parentNode;c&&c.removeChild(a)},after:function(a,c){var d=a,e=a.parentNode;q(new N(c),function(a){e.insertBefore(a,d.nextSibling);d=a})},addClass:ib,removeClass:hb,toggleClass:function(a,c,d){c&&q(c.split(" "),function(c){var g=d;E(g)&&(g=!Gb(a,c));(g?ib:hb)(a,c)})},parent:function(a){return(a=a.parentNode)&&11!==a.nodeType?a:null},next:function(a){if(a.nextElementSibling)return a.nextElementSibling;for(a=a.nextSibling;null!=a&&1!==a.nodeType;)a=a.nextSibling;return a},find:function(a,c){return a.getElementsByTagName?
|
||||
a.getElementsByTagName(c):[]},clone:Eb,triggerHandler:function(a,c,d){c=(la(a,"events")||{})[c];d=d||[];var e=[{preventDefault:C,stopPropagation:C}];q(c,function(c){c.apply(a,e.concat(d))})}},function(a,c){N.prototype[c]=function(c,e,g){for(var f,h=0;h<this.length;h++)E(f)?(f=a(this[h],c,e,g),B(f)&&(f=y(f))):Db(f,a(this[h],c,e,g));return B(f)?f:this};N.prototype.bind=N.prototype.on;N.prototype.unbind=N.prototype.off});Va.prototype={put:function(a,c){this[Ia(a)]=c},get:function(a){return this[Ia(a)]},
|
||||
remove:function(a){var c=this[a=Ia(a)];delete this[a];return c}};var pe=/^function\s*[^\(]*\(\s*([^\)]*)\)/m,qe=/,/,re=/^\s*(_?)(\S+?)\1\s*$/,oe=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,Wa=t("$injector"),Le=t("$animate"),Ld=["$provide",function(a){this.$$selectors={};this.register=function(c,d){var e=c+"-animation";if(c&&"."!=c.charAt(0))throw Le("notcsel",c);this.$$selectors[c.substr(1)]=e;a.factory(e,d)};this.classNameFilter=function(a){1===arguments.length&&(this.$$classNameFilter=a instanceof RegExp?
|
||||
a:null);return this.$$classNameFilter};this.$get=["$timeout","$$asyncCallback",function(a,d){return{enter:function(a,c,f,h){f?f.after(a):(c&&c[0]||(c=f.parent()),c.append(a));h&&d(h)},leave:function(a,c){a.remove();c&&d(c)},move:function(a,c,d,h){this.enter(a,c,d,h)},addClass:function(a,c,f){c=w(c)?c:M(c)?c.join(" "):"";q(a,function(a){ib(a,c)});f&&d(f)},removeClass:function(a,c,f){c=w(c)?c:M(c)?c.join(" "):"";q(a,function(a){hb(a,c)});f&&d(f)},setClass:function(a,c,f,h){q(a,function(a){ib(a,c);hb(a,
|
||||
f)});h&&d(h)},enabled:C}}]}],ja=t("$compile");cc.$inject=["$provide","$$sanitizeUriProvider"];var te=/^(x[\:\-_]|data[\:\-_])/i,vc=t("$interpolate"),Me=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,we={http:80,https:443,ftp:21},Kb=t("$location");Ac.prototype=Lb.prototype=zc.prototype={$$html5:!1,$$replace:!1,absUrl:nb("$$absUrl"),url:function(a,c){if(E(a))return this.$$url;var d=Me.exec(a);d[1]&&this.path(decodeURIComponent(d[1]));(d[2]||d[1])&&this.search(d[3]||"");this.hash(d[5]||"",c);return this},protocol:nb("$$protocol"),
|
||||
host:nb("$$host"),port:nb("$$port"),path:Bc("$$path",function(a){return"/"==a.charAt(0)?a:"/"+a}),search:function(a,c){switch(arguments.length){case 0:return this.$$search;case 1:if(w(a))this.$$search=Yb(a);else if(X(a))this.$$search=a;else throw Kb("isrcharg");break;default:E(c)||null===c?delete this.$$search[a]:this.$$search[a]=c}this.$$compose();return this},hash:Bc("$$hash",Da),replace:function(){this.$$replace=!0;return this}};var Ba=t("$parse"),Ec={},ta,Ma={"null":function(){return null},"true":function(){return!0},
|
||||
"false":function(){return!1},undefined:C,"+":function(a,c,d,e){d=d(a,c);e=e(a,c);return B(d)?B(e)?d+e:d:B(e)?e:s},"-":function(a,c,d,e){d=d(a,c);e=e(a,c);return(B(d)?d:0)-(B(e)?e:0)},"*":function(a,c,d,e){return d(a,c)*e(a,c)},"/":function(a,c,d,e){return d(a,c)/e(a,c)},"%":function(a,c,d,e){return d(a,c)%e(a,c)},"^":function(a,c,d,e){return d(a,c)^e(a,c)},"=":C,"===":function(a,c,d,e){return d(a,c)===e(a,c)},"!==":function(a,c,d,e){return d(a,c)!==e(a,c)},"==":function(a,c,d,e){return d(a,c)==e(a,
|
||||
c)},"!=":function(a,c,d,e){return d(a,c)!=e(a,c)},"<":function(a,c,d,e){return d(a,c)<e(a,c)},">":function(a,c,d,e){return d(a,c)>e(a,c)},"<=":function(a,c,d,e){return d(a,c)<=e(a,c)},">=":function(a,c,d,e){return d(a,c)>=e(a,c)},"&&":function(a,c,d,e){return d(a,c)&&e(a,c)},"||":function(a,c,d,e){return d(a,c)||e(a,c)},"&":function(a,c,d,e){return d(a,c)&e(a,c)},"|":function(a,c,d,e){return e(a,c)(a,c,d(a,c))},"!":function(a,c,d){return!d(a,c)}},Ne={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},
|
||||
Nb=function(a){this.options=a};Nb.prototype={constructor:Nb,lex:function(a){this.text=a;this.index=0;this.ch=s;this.lastCh=":";this.tokens=[];var c;for(a=[];this.index<this.text.length;){this.ch=this.text.charAt(this.index);if(this.is("\"'"))this.readString(this.ch);else if(this.isNumber(this.ch)||this.is(".")&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdent(this.ch))this.readIdent(),this.was("{,")&&("{"===a[0]&&(c=this.tokens[this.tokens.length-1]))&&(c.json=-1===c.text.indexOf("."));
|
||||
else if(this.is("(){}[].,;:?"))this.tokens.push({index:this.index,text:this.ch,json:this.was(":[,")&&this.is("{[")||this.is("}]:,")}),this.is("{[")&&a.unshift(this.ch),this.is("}]")&&a.shift(),this.index++;else if(this.isWhitespace(this.ch)){this.index++;continue}else{var d=this.ch+this.peek(),e=d+this.peek(2),g=Ma[this.ch],f=Ma[d],h=Ma[e];h?(this.tokens.push({index:this.index,text:e,fn:h}),this.index+=3):f?(this.tokens.push({index:this.index,text:d,fn:f}),this.index+=2):g?(this.tokens.push({index:this.index,
|
||||
text:this.ch,fn:g,json:this.was("[,:")&&this.is("+-")}),this.index+=1):this.throwError("Unexpected next character ",this.index,this.index+1)}this.lastCh=this.ch}return this.tokens},is:function(a){return-1!==a.indexOf(this.ch)},was:function(a){return-1!==a.indexOf(this.lastCh)},peek:function(a){a=a||1;return this.index+a<this.text.length?this.text.charAt(this.index+a):!1},isNumber:function(a){return"0"<=a&&"9">=a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===
|
||||
a},isIdent:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){d=d||this.index;c=B(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c,d)+"]":" "+d;throw Ba("lexerr",a,c,this.text);},readNumber:function(){for(var a="",c=this.index;this.index<this.text.length;){var d=K(this.text.charAt(this.index));if("."==d||this.isNumber(d))a+=d;else{var e=this.peek();if("e"==d&&this.isExpOperator(e))a+=
|
||||
d;else if(this.isExpOperator(d)&&e&&this.isNumber(e)&&"e"==a.charAt(a.length-1))a+=d;else if(!this.isExpOperator(d)||e&&this.isNumber(e)||"e"!=a.charAt(a.length-1))break;else this.throwError("Invalid exponent")}this.index++}a*=1;this.tokens.push({index:c,text:a,json:!0,fn:function(){return a}})},readIdent:function(){for(var a=this,c="",d=this.index,e,g,f,h;this.index<this.text.length;){h=this.text.charAt(this.index);if("."===h||this.isIdent(h)||this.isNumber(h))"."===h&&(e=this.index),c+=h;else break;
|
||||
this.index++}if(e)for(g=this.index;g<this.text.length;){h=this.text.charAt(g);if("("===h){f=c.substr(e-d+1);c=c.substr(0,e-d);this.index=g;break}if(this.isWhitespace(h))g++;else break}d={index:d,text:c};if(Ma.hasOwnProperty(c))d.fn=Ma[c],d.json=Ma[c];else{var l=Dc(c,this.options,this.text);d.fn=D(function(a,c){return l(a,c)},{assign:function(d,e){return ob(d,c,e,a.text,a.options)}})}this.tokens.push(d);f&&(this.tokens.push({index:e,text:".",json:!1}),this.tokens.push({index:e+1,text:f,json:!1}))},
|
||||
readString:function(a){var c=this.index;this.index++;for(var d="",e=a,g=!1;this.index<this.text.length;){var f=this.text.charAt(this.index),e=e+f;if(g)"u"===f?(f=this.text.substring(this.index+1,this.index+5),f.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+f+"]"),this.index+=4,d+=String.fromCharCode(parseInt(f,16))):d=(g=Ne[f])?d+g:d+f,g=!1;else if("\\"===f)g=!0;else{if(f===a){this.index++;this.tokens.push({index:c,text:e,string:d,json:!0,fn:function(){return d}});return}d+=
|
||||
f}this.index++}this.throwError("Unterminated quote",c)}};var $a=function(a,c,d){this.lexer=a;this.$filter=c;this.options=d};$a.ZERO=D(function(){return 0},{constant:!0});$a.prototype={constructor:$a,parse:function(a,c){this.text=a;this.json=c;this.tokens=this.lexer.lex(a);c&&(this.assignment=this.logicalOR,this.functionCall=this.fieldAccess=this.objectIndex=this.filterChain=function(){this.throwError("is not valid json",{text:a,index:0})});var d=c?this.primary():this.statements();0!==this.tokens.length&&
|
||||
this.throwError("is an unexpected token",this.tokens[0]);d.literal=!!d.literal;d.constant=!!d.constant;return d},primary:function(){var a;if(this.expect("("))a=this.filterChain(),this.consume(")");else if(this.expect("["))a=this.arrayDeclaration();else if(this.expect("{"))a=this.object();else{var c=this.expect();(a=c.fn)||this.throwError("not a primary expression",c);c.json&&(a.constant=!0,a.literal=!0)}for(var d;c=this.expect("(","[",".");)"("===c.text?(a=this.functionCall(a,d),d=null):"["===c.text?
|
||||
(d=a,a=this.objectIndex(a)):"."===c.text?(d=a,a=this.fieldAccess(a)):this.throwError("IMPOSSIBLE");return a},throwError:function(a,c){throw Ba("syntax",c.text,a,c.index+1,this.text,this.text.substring(c.index));},peekToken:function(){if(0===this.tokens.length)throw Ba("ueoe",this.text);return this.tokens[0]},peek:function(a,c,d,e){if(0<this.tokens.length){var g=this.tokens[0],f=g.text;if(f===a||f===c||f===d||f===e||!(a||c||d||e))return g}return!1},expect:function(a,c,d,e){return(a=this.peek(a,c,d,
|
||||
e))?(this.json&&!a.json&&this.throwError("is not valid json",a),this.tokens.shift(),a):!1},consume:function(a){this.expect(a)||this.throwError("is unexpected, expecting ["+a+"]",this.peek())},unaryFn:function(a,c){return D(function(d,e){return a(d,e,c)},{constant:c.constant})},ternaryFn:function(a,c,d){return D(function(e,g){return a(e,g)?c(e,g):d(e,g)},{constant:a.constant&&c.constant&&d.constant})},binaryFn:function(a,c,d){return D(function(e,g){return c(e,g,a,d)},{constant:a.constant&&d.constant})},
|
||||
statements:function(){for(var a=[];;)if(0<this.tokens.length&&!this.peek("}",")",";","]")&&a.push(this.filterChain()),!this.expect(";"))return 1===a.length?a[0]:function(c,d){for(var e,g=0;g<a.length;g++){var f=a[g];f&&(e=f(c,d))}return e}},filterChain:function(){for(var a=this.expression(),c;;)if(c=this.expect("|"))a=this.binaryFn(a,c.fn,this.filter());else return a},filter:function(){for(var a=this.expect(),c=this.$filter(a.text),d=[];;)if(a=this.expect(":"))d.push(this.expression());else{var e=
|
||||
function(a,e,h){h=[h];for(var l=0;l<d.length;l++)h.push(d[l](a,e));return c.apply(a,h)};return function(){return e}}},expression:function(){return this.assignment()},assignment:function(){var a=this.ternary(),c,d;return(d=this.expect("="))?(a.assign||this.throwError("implies assignment but ["+this.text.substring(0,d.index)+"] can not be assigned to",d),c=this.ternary(),function(d,g){return a.assign(d,c(d,g),g)}):a},ternary:function(){var a=this.logicalOR(),c,d;if(this.expect("?")){c=this.ternary();
|
||||
if(d=this.expect(":"))return this.ternaryFn(a,c,this.ternary());this.throwError("expected :",d)}else return a},logicalOR:function(){for(var a=this.logicalAND(),c;;)if(c=this.expect("||"))a=this.binaryFn(a,c.fn,this.logicalAND());else return a},logicalAND:function(){var a=this.equality(),c;if(c=this.expect("&&"))a=this.binaryFn(a,c.fn,this.logicalAND());return a},equality:function(){var a=this.relational(),c;if(c=this.expect("==","!=","===","!=="))a=this.binaryFn(a,c.fn,this.equality());return a},
|
||||
relational:function(){var a=this.additive(),c;if(c=this.expect("<",">","<=",">="))a=this.binaryFn(a,c.fn,this.relational());return a},additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a=this.binaryFn(a,c.fn,this.multiplicative());return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a=this.binaryFn(a,c.fn,this.unary());return a},unary:function(){var a;return this.expect("+")?this.primary():(a=this.expect("-"))?this.binaryFn($a.ZERO,a.fn,
|
||||
this.unary()):(a=this.expect("!"))?this.unaryFn(a.fn,this.unary()):this.primary()},fieldAccess:function(a){var c=this,d=this.expect().text,e=Dc(d,this.options,this.text);return D(function(c,d,h){return e(h||a(c,d))},{assign:function(e,f,h){return ob(a(e,h),d,f,c.text,c.options)}})},objectIndex:function(a){var c=this,d=this.expression();this.consume("]");return D(function(e,g){var f=a(e,g),h=d(e,g),l;if(!f)return s;(f=Za(f[h],c.text))&&(f.then&&c.options.unwrapPromises)&&(l=f,"$$v"in f||(l.$$v=s,l.then(function(a){l.$$v=
|
||||
a})),f=f.$$v);return f},{assign:function(e,g,f){var h=d(e,f);return Za(a(e,f),c.text)[h]=g}})},functionCall:function(a,c){var d=[];if(")"!==this.peekToken().text){do d.push(this.expression());while(this.expect(","))}this.consume(")");var e=this;return function(g,f){for(var h=[],l=c?c(g,f):g,k=0;k<d.length;k++)h.push(d[k](g,f));k=a(g,f,l)||C;Za(l,e.text);Za(k,e.text);h=k.apply?k.apply(l,h):k(h[0],h[1],h[2],h[3],h[4]);return Za(h,e.text)}},arrayDeclaration:function(){var a=[],c=!0;if("]"!==this.peekToken().text){do{if(this.peek("]"))break;
|
||||
var d=this.expression();a.push(d);d.constant||(c=!1)}while(this.expect(","))}this.consume("]");return D(function(c,d){for(var f=[],h=0;h<a.length;h++)f.push(a[h](c,d));return f},{literal:!0,constant:c})},object:function(){var a=[],c=!0;if("}"!==this.peekToken().text){do{if(this.peek("}"))break;var d=this.expect(),d=d.string||d.text;this.consume(":");var e=this.expression();a.push({key:d,value:e});e.constant||(c=!1)}while(this.expect(","))}this.consume("}");return D(function(c,d){for(var e={},l=0;l<
|
||||
a.length;l++){var k=a[l];e[k.key]=k.value(c,d)}return e},{literal:!0,constant:c})}};var Mb={},ua=t("$sce"),ga={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},W=U.createElement("a"),Hc=sa(O.location.href,!0);gc.$inject=["$provide"];Ic.$inject=["$locale"];Kc.$inject=["$locale"];var Nc=".",Ie={yyyy:$("FullYear",4),yy:$("FullYear",2,0,!0),y:$("FullYear",1),MMMM:pb("Month"),MMM:pb("Month",!0),MM:$("Month",2,1),M:$("Month",1,1),dd:$("Date",2),d:$("Date",1),HH:$("Hours",2),H:$("Hours",
|
||||
1),hh:$("Hours",2,-12),h:$("Hours",1,-12),mm:$("Minutes",2),m:$("Minutes",1),ss:$("Seconds",2),s:$("Seconds",1),sss:$("Milliseconds",3),EEEE:pb("Day"),EEE:pb("Day",!0),a:function(a,c){return 12>a.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(a){a=-1*a.getTimezoneOffset();return a=(0<=a?"+":"")+(Ob(Math[0<a?"floor":"ceil"](a/60),2)+Ob(Math.abs(a%60),2))}},He=/((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/,Ge=/^\-?\d+$/;Jc.$inject=["$locale"];var Ee=aa(K),Fe=aa(Fa);Lc.$inject=
|
||||
["$parse"];var cd=aa({restrict:"E",compile:function(a,c){8>=S&&(c.href||c.name||c.$set("href",""),a.append(U.createComment("IE fix")));if(!c.href&&!c.xlinkHref&&!c.name)return function(a,c){var g="[object SVGAnimatedString]"===wa.call(c.prop("href"))?"xlink:href":"href";c.on("click",function(a){c.attr(g)||a.preventDefault()})}}}),zb={};q(kb,function(a,c){if("multiple"!=a){var d=na("ng-"+c);zb[d]=function(){return{priority:100,link:function(a,g,f){a.$watch(f[d],function(a){f.$set(c,!!a)})}}}}});q(["src",
|
||||
"srcset","href"],function(a){var c=na("ng-"+a);zb[c]=function(){return{priority:99,link:function(d,e,g){var f=a,h=a;"href"===a&&"[object SVGAnimatedString]"===wa.call(e.prop("href"))&&(h="xlinkHref",g.$attr[h]="xlink:href",f=null);g.$observe(c,function(a){a&&(g.$set(h,a),S&&f&&e.prop(f,g[h]))})}}}});var sb={$addControl:C,$removeControl:C,$setValidity:C,$setDirty:C,$setPristine:C};Oc.$inject=["$element","$attrs","$scope","$animate"];var Qc=function(a){return["$timeout",function(c){return{name:"form",
|
||||
restrict:a?"EAC":"E",controller:Oc,compile:function(){return{pre:function(a,e,g,f){if(!g.action){var h=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1};Pc(e[0],"submit",h);e.on("$destroy",function(){c(function(){Fb(e[0],"submit",h)},0,!1)})}var l=e.parent().controller("form"),k=g.name||g.ngForm;k&&ob(a,k,f,k);if(l)e.on("$destroy",function(){l.$removeControl(f);k&&ob(a,k,s,k);D(f,sb)})}}}}}]},dd=Qc(),qd=Qc(!0),Oe=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,
|
||||
Pe=/^[a-z0-9!#$%&'*+/=?^_`{|}~.-]+@[a-z0-9-]+(\.[a-z0-9-]+)*$/i,Qe=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,Rc={text:ub,number:function(a,c,d,e,g,f){ub(a,c,d,e,g,f);e.$parsers.push(function(a){var c=e.$isEmpty(a);if(c||Qe.test(a))return e.$setValidity("number",!0),""===a?null:c?a:parseFloat(a);e.$setValidity("number",!1);return s});Je(e,"number",c);e.$formatters.push(function(a){return e.$isEmpty(a)?"":""+a});d.min&&(a=function(a){var c=parseFloat(d.min);return pa(e,"min",e.$isEmpty(a)||a>=c,a)},e.$parsers.push(a),
|
||||
e.$formatters.push(a));d.max&&(a=function(a){var c=parseFloat(d.max);return pa(e,"max",e.$isEmpty(a)||a<=c,a)},e.$parsers.push(a),e.$formatters.push(a));e.$formatters.push(function(a){return pa(e,"number",e.$isEmpty(a)||vb(a),a)})},url:function(a,c,d,e,g,f){ub(a,c,d,e,g,f);a=function(a){return pa(e,"url",e.$isEmpty(a)||Oe.test(a),a)};e.$formatters.push(a);e.$parsers.push(a)},email:function(a,c,d,e,g,f){ub(a,c,d,e,g,f);a=function(a){return pa(e,"email",e.$isEmpty(a)||Pe.test(a),a)};e.$formatters.push(a);
|
||||
e.$parsers.push(a)},radio:function(a,c,d,e){E(d.name)&&c.attr("name",bb());c.on("click",function(){c[0].checked&&a.$apply(function(){e.$setViewValue(d.value)})});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e){var g=d.ngTrueValue,f=d.ngFalseValue;w(g)||(g=!0);w(f)||(f=!1);c.on("click",function(){a.$apply(function(){e.$setViewValue(c[0].checked)})});e.$render=function(){c[0].checked=e.$viewValue};e.$isEmpty=function(a){return a!==g};
|
||||
e.$formatters.push(function(a){return a===g});e.$parsers.push(function(a){return a?g:f})},hidden:C,button:C,submit:C,reset:C,file:C},dc=["$browser","$sniffer",function(a,c){return{restrict:"E",require:"?ngModel",link:function(d,e,g,f){f&&(Rc[K(g.type)]||Rc.text)(d,e,g,f,c,a)}}}],rb="ng-valid",qb="ng-invalid",La="ng-pristine",tb="ng-dirty",Re=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate",function(a,c,d,e,g,f){function h(a,c){c=c?"-"+fb(c,"-"):"";f.removeClass(e,(a?qb:rb)+c);
|
||||
f.addClass(e,(a?rb:qb)+c)}this.$modelValue=this.$viewValue=Number.NaN;this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$name=d.name;var l=g(d.ngModel),k=l.assign;if(!k)throw t("ngModel")("nonassign",d.ngModel,ha(e));this.$render=C;this.$isEmpty=function(a){return E(a)||""===a||null===a||a!==a};var m=e.inheritedData("$formController")||sb,n=0,p=this.$error={};e.addClass(La);h(!0);this.$setValidity=function(a,c){p[a]!==
|
||||
!c&&(c?(p[a]&&n--,n||(h(!0),this.$valid=!0,this.$invalid=!1)):(h(!1),this.$invalid=!0,this.$valid=!1,n++),p[a]=!c,h(c,a),m.$setValidity(a,c,this))};this.$setPristine=function(){this.$dirty=!1;this.$pristine=!0;f.removeClass(e,tb);f.addClass(e,La)};this.$setViewValue=function(d){this.$viewValue=d;this.$pristine&&(this.$dirty=!0,this.$pristine=!1,f.removeClass(e,La),f.addClass(e,tb),m.$setDirty());q(this.$parsers,function(a){d=a(d)});this.$modelValue!==d&&(this.$modelValue=d,k(a,d),q(this.$viewChangeListeners,
|
||||
function(a){try{a()}catch(d){c(d)}}))};var r=this;a.$watch(function(){var c=l(a);if(r.$modelValue!==c){var d=r.$formatters,e=d.length;for(r.$modelValue=c;e--;)c=d[e](c);r.$viewValue!==c&&(r.$viewValue=c,r.$render())}return c})}],Fd=function(){return{require:["ngModel","^?form"],controller:Re,link:function(a,c,d,e){var g=e[0],f=e[1]||sb;f.$addControl(g);a.$on("$destroy",function(){f.$removeControl(g)})}}},Hd=aa({require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),
|
||||
ec=function(){return{require:"?ngModel",link:function(a,c,d,e){if(e){d.required=!0;var g=function(a){if(d.required&&e.$isEmpty(a))e.$setValidity("required",!1);else return e.$setValidity("required",!0),a};e.$formatters.push(g);e.$parsers.unshift(g);d.$observe("required",function(){g(e.$viewValue)})}}}},Gd=function(){return{require:"ngModel",link:function(a,c,d,e){var g=(a=/\/(.*)\//.exec(d.ngList))&&RegExp(a[1])||d.ngList||",";e.$parsers.push(function(a){if(!E(a)){var c=[];a&&q(a.split(g),function(a){a&&
|
||||
c.push(ca(a))});return c}});e.$formatters.push(function(a){return M(a)?a.join(", "):s});e.$isEmpty=function(a){return!a||!a.length}}}},Se=/^(true|false|\d+)$/,Id=function(){return{priority:100,compile:function(a,c){return Se.test(c.ngValue)?function(a,c,g){g.$set("value",a.$eval(g.ngValue))}:function(a,c,g){a.$watch(g.ngValue,function(a){g.$set("value",a)})}}}},id=va(function(a,c,d){c.addClass("ng-binding").data("$binding",d.ngBind);a.$watch(d.ngBind,function(a){c.text(a==s?"":a)})}),kd=["$interpolate",
|
||||
function(a){return function(c,d,e){c=a(d.attr(e.$attr.ngBindTemplate));d.addClass("ng-binding").data("$binding",c);e.$observe("ngBindTemplate",function(a){d.text(a)})}}],jd=["$sce","$parse",function(a,c){return function(d,e,g){e.addClass("ng-binding").data("$binding",g.ngBindHtml);var f=c(g.ngBindHtml);d.$watch(function(){return(f(d)||"").toString()},function(c){e.html(a.getTrustedHtml(f(d))||"")})}}],ld=Pb("",!0),nd=Pb("Odd",0),md=Pb("Even",1),od=va({compile:function(a,c){c.$set("ngCloak",s);a.removeClass("ng-cloak")}}),
|
||||
pd=[function(){return{scope:!0,controller:"@",priority:500}}],fc={};q("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var c=na("ng-"+a);fc[c]=["$parse",function(d){return{compile:function(e,g){var f=d(g[c]);return function(c,d,e){d.on(K(a),function(a){c.$apply(function(){f(c,{$event:a})})})}}}}]});var sd=["$animate",function(a){return{transclude:"element",priority:600,terminal:!0,restrict:"A",
|
||||
$$tlb:!0,link:function(c,d,e,g,f){var h,l,k;c.$watch(e.ngIf,function(g){Qa(g)?l||(l=c.$new(),f(l,function(c){c[c.length++]=U.createComment(" end ngIf: "+e.ngIf+" ");h={clone:c};a.enter(c,d.parent(),d)})):(k&&(k.remove(),k=null),l&&(l.$destroy(),l=null),h&&(k=yb(h.clone),a.leave(k,function(){k=null}),h=null))})}}}],td=["$http","$templateCache","$anchorScroll","$animate","$sce",function(a,c,d,e,g){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:Ea.noop,compile:function(f,
|
||||
h){var l=h.ngInclude||h.src,k=h.onload||"",m=h.autoscroll;return function(f,h,q,s,u){var F=0,v,y,A,x=function(){y&&(y.remove(),y=null);v&&(v.$destroy(),v=null);A&&(e.leave(A,function(){y=null}),y=A,A=null)};f.$watch(g.parseAsResourceUrl(l),function(g){var l=function(){!B(m)||m&&!f.$eval(m)||d()},q=++F;g?(a.get(g,{cache:c}).success(function(a){if(q===F){var c=f.$new();s.template=a;a=u(c,function(a){x();e.enter(a,null,h,l)});v=c;A=a;v.$emit("$includeContentLoaded");f.$eval(k)}}).error(function(){q===
|
||||
F&&x()}),f.$emit("$includeContentRequested")):(x(),s.template=null)})}}}}],Jd=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,g){d.html(g.template);a(d.contents())(c)}}}],ud=va({priority:450,compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),vd=va({terminal:!0,priority:1E3}),wd=["$locale","$interpolate",function(a,c){var d=/{}/g;return{restrict:"EA",link:function(e,g,f){var h=f.count,l=f.$attr.when&&g.attr(f.$attr.when),k=f.offset||
|
||||
0,m=e.$eval(l)||{},n={},p=c.startSymbol(),r=c.endSymbol(),s=/^when(Minus)?(.+)$/;q(f,function(a,c){s.test(c)&&(m[K(c.replace("when","").replace("Minus","-"))]=g.attr(f.$attr[c]))});q(m,function(a,e){n[e]=c(a.replace(d,p+h+"-"+k+r))});e.$watch(function(){var c=parseFloat(e.$eval(h));if(isNaN(c))return"";c in m||(c=a.pluralCat(c-k));return n[c](e,g,!0)},function(a){g.text(a)})}}}],xd=["$parse","$animate",function(a,c){var d=t("ngRepeat");return{transclude:"element",priority:1E3,terminal:!0,$$tlb:!0,
|
||||
link:function(e,g,f,h,l){var k=f.ngRepeat,m=k.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?\s*$/),n,p,r,s,u,F,v={$id:Ia};if(!m)throw d("iexp",k);f=m[1];h=m[2];(m=m[3])?(n=a(m),p=function(a,c,d){F&&(v[F]=a);v[u]=c;v.$index=d;return n(e,v)}):(r=function(a,c){return Ia(c)},s=function(a){return a});m=f.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/);if(!m)throw d("iidexp",f);u=m[3]||m[1];F=m[2];var B={};e.$watchCollection(h,function(a){var f,h,m=g[0],n,v={},H,R,w,C,T,t,
|
||||
E=[];if(ab(a))T=a,n=p||r;else{n=p||s;T=[];for(w in a)a.hasOwnProperty(w)&&"$"!=w.charAt(0)&&T.push(w);T.sort()}H=T.length;h=E.length=T.length;for(f=0;f<h;f++)if(w=a===T?f:T[f],C=a[w],C=n(w,C,f),Aa(C,"`track by` id"),B.hasOwnProperty(C))t=B[C],delete B[C],v[C]=t,E[f]=t;else{if(v.hasOwnProperty(C))throw q(E,function(a){a&&a.scope&&(B[a.id]=a)}),d("dupes",k,C);E[f]={id:C};v[C]=!1}for(w in B)B.hasOwnProperty(w)&&(t=B[w],f=yb(t.clone),c.leave(f),q(f,function(a){a.$$NG_REMOVED=!0}),t.scope.$destroy());
|
||||
f=0;for(h=T.length;f<h;f++){w=a===T?f:T[f];C=a[w];t=E[f];E[f-1]&&(m=E[f-1].clone[E[f-1].clone.length-1]);if(t.scope){R=t.scope;n=m;do n=n.nextSibling;while(n&&n.$$NG_REMOVED);t.clone[0]!=n&&c.move(yb(t.clone),null,y(m));m=t.clone[t.clone.length-1]}else R=e.$new();R[u]=C;F&&(R[F]=w);R.$index=f;R.$first=0===f;R.$last=f===H-1;R.$middle=!(R.$first||R.$last);R.$odd=!(R.$even=0===(f&1));t.scope||l(R,function(a){a[a.length++]=U.createComment(" end ngRepeat: "+k+" ");c.enter(a,null,y(m));m=a;t.scope=R;t.clone=
|
||||
a;v[t.id]=t})}B=v})}}}],yd=["$animate",function(a){return function(c,d,e){c.$watch(e.ngShow,function(c){a[Qa(c)?"removeClass":"addClass"](d,"ng-hide")})}}],rd=["$animate",function(a){return function(c,d,e){c.$watch(e.ngHide,function(c){a[Qa(c)?"addClass":"removeClass"](d,"ng-hide")})}}],zd=va(function(a,c,d){a.$watch(d.ngStyle,function(a,d){d&&a!==d&&q(d,function(a,d){c.css(d,"")});a&&c.css(a)},!0)}),Ad=["$animate",function(a){return{restrict:"EA",require:"ngSwitch",controller:["$scope",function(){this.cases=
|
||||
{}}],link:function(c,d,e,g){var f,h,l,k=[];c.$watch(e.ngSwitch||e.on,function(d){var n,p=k.length;if(0<p){if(l){for(n=0;n<p;n++)l[n].remove();l=null}l=[];for(n=0;n<p;n++){var r=h[n];k[n].$destroy();l[n]=r;a.leave(r,function(){l.splice(n,1);0===l.length&&(l=null)})}}h=[];k=[];if(f=g.cases["!"+d]||g.cases["?"])c.$eval(e.change),q(f,function(d){var e=c.$new();k.push(e);d.transclude(e,function(c){var e=d.element;h.push(c);a.enter(c,e.parent(),e)})})})}}}],Bd=va({transclude:"element",priority:800,require:"^ngSwitch",
|
||||
link:function(a,c,d,e,g){e.cases["!"+d.ngSwitchWhen]=e.cases["!"+d.ngSwitchWhen]||[];e.cases["!"+d.ngSwitchWhen].push({transclude:g,element:c})}}),Cd=va({transclude:"element",priority:800,require:"^ngSwitch",link:function(a,c,d,e,g){e.cases["?"]=e.cases["?"]||[];e.cases["?"].push({transclude:g,element:c})}}),Ed=va({link:function(a,c,d,e,g){if(!g)throw t("ngTransclude")("orphan",ha(c));g(function(a){c.empty();c.append(a)})}}),ed=["$templateCache",function(a){return{restrict:"E",terminal:!0,compile:function(c,
|
||||
d){"text/ng-template"==d.type&&a.put(d.id,c[0].text)}}}],Te=t("ngOptions"),Dd=aa({terminal:!0}),fd=["$compile","$parse",function(a,c){var d=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,e={$setViewValue:C};return{restrict:"E",require:["select","?ngModel"],controller:["$element","$scope","$attrs",function(a,c,d){var l=this,k={},m=e,n;l.databound=
|
||||
d.ngModel;l.init=function(a,c,d){m=a;n=d};l.addOption=function(c){Aa(c,'"option value"');k[c]=!0;m.$viewValue==c&&(a.val(c),n.parent()&&n.remove())};l.removeOption=function(a){this.hasOption(a)&&(delete k[a],m.$viewValue==a&&this.renderUnknownOption(a))};l.renderUnknownOption=function(c){c="? "+Ia(c)+" ?";n.val(c);a.prepend(n);a.val(c);n.prop("selected",!0)};l.hasOption=function(a){return k.hasOwnProperty(a)};c.$on("$destroy",function(){l.renderUnknownOption=C})}],link:function(e,f,h,l){function k(a,
|
||||
c,d,e){d.$render=function(){var a=d.$viewValue;e.hasOption(a)?(A.parent()&&A.remove(),c.val(a),""===a&&w.prop("selected",!0)):E(a)&&w?c.val(""):e.renderUnknownOption(a)};c.on("change",function(){a.$apply(function(){A.parent()&&A.remove();d.$setViewValue(c.val())})})}function m(a,c,d){var e;d.$render=function(){var a=new Va(d.$viewValue);q(c.find("option"),function(c){c.selected=B(a.get(c.value))})};a.$watch(function(){xa(e,d.$viewValue)||(e=ba(d.$viewValue),d.$render())});c.on("change",function(){a.$apply(function(){var a=
|
||||
[];q(c.find("option"),function(c){c.selected&&a.push(c.value)});d.$setViewValue(a)})})}function n(e,f,g){function h(){var a={"":[]},c=[""],d,k,s,t,z;t=g.$modelValue;z=y(e)||[];var E=n?Qb(z):z,F,I,A;I={};s=!1;var D,H;if(r)if(w&&M(t))for(s=new Va([]),A=0;A<t.length;A++)I[m]=t[A],s.put(w(e,I),t[A]);else s=new Va(t);for(A=0;F=E.length,A<F;A++){k=A;if(n){k=E[A];if("$"===k.charAt(0))continue;I[n]=k}I[m]=z[k];d=p(e,I)||"";(k=a[d])||(k=a[d]=[],c.push(d));r?d=B(s.remove(w?w(e,I):q(e,I))):(w?(d={},d[m]=t,d=
|
||||
w(e,d)===w(e,I)):d=t===q(e,I),s=s||d);D=l(e,I);D=B(D)?D:"";k.push({id:w?w(e,I):n?E[A]:A,label:D,selected:d})}r||(u||null===t?a[""].unshift({id:"",label:"",selected:!s}):s||a[""].unshift({id:"?",label:"",selected:!0}));I=0;for(E=c.length;I<E;I++){d=c[I];k=a[d];x.length<=I?(t={element:C.clone().attr("label",d),label:k.label},z=[t],x.push(z),f.append(t.element)):(z=x[I],t=z[0],t.label!=d&&t.element.attr("label",t.label=d));D=null;A=0;for(F=k.length;A<F;A++)s=k[A],(d=z[A+1])?(D=d.element,d.label!==s.label&&
|
||||
D.text(d.label=s.label),d.id!==s.id&&D.val(d.id=s.id),d.selected!==s.selected&&D.prop("selected",d.selected=s.selected)):(""===s.id&&u?H=u:(H=v.clone()).val(s.id).attr("selected",s.selected).text(s.label),z.push({element:H,label:s.label,id:s.id,selected:s.selected}),D?D.after(H):t.element.append(H),D=H);for(A++;z.length>A;)z.pop().element.remove()}for(;x.length>I;)x.pop()[0].element.remove()}var k;if(!(k=t.match(d)))throw Te("iexp",t,ha(f));var l=c(k[2]||k[1]),m=k[4]||k[6],n=k[5],p=c(k[3]||""),q=
|
||||
c(k[2]?k[1]:m),y=c(k[7]),w=k[8]?c(k[8]):null,x=[[{element:f,label:""}]];u&&(a(u)(e),u.removeClass("ng-scope"),u.remove());f.empty();f.on("change",function(){e.$apply(function(){var a,c=y(e)||[],d={},h,k,l,p,t,v,u;if(r)for(k=[],p=0,v=x.length;p<v;p++)for(a=x[p],l=1,t=a.length;l<t;l++){if((h=a[l].element)[0].selected){h=h.val();n&&(d[n]=h);if(w)for(u=0;u<c.length&&(d[m]=c[u],w(e,d)!=h);u++);else d[m]=c[h];k.push(q(e,d))}}else{h=f.val();if("?"==h)k=s;else if(""===h)k=null;else if(w)for(u=0;u<c.length;u++){if(d[m]=
|
||||
c[u],w(e,d)==h){k=q(e,d);break}}else d[m]=c[h],n&&(d[n]=h),k=q(e,d);1<x[0].length&&x[0][1].id!==h&&(x[0][1].selected=!1)}g.$setViewValue(k)})});g.$render=h;e.$watch(h)}if(l[1]){var p=l[0];l=l[1];var r=h.multiple,t=h.ngOptions,u=!1,w,v=y(U.createElement("option")),C=y(U.createElement("optgroup")),A=v.clone();h=0;for(var x=f.children(),D=x.length;h<D;h++)if(""===x[h].value){w=u=x.eq(h);break}p.init(l,u,A);r&&(l.$isEmpty=function(a){return!a||0===a.length});t?n(e,f,l):r?m(e,f,l):k(e,f,l,p)}}}}],hd=["$interpolate",
|
||||
function(a){var c={addOption:C,removeOption:C};return{restrict:"E",priority:100,compile:function(d,e){if(E(e.value)){var g=a(d.text(),!0);g||e.$set("value",d.text())}return function(a,d,e){var k=d.parent(),m=k.data("$selectController")||k.parent().data("$selectController");m&&m.databound?d.prop("selected",!1):m=c;g?a.$watch(g,function(a,c){e.$set("value",a);a!==c&&m.removeOption(c);m.addOption(a)}):m.addOption(e.value);d.on("$destroy",function(){m.removeOption(e.value)})}}}}],gd=aa({restrict:"E",
|
||||
terminal:!0});O.angular.bootstrap?console.log("WARNING: Tried to load angular more than once."):((Ga=O.jQuery)?(y=Ga,D(Ga.fn,{scope:Ja.scope,isolateScope:Ja.isolateScope,controller:Ja.controller,injector:Ja.injector,inheritedData:Ja.inheritedData}),Ab("remove",!0,!0,!1),Ab("empty",!1,!1,!1),Ab("html",!1,!1,!0)):y=N,Ea.element=y,Zc(Ea),y(U).ready(function(){Wc(U,$b)}))})(window,document);!angular.$$csp()&&angular.element(document).find("head").prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide{display:none !important;}ng\\:form{display:block;}.ng-animate-block-transitions{transition:0s all!important;-webkit-transition:0s all!important;}</style>');
|
||||
//# sourceMappingURL=angular.min.js.map
|
||||
2
public/js/app/note-min.js
vendored
@@ -224,7 +224,7 @@ Note.curHasChanged = function(force) {
|
||||
hasChanged.hasChanged = true; // 本页使用用小写
|
||||
hasChanged.Title = title; // 要传到后台的用大写
|
||||
if(!hasChanged.Title) {
|
||||
alert(1);
|
||||
// alert(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -363,14 +363,14 @@ Note.curChangedSaveIt = function(force) {
|
||||
Note.setNoteCache({"NoteId": hasChanged.NoteId, "UpdatedTime": (new Date()).format("yyyy-MM-ddThh:mm:ss.S")}, false);
|
||||
|
||||
// 保存之
|
||||
showMsg("正在保存");
|
||||
showMsg(getMsg("saving"));
|
||||
ajaxPost("/note/UpdateNoteOrContent", hasChanged, function(ret) {
|
||||
if(hasChanged.IsNew) {
|
||||
// 缓存之, 后台得到其它信息
|
||||
ret.IsNew = false;
|
||||
Note.setNoteCache(ret, false);
|
||||
}
|
||||
showMsg("保存成功!", 1000);
|
||||
showMsg(getMsg("saveSuccess"), 1000);
|
||||
});
|
||||
|
||||
return hasChanged;
|
||||
|
||||
2
public/js/app/page-min.js
vendored
@@ -1,4 +1,7 @@
|
||||
// 主页渲染
|
||||
//-------------
|
||||
// 编辑器模式
|
||||
var em = new editorMode();
|
||||
|
||||
// ifr 的高度, 默认是小20px, 启动1s后运行resizeEditor()调整之
|
||||
|
||||
@@ -96,15 +99,17 @@ $(function() {
|
||||
|
||||
var height = $("#mceToolbar").height();
|
||||
|
||||
// 现在是折叠的
|
||||
if (height < $("#popularToolbar").height()) {
|
||||
$("#mceToolbar").height($("#popularToolbar").height());
|
||||
$(this).find("i").removeClass("fa-angle-down").addClass("fa-angle-up");
|
||||
|
||||
} else {
|
||||
$("#mceToolbar").height(30);
|
||||
$("#mceToolbar").height(height/2);
|
||||
$(this).find("i").removeClass("fa-angle-up").addClass("fa-angle-down");
|
||||
}
|
||||
|
||||
/*
|
||||
// 新加 3.12
|
||||
var mceToolbarHeight = $("#mceToolbar").height();
|
||||
$("#editorContent").css("top", mceToolbarHeight);
|
||||
@@ -113,6 +118,7 @@ $(function() {
|
||||
$("#leanoteNav").css("top", mceToolbarHeight + 2);
|
||||
|
||||
$("#editor").css("top", $("#noteTop").height());
|
||||
*/
|
||||
|
||||
resizeEditor();
|
||||
|
||||
@@ -184,9 +190,9 @@ $(function() {
|
||||
selector : "#editorContent",
|
||||
// height: 100,//这个应该是文档的高度, 而其上层的高度是$("#content").height(),
|
||||
// parentHeight: $("#content").height(),
|
||||
content_css : ["css/bootstrap.css", "css/editor.css"],
|
||||
content_css : ["css/bootstrap.css", "css/editor/editor.css"].concat(em.getWritingCss()),
|
||||
skin : "custom",
|
||||
language: "zh_CN",
|
||||
language: LEA.locale, // 语言
|
||||
plugins : [
|
||||
"autolink link leanote_image lists charmap hr", "paste",
|
||||
"searchreplace leanote_nav leanote_code tabfocus",
|
||||
@@ -611,7 +617,7 @@ $(function() {
|
||||
if(LEA.isMobile) {
|
||||
UserInfo.NoteListWidth = 101;
|
||||
}
|
||||
resize3ColumnsEnd(UserInfo.NotebookWidth, UserInfo.NoteListWidth);
|
||||
// resize3ColumnsEnd(UserInfo.NotebookWidth, UserInfo.NoteListWidth);
|
||||
if (UserInfo.LeftIsMin) {
|
||||
minLeft(false);
|
||||
}
|
||||
@@ -679,4 +685,130 @@ $(function() {
|
||||
$("#wmd-panel-preview").css("width", "100%");
|
||||
}, 10);
|
||||
|
||||
});
|
||||
// 编辑器模式
|
||||
em.init();
|
||||
});
|
||||
|
||||
// 编辑器模式
|
||||
function editorMode() {
|
||||
this.writingHash = "#writing";
|
||||
this.normalHash = "#normal";
|
||||
this.isWritingMode = location.hash == this.writingHash;
|
||||
|
||||
this.toggleA = null;
|
||||
}
|
||||
|
||||
editorMode.prototype.toggleAText = function(isWriting) {
|
||||
var self = this;
|
||||
setTimeout(function() {
|
||||
toggleA = $("#toggleEditorMode a");
|
||||
if(isWriting) {
|
||||
toggleA.attr("href", self.normalHash).text(getMsg("normalMode"));
|
||||
} else {
|
||||
toggleA.attr("href", self.writingHash).text(getMsg("writingMode"));
|
||||
}
|
||||
}, 0);
|
||||
}
|
||||
editorMode.prototype.isWriting = function(hash) {
|
||||
return hash == this.writingHash;
|
||||
}
|
||||
editorMode.prototype.init = function() {
|
||||
this.changeMode(this.isWritingMode);
|
||||
var self = this;
|
||||
$("#toggleEditorMode").click(function() {
|
||||
//
|
||||
saveBookmark();
|
||||
var $a = $(this).find("a");
|
||||
var isWriting = self.isWriting($a.attr("href"));
|
||||
self.changeMode(isWriting);
|
||||
//
|
||||
restoreBookmark();
|
||||
});
|
||||
}
|
||||
// 改变模式
|
||||
editorMode.prototype.changeMode = function(isWritingMode) {
|
||||
this.toggleAText(isWritingMode);
|
||||
if(isWritingMode) {
|
||||
this.writtingMode();
|
||||
} else {
|
||||
this.normalMode();
|
||||
}
|
||||
|
||||
$("#moreBtn i").removeClass("fa-angle-up").addClass("fa-angle-down");
|
||||
}
|
||||
|
||||
editorMode.prototype.resizeEditor = function() {
|
||||
// css还没渲染完
|
||||
setTimeout(function() {
|
||||
resizeEditor();
|
||||
}, 10);
|
||||
setTimeout(function() {
|
||||
resizeEditor();
|
||||
}, 20);
|
||||
setTimeout(function() {
|
||||
resizeEditor();
|
||||
}, 500);
|
||||
}
|
||||
editorMode.prototype.normalMode = function() {
|
||||
/*
|
||||
var w = $(document).width();
|
||||
var h = $(document).height();
|
||||
$("#lock").css({right:0, bottom:0});
|
||||
*/
|
||||
|
||||
var $c = $("#editorContent_ifr").contents();
|
||||
|
||||
$c.contents().find("#writtingMode").remove();
|
||||
$c.contents().find('link[href$="editor-writting-mode.css"]').remove();
|
||||
|
||||
$("#noteItemListWrap, #notesAndSort").show();
|
||||
$("#noteList").unbind("mouseenter").unbind("mouseleave");
|
||||
|
||||
var theme = UserInfo.Theme || "default";
|
||||
theme += ".css";
|
||||
$("#themeLink").attr("href", "/css/theme/" + theme);
|
||||
|
||||
$("#mceToolbar").css("height", "30px");
|
||||
|
||||
// $("#lock").animate({right:w},1000);
|
||||
|
||||
this.resizeEditor();
|
||||
}
|
||||
editorMode.prototype.writtingMode = function() {
|
||||
/*
|
||||
// $("body").fadeOut();
|
||||
var w = $(document).width();
|
||||
var h = $(document).height();
|
||||
$("#lock").css({right:0, bottom:0});
|
||||
// $("#lock").animate({right:0}, 0);
|
||||
*/
|
||||
|
||||
$("#themeLink").attr("href", "/css/theme/writting-overwrite.css");
|
||||
|
||||
setTimeout(function() {
|
||||
var $c = $("#editorContent_ifr").contents();
|
||||
$c.contents().find("head").append('<link type="text/css" rel="stylesheet" href="/css/editor/editor-writting-mode.css" id="writtingMode">');
|
||||
}, 0);
|
||||
|
||||
$("#noteItemListWrap, #notesAndSort").fadeOut();
|
||||
$("#noteList").hover(function() {
|
||||
$("#noteItemListWrap, #notesAndSort").fadeIn();
|
||||
}, function() {
|
||||
$("#noteItemListWrap, #notesAndSort").fadeOut();
|
||||
});
|
||||
|
||||
// 点击扩展会使html的height生成, 切换后会覆盖css文件的
|
||||
$("#mceToolbar").css("height", "40px");
|
||||
|
||||
// $("#lock").animate({right:w},1000);
|
||||
// $("body").fadeIn();
|
||||
|
||||
this.resizeEditor();
|
||||
}
|
||||
|
||||
editorMode.prototype.getWritingCss = function() {
|
||||
if(this.isWritingMode) {
|
||||
return ["css/editor/editor-writting-mode.css"];
|
||||
}
|
||||
return [];
|
||||
}
|
||||
2
public/js/common-min.js
vendored
@@ -270,15 +270,35 @@ ajaxPostJson(
|
||||
*/
|
||||
|
||||
//-----------------
|
||||
|
||||
// 切换编辑器时要修改tabIndex
|
||||
function editorIframeTabindex(index) {
|
||||
var $i = $("#editorContent_ifr");
|
||||
if($i.size() == 0) {
|
||||
setTimeout(function() {
|
||||
editorIframeTabindex(index);
|
||||
}, 100);
|
||||
} else {
|
||||
$i.attr("tabindex", index);
|
||||
}
|
||||
}
|
||||
//切换编辑器
|
||||
function switchEditor(isMarkdown) {
|
||||
// 富文本永远是2
|
||||
|
||||
if(!isMarkdown) {
|
||||
$("#editor").show();
|
||||
$("#mdEditor").css("z-index", 1);
|
||||
|
||||
// 刚开始没有
|
||||
editorIframeTabindex(2);
|
||||
$("#wmd-input").attr("tabindex", 3);
|
||||
$("#leanoteNav").show();
|
||||
} else {
|
||||
$("#mdEditor").css("z-index", 3).show();
|
||||
|
||||
editorIframeTabindex(3);
|
||||
$("#wmd-input").attr("tabindex", 2);
|
||||
$("#leanoteNav").hide();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -303,9 +323,12 @@ function setEditorContent(content, isMarkdown, preview) {
|
||||
}
|
||||
} else {
|
||||
$("#wmd-input").val(content);
|
||||
$("#wmd-preview").html(""); // 防止先点有的, 再点tinymce再点没内容的
|
||||
if(!content || preview) { // 没有内容就不要解析了
|
||||
$("#wmd-preview").html(preview).css("height", "auto");
|
||||
ScrollLink.onPreviewFinished(); // 告诉scroll preview结束了
|
||||
if(ScrollLink) {
|
||||
ScrollLink.onPreviewFinished(); // 告诉scroll preview结束了
|
||||
}
|
||||
} else {
|
||||
// 还要清空preview
|
||||
if(MarkdownEditor) {
|
||||
|
||||
@@ -1 +1 @@
|
||||
var MSG = {"3th":"Third-party accounts","a":"a","aboutLeanote":"About Leanote","accountSetting":"Account","addNotebook":"Add Notebook","all":"Newest","basicInfo":"Basic","blog":"Blog","blogInfo":"You can public your knowledge and Leanote is your blog!","blue":"blue","cancel":"Cancel","checkEmai":"Check email","clickAddTag":"Click to add Tag","close":"Close","confirmPassword":"Please confirm your password","cooperation":"Cooperation","cooperationInfo":"Collaborate with friends to improve your knowledge.","create":"Create","curUser":"Email","default":"Default","defaultShare":"Default sharing","demoRegister":"您现在使用的是体验帐号, \u003ca href=\"/register\"\u003e立即注册?\u003c/a\u003e","editorTips":"Editor Tips","editorTipsInfo":"\u003ch4\u003e1. Short Cuts\u003c/h4\u003ectrl+shift+c Toggle code \u003cbr /\u003e ctrl+shift+i Insert/edit image \u003ch4\u003e2. shift+enter Get out of current block\u003c/h4\u003e eg. \u003cimg src=\"/images/outofcode.png\" style=\"width: 90px\"/\u003e in this situation you can use shift+enter to get out of current code block.","email":"Email","emailOrOthers":"Email or other contact way","findPassword":"Find password","findPasswordSendEmailOver":"We have already send the find password link to your email, please check out your email","findPasswordTimeout":"time out","forgetPassword ":" Forget password?","green":"green","hi":"Hi","history":"Histories","home":"Home","ing":"processing","inputEmail":"Email is required","inputPassword":"Password is required","inputPassword2":"Please input your password again","inputUsername":"Username(email) is required","knowledge":"Knowledge","knowledgeInfo":"Use leanote as a note, manage your knowledge in Leanote.","leanoteBlog":"Blog","leftHidden":"Hidden slide bar","leftShow":"Show slide bar","login":"Login","loginSuccess":"login success","logining":"login","logout":"Logout","moto":"Not just a note!","myBlog":"Blog","myNote":"Enter to my note","myNotebook":"My Notebook","myTag":"My Tag","nav":"Note Nav","newMarkdown":"New Markdown Note","newNote":"New Note","newPassword":"New Password","notGoodPassword":"Tt's not a good password, the length is at least 6","notebook":"Notebook","oldPassword":"Old Password","or":"or","password":"Password","password2":"Confirm your password","passwordTips":"The length is at least 6","reFindPassword":"find password again","red":"red","register":"Register","registerSuccessAndRdirectToNote":"register success, now redirect to my note...","save":"Save","send":"Send","share":"Share","shareInfo":"Share your knowledge to your friends in Leanote.","simple":"Simple","submit":"submit","suggestions":"Suggestions","suggestionsInfo":"help us to improve our service.","tag":"Tag","themeSetting":"Theme","trash":"Trash","try":"Try it","unTitled":"UnTitled","update":"Update","updateEmail":"Update Email","updatePassword":"Update password","updatePasswordSuccessRedirectToLogin":"update password success and redirect to login page...","uploadImage":"Upload Image","usernameOrEmail":"Username or email","usernameSetting":"Update Username","welcomeUseLeanote":"Welcome!","wrongEmail":"Wrong email","wrongPassword":"Wrong password","wrongUsernameOrPassword":"Wrong username or password","yellow":"yellow","yourContact":"Your contact"};
|
||||
var MSG = {"3th":"Third-party accounts","aboutLeanote":"About leanote","aboutMe":"About me","accountSetting":"Account","addNotebook":"Add notebook","all":"Newest","basicInfo":"Basic","blog":"Blog","blogInfo":"You can public your knowledge and leanote is your blog!","blogSet":"Set blog","blue":"blue","cancel":"Cancel","checkEmai":"Check email","clickAddTag":"Click to add Tag","close":"Close","confirmPassword":"Please confirm your password","cooperation":"Cooperation","cooperationInfo":"Collaborate with friends to improve your knowledge.","create":"Create","curUser":"Email","default":"Default","defaultShare":"Default sharing","demoRegister":"\u003ca href=\"/register\"\u003eSign up\u003c/a\u003e","editorTips":"Tips","editorTipsInfo":"\u003ch4\u003e1. Short cuts\u003c/h4\u003ectrl+shift+c Toggle code \u003cbr /\u003e ctrl+shift+i Insert/edit image \u003ch4\u003e2. shift+enter Get out of current block\u003c/h4\u003e eg. \u003cimg src=\"/images/outofcode.png\" style=\"width: 90px\"/\u003e in this situation you can use shift+enter to get out of current code block.","email":"Email","emailOrOthers":"Email or other contact way","findPassword":"Find password","findPasswordSendEmailOver":"We have already send the find password link to your email, please check out your email","findPasswordTimeout":"time out","forgetPassword ":" Forget password?","green":"green","hi":"Hi","history":"Histories","home":"Home","ing":"processing","inputEmail":"Email is required","inputPassword":"Password is required","inputPassword2":"Please input your password again","inputUsername":"Username(email) is required","knowledge":"Knowledge","knowledgeInfo":"Use leanote as a note, manage your knowledge in leanote.","leanoteBlog":"Blog","leftHidden":"Hidden slide bar","leftShow":"Show slide bar","login":"Sign in","loginSuccess":"login success","logining":"Sign in","logout":"Logout","moto":"your own cloud note!","myBlog":"Blog","myNote":"My note","myNotebook":"My notebook","myTag":"My tag","nav":"Note nav","newMarkdown":"New markdown note","newNote":"New note","newPassword":"New password","normalMode":"Normal Mode","notFound":"This page cann't found.","notGoodPassword":"Tt's not a good password, the length is at least 6","notebook":"Notebook","oldPassword":"Old password","or":"or","password":"Password","password2":"Confirm your password","passwordTips":"The length is at least 6","reFindPassword":"find password again","red":"red","register":"Sign up","registerSuccessAndRdirectToNote":"register success, now redirect to my note...","save":"Save","saveSuccess":"Save success","saving":"Saving","send":"Send","share":"Share","shareInfo":"Share your knowledge to your friends in leanote.","simple":"Simple","submit":"submit","suggestions":"Suggestions","suggestionsInfo":"help us to improve our service.","tag":"Tag","themeSetting":"Theme","trash":"Trash","try":"Try it","unTitled":"UnTitled","update":"Update","updateEmail":"Update email","updatePassword":"Update password","updatePasswordSuccessRedirectToLogin":"update password success and redirect to login page...","uploadImage":"Upload image","usernameOrEmail":"Username or email","usernameSetting":"Update username","welcomeUseLeanote":"Welcome!","writingMode":"Writing Mode","wrongEmail":"Wrong email","wrongPassword":"Wrong password","wrongUsernameOrPassword":"Wrong username or password","yellow":"yellow","yourContact":"Your contact","yourSuggestions":"Suggestions"};
|
||||
@@ -1 +1 @@
|
||||
var MSG = {"3th":"第三方登录","aboutLeanote":"关于Leanote","accountSetting":"帐户设置","addNotebook":"添加笔记本","all":"最新","basicInfo":"基本信息","blog":"博客","blogInfo":"将笔记公开, 让知识传播的更远!","blue":"蓝色","cancel":"取消","checkEmai":"查收邮箱","clickAddTag":"点击添加标签","close":"关闭","confirmPassword":"两次密码输入不一致","cooperation":"协作","cooperationInfo":"分享给好友的同时也可以让你的好友和你一起来完善它.","create":"创建","curUser":"当前登录帐户","default":"默认","defaultShare":"默认共享","demoRegister":"您现在使用的是体验帐号, \u003ca href=\"/register\"\u003e立即注册?\u003c/a\u003e","editorTips":"帮助","editorTipsInfo":"\u003ch4\u003e1. 快捷键\u003c/h4\u003ectrl+shift+c 代码块切换 \u003cbr /\u003e ctrl+shift+i 插入/修改图片\u003ch4\u003e2. shift+enter 跳出当前区域\u003c/h4\u003e比如在代码块中\u003cimg src=\"/images/outofcode.png\" style=\"width: 90px\"/\u003e按shift+enter可跳出当前代码块.","email":"Email","emailOrOthers":"Email或其它联系方式","findPassword":"找回密码","findPasswordSendEmailOver":"已经将修改密码的链接发送到您的邮箱, 请查收邮件.","findPasswordTimeout":"链接已过期","forgetPassword ":" 忘记密码?","green":"绿色","hi":"Hi","history":"历史记录","home":"主页","ing":"正在处理","inputEmail":"请输入Email","inputPassword":"请输入密码","inputPassword2":"请再次输入密码","inputUsername":"请输入用户名或Email","knowledge":"知识","knowledgeInfo":"leanote是一个笔记, 你可以用它来管理自己的知识.","leanoteBlog":"官方博客","leftHidden":"隐藏左侧","leftShow":"展开左侧","login":"登录","loginSuccess":"登录成功, 正在跳转","logining":"正在登录","logout":"退出","moto":"不一样的笔记!","myBlog":"我的博客","myNote":"进入我的笔记","myNotebook":"我的笔记本","myTag":"我的标签","nav":"文档导航","newMarkdown":"新建Markdown笔记","newNote":"新建笔记","newPassword":"新密码","notGoodPassword":"密码至少6位","notebook":"笔记本","oldPassword":"旧密码","or":"或","password":"密码","password2":"确认密码","passwordTips":"密码至少6位","reFindPassword":"重新找回密码","red":"红色","register":"注册","registerSuccessAndRdirectToNote":"注册成功, 正在转至我的笔记...","save":"保存","send":"发送","share":"分享","shareInfo":"你也可以将知识分享给你的好友.","simple":"简约","submit":"提交","suggestions":"您的建议","suggestionsInfo":"帮助我们完善leanote","tag":"标签","themeSetting":"主题设置","trash":"废纸篓","try":"体验一下","unTitled":"无标题","update":"更新","updateEmail":"修改Email","updatePassword":"修改密码","updatePasswordSuccessRedirectToLogin":"修改成功, 正在跳转到登录页","uploadImage":"上传图片","usernameOrEmail":"用户名或Email","usernameSetting":"用户名设置","welcomeUseLeanote":"欢迎使用Leanote","wrongEmail":"Email格式有误","wrongPassword":"密码有误","wrongUsernameOrPassword":"用户名或密码有误","yellow":"黄色","yourContact":"您的联系方式"};
|
||||
var MSG = {"3th":"第三方登录","aboutLeanote":"关于leanote","aboutMe":"关于我","accountSetting":"帐户设置","addNotebook":"添加笔记本","all":"最新","basicInfo":"基本信息","blog":"博客","blogInfo":"将笔记公开, 让知识传播的更远!","blogSet":"博客设置","blue":"蓝色","cancel":"取消","checkEmai":"查收邮箱","clickAddTag":"点击添加标签","close":"关闭","confirmPassword":"两次密码输入不一致","cooperation":"协作","cooperationInfo":"分享给好友的同时也可以让你的好友和你一起来完善它.","create":"创建","curUser":"当前登录帐户","default":"默认","defaultShare":"默认共享","demoRegister":"\u003ca href=\"/register\"\u003e立即注册\u003c/a\u003e","editorTips":"帮助","editorTipsInfo":"\u003ch4\u003e1. 快捷键\u003c/h4\u003ectrl+shift+c 代码块切换 \u003cbr /\u003e ctrl+shift+i 插入/修改图片\u003ch4\u003e2. shift+enter 跳出当前区域\u003c/h4\u003e比如在代码块中\u003cimg src=\"/images/outofcode.png\" style=\"width: 90px\"/\u003e按shift+enter可跳出当前代码块.","email":"Email","emailOrOthers":"Email或其它联系方式","findPassword":"找回密码","findPasswordSendEmailOver":"已经将修改密码的链接发送到您的邮箱, 请查收邮件.","findPasswordTimeout":"链接已过期","forgetPassword ":" 忘记密码?","green":"绿色","hi":"Hi","history":"历史记录","home":"主页","ing":"正在处理","inputEmail":"请输入Email","inputPassword":"请输入密码","inputPassword2":"请再次输入密码","inputUsername":"请输入用户名或Email","knowledge":"知识","knowledgeInfo":"leanote是一个笔记, 你可以用它来管理自己的知识.","leanoteBlog":"官方博客","leftHidden":"隐藏左侧","leftShow":"展开左侧","login":"登录","loginSuccess":"登录成功, 正在跳转","logining":"正在登录","logout":"退出","moto":"不一样的笔记!","myBlog":"我的博客","myNote":"我的笔记","myNotebook":"我的笔记本","myTag":"我的标签","nav":"文档导航","newMarkdown":"新建Markdown笔记","newNote":"新建笔记","newPassword":"新密码","normalMode":"普通模式","notFound":"该页面不存在","notGoodPassword":"密码至少6位","notebook":"笔记本","oldPassword":"旧密码","or":"或","password":"密码","password2":"确认密码","passwordTips":"密码至少6位","reFindPassword":"重新找回密码","red":"红色","register":"注册","registerSuccessAndRdirectToNote":"注册成功, 正在转至我的笔记...","save":"保存","saveSuccess":"保存成功","saving":"正在保存","send":"发送","share":"分享","shareInfo":"你也可以将知识分享给你的好友.","simple":"简约","submit":"提交","suggestions":"建议","suggestionsInfo":"帮助我们完善leanote","tag":"标签","themeSetting":"主题设置","trash":"废纸篓","try":"体验一下","unTitled":"无标题","update":"更新","updateEmail":"修改Email","updatePassword":"修改密码","updatePasswordSuccessRedirectToLogin":"修改成功, 正在跳转到登录页","uploadImage":"上传图片","usernameOrEmail":"用户名或Email","usernameSetting":"用户名设置","welcomeUseLeanote":"欢迎使用leanote","writingMode":"写作模式","wrongEmail":"Email格式有误","wrongPassword":"密码有误","wrongUsernameOrPassword":"用户名或密码有误","yellow":"黄色","yourContact":"您的联系方式","yourSuggestions":"帮助完善leanote"};
|
||||
@@ -818,4 +818,4 @@ LEA.isMobile = u.indexOf('Android')>-1 || u.indexOf('Linux')>-1;
|
||||
// 国际化
|
||||
function getMsg(key) {
|
||||
return MSG[key] || key;
|
||||
}
|
||||
}
|
||||
|
||||
1
public/mobile2/README.md
Normal file
@@ -0,0 +1 @@
|
||||
angularjs mobile
|
||||
330
public/mobile2/css/styles.css
Normal file
@@ -0,0 +1,330 @@
|
||||
.back-button {
|
||||
top: 10px;
|
||||
position: absolute;
|
||||
}
|
||||
.scroller {
|
||||
overflow: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
position: absolute;
|
||||
top: 168px;
|
||||
bottom: 0px;
|
||||
left: 0px;
|
||||
right: 0px;
|
||||
}
|
||||
.topcoat-icon--back {
|
||||
background: url("images/back_light.svg") no-repeat;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
background-size: cover;
|
||||
}
|
||||
.count {
|
||||
color: #5DC1FF;
|
||||
position: absolute;
|
||||
right: 50px;
|
||||
top: 26px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.search-bar {
|
||||
padding: 10px 10px 12px 8px;
|
||||
}
|
||||
.search-bar > input {
|
||||
width: 100%;
|
||||
}
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-tap-highlight-color: #000000;
|
||||
}
|
||||
.details {
|
||||
margin: auto;
|
||||
}
|
||||
.details > img {
|
||||
float: left;
|
||||
margin: 10px;
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
}
|
||||
.details h1 {
|
||||
padding: 12px 0px 4px 0px;
|
||||
margin: 0px 0px 0px 0px;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
.details h2 {
|
||||
padding: 0px 0px 0px 0px;
|
||||
margin: 0px 0px 0px 0px;
|
||||
font-size: 1.1rem;
|
||||
font-weight: normal;
|
||||
color: #888;
|
||||
}
|
||||
.list {
|
||||
list-style-type: none;
|
||||
}
|
||||
.list > li {
|
||||
position: relative;
|
||||
clear: both;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
.list > li:nth-of-type(1) {
|
||||
border-top: none;
|
||||
}
|
||||
.list > li > a {
|
||||
margin: 0px;
|
||||
display: block;
|
||||
height: 57px;
|
||||
line-height: 57px;
|
||||
padding-left: 20px;
|
||||
}
|
||||
.list > li > a > p:nth-of-type(1) {
|
||||
margin: 8px 0px 0px 0px;
|
||||
font-weight: bold;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
.list > li p:nth-of-type(2) {
|
||||
margin: 0px;
|
||||
color: #777;
|
||||
}
|
||||
.list > li img {
|
||||
width: 57px;
|
||||
height: 57px;
|
||||
float: left;
|
||||
margin-right: 8px;
|
||||
}
|
||||
.list li:active {
|
||||
background-color: #d6d6d6;
|
||||
}
|
||||
.actions > li > a {
|
||||
padding-left: 12px;
|
||||
}
|
||||
.action-icon {
|
||||
position: absolute !important;
|
||||
top: 18px;
|
||||
right: 20px !important;
|
||||
width: 28px !important;
|
||||
height: 28px;
|
||||
}
|
||||
.actions li p:nth-of-type(1) {
|
||||
color: #5DC1FF;
|
||||
font-size: 0.9em;
|
||||
font-weight: lighter;
|
||||
}
|
||||
.actions li p:nth-of-type(2) {
|
||||
color: inherit;
|
||||
}
|
||||
ul {
|
||||
clear: both;
|
||||
border-top: none !important;
|
||||
}
|
||||
.icon-call {
|
||||
background: transparent url(images/call.svg);
|
||||
background-repeat: no-repeat;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
background-size: cover;
|
||||
}
|
||||
.icon-sms {
|
||||
background: transparent url(images/chat.svg);
|
||||
background-repeat: no-repeat;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
background-size: cover;
|
||||
}
|
||||
.icon-mail {
|
||||
background: transparent url(images/email.svg);
|
||||
background-repeat: no-repeat;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
background-size: cover;
|
||||
}
|
||||
.icon-manager {
|
||||
background: transparent url(images/next.svg);
|
||||
background-repeat: no-repeat;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
background-size: cover;
|
||||
}
|
||||
.icon-reports {
|
||||
background: transparent url(images/next.svg);
|
||||
background-repeat: no-repeat;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
background-size: cover;
|
||||
}
|
||||
.chevron {
|
||||
background: transparent url(images/next_blue.svg);
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
position: absolute;
|
||||
right: 12px;
|
||||
top: 20px;
|
||||
height: 50px;
|
||||
width: 28px;
|
||||
}
|
||||
.slide-left.ng-enter,
|
||||
.slide-left.ng-leave,
|
||||
.slide-right.ng-enter,
|
||||
.slide-right.ng-leave {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background: inherit;
|
||||
-ms-transition: 0.25s ease-in-out;
|
||||
-webkit-transition: 0.25s ease-in-out;
|
||||
transition: 0.25s ease-in-out;
|
||||
}
|
||||
.slide-left.ng-enter {
|
||||
z-index: 101;
|
||||
-webkit-transform: translateX(100%);
|
||||
transform: translateX(100%);
|
||||
}
|
||||
.slide-left.ng-enter.ng-enter-active {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
.slide-left.ng-leave {
|
||||
z-index: 100;
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
.slide-left.ng-leave.ng-leave-active {
|
||||
-webkit-transform: translateX(-100%);
|
||||
transform: translateX(-100%);
|
||||
}
|
||||
.slide-right.ng-enter {
|
||||
z-index: 100;
|
||||
-webkit-transform: translateX(-100%);
|
||||
transform: translateX(-100%);
|
||||
}
|
||||
.slide-right.ng-enter.ng-enter-active {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
.slide-right.ng-leave {
|
||||
z-index: 101;
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
.slide-right.ng-leave.ng-leave-active {
|
||||
-webkit-transform: translateX(100%);
|
||||
transform: translateX(100%);
|
||||
}
|
||||
.page-content {
|
||||
background-color: #FFFFFF;
|
||||
z-index: 10;
|
||||
display: block;
|
||||
position: absolute;
|
||||
min-height: 100%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
.page-sidebar {
|
||||
width: 262px;
|
||||
display: block;
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
bottom: 0px;
|
||||
overflow: hidden;
|
||||
position: fixed;
|
||||
}
|
||||
/* life */
|
||||
.bar-left,
|
||||
.bar-right,
|
||||
.bar-center {
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
line-height: 3.375rem;
|
||||
display: inline-block;
|
||||
}
|
||||
.bar-center {
|
||||
left: 50px;
|
||||
right: 50px;
|
||||
top: 0;
|
||||
}
|
||||
.bar-left {
|
||||
left: 10px;
|
||||
top: 3px;
|
||||
}
|
||||
.bar-right {
|
||||
right: 10px;
|
||||
top: 3px;
|
||||
}
|
||||
.bar-left i,
|
||||
.bar-right i {
|
||||
display: inline-block;
|
||||
font-size: 24px;
|
||||
cursor: pointer;
|
||||
line-height: 2.2rem;
|
||||
height: 2.2rem;
|
||||
width: 2.2rem;
|
||||
letter-spacing: 1px;
|
||||
color: #454545;
|
||||
border-radius: 6px;
|
||||
}
|
||||
.bar-left i:hover,
|
||||
.bar-right i:hover {
|
||||
text-shadow: 0 1px #fff;
|
||||
border: 1px solid #9daca9;
|
||||
box-shadow: inset 0 1px #fff;
|
||||
background-color: #eff1f1;
|
||||
}
|
||||
#noteContent {
|
||||
padding: 10px;
|
||||
margin-top: 50px;
|
||||
background-color: #fff;
|
||||
}
|
||||
#noteContent * {
|
||||
font-size: 16px;
|
||||
}
|
||||
#noteContent pre {
|
||||
background-color: #eee;
|
||||
padding: 10px;
|
||||
border-radius: 5px;
|
||||
word-wrap: break-word;
|
||||
overflow: hidden;
|
||||
}
|
||||
#sidebar {
|
||||
padding: 10px;
|
||||
font-size: 16px;
|
||||
}
|
||||
#sidebar h1 {
|
||||
font-size: 24px;
|
||||
}
|
||||
#sidebar ul {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#sidebar ul li {
|
||||
line-height: 3em;
|
||||
padding-left: 10px;
|
||||
width: 60%;
|
||||
border-bottom: 1px solid #9daca9;
|
||||
cursor: pointer;
|
||||
}
|
||||
#sidebar footer {
|
||||
line-height: 3em;
|
||||
padding-left: 10px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.topcoat-navigation-bar {
|
||||
height: 3.375rem;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
z-index: 10;
|
||||
}
|
||||
.search-bar {
|
||||
margin-top: 3.375em;
|
||||
}
|
||||
370
public/mobile2/css/styles.less
Normal file
@@ -0,0 +1,370 @@
|
||||
.back-button {
|
||||
top: 10px;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.scroller {
|
||||
overflow: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
position: absolute;
|
||||
top: 168px;
|
||||
bottom: 0px;
|
||||
left: 0px;
|
||||
right: 0px;
|
||||
}
|
||||
|
||||
.topcoat-icon--back {
|
||||
background: url("images/back_light.svg") no-repeat;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.count {
|
||||
color: #5DC1FF;
|
||||
position: absolute;
|
||||
right: 50px;
|
||||
top: 26px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.search-bar {
|
||||
padding:10px 10px 12px 8px;
|
||||
}
|
||||
|
||||
.search-bar > input {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-tap-highlight-color: rgb(0, 0, 0);
|
||||
}
|
||||
|
||||
.details {
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.details>img {
|
||||
float:left;
|
||||
margin:10px;
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
}
|
||||
|
||||
.details h1 {
|
||||
padding: 12px 0px 4px 0px;
|
||||
margin: 0px 0px 0px 0px;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.details h2 {
|
||||
padding: 0px 0px 0px 0px;
|
||||
margin: 0px 0px 0px 0px;
|
||||
font-size: 1.1rem;
|
||||
font-weight: normal;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.list {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
.list > li {
|
||||
position: relative;
|
||||
clear: both;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.list > li:nth-of-type(1) {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.list > li > a {
|
||||
margin: 0px;
|
||||
display: block;
|
||||
height: 57px;
|
||||
line-height: 57px;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
|
||||
.list > li > a > p:nth-of-type(1) {
|
||||
margin: 8px 0px 0px 0px;
|
||||
font-weight: bold;
|
||||
text-overflow:ellipsis; white-space:nowrap; overflow:hidden
|
||||
}
|
||||
|
||||
.list > li p:nth-of-type(2) {
|
||||
margin: 0px;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.list > li img {
|
||||
width: 57px;
|
||||
height: 57px;
|
||||
float: left;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.list li:active {
|
||||
background-color: #d6d6d6;
|
||||
}
|
||||
|
||||
.actions > li > a {
|
||||
padding-left: 12px;
|
||||
}
|
||||
|
||||
.action-icon {
|
||||
position: absolute !important;
|
||||
top: 18px;
|
||||
right: 20px !important;
|
||||
width: 28px !important;
|
||||
height: 28px;
|
||||
}
|
||||
|
||||
.actions li p:nth-of-type(1) {
|
||||
color: #5DC1FF;
|
||||
font-size: 0.9em;
|
||||
font-weight: lighter;
|
||||
}
|
||||
|
||||
.actions li p:nth-of-type(2) {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
ul {
|
||||
clear:both;
|
||||
border-top: none !important;
|
||||
}
|
||||
|
||||
.icon-call {
|
||||
background: transparent url(images/call.svg);
|
||||
background-repeat: no-repeat;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.icon-sms {
|
||||
background: transparent url(images/chat.svg);
|
||||
background-repeat: no-repeat;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.icon-mail {
|
||||
background: transparent url(images/email.svg);
|
||||
background-repeat: no-repeat;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.icon-manager {
|
||||
background: transparent url(images/next.svg);
|
||||
background-repeat: no-repeat;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.icon-reports {
|
||||
background: transparent url(images/next.svg);
|
||||
background-repeat: no-repeat;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.chevron {
|
||||
background: transparent url(images/next_blue.svg);
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
position: absolute;
|
||||
right: 12px;
|
||||
top: 20px;
|
||||
height: 50px;
|
||||
width: 28px;
|
||||
}
|
||||
|
||||
.slide-left.ng-enter,
|
||||
.slide-left.ng-leave,
|
||||
.slide-right.ng-enter,
|
||||
.slide-right.ng-leave {
|
||||
position: absolute;
|
||||
top: 0; right: 0; bottom: 0; left: 0;
|
||||
background: inherit;
|
||||
-ms-transition: .25s ease-in-out;
|
||||
-webkit-transition: .25s ease-in-out;
|
||||
transition: .25s ease-in-out;
|
||||
}
|
||||
|
||||
|
||||
.slide-left.ng-enter {
|
||||
z-index: 101;
|
||||
-webkit-transform: translateX(100%);
|
||||
transform: translateX(100%);
|
||||
}
|
||||
|
||||
.slide-left.ng-enter.ng-enter-active {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
.slide-left.ng-leave {
|
||||
z-index: 100;
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
.slide-left.ng-leave.ng-leave-active {
|
||||
-webkit-transform: translateX(-100%);
|
||||
transform: translateX(-100%);
|
||||
}
|
||||
|
||||
.slide-right.ng-enter {
|
||||
z-index: 100;
|
||||
-webkit-transform: translateX(-100%);
|
||||
transform: translateX(-100%);
|
||||
}
|
||||
|
||||
.slide-right.ng-enter.ng-enter-active {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
.slide-right.ng-leave {
|
||||
z-index: 101;
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
.slide-right.ng-leave.ng-leave-active {
|
||||
-webkit-transform: translateX(100%);
|
||||
transform: translateX(100%);
|
||||
}
|
||||
|
||||
//--------------------
|
||||
.page-content{
|
||||
background-color:#FFFFFF;
|
||||
z-index:10;
|
||||
display:block;
|
||||
position:absolute;
|
||||
min-height:100%;
|
||||
left:0;right:0;top:0;bottom:0;
|
||||
}
|
||||
|
||||
.page-sidebar{
|
||||
width:262px;
|
||||
display:block;
|
||||
position:absolute;
|
||||
z-index:2;
|
||||
top:0px;
|
||||
left:0px;
|
||||
bottom:0px;
|
||||
overflow:hidden;
|
||||
position:fixed;
|
||||
}
|
||||
|
||||
/* life */
|
||||
.bar-left,
|
||||
.bar-right,
|
||||
.bar-center {
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
line-height: 3.375rem;
|
||||
display: inline-block;
|
||||
}
|
||||
.bar-center {
|
||||
left:50px;
|
||||
right:50px;
|
||||
top:0;
|
||||
}
|
||||
.bar-left {
|
||||
left:10px;
|
||||
top:3px;
|
||||
}
|
||||
.bar-right {
|
||||
right:10px;
|
||||
top: 3px;
|
||||
}
|
||||
|
||||
.bar-left i,
|
||||
.bar-right i {
|
||||
display: inline-block;
|
||||
font-size: 24px;
|
||||
cursor: pointer;
|
||||
line-height: 2.2rem;
|
||||
height: 2.2rem;
|
||||
width: 2.2rem;
|
||||
letter-spacing: 1px;
|
||||
color: #454545;
|
||||
border-radius: 6px;
|
||||
}
|
||||
.bar-left i:hover, .bar-right i:hover {
|
||||
text-shadow: 0 1px #fff;
|
||||
border: 1px solid #9daca9;
|
||||
box-shadow: inset 0 1px #fff;
|
||||
background-color: #eff1f1;
|
||||
}
|
||||
|
||||
#noteContent {
|
||||
padding: 10px;
|
||||
margin-top: 50px;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
#noteContent * {
|
||||
font-size: 16px;
|
||||
}
|
||||
#noteContent pre {
|
||||
background-color: #eee;
|
||||
padding: 10px;
|
||||
border-radius: 5px;
|
||||
word-wrap:break-word; overflow:hidden
|
||||
}
|
||||
|
||||
#sidebar {
|
||||
padding: 10px;
|
||||
font-size: 16px;
|
||||
h1 {
|
||||
font-size: 24px;
|
||||
}
|
||||
ul {
|
||||
list-style: none;
|
||||
margin:0;
|
||||
padding:0;
|
||||
li {
|
||||
line-height: 3em;
|
||||
padding-left:10px;
|
||||
width: 60%;
|
||||
border-bottom: 1px solid #9daca9;
|
||||
&:hover {
|
||||
}
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
footer {
|
||||
line-height: 3em;
|
||||
padding-left: 10px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.topcoat-navigation-bar {
|
||||
height: 3.375rem;
|
||||
position: fixed;
|
||||
left:0;right:0;
|
||||
top:0;
|
||||
z-index:10;
|
||||
}
|
||||
.search-bar {
|
||||
margin-top: 3.375em;
|
||||
}
|
||||
46
public/mobile2/index.html
Normal file
@@ -0,0 +1,46 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
|
||||
<link href="topcoat/css/topcoat-mobile-light.min.css" rel="stylesheet">
|
||||
<link href="css/styles.css" rel="stylesheet">
|
||||
|
||||
</head>
|
||||
|
||||
<body ng-controller="MainCtrl">
|
||||
|
||||
<div id="sidebar" class="page-sidebar">
|
||||
<header>leanote</header>
|
||||
<ul id="nav">
|
||||
<li><a href="#" ng-click="go('/employees')">最新笔记</a></li>
|
||||
<li>我的笔记本</li>
|
||||
<li>我的标签</li>
|
||||
</ul>
|
||||
<footer>
|
||||
注销
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<div id="content" class="page-content">
|
||||
<div ng-view ng-class="slide" >
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="lib/angular.js"></script>
|
||||
<script src="lib/angular-touch.js"></script>
|
||||
<script src="lib/angular-resource.js"></script>
|
||||
<script src="lib/angular-animate.js"></script>
|
||||
<script src="lib/angular-route.js"></script>
|
||||
<script src="js/app.js"></script>
|
||||
<script src="js/controllers.js"></script>
|
||||
<script src="js/memory-services.js"></script>
|
||||
<script src="js/snap.js"></script>
|
||||
<script src="js/page.js"></script>
|
||||
<script>
|
||||
angular.element(document).ready(function() {
|
||||
angular.bootstrap(document, ['myApp']);
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
24
public/mobile2/js/app.js
Normal file
@@ -0,0 +1,24 @@
|
||||
'use strict';
|
||||
|
||||
function log(o) {
|
||||
console.log(o);
|
||||
}
|
||||
|
||||
angular.module('myApp', [
|
||||
'ngTouch',
|
||||
'ngRoute',
|
||||
'ngAnimate',
|
||||
'myApp.controllers',
|
||||
'myApp.services'
|
||||
]).
|
||||
config(['$routeProvider', '$interpolateProvider', function ($routeProvider, $interpolateProvider) {
|
||||
|
||||
$interpolateProvider.startSymbol('[[');
|
||||
$interpolateProvider.endSymbol(']]');
|
||||
|
||||
$routeProvider.when('/notebooks', {templateUrl: '/public/mobile2/tpl/notebooks.html', controller: 'NotebookListCtrl'});
|
||||
$routeProvider.when('/notes/:notebookId', {templateUrl: '/public/mobile2/tpl/notes.html', controller: 'NoteListCtrl'});
|
||||
$routeProvider.when('/note/:noteId', {templateUrl: '/public/mobile2/tpl/note.html', controller: 'NoteCtrl'});
|
||||
$routeProvider.otherwise({redirectTo: '/notebooks'});
|
||||
}]);
|
||||
|
||||
69
public/mobile2/js/controllers.js
Normal file
@@ -0,0 +1,69 @@
|
||||
'use strict';
|
||||
|
||||
// module里定义controller, 注入service
|
||||
// service相当于公共服务, golang的service总是与数据打交道
|
||||
angular.module('myApp.controllers', [])
|
||||
.controller('MainCtrl', ['$scope', '$rootScope', '$window', '$location', function ($scope, $rootScope, $window, $location) {
|
||||
$scope.slide = '';
|
||||
|
||||
var snapper;
|
||||
setTimeout(function() {
|
||||
snapper = new Snap({
|
||||
element: document.getElementById('content')
|
||||
});
|
||||
}, 10);
|
||||
|
||||
function openMenu() {
|
||||
// 这个时候, 可以调出slider
|
||||
if(snapper.state().state=="left" ){
|
||||
snapper.close();
|
||||
} else {
|
||||
snapper.open('left');
|
||||
}
|
||||
}
|
||||
|
||||
$rootScope.back = function() {
|
||||
$scope.slide = 'slide-right';
|
||||
snapper.close();
|
||||
$window.history.back();
|
||||
}
|
||||
$rootScope.go = function(path){
|
||||
$scope.slide = 'slide-left';
|
||||
snapper.close();
|
||||
$location.url(path);
|
||||
}
|
||||
|
||||
// 菜单
|
||||
$rootScope.menu = function() {
|
||||
openMenu();
|
||||
}
|
||||
|
||||
// 国际化
|
||||
$rootScope.msg = MSG;
|
||||
}])
|
||||
.controller('NotebookListCtrl', ['$scope', 'Notebook', function ($scope, Notebook) {
|
||||
Notebook.getNotebooks(function(notebooks) {
|
||||
$scope.notebooks = notebooks;
|
||||
});
|
||||
}])
|
||||
.controller('NoteListCtrl', ['$scope', '$routeParams', 'Notebook', function ($scope, $routeParams, Notebook) {
|
||||
if($routeParams.notebookId == "all") {
|
||||
$routeParams.notebookId = "";
|
||||
$scope.notebook = {Title: getMsg("all")}
|
||||
} else {
|
||||
Notebook.getNotebook($routeParams.notebookId, function(notebook) {
|
||||
$scope.notebook = notebook;
|
||||
});
|
||||
}
|
||||
Notebook.getNotes($routeParams.notebookId, function(notes) {
|
||||
$scope.notes = notes;
|
||||
});
|
||||
}])
|
||||
.controller('NoteCtrl', ['$scope','$routeParams', '$sce', 'Note', function ($scope, $routeParams, $sce, Note) {
|
||||
Note.getNote($routeParams.noteId, function(note) {
|
||||
if(note.Content && !note.RawContent) {
|
||||
note.RawContent = $sce.trustAsHtml(note.Content);
|
||||
}
|
||||
$scope.note = note;
|
||||
});
|
||||
}])
|
||||
91
public/mobile2/js/services.js
Normal file
@@ -0,0 +1,91 @@
|
||||
|
||||
// services
|
||||
|
||||
angular.module('myApp.services', [])
|
||||
// Note
|
||||
.factory('Note', ["$http", function($http) {
|
||||
var self = this;
|
||||
|
||||
self.notesMap = {}; // noteId => note
|
||||
|
||||
var e = {};
|
||||
|
||||
// 得到Note
|
||||
e.getNote = function(noteId, callback) {
|
||||
if(self.notesMap[noteId]) {
|
||||
if(!self.notesMap[noteId].Content) {
|
||||
$http.get("/note/getNoteContent", {params:{noteId: noteId}}).success(function(ret) {
|
||||
$.extend(self.notesMap[noteId], ret);
|
||||
callback(self.notesMap[noteId]);
|
||||
});
|
||||
}
|
||||
callback(self.notesMap[noteId]);
|
||||
} else {
|
||||
$http.get("/note/getNoteAndContent", {params:{noteId: noteId}}).success(function(ret) {
|
||||
self.notesMap[noteId] = ret;
|
||||
callback(self.notesMap[noteId]);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Notebook调用
|
||||
e.setCache = function(notes) {
|
||||
for(var i in notes) {
|
||||
var note = notes[i];
|
||||
self.notesMap[note.NoteId] = note;
|
||||
}
|
||||
}
|
||||
|
||||
return e;
|
||||
}])
|
||||
|
||||
// Notebook
|
||||
.factory('Notebook', ["$http", "Note",function ($http, Note) {
|
||||
var self = this;
|
||||
self.notebooks = [];
|
||||
self.notebooksMap = {};
|
||||
|
||||
self.notes = {}; // notebookId=>[note]
|
||||
self.notesMap = {}; // noteId => note
|
||||
|
||||
var e = {};
|
||||
e.getNotebooks = function(callback) {
|
||||
if(!callback) {
|
||||
callback = function() {};
|
||||
}
|
||||
if(self.notebooks.length > 0) callback(self.notebooks);
|
||||
else {
|
||||
$http.get("/notebook/getNotebooks").success(function(ret) {
|
||||
self.notebooks = ret;
|
||||
for(var i in ret) {
|
||||
var notebook = ret[i];
|
||||
self.notebooksMap[notebook.NotebookId] = notebook;
|
||||
}
|
||||
callback(ret);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
e.getNotebook = function(notebookId, callback) {
|
||||
if(self.notebooksMap[notebookId]) callback(self.notebooksMap[notebookId]);
|
||||
else {
|
||||
e.getNotebooks(function() {
|
||||
callback(self.notebooksMap[notebookId]);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
e.getNotes = function(notebookId, callback) {
|
||||
if(self.notes[notebookId]) callback(self.notes[notebookId]);
|
||||
else {
|
||||
$http.get("/note/listNotes", {params:{notebookId: notebookId}}).success(function(ret) {
|
||||
self.notes[notebookId] = ret;
|
||||
callback(ret);
|
||||
// 存到Note中
|
||||
Note.setCache(ret);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return e;
|
||||
}]);
|
||||
568
public/mobile2/js/snap.js
Normal file
@@ -0,0 +1,568 @@
|
||||
/*
|
||||
* Snap.js
|
||||
*
|
||||
* Copyright 2013, Jacob Kelley - http://jakiestfu.com/
|
||||
* Released under the MIT Licence
|
||||
* http://opensource.org/licenses/MIT
|
||||
*
|
||||
* Github: http://github.com/jakiestfu/Snap.js/
|
||||
* Version: 1.9.2
|
||||
*/
|
||||
/*jslint browser: true*/
|
||||
/*global define, module, ender*/
|
||||
(function(win, doc) {
|
||||
'use strict';
|
||||
var Snap = Snap || function(userOpts) {
|
||||
var settings = {
|
||||
element: null,
|
||||
dragger: null,
|
||||
disable: 'right',
|
||||
addBodyClasses: true,
|
||||
hyperextensible: false,
|
||||
resistance: 0.5,
|
||||
flickThreshold: 50,
|
||||
transitionSpeed: 0.3,
|
||||
easing: 'ease-in-out',
|
||||
maxPosition: 260,
|
||||
minPosition: 0,
|
||||
tapToClose: true,
|
||||
touchToDrag: true,
|
||||
slideIntent: 40, // degrees
|
||||
minDragDistance: 5
|
||||
},
|
||||
cache = {
|
||||
simpleStates: {
|
||||
opening: null,
|
||||
towards: null,
|
||||
hyperExtending: null,
|
||||
halfway: null,
|
||||
flick: null,
|
||||
translation: {
|
||||
absolute: 0,
|
||||
relative: 0,
|
||||
sinceDirectionChange: 0,
|
||||
percentage: 0
|
||||
}
|
||||
}
|
||||
},
|
||||
eventList = {},
|
||||
utils = {
|
||||
hasTouch: (doc.ontouchstart === null),
|
||||
eventType: function(action) {
|
||||
var eventTypes = {
|
||||
down: (utils.hasTouch ? 'touchstart' : 'mousedown'),
|
||||
move: (utils.hasTouch ? 'touchmove' : 'mousemove'),
|
||||
up: (utils.hasTouch ? 'touchend' : 'mouseup'),
|
||||
out: (utils.hasTouch ? 'touchcancel' : 'mouseout')
|
||||
};
|
||||
return eventTypes[action];
|
||||
},
|
||||
page: function(t, e){
|
||||
return (utils.hasTouch && e.touches.length && e.touches[0]) ? e.touches[0]['page'+t] : e['page'+t];
|
||||
},
|
||||
klass: {
|
||||
has: function(el, name){
|
||||
return (el.className).indexOf(name) !== -1;
|
||||
},
|
||||
add: function(el, name){
|
||||
if(!utils.klass.has(el, name) && settings.addBodyClasses){
|
||||
el.className += " "+name;
|
||||
}
|
||||
},
|
||||
remove: function(el, name){
|
||||
if(settings.addBodyClasses){
|
||||
el.className = (el.className).replace(name, "").replace(/^\s+|\s+$/g, '');
|
||||
}
|
||||
}
|
||||
},
|
||||
dispatchEvent: function(type) {
|
||||
if (typeof eventList[type] === 'function') {
|
||||
return eventList[type].call();
|
||||
}
|
||||
},
|
||||
vendor: function(){
|
||||
var tmp = doc.createElement("div"),
|
||||
prefixes = 'webkit Moz O ms'.split(' '),
|
||||
i;
|
||||
for (i in prefixes) {
|
||||
if (typeof tmp.style[prefixes[i] + 'Transition'] !== 'undefined') {
|
||||
return prefixes[i];
|
||||
}
|
||||
}
|
||||
},
|
||||
transitionCallback: function(){
|
||||
return (cache.vendor==='Moz' || cache.vendor==='ms') ? 'transitionend' : cache.vendor+'TransitionEnd';
|
||||
},
|
||||
canTransform: function(){
|
||||
return typeof settings.element.style[cache.vendor+'Transform'] !== 'undefined';
|
||||
},
|
||||
deepExtend: function(destination, source) {
|
||||
var property;
|
||||
for (property in source) {
|
||||
if (source[property] && source[property].constructor && source[property].constructor === Object) {
|
||||
destination[property] = destination[property] || {};
|
||||
utils.deepExtend(destination[property], source[property]);
|
||||
} else {
|
||||
destination[property] = source[property];
|
||||
}
|
||||
}
|
||||
return destination;
|
||||
},
|
||||
angleOfDrag: function(x, y) {
|
||||
var degrees, theta;
|
||||
// Calc Theta
|
||||
theta = Math.atan2(-(cache.startDragY - y), (cache.startDragX - x));
|
||||
if (theta < 0) {
|
||||
theta += 2 * Math.PI;
|
||||
}
|
||||
// Calc Degrees
|
||||
degrees = Math.floor(theta * (180 / Math.PI) - 180);
|
||||
if (degrees < 0 && degrees > -180) {
|
||||
degrees = 360 - Math.abs(degrees);
|
||||
}
|
||||
return Math.abs(degrees);
|
||||
},
|
||||
events: {
|
||||
addEvent: function addEvent(element, eventName, func) {
|
||||
if (element.addEventListener) {
|
||||
return element.addEventListener(eventName, func, false);
|
||||
} else if (element.attachEvent) {
|
||||
return element.attachEvent("on" + eventName, func);
|
||||
}
|
||||
},
|
||||
removeEvent: function addEvent(element, eventName, func) {
|
||||
if (element.addEventListener) {
|
||||
return element.removeEventListener(eventName, func, false);
|
||||
} else if (element.attachEvent) {
|
||||
return element.detachEvent("on" + eventName, func);
|
||||
}
|
||||
},
|
||||
prevent: function(e) {
|
||||
if (e.preventDefault) {
|
||||
e.preventDefault();
|
||||
} else {
|
||||
e.returnValue = false;
|
||||
}
|
||||
}
|
||||
},
|
||||
parentUntil: function(el, attr) {
|
||||
var isStr = typeof attr === 'string';
|
||||
while (el.parentNode) {
|
||||
if (isStr && el.getAttribute && el.getAttribute(attr)){
|
||||
return el;
|
||||
} else if(!isStr && el === attr){
|
||||
return el;
|
||||
}
|
||||
el = el.parentNode;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
},
|
||||
action = {
|
||||
translate: {
|
||||
get: {
|
||||
matrix: function(index) {
|
||||
|
||||
if( !utils.canTransform() ){
|
||||
return parseInt(settings.element.style.left, 10);
|
||||
} else {
|
||||
var matrix = win.getComputedStyle(settings.element)[cache.vendor+'Transform'].match(/\((.*)\)/),
|
||||
ieOffset = 8;
|
||||
if (matrix) {
|
||||
matrix = matrix[1].split(',');
|
||||
if(matrix.length===16){
|
||||
index+=ieOffset;
|
||||
}
|
||||
return parseInt(matrix[index], 10);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
},
|
||||
easeCallback: function(){
|
||||
settings.element.style[cache.vendor+'Transition'] = '';
|
||||
cache.translation = action.translate.get.matrix(4);
|
||||
cache.easing = false;
|
||||
clearInterval(cache.animatingInterval);
|
||||
|
||||
if(cache.easingTo===0){
|
||||
utils.klass.remove(doc.body, 'snapjs-right');
|
||||
utils.klass.remove(doc.body, 'snapjs-left');
|
||||
}
|
||||
|
||||
utils.dispatchEvent('animated');
|
||||
utils.events.removeEvent(settings.element, utils.transitionCallback(), action.translate.easeCallback);
|
||||
},
|
||||
easeTo: function(n) {
|
||||
|
||||
if( !utils.canTransform() ){
|
||||
cache.translation = n;
|
||||
action.translate.x(n);
|
||||
} else {
|
||||
cache.easing = true;
|
||||
cache.easingTo = n;
|
||||
|
||||
settings.element.style[cache.vendor+'Transition'] = 'all ' + settings.transitionSpeed + 's ' + settings.easing;
|
||||
|
||||
cache.animatingInterval = setInterval(function() {
|
||||
utils.dispatchEvent('animating');
|
||||
}, 1);
|
||||
|
||||
utils.events.addEvent(settings.element, utils.transitionCallback(), action.translate.easeCallback);
|
||||
action.translate.x(n);
|
||||
}
|
||||
if(n===0){
|
||||
settings.element.style[cache.vendor+'Transform'] = '';
|
||||
}
|
||||
},
|
||||
x: function(n) {
|
||||
if( (settings.disable==='left' && n>0) ||
|
||||
(settings.disable==='right' && n<0)
|
||||
){ return; }
|
||||
|
||||
if( !settings.hyperextensible ){
|
||||
if( n===settings.maxPosition || n>settings.maxPosition ){
|
||||
n=settings.maxPosition;
|
||||
} else if( n===settings.minPosition || n<settings.minPosition ){
|
||||
n=settings.minPosition;
|
||||
}
|
||||
}
|
||||
|
||||
n = parseInt(n, 10);
|
||||
if(isNaN(n)){
|
||||
n = 0;
|
||||
}
|
||||
|
||||
if( utils.canTransform() ){
|
||||
var theTranslate = 'translate3d(' + n + 'px, 0,0)';
|
||||
settings.element.style[cache.vendor+'Transform'] = theTranslate;
|
||||
} else {
|
||||
settings.element.style.width = (win.innerWidth || doc.documentElement.clientWidth)+'px';
|
||||
|
||||
settings.element.style.left = n+'px';
|
||||
settings.element.style.right = '';
|
||||
}
|
||||
}
|
||||
},
|
||||
drag: {
|
||||
listen: function() {
|
||||
cache.translation = 0;
|
||||
cache.easing = false;
|
||||
utils.events.addEvent(settings.element, utils.eventType('down'), action.drag.startDrag);
|
||||
utils.events.addEvent(settings.element, utils.eventType('move'), action.drag.dragging);
|
||||
utils.events.addEvent(settings.element, utils.eventType('up'), action.drag.endDrag);
|
||||
},
|
||||
stopListening: function() {
|
||||
utils.events.removeEvent(settings.element, utils.eventType('down'), action.drag.startDrag);
|
||||
utils.events.removeEvent(settings.element, utils.eventType('move'), action.drag.dragging);
|
||||
utils.events.removeEvent(settings.element, utils.eventType('up'), action.drag.endDrag);
|
||||
},
|
||||
startDrag: function(e) {
|
||||
// No drag on ignored elements
|
||||
var target = e.target ? e.target : e.srcElement,
|
||||
ignoreParent = utils.parentUntil(target, 'data-snap-ignore');
|
||||
|
||||
if (ignoreParent) {
|
||||
utils.dispatchEvent('ignore');
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if(settings.dragger){
|
||||
var dragParent = utils.parentUntil(target, settings.dragger);
|
||||
|
||||
// Only use dragger if we're in a closed state
|
||||
if( !dragParent &&
|
||||
(cache.translation !== settings.minPosition &&
|
||||
cache.translation !== settings.maxPosition
|
||||
)){
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
utils.dispatchEvent('start');
|
||||
settings.element.style[cache.vendor+'Transition'] = '';
|
||||
cache.isDragging = true;
|
||||
cache.hasIntent = null;
|
||||
cache.intentChecked = false;
|
||||
cache.startDragX = utils.page('X', e);
|
||||
cache.startDragY = utils.page('Y', e);
|
||||
cache.dragWatchers = {
|
||||
current: 0,
|
||||
last: 0,
|
||||
hold: 0,
|
||||
state: ''
|
||||
};
|
||||
cache.simpleStates = {
|
||||
opening: null,
|
||||
towards: null,
|
||||
hyperExtending: null,
|
||||
halfway: null,
|
||||
flick: null,
|
||||
translation: {
|
||||
absolute: 0,
|
||||
relative: 0,
|
||||
sinceDirectionChange: 0,
|
||||
percentage: 0
|
||||
}
|
||||
};
|
||||
},
|
||||
dragging: function(e) {
|
||||
if (cache.isDragging && settings.touchToDrag) {
|
||||
|
||||
var thePageX = utils.page('X', e),
|
||||
thePageY = utils.page('Y', e),
|
||||
translated = cache.translation,
|
||||
absoluteTranslation = action.translate.get.matrix(4),
|
||||
whileDragX = thePageX - cache.startDragX,
|
||||
openingLeft = absoluteTranslation > 0,
|
||||
translateTo = whileDragX,
|
||||
diff;
|
||||
|
||||
// Shown no intent already
|
||||
if((cache.intentChecked && !cache.hasIntent)){
|
||||
return;
|
||||
}
|
||||
|
||||
if(settings.addBodyClasses){
|
||||
if((absoluteTranslation)>0){
|
||||
utils.klass.add(doc.body, 'snapjs-left');
|
||||
utils.klass.remove(doc.body, 'snapjs-right');
|
||||
} else if((absoluteTranslation)<0){
|
||||
utils.klass.add(doc.body, 'snapjs-right');
|
||||
utils.klass.remove(doc.body, 'snapjs-left');
|
||||
}
|
||||
}
|
||||
|
||||
if (cache.hasIntent === false || cache.hasIntent === null) {
|
||||
var deg = utils.angleOfDrag(thePageX, thePageY),
|
||||
inRightRange = (deg >= 0 && deg <= settings.slideIntent) || (deg <= 360 && deg > (360 - settings.slideIntent)),
|
||||
inLeftRange = (deg >= 180 && deg <= (180 + settings.slideIntent)) || (deg <= 180 && deg >= (180 - settings.slideIntent));
|
||||
if (!inLeftRange && !inRightRange) {
|
||||
cache.hasIntent = false;
|
||||
} else {
|
||||
cache.hasIntent = true;
|
||||
}
|
||||
cache.intentChecked = true;
|
||||
}
|
||||
|
||||
if (
|
||||
(settings.minDragDistance>=Math.abs(thePageX-cache.startDragX)) || // Has user met minimum drag distance?
|
||||
(cache.hasIntent === false)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
utils.events.prevent(e);
|
||||
utils.dispatchEvent('drag');
|
||||
|
||||
cache.dragWatchers.current = thePageX;
|
||||
// Determine which direction we are going
|
||||
if (cache.dragWatchers.last > thePageX) {
|
||||
if (cache.dragWatchers.state !== 'left') {
|
||||
cache.dragWatchers.state = 'left';
|
||||
cache.dragWatchers.hold = thePageX;
|
||||
}
|
||||
cache.dragWatchers.last = thePageX;
|
||||
} else if (cache.dragWatchers.last < thePageX) {
|
||||
if (cache.dragWatchers.state !== 'right') {
|
||||
cache.dragWatchers.state = 'right';
|
||||
cache.dragWatchers.hold = thePageX;
|
||||
}
|
||||
cache.dragWatchers.last = thePageX;
|
||||
}
|
||||
if (openingLeft) {
|
||||
// Pulling too far to the right
|
||||
if (settings.maxPosition < absoluteTranslation) {
|
||||
diff = (absoluteTranslation - settings.maxPosition) * settings.resistance;
|
||||
translateTo = whileDragX - diff;
|
||||
}
|
||||
cache.simpleStates = {
|
||||
opening: 'left',
|
||||
towards: cache.dragWatchers.state,
|
||||
hyperExtending: settings.maxPosition < absoluteTranslation,
|
||||
halfway: absoluteTranslation > (settings.maxPosition / 2),
|
||||
flick: Math.abs(cache.dragWatchers.current - cache.dragWatchers.hold) > settings.flickThreshold,
|
||||
translation: {
|
||||
absolute: absoluteTranslation,
|
||||
relative: whileDragX,
|
||||
sinceDirectionChange: (cache.dragWatchers.current - cache.dragWatchers.hold),
|
||||
percentage: (absoluteTranslation/settings.maxPosition)*100
|
||||
}
|
||||
};
|
||||
} else {
|
||||
// Pulling too far to the left
|
||||
if (settings.minPosition > absoluteTranslation) {
|
||||
diff = (absoluteTranslation - settings.minPosition) * settings.resistance;
|
||||
translateTo = whileDragX - diff;
|
||||
}
|
||||
cache.simpleStates = {
|
||||
opening: 'right',
|
||||
towards: cache.dragWatchers.state,
|
||||
hyperExtending: settings.minPosition > absoluteTranslation,
|
||||
halfway: absoluteTranslation < (settings.minPosition / 2),
|
||||
flick: Math.abs(cache.dragWatchers.current - cache.dragWatchers.hold) > settings.flickThreshold,
|
||||
translation: {
|
||||
absolute: absoluteTranslation,
|
||||
relative: whileDragX,
|
||||
sinceDirectionChange: (cache.dragWatchers.current - cache.dragWatchers.hold),
|
||||
percentage: (absoluteTranslation/settings.minPosition)*100
|
||||
}
|
||||
};
|
||||
}
|
||||
action.translate.x(translateTo + translated);
|
||||
}
|
||||
},
|
||||
endDrag: function(e) {
|
||||
if (cache.isDragging) {
|
||||
utils.dispatchEvent('end');
|
||||
var translated = action.translate.get.matrix(4);
|
||||
|
||||
// Tap Close
|
||||
if (cache.dragWatchers.current === 0 && translated !== 0 && settings.tapToClose) {
|
||||
utils.dispatchEvent('close');
|
||||
utils.events.prevent(e);
|
||||
action.translate.easeTo(0);
|
||||
cache.isDragging = false;
|
||||
cache.startDragX = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
// Revealing Left
|
||||
if (cache.simpleStates.opening === 'left') {
|
||||
// Halfway, Flicking, or Too Far Out
|
||||
if ((cache.simpleStates.halfway || cache.simpleStates.hyperExtending || cache.simpleStates.flick)) {
|
||||
if (cache.simpleStates.flick && cache.simpleStates.towards === 'left') { // Flicking Closed
|
||||
action.translate.easeTo(0);
|
||||
} else if (
|
||||
(cache.simpleStates.flick && cache.simpleStates.towards === 'right') || // Flicking Open OR
|
||||
(cache.simpleStates.halfway || cache.simpleStates.hyperExtending) // At least halfway open OR hyperextending
|
||||
) {
|
||||
action.translate.easeTo(settings.maxPosition); // Open Left
|
||||
}
|
||||
} else {
|
||||
action.translate.easeTo(0); // Close Left
|
||||
}
|
||||
// Revealing Right
|
||||
} else if (cache.simpleStates.opening === 'right') {
|
||||
// Halfway, Flicking, or Too Far Out
|
||||
if ((cache.simpleStates.halfway || cache.simpleStates.hyperExtending || cache.simpleStates.flick)) {
|
||||
if (cache.simpleStates.flick && cache.simpleStates.towards === 'right') { // Flicking Closed
|
||||
action.translate.easeTo(0);
|
||||
} else if (
|
||||
(cache.simpleStates.flick && cache.simpleStates.towards === 'left') || // Flicking Open OR
|
||||
(cache.simpleStates.halfway || cache.simpleStates.hyperExtending) // At least halfway open OR hyperextending
|
||||
) {
|
||||
action.translate.easeTo(settings.minPosition); // Open Right
|
||||
}
|
||||
} else {
|
||||
action.translate.easeTo(0); // Close Right
|
||||
}
|
||||
}
|
||||
cache.isDragging = false;
|
||||
cache.startDragX = utils.page('X', e);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
init = function(opts) {
|
||||
if (opts.element) {
|
||||
utils.deepExtend(settings, opts);
|
||||
cache.vendor = utils.vendor();
|
||||
action.drag.listen();
|
||||
}
|
||||
};
|
||||
/*
|
||||
* Public
|
||||
*/
|
||||
this.open = function(side) {
|
||||
utils.dispatchEvent('open');
|
||||
utils.klass.remove(doc.body, 'snapjs-expand-left');
|
||||
utils.klass.remove(doc.body, 'snapjs-expand-right');
|
||||
|
||||
if (side === 'left') {
|
||||
cache.simpleStates.opening = 'left';
|
||||
cache.simpleStates.towards = 'right';
|
||||
utils.klass.add(doc.body, 'snapjs-left');
|
||||
utils.klass.remove(doc.body, 'snapjs-right');
|
||||
action.translate.easeTo(settings.maxPosition);
|
||||
} else if (side === 'right') {
|
||||
cache.simpleStates.opening = 'right';
|
||||
cache.simpleStates.towards = 'left';
|
||||
utils.klass.remove(doc.body, 'snapjs-left');
|
||||
utils.klass.add(doc.body, 'snapjs-right');
|
||||
action.translate.easeTo(settings.minPosition);
|
||||
}
|
||||
};
|
||||
this.close = function() {
|
||||
utils.dispatchEvent('close');
|
||||
action.translate.easeTo(0);
|
||||
};
|
||||
this.expand = function(side){
|
||||
var to = win.innerWidth || doc.documentElement.clientWidth;
|
||||
|
||||
if(side==='left'){
|
||||
utils.dispatchEvent('expandLeft');
|
||||
utils.klass.add(doc.body, 'snapjs-expand-left');
|
||||
utils.klass.remove(doc.body, 'snapjs-expand-right');
|
||||
} else {
|
||||
utils.dispatchEvent('expandRight');
|
||||
utils.klass.add(doc.body, 'snapjs-expand-right');
|
||||
utils.klass.remove(doc.body, 'snapjs-expand-left');
|
||||
to *= -1;
|
||||
}
|
||||
action.translate.easeTo(to);
|
||||
};
|
||||
|
||||
this.on = function(evt, fn) {
|
||||
eventList[evt] = fn;
|
||||
return this;
|
||||
};
|
||||
this.off = function(evt) {
|
||||
if (eventList[evt]) {
|
||||
eventList[evt] = false;
|
||||
}
|
||||
};
|
||||
|
||||
this.enable = function() {
|
||||
utils.dispatchEvent('enable');
|
||||
action.drag.listen();
|
||||
};
|
||||
this.disable = function() {
|
||||
utils.dispatchEvent('disable');
|
||||
action.drag.stopListening();
|
||||
};
|
||||
|
||||
this.settings = function(opts){
|
||||
utils.deepExtend(settings, opts);
|
||||
};
|
||||
|
||||
this.state = function() {
|
||||
var state,
|
||||
fromLeft = action.translate.get.matrix(4);
|
||||
if (fromLeft === settings.maxPosition) {
|
||||
state = 'left';
|
||||
} else if (fromLeft === settings.minPosition) {
|
||||
state = 'right';
|
||||
} else {
|
||||
state = 'closed';
|
||||
}
|
||||
return {
|
||||
state: state,
|
||||
info: cache.simpleStates
|
||||
};
|
||||
};
|
||||
init(userOpts);
|
||||
};
|
||||
if ((typeof module !== 'undefined') && module.exports) {
|
||||
module.exports = Snap;
|
||||
}
|
||||
if (typeof ender === 'undefined') {
|
||||
this.Snap = Snap;
|
||||
}
|
||||
if ((typeof define === "function") && define.amd) {
|
||||
define("snap", [], function() {
|
||||
return Snap;
|
||||
});
|
||||
}
|
||||
}).call(this, window, document);
|
||||
3759
public/mobile2/topcoat/css/topcoat-mobile-light.css
Normal file
1
public/mobile2/topcoat/css/topcoat-mobile-light.min.css
vendored
Normal file
93
public/mobile2/topcoat/font/LICENSE.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
|
||||
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
public/mobile2/topcoat/font/SourceCodePro-Black.otf
Normal file
BIN
public/mobile2/topcoat/font/SourceCodePro-Bold.otf
Normal file
BIN
public/mobile2/topcoat/font/SourceCodePro-ExtraLight.otf
Normal file
BIN
public/mobile2/topcoat/font/SourceCodePro-Light.otf
Normal file
BIN
public/mobile2/topcoat/font/SourceCodePro-Regular.otf
Normal file
BIN
public/mobile2/topcoat/font/SourceCodePro-Semibold.otf
Normal file
BIN
public/mobile2/topcoat/font/SourceSansPro-Black.otf
Normal file
BIN
public/mobile2/topcoat/font/SourceSansPro-BlackIt.otf
Normal file
BIN
public/mobile2/topcoat/font/SourceSansPro-Bold.otf
Normal file
BIN
public/mobile2/topcoat/font/SourceSansPro-BoldIt.otf
Normal file
BIN
public/mobile2/topcoat/font/SourceSansPro-ExtraLight.otf
Normal file
BIN
public/mobile2/topcoat/font/SourceSansPro-ExtraLightIt.otf
Normal file
BIN
public/mobile2/topcoat/font/SourceSansPro-It.otf
Normal file
BIN
public/mobile2/topcoat/font/SourceSansPro-Light.otf
Normal file
BIN
public/mobile2/topcoat/font/SourceSansPro-LightIt.otf
Normal file
BIN
public/mobile2/topcoat/font/SourceSansPro-Regular.otf
Normal file
BIN
public/mobile2/topcoat/font/SourceSansPro-Semibold.otf
Normal file
BIN
public/mobile2/topcoat/font/SourceSansPro-SemiboldIt.otf
Normal file
BIN
public/mobile2/topcoat/img/avatar.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/mobile2/topcoat/img/bg_dark.png
Normal file
|
After Width: | Height: | Size: 84 KiB |
BIN
public/mobile2/topcoat/img/breadcrumb.png
Normal file
|
After Width: | Height: | Size: 202 B |
BIN
public/mobile2/topcoat/img/checkbox_checked.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
public/mobile2/topcoat/img/checkbox_checked_dark.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |