Browse Source

第二次推送项目3

master
wanghongjun 2 years ago
parent
commit
a0cc3b6fe2
  1. 3375
      public/jqprint/html2canvas.js
  2. 8
      public/jqprint/html2canvas.min.js
  3. 17702
      public/jqprint/html2canvas.svg.js
  4. 12
      public/jqprint/html2canvas.svg.min.js
  5. 75
      public/jqprint/jquery.jqprint-0.3.js
  6. 17003
      public/jqprint/jspdf.debug.js
  7. 164
      public/jqprint/jspdf.min.js
  8. 23
      public/jump_style/css/style.css
  9. BIN
      public/jump_style/images/3.22.gif
  10. BIN
      public/jump_style/images/404.png
  11. BIN
      public/jump_style/images/bg.jpg
  12. 2
      public/layer/layer_en-us.js
  13. 1304
      public/layer/layer_home.js
  14. 2
      public/layer/layer_zh-cn.js
  15. 14
      public/layer/mobile/README.md
  16. 208
      public/layer/mobile/layer.js
  17. 87
      public/layer/mobile/need/layer.css
  18. BIN
      public/layer/skin/default/icon-ext.png
  19. BIN
      public/layer/skin/default/icon.png
  20. BIN
      public/layer/skin/default/loading-0.gif
  21. BIN
      public/layer/skin/default/loading-1.gif
  22. BIN
      public/layer/skin/default/loading-2.gif
  23. 7
      public/layer/skin/layer.css
  24. 164
      public/layer/skin/layer_home.css
  25. BIN
      public/layer/theme/default/icon-ext.png
  26. BIN
      public/layer/theme/default/icon.png
  27. 181
      public/layer/theme/default/layer.css
  28. BIN
      public/layer/theme/default/loading-0.gif
  29. BIN
      public/layer/theme/default/loading-1.gif
  30. BIN
      public/layer/theme/default/loading-2.gif
  31. BIN
      public/layer/theme/moon/default.png
  32. 140
      public/layer/theme/moon/style.css
  33. BIN
      public/mania/select-mania-font.ttf
  34. BIN
      public/mania/select-mania-font.woff
  35. 33
      public/mania/select-mania-theme-darkblue.css
  36. 794
      public/mania/select-mania.css
  37. 1599
      public/mania/select-mania.js
  38. 353
      public/others/base.js
  39. 7
      public/others/bootstrap.min.js
  40. 4
      public/others/html5shiv.min.js
  41. 6
      public/others/jquery-ui-1.10.3.min.js
  42. 1426
      public/others/jquery.fileupload.js
  43. 1277
      public/others/jquery.form.js
  44. 5
      public/others/jquery.min-1.12.1.js
  45. 4
      public/others/jquery.min-2.2.1.js
  46. 10
      public/others/jquery.mobile.custom.min.js
  47. 530
      public/others/jquery.ui.widget.js
  48. 98
      public/others/maxlength.js
  49. 20
      public/others/region.js
  50. 5
      public/others/respond.min.js
  51. 20
      public/others/role.js
  52. 1653
      public/others/validate.js
  53. BIN
      public/plupload-2.1.2/js/Moxie.swf
  54. BIN
      public/plupload-2.1.2/js/Moxie.xap
  55. 10726
      public/plupload-2.1.2/js/moxie.js
  56. 15
      public/plupload-2.1.2/js/moxie.min.js
  57. 2315
      public/plupload-2.1.2/js/plupload.dev.js
  58. 28
      public/plupload-2.1.2/js/plupload.full.min.js
  59. 13
      public/plupload-2.1.2/js/plupload.min.js
  60. 339
      public/plupload-2.1.2/license.txt
  61. 147
      public/plupload-2.1.2/readme.md
  62. 1
      public/ppy/css/default.css
  63. 11
      public/ppy/css/fileinput.css
  64. 11
      public/ppy/css/fileinput.min.css
  65. 1
      public/ppy/css/normalize.css
  66. BIN
      public/ppy/fonts/icomoon.eot
  67. 12
      public/ppy/fonts/icomoon.svg
  68. BIN
      public/ppy/fonts/icomoon.ttf
  69. BIN
      public/ppy/fonts/icomoon.woff
  70. BIN
      public/ppy/img/loading-sm.gif
  71. BIN
      public/ppy/img/loading.gif
  72. 1
      public/ppy/js/fileinput.js
  73. 19
      public/ppy/js/fileinput.min.js
  74. 1
      public/ppy/js/fileinput_locale_LANG.js
  75. 43
      public/ppy/js/fileinput_locale_cz.js
  76. 41
      public/ppy/js/fileinput_locale_de.js
  77. 43
      public/ppy/js/fileinput_locale_es.js
  78. 43
      public/ppy/js/fileinput_locale_fr.js
  79. 43
      public/ppy/js/fileinput_locale_hu.js
  80. 45
      public/ppy/js/fileinput_locale_it.js
  81. 43
      public/ppy/js/fileinput_locale_nl.js
  82. 43
      public/ppy/js/fileinput_locale_pl.js
  83. 43
      public/ppy/js/fileinput_locale_pt.js
  84. 44
      public/ppy/js/fileinput_locale_ru.js
  85. 43
      public/ppy/js/fileinput_locale_sk.js
  86. 44
      public/ppy/js/fileinput_locale_sr.js
  87. 1
      public/ppy/js/fileinput_locale_th.js
  88. 43
      public/ppy/js/fileinput_locale_tr.js
  89. 44
      public/ppy/js/fileinput_locale_uk.js
  90. 1
      public/ppy/js/fileinput_locale_zh.js

3375
public/jqprint/html2canvas.js

File diff suppressed because it is too large

8
public/jqprint/html2canvas.min.js

File diff suppressed because one or more lines are too long

17702
public/jqprint/html2canvas.svg.js

File diff suppressed because it is too large

12
public/jqprint/html2canvas.svg.min.js

File diff suppressed because one or more lines are too long

75
public/jqprint/jquery.jqprint-0.3.js

@ -0,0 +1,75 @@
// -----------------------------------------------------------------------
// Eros Fratini - eros@recoding.it
// jqprint 0.3
//
// - 19/06/2009 - some new implementations, added Opera support
// - 11/05/2009 - first sketch
//
// Printing plug-in for jQuery, evolution of jPrintArea: http://plugins.jquery.com/project/jPrintArea
// requires jQuery 1.3.x
//
// Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
//------------------------------------------------------------------------
(function($) {
var opt;
$.fn.jqprint = function (options) {
opt = $.extend({}, $.fn.jqprint.defaults, options);
var $element = (this instanceof jQuery) ? this : $(this);
if (opt.operaSupport && $.browser.opera)
{
var tab = window.open("","jqPrint-preview");
tab.document.open();
var doc = tab.document;
}
else
{
var $iframe = $("<iframe />");
if (!opt.debug) { $iframe.css({ position: "absolute", width: "0px", height: "0px", left: "-600px", top: "-600px" }); }
$iframe.appendTo("body");
var doc = $iframe[0].contentWindow.document;
}
if (opt.importCSS)
{
if ($("link[media=print]").length > 0)
{
$("link[media=print]").each( function() {
doc.write("<link type='text/css' rel='stylesheet' href='" + $(this).attr("href") + "' media='print' />");
});
}
else
{
$("link").each( function() {
doc.write("<link type='text/css' rel='stylesheet' href='" + $(this).attr("href") + "' />");
});
}
}
if (opt.printContainer) { doc.write($element.outer()); }
else { $element.each( function() { doc.write($(this).html()); }); }
doc.close();
(opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow).focus();
setTimeout( function() { (opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow).print(); if (tab) { tab.close(); } }, 1000);
}
$.fn.jqprint.defaults = {
debug: false,
importCSS: true,
printContainer: true,
operaSupport: true
};
// Thanks to 9__, found at http://users.livejournal.com/9__/380664.html
jQuery.fn.outer = function() {
return $($('<div></div>').html(this.clone())).html();
}
})(jQuery);

17003
public/jqprint/jspdf.debug.js

File diff suppressed because it is too large

164
public/jqprint/jspdf.min.js

File diff suppressed because one or more lines are too long

23
public/jump_style/css/style.css

@ -0,0 +1,23 @@
body {
background-image: url(../images/bg.jpg);
background-position: 40% 0;
}
a{ text-decoration:none;}
*{ margin:0; padding:0;}
a:link {color: #fff; text-decoration: none ;}
a:visited {color: #fff; text-decoration: none;}
a:hover {color: #fff; text-decoration: none}
.container {margin-left: auto; width: 100%; margin-right: auto; text-align: center; margin-top:100px;}
.container_1 img { margin-top:50px; width:250px; height:120px;}
.container_2 img { margin-top:-2%; }
.container_3 img { width:25%; height:7.5%;}
.container_3 { width:45vw; margin:auto}
.container_3_1 { color: #930; font-size:2vw; text-align:center;}
.container_3_2 { color:#930; font-size:1vw; text-align:center;margin: 10px 0}
.container_3_3 { color: #930; font-size:20px; text-align:center;}
.maincolumn {margin-left: auto; width: 100%; margin-right: auto; text-align: center;display:block; margin-top:10px;}
.maincolumn .maincolumn_bg { width:28%;min-width: 315px; height:50px; line-height:50px; background-color:#D15B47; margin:auto;}
.maincolumn .maincolumn_bg ul {list-style-type: none;}
.maincolumn .maincolumn_bg ul li { float:left; width:25%;}
.maincolumn .maincolumn_bg ul li a{ font-size: 18px; }
.maincolumn .maincolumn_bg ul li a:hover { width:100%; height:50px; background-color:#930; display:block;}

BIN
public/jump_style/images/3.22.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
public/jump_style/images/404.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

BIN
public/jump_style/images/bg.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

2
public/layer/layer_en-us.js

File diff suppressed because one or more lines are too long

1304
public/layer/layer_home.js

File diff suppressed because it is too large

2
public/layer/layer_zh-cn.js

File diff suppressed because one or more lines are too long

14
public/layer/mobile/README.md

@ -0,0 +1,14 @@

## layer mobile
layer mobile是为移动设备(手机、平板等webkit内核浏览器/webview)量身定做的弹层支撑,采用Native JavaScript编写,完全独立于PC版的layer,您需要按照场景选择使用。
[文档与演示](http://sentsin.com/layui/layer/)
1. 无需依赖任何库,只加载layer.m.js即可
2. 小巧玲珑,性能卓越、柔情似水…
3. 具备无以伦比的自适应功能
4. 灵活的皮肤自定义支撑,充分确保弹层风格多样化
5. 丰富、科学的接口,让弹弹弹层无所不能
## 备注
[官网](http://sentsin.com/layui/layer/)、[有问必答](http://say.sentsin.com/home-48.html)

208
public/layer/mobile/layer.js

@ -0,0 +1,208 @@
/*!
@Namelayer mobile v2.0 弹层组件移动版
@Author贤心
@Sitehttp://layer.layui.com/mobie/
@LicenseLGPL
*/
;!function(win){
"use strict";
var doc = document, query = 'querySelectorAll', claname = 'getElementsByClassName', S = function(s){
return doc[query](s);
};
//默认配置
var config = {
type: 0
,shade: true
,shadeClose: true
,fixed: true
,anim: 'scale' //默认动画类型
};
var ready = {
extend: function(obj){
var newobj = JSON.parse(JSON.stringify(config));
for(var i in obj){
newobj[i] = obj[i];
}
return newobj;
},
timer: {}, end: {}
};
//点触事件
ready.touch = function(elem, fn){
elem.addEventListener('click', function(e){
fn.call(this, e);
}, false);
};
var index = 0, classs = ['layui-m-layer'], Layer = function(options){
var that = this;
that.config = ready.extend(options);
that.view();
};
Layer.prototype.view = function(){
var that = this, config = that.config, layerbox = doc.createElement('div');
that.id = layerbox.id = classs[0] + index;
layerbox.setAttribute('class', classs[0] + ' ' + classs[0]+(config.type || 0));
layerbox.setAttribute('index', index);
//标题区域
var title = (function(){
var titype = typeof config.title === 'object';
return config.title
? '<h3 style="'+ (titype ? config.title[1] : '') +'">'+ (titype ? config.title[0] : config.title) +'</h3>'
: '';
}());
//按钮区域
var button = (function(){
typeof config.btn === 'string' && (config.btn = [config.btn]);
var btns = (config.btn || []).length, btndom;
if(btns === 0 || !config.btn){
return '';
}
btndom = '<span yes type="1">'+ config.btn[0] +'</span>'
if(btns === 2){
btndom = '<span no type="0">'+ config.btn[1] +'</span>' + btndom;
}
return '<div class="layui-m-layerbtn">'+ btndom + '</div>';
}());
if(!config.fixed){
config.top = config.hasOwnProperty('top') ? config.top : 100;
config.style = config.style || '';
config.style += ' top:'+ ( doc.body.scrollTop + config.top) + 'px';
}
if(config.type === 2){
config.content = '<i></i><i class="layui-m-layerload"></i><i></i><p>'+ (config.content||'') +'</p>';
}
if(config.skin) config.anim = 'up';
if(config.skin === 'msg') config.shade = false;
layerbox.innerHTML = (config.shade ? '<div '+ (typeof config.shade === 'string' ? 'style="'+ config.shade +'"' : '') +' class="layui-m-layershade"></div>' : '')
+'<div class="layui-m-layermain" '+ (!config.fixed ? 'style="position:static;"' : '') +'>'
+'<div class="layui-m-layersection">'
+'<div class="layui-m-layerchild '+ (config.skin ? 'layui-m-layer-' + config.skin + ' ' : '') + (config.className ? config.className : '') + ' ' + (config.anim ? 'layui-m-anim-' + config.anim : '') +'" ' + ( config.style ? 'style="'+config.style+'"' : '' ) +'>'
+ title
+'<div class="layui-m-layercont">'+ config.content +'</div>'
+ button
+'</div>'
+'</div>'
+'</div>';
if(!config.type || config.type === 2){
var dialogs = doc[claname](classs[0] + config.type), dialen = dialogs.length;
if(dialen >= 1){
layer.close(dialogs[0].getAttribute('index'))
}
}
document.body.appendChild(layerbox);
var elem = that.elem = S('#'+that.id)[0];
config.success && config.success(elem);
that.index = index++;
that.action(config, elem);
};
Layer.prototype.action = function(config, elem){
var that = this;
//自动关闭
if(config.time){
ready.timer[that.index] = setTimeout(function(){
layer.close(that.index);
}, config.time*1000);
}
//确认取消
var btn = function(){
var type = this.getAttribute('type');
if(type == 0){
config.no && config.no();
layer.close(that.index);
} else {
config.yes ? config.yes(that.index) : layer.close(that.index);
}
};
if(config.btn){
var btns = elem[claname]('layui-m-layerbtn')[0].children, btnlen = btns.length;
for(var ii = 0; ii < btnlen; ii++){
ready.touch(btns[ii], btn);
}
}
//点遮罩关闭
if(config.shade && config.shadeClose){
var shade = elem[claname]('layui-m-layershade')[0];
ready.touch(shade, function(){
layer.close(that.index, config.end);
});
}
config.end && (ready.end[that.index] = config.end);
};
win.layer = {
v: '2.0',
index: index,
//核心方法
open: function(options){
var o = new Layer(options || {});
return o.index;
},
close: function(index){
var ibox = S('#'+classs[0]+index)[0];
if(!ibox) return;
ibox.innerHTML = '';
doc.body.removeChild(ibox);
clearTimeout(ready.timer[index]);
delete ready.timer[index];
typeof ready.end[index] === 'function' && ready.end[index]();
delete ready.end[index];
},
//关闭所有layer层
closeAll: function(){
var boxs = doc[claname](classs[0]);
for(var i = 0, len = boxs.length; i < len; i++){
layer.close((boxs[0].getAttribute('index')|0));
}
}
};
'function' == typeof define ? define(function() {
return layer;
}) : function(){
var js = document.scripts, script = js[js.length - 1], jsPath = script.src;
var path = jsPath.substring(0, jsPath.lastIndexOf("/") + 1);
//如果合并方式,则需要单独引入layer.css
if(script.getAttribute('merge')) return;
document.head.appendChild(function(){
var link = doc.createElement('link');
link.href = path + 'need/layer.css?2.0';
link.type = 'text/css';
link.rel = 'styleSheet'
link.id = 'layermcss';
return link;
}());
}();
}(window);

87
public/layer/mobile/need/layer.css

@ -0,0 +1,87 @@

/*
layer mobile
*/
.layui-m-layer{position:relative; z-index: 19891014;}
.layui-m-layer *{-webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box;}
.layui-m-layershade,
.layui-m-layermain{position:fixed; left:0; top:0; width:100%; height:100%;}
.layui-m-layershade{background-color:rgba(0,0,0, .7); pointer-events:auto;}
.layui-m-layermain{display:table; font-family: Helvetica, arial, sans-serif; pointer-events: none;}
.layui-m-layermain .layui-m-layersection{display:table-cell; vertical-align:middle; text-align:center;}
.layui-m-layerchild{position:relative; display:inline-block; text-align:left; background-color:#fff; font-size:14px; border-radius: 5px; box-shadow: 0 0 8px rgba(0, 0, 0, 0.1); pointer-events:auto; -webkit-overflow-scrolling: touch;}
.layui-m-layerchild{-webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-duration: .2s; animation-duration: .2s;}
/* 弹出动画 */
@-webkit-keyframes layui-m-anim-scale { /* 默认 */
0% {opacity: 0; -webkit-transform: scale(.5); transform: scale(.5)}
100% {opacity: 1; -webkit-transform: scale(1); transform: scale(1)}
}
@keyframes layui-m-anim-scale { /* 默认 */
0% {opacity: 0; -webkit-transform: scale(.5); transform: scale(.5)}
100% {opacity: 1; -webkit-transform: scale(1); transform: scale(1)}
}
.layui-m-anim-scale{animation-name: layui-m-anim-scale; -webkit-animation-name: layui-m-anim-scale;}
@-webkit-keyframes layui-m-anim-up{
0%{opacity: 0; -webkit-transform: translateY(800px); transform: translateY(800px)}
100%{opacity: 1; -webkit-transform: translateY(0); transform: translateY(0)}
}
@keyframes layui-m-anim-up{
0%{opacity: 0; -webkit-transform: translateY(800px); transform: translateY(800px)}
100%{opacity: 1; -webkit-transform: translateY(0); transform: translateY(0)}
}
.layui-m-anim-up{-webkit-animation-name: layui-m-anim-up;animation-name: layui-m-anim-up}
.layui-m-layer0 .layui-m-layerchild{width: 90%; max-width: 640px;}
.layui-m-layer1 .layui-m-layerchild{border:none; border-radius:0;}
.layui-m-layer2 .layui-m-layerchild{width:auto; max-width:260px; min-width:40px; border:none; background: none; box-shadow: none; color:#fff;}
.layui-m-layerchild h3{padding: 0 10px; height: 60px; line-height: 60px; font-size:16px; font-weight: 400; border-radius: 5px 5px 0 0; text-align: center;}
.layui-m-layerchild h3,
.layui-m-layerbtn span{ text-overflow:ellipsis; overflow:hidden; white-space:nowrap;}
.layui-m-layercont{padding: 50px 30px; line-height: 22px; text-align:center;}
.layui-m-layer1 .layui-m-layercont{padding:0; text-align:left;}
.layui-m-layer2 .layui-m-layercont{text-align:center; padding: 0; line-height: 0;}
.layui-m-layer2 .layui-m-layercont i{width:25px; height:25px; margin-left:8px; display:inline-block; background-color:#fff; border-radius:100%;}
.layui-m-layer2 .layui-m-layercont p{margin-top: 20px;}
/* loading */
@-webkit-keyframes layui-m-anim-loading{
0%,80%,100%{transform:scale(0); -webkit-transform:scale(0)}
40%{transform:scale(1); -webkit-transform:scale(1)}
}
@keyframes layui-m-anim-loading{
0%,80%,100%{transform:scale(0); -webkit-transform:scale(0)}
40%{transform:scale(1); -webkit-transform:scale(1)}
}
.layui-m-layer2 .layui-m-layercont i{-webkit-animation: layui-m-anim-loading 1.4s infinite ease-in-out; animation: layui-m-anim-loading 1.4s infinite ease-in-out; -webkit-animation-fill-mode: both; animation-fill-mode: both;}
.layui-m-layer2 .layui-m-layercont i:first-child{margin-left:0; -webkit-animation-delay: -.32s; animation-delay: -.32s;}
.layui-m-layer2 .layui-m-layercont i.layui-m-layerload{-webkit-animation-delay: -.16s; animation-delay: -.16s;}
.layui-m-layer2 .layui-m-layercont>div{line-height:22px; padding-top:7px; margin-bottom:20px; font-size: 14px;}
.layui-m-layerbtn{display: box; display: -moz-box; display: -webkit-box; width: 100%; position:relative; height: 50px; line-height: 50px; font-size: 0; text-align:center; border-top:1px solid #D0D0D0; background-color: #F2F2F2; border-radius: 0 0 5px 5px;}
.layui-m-layerbtn span{position:relative; display: block; -moz-box-flex: 1; box-flex: 1; -webkit-box-flex: 1; text-align:center; font-size:14px; border-radius: 0 0 5px 5px; cursor:pointer;}
.layui-m-layerbtn span[yes]{color: #40AFFE;}
.layui-m-layerbtn span[no]{border-right: 1px solid #D0D0D0; border-radius: 0 0 0 5px;}
.layui-m-layerbtn span:active{background-color: #F6F6F6;}
.layui-m-layerend{position:absolute; right:7px; top:10px; width:30px; height:30px; border: 0; font-weight:400; background: transparent; cursor: pointer; -webkit-appearance: none; font-size:30px;}
.layui-m-layerend::before, .layui-m-layerend::after{position:absolute; left:5px; top:15px; content:''; width:18px; height:1px; background-color:#999; transform:rotate(45deg); -webkit-transform:rotate(45deg); border-radius: 3px;}
.layui-m-layerend::after{transform:rotate(-45deg); -webkit-transform:rotate(-45deg);}
/* 底部对话框风格 */
body .layui-m-layer .layui-m-layer-footer{position: fixed; width: 95%; max-width: 100%; margin: 0 auto; left:0; right: 0; bottom: 10px; background: none;}
.layui-m-layer-footer .layui-m-layercont{padding: 20px; border-radius: 5px 5px 0 0; background-color: rgba(255,255,255,.8);}
.layui-m-layer-footer .layui-m-layerbtn{display: block; height: auto; background: none; border-top: none;}
.layui-m-layer-footer .layui-m-layerbtn span{background-color: rgba(255,255,255,.8);}
.layui-m-layer-footer .layui-m-layerbtn span[no]{color: #FD482C; border-top: 1px solid #c2c2c2; border-radius: 0 0 5px 5px;}
.layui-m-layer-footer .layui-m-layerbtn span[yes]{margin-top: 10px; border-radius: 5px;}
/* 通用提示 */
body .layui-m-layer .layui-m-layer-msg{width: auto; max-width: 90%; margin: 0 auto; bottom: -150px; background-color: rgba(0,0,0,.7); color: #fff;}
.layui-m-layer-msg .layui-m-layercont{padding: 10px 20px;}

BIN
public/layer/skin/default/icon-ext.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
public/layer/skin/default/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
public/layer/skin/default/loading-0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

BIN
public/layer/skin/default/loading-1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

BIN
public/layer/skin/default/loading-2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

7
public/layer/skin/layer.css

File diff suppressed because one or more lines are too long

164
public/layer/skin/layer_home.css

@ -0,0 +1,164 @@
/*!
@Name: layer's style
@Author: 贤心
@Blog sentsin.com
*/.layui-layer-imgbar,.layui-layer-imgtit a,.layui-layer-tab .layui-layer-title span,.layui-layer-title{text-overflow:ellipsis;white-space:nowrap}
*html{background-image:url(about:blank);background-attachment:fixed}
html #layui_layer_skinlayercss{display:none;position:absolute;width:1989px}
.layui-layer,.layui-layer-shade{position:fixed;pointer-events:auto}
.layui-layer-shade{top:0;left:0;width:100%;height:100%}
.layui-layer{top:150px;left:0;margin:0;padding:0;background-color:#fff;-webkit-background-clip:content;box-shadow:1px 1px 50px rgba(0,0,0,.3);border-radius:2px;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.3s;animation-duration:.3s}
.layui-layer-close{position:absolute}
.layui-layer-content{position:relative}
.layui-layer-border{border:1px solid #B2B2B2;border:1px solid rgba(0,0,0,.3);box-shadow:1px 1px 5px rgba(0,0,0,.2)}
.layui-layer-moves{position:absolute;border:3px solid #666;border:3px solid rgba(0,0,0,.5);cursor:move;background-color:#fff;background-color:rgba(255,255,255,.3);filter:alpha(opacity=50)}
.layui-layer-load{background:url(default/loading-0.gif) center center no-repeat #fff}
.layui-layer-ico{background:url(default/icon.png) no-repeat}
.layui-layer-btn a,.layui-layer-dialog .layui-layer-ico,.layui-layer-setwin a{display:inline-block;vertical-align:top}
@-webkit-keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}
100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}
}
@keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}
100%{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}
}
.layer-anim{-webkit-animation-name:bounceIn;animation-name:bounceIn}
@-webkit-keyframes bounceOut{100%{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}
30%{-webkit-transform:scale(1.03);transform:scale(1.03)}
0%{-webkit-transform:scale(1);transform:scale(1)}
}
@keyframes bounceOut{100%{opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}
30%{-webkit-transform:scale(1.03);-ms-transform:scale(1.03);transform:scale(1.03)}
0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}
}
.layer-anim-close{-webkit-animation-name:bounceOut;animation-name:bounceOut;-webkit-animation-duration:.2s;animation-duration:.2s}
@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}
60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}
}
@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}
60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}
}
.layer-anim-01{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}
@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}
100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}
}
@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}
100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}
}
.layer-anim-02{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}
@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}
60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}
}
@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}
60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);-ms-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}
}
.layer-anim-03{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}
@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}
100%{opacity:1;-webkit-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}
}
@keyframes rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);-ms-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}
100%{opacity:1;-webkit-transform:translateX(0) rotate(0);-ms-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}
}
.layer-anim-04{-webkit-animation-name:rollIn;animation-name:rollIn}
@keyframes fadeIn{0%{opacity:0}
100%{opacity:1}
}
.layer-anim-05{-webkit-animation-name:fadeIn;animation-name:fadeIn}
@-webkit-keyframes shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}
10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}
20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}
}
@keyframes shake{0%,100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}
10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}
20%,40%,60%,80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}
}
.layer-anim-06{-webkit-animation-name:shake;animation-name:shake}
@-webkit-keyframes fadeIn{0%{opacity:0}
100%{opacity:1}
}
.layui-layer-title{padding:0 80px 0 20px;height:42px;line-height:42px;border-bottom:1px solid #eee;font-size:14px;color:#333;overflow:hidden;background-color:#F8F8F8;border-radius:2px 2px 0 0}
.layui-layer-setwin{position:absolute;right:15px;top:15px;font-size:0;line-height:initial}
.layui-layer-setwin a{position:relative;width:16px;height:16px;margin-left:10px;font-size:12px}
.layui-layer-setwin .layui-layer-min cite{position:absolute;width:14px;height:2px;left:0;top:50%;margin-top:-1px;background-color:#2E2D3C;cursor:pointer}
.layui-layer-setwin .layui-layer-min:hover cite{background-color:#8e2609}
.layui-layer-setwin .layui-layer-max{background-position:-32px -40px}
.layui-layer-setwin .layui-layer-max:hover{background-position:-16px -40px}
.layui-layer-setwin .layui-layer-maxmin{background-position:-65px -40px}
.layui-layer-setwin .layui-layer-maxmin:hover{background-position:-49px -40px}
.layui-layer-setwin .layui-layer-close1{background-position:0 -40px;cursor:pointer}
.layui-layer-setwin .layui-layer-close1:hover{opacity:.7}
.layui-layer-setwin .layui-layer-close2{position:absolute;right:-28px;top:-28px;width:30px;height:30px;margin-left:0;background-position:-149px -31px}
.layui-layer-setwin .layui-layer-close2:hover{background-position:-180px -31px}
.layui-layer-btn{text-align:right;padding:0 10px 12px;pointer-events:auto}
.layui-layer-btn a{height:28px;line-height:28px;margin:0 6px;padding:0 15px;border:1px solid #dedede;background-color:#f1f1f1;color:#333;border-radius:2px;font-weight:400;cursor:pointer;text-decoration:none}
.layui-layer-btn a:hover{opacity:.9;text-decoration:none}
.layui-layer-btn a:active{opacity:.7}
.layui-layer-btn .layui-layer-btn0{border-color:#930;background-color:#8e2609;color:#fff}
.layui-layer-dialog{min-width:260px}
.layui-layer-dialog .layui-layer-content{position:relative;padding:20px;line-height:24px;word-break:break-all;font-size:14px;overflow:auto}
.layui-layer-dialog .layui-layer-content .layui-layer-ico{position:absolute;top:16px;left:15px;width:30px;height:30px}
.layui-layer-ico1{background-position:-30px 0}
.layui-layer-ico2{background-position:-60px 0}
.layui-layer-ico3{background-position:-90px 0}
.layui-layer-ico4{background-position:-120px 0}
.layui-layer-ico5{background-position:-150px 0}
.layui-layer-ico6{background-position:-180px 0}
.layui-layer-rim{border:6px solid #8D8D8D;border:6px solid rgba(0,0,0,.3);border-radius:5px;box-shadow:none}
.layui-layer-msg{min-width:180px;border:1px solid #D3D4D3;box-shadow:none}
.layui-layer-hui{min-width:100px;background-color:#000;filter:alpha(opacity=60);background-color:rgba(0,0,0,.6);color:#fff;border:none}
.layui-layer-hui .layui-layer-content{padding:12px 25px;text-align:center}
.layui-layer-dialog .layui-layer-padding{padding:20px 20px 20px 55px;text-align:left}
.layui-layer-page .layui-layer-content{position:relative;overflow:auto}
.layui-layer-iframe .layui-layer-btn,.layui-layer-page .layui-layer-btn{padding-top:10px}
.layui-layer-nobg{background:0 0}
.layui-layer-iframe .layui-layer-content{overflow:hidden}
.layui-layer-iframe iframe{display:block;width:100%}
.layui-layer-loading{border-radius:100%;background:0 0;box-shadow:none;border:none}
.layui-layer-loading .layui-layer-content{width:60px;height:24px;background:url(default/loading-0.gif) no-repeat}
.layui-layer-loading .layui-layer-loading1{width:37px;height:37px;background:url(default/loading-1.gif) no-repeat}
.layui-layer-ico16,.layui-layer-loading .layui-layer-loading2{width:32px;height:32px;background:url(default/loading-2.gif) no-repeat}
.layui-layer-tips{background:0 0;box-shadow:none;border:none}
.layui-layer-tips .layui-layer-content{position:relative;line-height:22px;min-width:12px;padding:5px 10px;font-size:12px;border-radius:3px;box-shadow:1px 1px 3px rgba(0,0,0,.3);background-color:#F90;color:#fff}
.layui-layer-tips .layui-layer-close{right:-2px;top:-1px}
.layui-layer-tips i.layui-layer-TipsG{position:absolute;width:0;height:0;border-width:8px;border-color:transparent;border-style:dashed}
.layui-layer-tips i.layui-layer-TipsB,.layui-layer-tips i.layui-layer-TipsT{left:5px;border-right-style:solid;border-right-color:#F90}
.layui-layer-tips i.layui-layer-TipsT{bottom:-8px}
.layui-layer-tips i.layui-layer-TipsB{top:-8px}
.layui-layer-tips i.layui-layer-TipsL,.layui-layer-tips i.layui-layer-TipsR{top:1px;border-bottom-style:solid;border-bottom-color:#F90}
.layui-layer-tips i.layui-layer-TipsR{left:-8px}
.layui-layer-tips i.layui-layer-TipsL{right:-8px}
.layui-layer-lan[type=dialog]{min-width:280px}
.layui-layer-lan .layui-layer-title{background:#4476A7;color:#fff;border:none}
.layui-layer-lan .layui-layer-btn{padding:10px;text-align:right;border-top:1px solid #E9E7E7}
.layui-layer-lan .layui-layer-btn a{background:#BBB5B5;border:none}
.layui-layer-lan .layui-layer-btn .layui-layer-btn1{background:#C9C5C5}
.layui-layer-molv .layui-layer-title{background:#009f95;color:#fff;border:none}
.layui-layer-molv .layui-layer-btn a{background:#009f95}
.layui-layer-molv .layui-layer-btn .layui-layer-btn1{background:#92B8B1}
.layui-layer-iconext{background:url(default/icon-ext.png) no-repeat}
.layui-layer-prompt .layui-layer-input{display:block;width:220px;height:30px;margin:0 auto;line-height:30px;padding:0 5px;border:1px solid #ccc;box-shadow:1px 1px 5px rgba(0,0,0,.1) inset;color:#333}
.layui-layer-prompt textarea.layui-layer-input{width:300px;height:100px;line-height:20px}
.layui-layer-tab{box-shadow:1px 1px 50px rgba(0,0,0,.4)}
.layui-layer-tab .layui-layer-title{padding-left:0;border-bottom:1px solid #ccc;background-color:#eee;overflow:visible}
.layui-layer-tab .layui-layer-title span{position:relative;float:left;min-width:80px;max-width:260px;padding:0 20px;text-align:center;cursor:default;overflow:hidden}
.layui-layer-tab .layui-layer-title span.layui-layer-tabnow{height:43px;border-left:1px solid #ccc;border-right:1px solid #ccc;background-color:#fff;z-index:10}
.layui-layer-tab .layui-layer-title span:first-child{border-left:none}
.layui-layer-tabmain{line-height:24px;clear:both}
.layui-layer-tabmain .layui-layer-tabli{display:none}
.layui-layer-tabmain .layui-layer-tabli.xubox_tab_layer{display:block}
.xubox_tabclose{position:absolute;right:10px;top:5px;cursor:pointer}
.layui-layer-photos{-webkit-animation-duration:1s;animation-duration:1s}
.layui-layer-photos .layui-layer-content{overflow:hidden;text-align:center}
.layui-layer-photos .layui-layer-phimg img{position:relative;width:100%;display:inline-block;vertical-align:top}
.layui-layer-imgbar,.layui-layer-imguide{display:none}
.layui-layer-imgnext,.layui-layer-imgprev{position:absolute;top:50%;width:27px;height:44px;margin-top:-22px;outline:0;blr:expression(this.onFocus=this.blur())}
.layui-layer-imgprev{left:10px;background-position:-5px -5px}
.layui-layer-imgprev:hover{background-position:-33px -5px}
.layui-layer-imgnext{right:10px;background-position:-5px -50px}
.layui-layer-imgnext:hover{background-position:-33px -50px}
.layui-layer-imgbar{position:absolute;left:0;bottom:0;width:100%;height:32px;line-height:32px;background-color:rgba(0,0,0,.8);background-color:#000\9;filter:Alpha(opacity=80);color:#fff;overflow:hidden;font-size:0}
.layui-layer-imgtit *{display:inline-block;vertical-align:top;font-size:12px}
.layui-layer-imgtit a{max-width:65%;overflow:hidden;color:#fff}
.layui-layer-imgtit a:hover{color:#fff;text-decoration:underline}
.layui-layer-imgtit em{padding-left:10px;font-style:normal}

BIN
public/layer/theme/default/icon-ext.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
public/layer/theme/default/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

181
public/layer/theme/default/layer.css

@ -0,0 +1,181 @@
/**
@Name: layer
@Author: 贤心
**/
/* *html{background-image: url(about:blank); background-attachment: fixed;} */
html #layuicss-layer{display: none; position: absolute; width: 1989px;}
/* common */
.layui-layer-shade, .layui-layer{position:fixed; _position:absolute; pointer-events: auto;}
.layui-layer-shade{top:0; left:0; width:100%; height:100%; _height:expression(document.body.offsetHeight+"px");}
.layui-layer{-webkit-overflow-scrolling: touch;}
.layui-layer{top:150px; left: 0; margin:0; padding:0; background-color:#fff; -webkit-background-clip: content; border-radius: 2px; box-shadow: 1px 1px 50px rgba(0,0,0,.3);}
.layui-layer-close{position:absolute;}
.layui-layer-content{position:relative;}
.layui-layer-border{border: 1px solid #B2B2B2; border: 1px solid rgba(0,0,0,.1); box-shadow: 1px 1px 5px rgba(0,0,0,.2);}
.layui-layer-load{background:url(loading-1.gif) #eee center center no-repeat;}
.layui-layer-ico{ background:url(icon.png) no-repeat;}
.layui-layer-dialog .layui-layer-ico,
.layui-layer-setwin a,
.layui-layer-btn a{display:inline-block; *display:inline; *zoom:1; vertical-align:top;}
.layui-layer-move{display: none; position: fixed; *position: absolute; left: 0px; top: 0px; width: 100%; height: 100%; cursor: move; opacity: 0; filter:alpha(opacity=0); background-color: #fff; z-index: 2147483647;}
.layui-layer-resize{position: absolute; width: 15px; height: 15px; right: 0; bottom: 0; cursor: se-resize;}
/* 动画 */
.layer-anim{-webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-duration:.3s; animation-duration:.3s;}
@-webkit-keyframes layer-bounceIn { /* 默认 */
0% {opacity: 0; -webkit-transform: scale(.5); transform: scale(.5)}
100% {opacity: 1; -webkit-transform: scale(1); transform: scale(1)}
}
@keyframes layer-bounceIn {
0% {opacity: 0; -webkit-transform: scale(.5); -ms-transform: scale(.5); transform: scale(.5)}
100% {opacity: 1; -webkit-transform: scale(1); -ms-transform: scale(1); transform: scale(1)}
}
.layer-anim-00{-webkit-animation-name: layer-bounceIn;animation-name: layer-bounceIn}
@-webkit-keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-01{-webkit-animation-name:layer-zoomInDown;animation-name:layer-zoomInDown}
@-webkit-keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.layer-anim-02{-webkit-animation-name:layer-fadeInUpBig;animation-name:layer-fadeInUpBig}
@-webkit-keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);-ms-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-03{-webkit-animation-name:layer-zoomInLeft;animation-name:layer-zoomInLeft}
@-webkit-keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0px) rotate(0deg);transform:translateX(0px) rotate(0deg)}}@keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);-ms-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0px) rotate(0deg);-ms-transform:translateX(0px) rotate(0deg);transform:translateX(0px) rotate(0deg)}}.layer-anim-04{-webkit-animation-name:layer-rollIn;animation-name:layer-rollIn}
@keyframes layer-fadeIn{0%{opacity:0}100%{opacity:1}}.layer-anim-05{-webkit-animation-name:layer-fadeIn;animation-name:layer-fadeIn}
@-webkit-keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}.layer-anim-06{-webkit-animation-name:layer-shake;animation-name:layer-shake}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}
/* 标题栏 */
.layui-layer-title{padding:0 80px 0 20px; height:42px; line-height:42px; border-bottom:1px solid #eee; font-size:14px; color:#333; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; background-color: #F8F8F8; border-radius: 2px 2px 0 0;}
.layui-layer-setwin{position:absolute; right:15px; *right:0; top:15px; font-size:0; line-height: initial;}
.layui-layer-setwin a{position:relative; width: 16px; height:16px; margin-left:10px; font-size:12px; _overflow:hidden;}
.layui-layer-setwin .layui-layer-min cite{position:absolute; width:14px; height:2px; left:0; top:50%; margin-top:-1px; background-color:#2E2D3C; cursor:pointer; _overflow:hidden;}
.layui-layer-setwin .layui-layer-min:hover cite{background-color:#2D93CA; }
.layui-layer-setwin .layui-layer-max{background-position:-32px -40px;}
.layui-layer-setwin .layui-layer-max:hover{background-position:-16px -40px;}
.layui-layer-setwin .layui-layer-maxmin{background-position:-65px -40px;}
.layui-layer-setwin .layui-layer-maxmin:hover{background-position:-49px -40px;}
.layui-layer-setwin .layui-layer-close1{background-position: 1px -40px; cursor: pointer;}
.layui-layer-setwin .layui-layer-close1:hover{opacity:0.7;}
.layui-layer-setwin .layui-layer-close2{position:absolute; right:-28px; top:-28px; width:30px; height:30px; margin-left:0; background-position:-149px -31px; *right:-18px; _display:none;}
.layui-layer-setwin .layui-layer-close2:hover{ background-position:-180px -31px;}
/* 按钮栏 */
.layui-layer-btn{text-align: right; padding: 0 15px 12px; pointer-events: auto; user-select: none; -webkit-user-select: none;}
.layui-layer-btn a{height: 28px; line-height: 28px; margin: 5px 5px 0; padding: 0 15px; border: 1px solid #dedede; background-color:#fff; color: #333; border-radius: 2px; font-weight:400; cursor:pointer; text-decoration: none;}
.layui-layer-btn a:hover{opacity: 0.9; text-decoration: none;}
.layui-layer-btn a:active{opacity: 0.8;}
.layui-layer-btn .layui-layer-btn0{border-color: #1E9FFF; background-color: #1E9FFF; color:#fff;}
.layui-layer-btn-l{text-align: left;}
.layui-layer-btn-c{text-align: center;}
/* 定制化 */
.layui-layer-dialog{min-width:260px;}
.layui-layer-dialog .layui-layer-content{position: relative; padding:20px; line-height:24px; word-break: break-all; overflow:hidden; font-size:14px; overflow-x: hidden; overflow-y:auto;}
.layui-layer-dialog .layui-layer-content .layui-layer-ico{position:absolute; top:16px; left:15px; _left:-40px; width:30px; height:30px;}
.layui-layer-ico1{background-position:-30px 0 }
.layui-layer-ico2{background-position:-60px 0;}
.layui-layer-ico3{background-position:-90px 0;}
.layui-layer-ico4{background-position:-120px 0;}
.layui-layer-ico5{background-position:-150px 0;}
.layui-layer-ico6{background-position:-180px 0;}
.layui-layer-rim{border:6px solid #8D8D8D; border:6px solid rgba(0,0,0,.3); border-radius:5px; box-shadow: none;}
.layui-layer-msg{min-width:180px; border:1px solid #D3D4D3; box-shadow: none;}
.layui-layer-hui{min-width:100px; background-color: #000; filter:alpha(opacity=60); background-color: rgba(0,0,0,0.6); color: #fff; border:none;}
.layui-layer-hui .layui-layer-content{padding:12px 25px; text-align:center;}
.layui-layer-dialog .layui-layer-padding{padding: 20px 20px 20px 55px; text-align: left;}
.layui-layer-page .layui-layer-content{position:relative; overflow:auto;}
.layui-layer-page .layui-layer-btn,.layui-layer-iframe .layui-layer-btn{padding-top:10px;}
.layui-layer-nobg{background:none;}
.layui-layer-iframe iframe{display: block; width: 100%;}
.layui-layer-loading{border-radius:100%; background:none; box-shadow:none; border:none;}
.layui-layer-loading .layui-layer-content{width:60px; height:24px; background:url(loading-0.gif) no-repeat;}
.layui-layer-loading .layui-layer-loading1{width:37px; height:37px; background:url(loading-1.gif) no-repeat;}
.layui-layer-loading .layui-layer-loading2, .layui-layer-ico16{width:32px; height:32px; background:url(loading-2.gif) no-repeat;}
.layui-layer-tips{background: none; box-shadow:none; border:none;}
.layui-layer-tips .layui-layer-content{position: relative; line-height: 22px; min-width: 12px; padding: 8px 15px; font-size: 12px; _float:left; border-radius: 2px; box-shadow: 1px 1px 3px rgba(0,0,0,.2); background-color: #000; color: #fff;}
.layui-layer-tips .layui-layer-close{right:-2px; top:-1px;}
.layui-layer-tips i.layui-layer-TipsG{ position:absolute; width:0; height:0; border-width:8px; border-color:transparent; border-style:dashed; *overflow:hidden;}
.layui-layer-tips i.layui-layer-TipsT, .layui-layer-tips i.layui-layer-TipsB{left:5px; border-right-style:solid; border-right-color: #000;}
.layui-layer-tips i.layui-layer-TipsT{bottom:-8px;}
.layui-layer-tips i.layui-layer-TipsB{top:-8px;}
.layui-layer-tips i.layui-layer-TipsR, .layui-layer-tips i.layui-layer-TipsL{top: 5px; border-bottom-style:solid; border-bottom-color: #000;}
.layui-layer-tips i.layui-layer-TipsR{left:-8px;}
.layui-layer-tips i.layui-layer-TipsL{right:-8px;}
/* skin */
.layui-layer-lan[type="dialog"]{min-width:280px;}
.layui-layer-lan .layui-layer-title{background:#4476A7; color:#fff; border: none;}
.layui-layer-lan .layui-layer-btn{padding: 5px 10px 10px; text-align: right; border-top:1px solid #E9E7E7}
.layui-layer-lan .layui-layer-btn a{background: #fff; border-color: #E9E7E7; color: #333;}
.layui-layer-lan .layui-layer-btn .layui-layer-btn1{background:#C9C5C5;}
.layui-layer-molv .layui-layer-title{background: #009f95; color:#fff; border: none;}
.layui-layer-molv .layui-layer-btn a{background: #009f95; border-color: #009f95;}
.layui-layer-molv .layui-layer-btn .layui-layer-btn1{background:#92B8B1;}
/**
@Name: layer拓展样式
*/
.layui-layer-iconext{background:url(icon-ext.png) no-repeat;}
/* prompt模式 */
.layui-layer-prompt .layui-layer-input{display: block; width: 230px; height: 36px; margin: 0 auto; line-height: 30px; padding-left: 10px; border: 1px solid #e6e6e6; color: #333;}
.layui-layer-prompt textarea.layui-layer-input{width: 300px; height: 100px; line-height: 20px; padding: 6px 10px;}
.layui-layer-prompt .layui-layer-content{padding: 20px;}
.layui-layer-prompt .layui-layer-btn{padding-top: 0;}
/* tab模式 */
.layui-layer-tab{box-shadow:1px 1px 50px rgba(0,0,0,.4);}
.layui-layer-tab .layui-layer-title{padding-left:0; overflow: visible;}
.layui-layer-tab .layui-layer-title span{position:relative; float:left; min-width:80px; max-width:260px; padding:0 20px; text-align:center; cursor:default; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; cursor: pointer;}
.layui-layer-tab .layui-layer-title span.layui-this{height: 43px; border-left: 1px solid #eee; border-right: 1px solid #eee; background-color: #fff; z-index: 10;}
.layui-layer-tab .layui-layer-title span:first-child{border-left:none;}
.layui-layer-tabmain{line-height:24px; clear:both;}
.layui-layer-tabmain .layui-layer-tabli{display:none;}
.layui-layer-tabmain .layui-layer-tabli.layui-this{display: block;}
/* photo模式 */
.layui-layer-photos{-webkit-animation-duration: .8s; animation-duration: .8s;}
.layui-layer-photos .layui-layer-content{overflow:hidden; text-align: center;}
.layui-layer-photos .layui-layer-phimg img{position: relative; width:100%; display: inline-block; *display:inline; *zoom:1; vertical-align:top;}
.layui-layer-imguide,.layui-layer-imgbar{display:none;}
.layui-layer-imgprev, .layui-layer-imgnext{position:absolute; top:50%; width:27px; _width:44px; height:44px; margin-top:-22px; outline:none;blr:expression(this.onFocus=this.blur());}
.layui-layer-imgprev{left:10px; background-position:-5px -5px; _background-position:-70px -5px;}
.layui-layer-imgprev:hover{background-position:-33px -5px; _background-position:-120px -5px;}
.layui-layer-imgnext{right:10px; _right:8px; background-position:-5px -50px; _background-position:-70px -50px;}
.layui-layer-imgnext:hover{background-position:-33px -50px; _background-position:-120px -50px;}
.layui-layer-imgbar{position:absolute; left:0; bottom:0; width:100%; height:32px; line-height:32px; background-color:rgba(0,0,0,.8); background-color:#000\9; filter:Alpha(opacity=80); color:#fff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; font-size:0;}
.layui-layer-imgtit{/*position:absolute; left:20px;*/}
.layui-layer-imgtit *{display:inline-block; *display:inline; *zoom:1; vertical-align:top; font-size:12px;}
.layui-layer-imgtit a{max-width:65%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; color:#fff;}
.layui-layer-imgtit a:hover{color:#fff; text-decoration:underline;}
.layui-layer-imgtit em{padding-left:10px; font-style: normal;}
/* 关闭动画 */
@-webkit-keyframes layer-bounceOut {
100% {opacity: 0; -webkit-transform: scale(.7); transform: scale(.7)}
30% {-webkit-transform: scale(1.05); transform: scale(1.05)}
0% {-webkit-transform: scale(1); transform: scale(1);}
}
@keyframes layer-bounceOut {
100% {opacity: 0; -webkit-transform: scale(.7); -ms-transform: scale(.7); transform: scale(.7);}
30% {-webkit-transform: scale(1.05); -ms-transform: scale(1.05); transform: scale(1.05);}
0% {-webkit-transform: scale(1); -ms-transform: scale(1);transform: scale(1);}
}
.layer-anim-close{-webkit-animation-name: layer-bounceOut; animation-name: layer-bounceOut; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-duration:.2s; animation-duration:.2s;}
@media screen and (max-width: 1100px) {
.layui-layer-iframe{overflow-y: auto; -webkit-overflow-scrolling: touch;}
}

BIN
public/layer/theme/default/loading-0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

BIN
public/layer/theme/default/loading-1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

BIN
public/layer/theme/default/loading-2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
public/layer/theme/moon/default.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

140
public/layer/theme/moon/style.css

@ -0,0 +1,140 @@
/*
* layer皮肤
*
*/
html #layui_layer_skinmoonstylecss {
display: none;
position: absolute;
width: 1989px;
}
body .layer-ext-moon[type="dialog"] {
min-width: 320px;
}
body .layer-ext-moon-msg[type="dialog"]{min-width:200px;}
body .layer-ext-moon .layui-layer-title {
background: #f6f6f6;
color: #212a31;
font-size: 16px;
font-weight: bold;
height: 46px;
line-height: 46px;
border-bottom: 1px solid #D5D5D5;
}
body .layer-ext-moon .layui-layer-content .layui-layer-ico {
height: 32px;
width: 32px;
top:18.5px;
}
body .layer-ext-moon .layui-layer-ico0 {
background: url(default.png) no-repeat -96px 0;
;
}
body .layer-ext-moon .layui-layer-ico1 {
background: url(default.png) no-repeat -224px 0;
;
}
body .layer-ext-moon .layui-layer-ico2 {
background: url(default.png) no-repeat -192px 0;
}
body .layer-ext-moon .layui-layer-ico3 {
background: url(default.png) no-repeat -160px 0;
}
body .layer-ext-moon .layui-layer-ico4 {
background: url(default.png) no-repeat -320px 0;
}
body .layer-ext-moon .layui-layer-ico5 {
background: url(default.png) no-repeat -288px 0;
}
body .layer-ext-moon .layui-layer-ico6 {
background: url(default.png) -256px 0;
}
body .layer-ext-moon .layui-layer-ico7 {
background: url(default.png) no-repeat -128px 0;
}
body .layer-ext-moon .layui-layer-setwin {
top: 15px;
right: 15px;
}
body .layer-ext-moon .layui-layer-setwin a {
width: 16px;
height: 16px;
}
body .layer-ext-moon .layui-layer-setwin .layui-layer-min cite:hover {
background-color: #56abe4;
}
body .layer-ext-moon .layui-layer-setwin .layui-layer-max {
background: url(default.png) no-repeat -80px 0;
}
body .layer-ext-moon .layui-layer-setwin .layui-layer-max:hover {
background: url(default.png) no-repeat -64px 0;
}
body .layer-ext-moon .layui-layer-setwin .layui-layer-maxmin {
background: url(default.png) no-repeat -32px 0;
}
body .layer-ext-moon .layui-layer-setwin .layui-layer-maxmin:hover {
background: url(default.png) no-repeat -16px 0;
}
body .layer-ext-moon .layui-layer-setwin .layui-layer-close1,body .layer-ext-moon .layui-layer-setwin .layui-layer-close2 {
background: url(default.png) 0 0;
}
body .layer-ext-moon .layui-layer-setwin .layui-layer-close1:hover,body .layer-ext-moon .layui-layer-setwin .layui-layer-close2:hover {
background: url(default.png) -48px 0;
}
body .layer-ext-moon .layui-layer-padding{padding-top: 24px;}
body .layer-ext-moon .layui-layer-btn {
text-align: center;
padding-top: 15px;
padding-bottom:15px;
background: #f0f4f7;
border-top: 1px #c7c7c7 solid;
}
body .layer-ext-moon .layui-layer-btn a {
font-size: 12px;
font-weight: normal;
margin: 0 3px;
margin-right: 7px;
margin-left: 7px;
padding: 6px 20px;
color: #fff;
border: 1px solid #0064b6;
background: #0071ce;
border-radius: 3px;
display: inline-block;
height: 20px;
line-height: 20px;
text-align: center;
vertical-align: middle;
background-repeat: no-repeat;
text-decoration: none;
outline: none;
}
body .layer-ext-moon .layui-layer-btn .layui-layer-btn0 {
background: #0071ce;
}
body .layer-ext-moon .layui-layer-btn .layui-layer-btn1 {
background: #fff;
color: #404a58;
border: 1px solid #c0c4cd;
border-radius: 3px;
}
body .layer-ext-moon .layui-layer-btn .layui-layer-btn2 {
background: #f60;
color: #fff;
border: 1px solid #f60;
border-radius: 3px;
}
body .layer-ext-moon .layui-layer-btn .layui-layer-btn3 {
background: #f00;
color: #fff;
border: 1px solid #f00;
border-radius: 3px;
}
body .layer-ext-moon .layui-layer-title span.layui-layer-tabnow{
height:47px;
}

BIN
public/mania/select-mania-font.ttf

Binary file not shown.

BIN
public/mania/select-mania-font.woff

Binary file not shown.

33
public/mania/select-mania-theme-darkblue.css

@ -0,0 +1,33 @@
/* ################################################################## */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ GLOBAL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* ################################################################## */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SELECTMANIA ELEMENT */
.select-mania-theme-darkblue .select-mania-inner { border:1px solid #D6D6D6; }
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SELECTED VALUES */
.select-mania-theme-darkblue.select-mania.select-mania-multiple .select-mania-value {
border: 1px solid #336AB2;
background-color: #336AB2;
color: white;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DROPDOWN */
.select-mania-theme-darkblue .select-mania { border:1px solid #D6D6D6; }
.select-mania-theme-darkblue .select-mania-search-input {
border:1px solid #D6D6D6;
color: #5A5A5A;
}
.select-mania-theme-darkblue .select-mania-item:hover { background:#D4DFEF; }
.select-mania-theme-darkblue .select-mania-item.select-mania-selected {
background: #336AB2;
color: white;
}

794
public/mania/select-mania.css

@ -0,0 +1,794 @@
/* ################################################################## */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ICONES ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* ################################################################## */
@charset "UTF-8";
@font-face {
font-family: "select-mania-font";
src:url("./select-mania-font.eot");
src:url("./select-mania-font.eot?#iefix") format("embedded-opentype"),
url("./select-mania-font.woff") format("woff"),
url("./select-mania-font.ttf") format("truetype"),
url("./select-mania-font.svg#select-mania-font") format("svg");
font-weight: normal;
font-style: normal;
}
.select-mania [data-icon]:before {
font-family: "select-mania-font" !important;
content: attr(data-icon);
font-style: normal !important;
font-weight: normal !important;
font-variant: normal !important;
text-transform: none !important;
speak: none;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.select-mania [class^="icon-"],
.select-mania [class*=" icon-"] {
display:inline-block;
}
.select-mania [class^="icon-"]:before,
.select-mania [class*=" icon-"]:before {
font-family: "select-mania-font" !important;
font-style: normal !important;
font-weight: normal !important;
font-variant: normal !important;
text-transform: none !important;
speak: none;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.select-mania .icon-arrow-down:before {
content: "\61";
}
.select-mania .icon-cross:before {
content: "\63";
}
.select-mania .icon-loading:before {
content: "\6c";
}
@-webkit-keyframes rotating {
from {
-webkit-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
to {
-webkit-transform: rotate(360deg);
-o-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes rotating {
from {
-ms-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
to {
-ms-transform: rotate(360deg);
-moz-transform: rotate(360deg);
-webkit-transform: rotate(360deg);
-o-transform: rotate(360deg);
transform: rotate(360deg);
}
}
.select-mania .icon-loading-container {
display:inline-block;
width:32px;
height:32px;
position:absolute;
top:0;
bottom:0;
left:0;
right:0;
margin:auto;
font-size:2rem;
}
.select-mania .icon-loading-container .icon-loading {
width:32px;
height:32px;
-webkit-animation: rotating 2s linear infinite;
-moz-animation: rotating 2s linear infinite;
-ms-animation: rotating 2s linear infinite;
-o-animation: rotating 2s linear infinite;
animation: rotating 2s linear infinite;
}
/* ################################################################## */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ GLOBAL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* ################################################################## */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ORIGINAL SELECT */
.select-mania-original {
border:0 !important;
clip:rect(0 0 0 0) !important;
margin:0 !important;
overflow:hidden !important;
padding:0 !important;
position:absolute !important;
top:0 !important;
left:0 !important;
width:100% !important;
height:100% !important;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SELECTMANIA ELEMENT */
.select-mania {
display:inline-block;
position:relative;
width:100%;
margin:auto;
background:white;
vertical-align:middle;
border-radius:4px;
-webkit-border-radius:4px;
-moz-border-radius:4px;
}
.select-mania,
.select-mania *,
.select-mania-dropdown,
.select-mania-dropdown * {
box-sizing:border-box !important;
}
.select-mania,
.select-mania *:not(.select-mania-search-input) {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.select-mania-inner {
width:100%;
min-height:42px;
font-size:0;
padding:6px;
border:1px solid #D6D6D6;
border-radius:4px;
-webkit-border-radius:4px;
-moz-border-radius:4px;
cursor:pointer;
}
.select-mania-inner.select-mania-disabled {
border-color:#DDDDDD;
}
.select-mania-values,
.select-mania-value,
.select-mania-value-text,
.select-mania-value-clear,
.select-mania-clear,
.select-mania-arrow {
display:inline-block;
vertical-align:middle;
}
.select-mania-hidden {
display:none !important;
}
.select-mania-focused {
-webkit-box-shadow: #047DE2 0 0 4px;
-moz-box-shadow: #047DE2 0 0 4px;
box-shadow: #047DE2 0 0 4px;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SELECTED VALUES */
.select-mania-values {
width:calc(100% - 48px);
min-height:26px;
padding-right:4px;
font-size:0;
text-align:left;
}
.select-mania.select-mania-disabled .select-mania-inner {
color:#CCCCCC;
}
.select-mania-value {
width:auto;
max-width:100%;
height:26px;
border-radius: 4px;
-webkit-border-radius:4px;
-moz-border-radius:4px;
margin-top:1px;
margin-bottom:1px;
margin-right:4px;
padding: 0 2px;
font-size:0;
}
.select-mania.select-mania-multiple .select-mania-value {
border: 1px solid #047DE2;
background-color: #047DE2;
color: white;
}
.select-mania-value-text {
height:26px;
padding:4px;
font-size:1rem;
text-align:left;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
max-width: 100%;
}
.select-mania.select-mania-multiple .select-mania-value-text {
max-width:calc(100% - 22px);
}
.select-mania-value-clear {
display:none;
}
.select-mania.select-mania-multiple .select-mania-value-clear {
display:inline-block;
width:22px;
height:26px;
padding:4px;
font-size:1rem;
text-align:center;
}
.select-mania-value-clear i {
line-height:18px;
font-size:0.9rem;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PLACEHOLDER */
.select-mania-placeholder {
display:none;
width:auto;
height:26px;
padding:4px;
font-size:1rem;
color:#7F8C8D;
}
.select-mania-placeholder:only-child {
display:inline-block;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CLEAN VALUES ICON */
.select-mania-clear {
width:24px;
font-size:1rem;
text-align:center;
color: #EB1F38;
}
.select-mania.select-mania-disabled .select-mania-clear {
color:#CCCCCC;
}
.select-mania-clear i {
font-size:1.1rem;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ARROW ICON */
.select-mania-arrow {
width:24px;
font-size:1rem;
text-align:center;
color: #383838;
}
.select-mania.select-mania-disabled .select-mania-arrow {
color:#CCCCCC;
}
.select-mania-arrow i {
font-size:1.1rem;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DROPDOWN */
.select-mania-dropdown {
background:white;
z-index:9;
display:none;
position:absolute;
top:100%;
width:100%;
padding:6px;
border:1px solid #D6D6D6;
border-radius:4px;
-webkit-border-radius:4px;
-moz-border-radius:4px;
}
.select-mania-dropdown-search {
width:100%;
margin-bottom:6px;
}
.select-mania-search-input {
width:100%;
padding:6px;
border-radius:4px;
-webkit-border-radius:4px;
-moz-border-radius:4px;
font-size:1rem;
border:1px solid #D6D6D6;
color: #5A5A5A;
outline:none;
background-image:none;
background-color:transparent;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
.select-mania-items-container {
position:relative;
width:100%;
max-height:200px;
}
.select-mania-items {
width:100%;
max-height:200px;
overflow-y:auto;
}
.select-mania-group {
width:100%;
}
.select-mania-group.select-mania-disabled {
color: #D6D6D6;
}
.select-mania-group-title {
width:100%;
padding:6px;
font-size:1rem;
font-weight:bold;
text-align:left;
}
.select-mania-group-inner {
width:100%;
}
.select-mania-item {
width:100%;
min-height:20px;
padding:6px;
border-radius:4px;
-webkit-border-radius:4px;
-moz-border-radius:4px;
font-size:0;
cursor:pointer;
text-align:left;
}
.select-mania-item.select-mania-hover {
background:#E3F1FC;
}
.select-mania-item:empty[data-value=""] {
display:none;
}
.select-mania-group-icon,
.select-mania-item-icon {
width: 20px;
height: 20px;
display: inline-block;
font-size: 1rem;
text-align: center;
margin-right: 4px;
vertical-align: top;
}
.select-mania-group-icon i,
.select-mania-item-icon i {
width: 20px;
height: 20px;
vertical-align: middle;
}
.select-mania-group-text,
.select-mania-item-text {
display: inline-block;
width: 100%;
min-height: 20px;
font-size:1rem;
vertical-align: top;
text-align:left;
}
.select-mania-group-icon+.select-mania-group-text,
.select-mania-item-icon+.select-mania-item-text {
width: calc(100% - 24px);
}
.select-mania-group-inner .select-mania-item {
padding-left:18px;
}
.select-mania-item.select-mania-selected {
background: #047de2;
color: white;
}
.select-mania.select-mania-multiple .select-mania-item.select-mania-selected {
display:none;
}
.select-mania-item.select-mania-disabled {
color: #D6D6D6;
}
.select-mania-item.select-mania-disabled.select-mania-hover {
background:none;
}
/* ################################################################## */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~ TAILLE TINY ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* ################################################################## */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ GLOBAL */
.select-mania-tiny .select-mania-inner {
min-height:24px;
padding:2px;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SELECTED VALUES */
.select-mania-tiny .select-mania-values {
width:calc(100% - 36px);
min-height:18px;
}
.select-mania-tiny .select-mania-value {
height:16px;
}
.select-mania-tiny .select-mania-value-text {
height:14px;
padding:0;
font-size:0.75rem;
}
.select-mania-tiny.select-mania-multiple .select-mania-value-text {
max-width:calc(100% - 14px);
}
.select-mania.select-mania-multiple.select-mania-tiny .select-mania-value-clear {
width:14px;
height:14px;
padding:0;
}
.select-mania-tiny .select-mania-value-clear i {
line-height:14px;
font-size:0.75rem;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PLACEHOLDER */
.select-mania-tiny .select-mania-placeholder {
height:16px;
padding:2px;
font-size:0.75rem;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CLEAN VALUES ICON */
.select-mania-tiny .select-mania-clear {
width:18px;
}
.select-mania-tiny .select-mania-clear i {
font-size:0.85rem;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ARROW ICON */
.select-mania-tiny .select-mania-arrow {
width:18px;
}
.select-mania-tiny .select-mania-arrow i {
font-size:0.85rem;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DROPDOWN */
.select-mania-dropdown.select-mania-tiny {
padding:2px;
}
.select-mania-tiny .select-mania-dropdown-search {
margin-bottom:2px;
}
.select-mania-tiny .select-mania-search-input {
padding:2px;
font-size:0.75rem;
}
.select-mania-tiny .select-mania-item {
min-height:16px;
padding:2px;
font-size:0;
}
.select-mania-tiny .select-mania-group-icon,
.select-mania-tiny .select-mania-item-icon {
width: 14px;
height: 14px;
margin-right: 2px;
font-size: 0.65rem;
}
.select-mania-tiny .select-mania-group-icon i,
.select-mania-tiny .select-mania-item-icon i {
width: 14px;
height: 14px;
}
.select-mania-tiny .select-mania-group-text,
.select-mania-tiny .select-mania-item-text {
min-height: 14px;
font-size:0.75rem;
}
.select-mania-tiny .select-mania-group-icon+.select-mania-group-text,
.select-mania-tiny .select-mania-item-icon+.select-mania-item-text {
width: calc(100% - 19px);
}
.select-mania-tiny .select-mania-group-title {
padding:2px;
font-size:0.75rem;
}
.select-mania-tiny .select-mania-group-inner .select-mania-item {
padding-left:8px;
}
/* ################################################################## */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~ TAILLE SMALL ~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* ################################################################## */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ GLOBAL */
.select-mania-small .select-mania-inner {
min-height:34px;
padding:4px;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SELECTED VALUES */
.select-mania-small .select-mania-values {
width:calc(100% - 44px);
min-height:24px;
}
.select-mania-small .select-mania-value {
height:22px;
}
.select-mania-small .select-mania-value-text {
height:20px;
padding:3px;
font-size:0.8rem;
}
.select-mania-small.select-mania-multiple .select-mania-value-text {
max-width:calc(100% - 20px);
}
.select-mania.select-mania-multiple.select-mania-small .select-mania-value-clear {
width:20px;
height:20px;
padding:3px;
}
.select-mania-small .select-mania-value-clear i {
line-height:14px;
font-size:0.9rem;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PLACEHOLDER */
.select-mania-small .select-mania-placeholder {
height:20px;
padding:4px;
font-size:0.8rem;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CLEAN VALUES ICON */
.select-mania-small .select-mania-clear {
width:22px;
}
.select-mania-small .select-mania-clear i {
font-size:1rem;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ARROW ICON */
.select-mania-small .select-mania-arrow {
width:22px;
}
.select-mania-small .select-mania-arrow i {
font-size:1rem;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DROPDOWN */
.select-mania-dropdown.select-mania-small {
padding:4px;
}
.select-mania-small .select-mania-dropdown-search {
margin-bottom:4px;
}
.select-mania-small .select-mania-search-input {
padding:4px;
font-size:0.8rem;
}
.select-mania-small .select-mania-item {
min-height:16px;
padding:4px;
font-size:0;
}
.select-mania-small .select-mania-group-icon,
.select-mania-small .select-mania-item-icon {
width: 16px;
height: 16px;
margin-right: 3px;
font-size: 0.8rem;
}
.select-mania-small .select-mania-group-icon i,
.select-mania-small .select-mania-item-icon i {
width: 16px;
height: 16px;
}
.select-mania-small .select-mania-group-text,
.select-mania-small .select-mania-item-text {
min-height: 16px;
font-size:0.8rem;
}
.select-mania-small .select-mania-group-icon+.select-mania-group-text,
.select-mania-small .select-mania-item-icon+.select-mania-item-text {
width: calc(100% - 19px);
}
.select-mania-small .select-mania-group-title {
padding:4px;
font-size:0.8rem;
}
.select-mania-small .select-mania-group-inner .select-mania-item {
padding-left:12px;
}
/* ################################################################## */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~ TAILLE LARGE ~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* ################################################################## */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ GLOBAL */
.select-mania-large .select-mania-inner {
min-height:52px;
padding:8px;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SELECTED VALUES */
.select-mania-large .select-mania-values {
width:calc(100% - 56px);
min-height:32px;
}
.select-mania-large .select-mania-value {
height:32px;
}
.select-mania-large .select-mania-value-text {
height:32px;
padding:4px;
font-size:1.1rem;
}
.select-mania-large.select-mania-multiple .select-mania-value-text {
max-width:calc(100% - 26px);
}
.select-mania.select-mania-multiple.select-mania-large .select-mania-value-clear {
width:26px;
height:32px;
padding:4px;
}
.select-mania-large .select-mania-value-clear i {
line-height:24px;
font-size:1.1rem;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PLACEHOLDER */
.select-mania-large .select-mania-placeholder {
height:32px;
padding:6px;
font-size:1.1rem;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CLEAN VALUES ICON */
.select-mania-large .select-mania-clear {
width:28px;
}
.select-mania-large .select-mania-clear i {
font-size:1.2rem;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ARROW ICON */
.select-mania-large .select-mania-arrow {
width:28px;
}
.select-mania-large .select-mania-arrow i {
font-size:1.2rem;
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DROPDOWN */
.select-mania-dropdown.select-mania-large {
padding:8px;
}
.select-mania-large .select-mania-dropdown-search {
margin-bottom:8px;
}
.select-mania-large .select-mania-search-input {
padding:8px;
font-size:1.1rem;
}
.select-mania-large .select-mania-item {
min-height:24px;
padding:8px;
font-size:0;
}
.select-mania-large .select-mania-group-icon,
.select-mania-large .select-mania-item-icon {
width: 22px;
height: 22px;
margin-right: 5px;
font-size: 1.1rem;
}
.select-mania-large .select-mania-group-icon i,
.select-mania-large .select-mania-item-icon i {
width: 22px;
height: 22px;
}
.select-mania-large .select-mania-group-text,
.select-mania-large .select-mania-item-text {
min-height: 22px;
font-size:1.1rem;
}
.select-mania-large .select-mania-group-icon+.select-mania-group-text,
.select-mania-large .select-mania-item-icon+.select-mania-item-text {
width: calc(100% - 27px);
}
.select-mania-large .select-mania-group-title {
padding:8px;
font-size:1.1rem;
}
.select-mania-large .select-mania-group-inner .select-mania-item {
padding-left:24px;
}

1599
public/mania/select-mania.js

File diff suppressed because it is too large

353
public/others/base.js

@ -0,0 +1,353 @@
var tool={
isInclude:function(name){
var js= /js$/i.test(name);
var es=document.getElementsByTagName(js?'script':'link');
for(var i=0;i<es.length;i++)
if(es[i][js?'src':'href'].indexOf(name)!=-1)return true;
return false;
},
uploadFile:function(uploadurl,btn,input,callback,show){
//插件jquery.fileupload.js
jQuery(btn).fileupload({
url: uploadurl,
dataType: 'json',
done: function (e, data) {
var file=data.result;
console.log("============done===============");
console.log(file);
if(file['code']==0){
tool.msg(file['msg']);
}else{
var pic=file['data']['path'];
console.log(input);
jQuery(input).val(pic);
if(typeof show=='undefined'||show){
if(/.(gif|jpg|jpeg|png|gif|jpg|png)$/.test(pic)){
tool.showPic(input,pic);
}
}
if(typeof callback=='function'){
callback(input,pic);
}else{
tool.msg(file['msg']);
}
}
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
console.log("============progressall===============");
console.log(progress);
tool.showProcess(input,progress);
}
}).bind('fileuploadadd',function(e,data){
var file=data['files'][0];
var url = null;
console.log(data);
if (window.createObjectURL != undefined) {
url = window.createObjectURL(file);
} else if (window.URL != undefined) {
url = window.URL.createObjectURL(file);
} else if (window.webkitURL != undefined) {
url = window.webkitURL.createObjectURL(file);
}
console.log("============fileuploadadd===============");
console.log(url);
if(typeof show=='undefined'||show){
if(/.(gif|jpg|jpeg|png|gif|jpg|png)$/.test(url)){
tool.showPic(input,url);
}
}
}).prop('disabled', !$.support.fileInput).parent().addClass($.support.fileInput ? undefined : 'disabled');
},
showPic:function(obj,pic){
if(typeof obj=='undefined'||typeof pic=='undefined')return false;
var obj=jQuery(obj);
var parent=obj.parents("div:eq(0)");
var check=parent.find(".showPic img");
console.log("showPic",check,check.length,obj);
if(check.length){
check.attr('src',pic);
}else{
var html='<span class="label showPic"><img src="'+pic+'" class="img-thumbnail" style="max-width:100px !important;"></span>';
parent.append(html);
}
},
showProcess:function(obj,progress){
if(typeof obj=='undefined'||typeof progress=='undefined')return false;
var obj=jQuery(obj);
var parent=obj.parent("div");
var child=parent.find(".showProcessTxt");
if(child.length){
// child.find(".progress-bar").css({width:progress+'%'});
parent.find(".showProcessTxt").html(progress+'%');
}else{
//parent.append('<div class="progress xs progress-striped active showProcess" style="width:140px;display: inline-block;margin-bottom:0px;"><div class="progress-bar progress-bar-primary " style="width:'+progress+'%"></div></div>');
parent.append('<span class="showProcessTxt badge bg-light-blue">'+progress+'%</span>');
}
},
dynamicLoadJs:function(url, callback) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
if(typeof(callback)=='function'){
script.onload = script.onreadystatechange = function () {
if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete"){
callback();
script.onload = script.onreadystatechange = null;
}
};
}
document.body.appendChild(script);
},
dynamicLoadCss:function(url,callback) {
var head = document.getElementsByTagName('head')[0];
var link = document.createElement('link');
link.type='text/css';
link.rel = 'stylesheet';
link.href = url;
head.appendChild(link);
callback();
},
loadScript:function(urls, callback) {
var self=this;
urls=urls.split(",");
if(urls.length){
var len=urls.length;
var index=1;
urls.forEach(function(url){
if(!self.isInclude(url)){
var isJs=/js$/i.test(url);
if(isJs){
self.dynamicLoadJs(url,function(){
if(len==index)callback();
index++;
});
}else{
self.dynamicLoadCss(url,function(){
if(len==index)callback();
index++;
});
}
}else{
index++;
}
});
}
},
delCookie:function(name)
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=tools.getCookie(name);
if(cval!=null)
document.cookie= name + "="+cval+";expires="+exp.toGMTString();
},
setCookie:function(name,value)
{
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
},
getCookie:function(name)
{
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
},
tooltip:function(el,msg){
if(typeof more=='undefined')more=true;
if(typeof direction=='undefined')direction=3;
layer.tips(msg,el, {
tipsMore:more,
time: 6000,
tips: [direction,'#e50112']
});
},
tipError:function(errorMap,errorList){
console.log(errorList);
if(errorList.length){
errorList.forEach(function(item){
console.log($(item['element']));
tool.tooltip(item['element'],item['message']);
});
}
},
slick:function(obj,option){
var allOption=$.extend({
autoplay:true,
autoplaySpeed:1000,
swipe: false,
arrows:false,
dots:false,
fade:true,
speed:500,
pauseOnHover:false,
slidesToShow:1,
slidesToScroll:1
},option||{});
jQuery(obj).slick(allOption);
},
date:function(startobj,date_format,endDate){
console.log(endDate);
if(typeof date_format=='undefined')date_format='yyyy-mm-dd';
var params={
autoclose: 1,
todayHighlight: 1,
startView: 2,
minView: 2,
forceParse: 0,
format:date_format
};
if(typeof endDate!='undefined')params.endDate=endDate;
console.log(params);
$(startobj).datetimepicker(params);
},
dateTodate:function(startobj,endobj,date_format,istime,min,max){
if(typeof date_format=='undefined')date_format='DD/MM/YYYY';
if(typeof istime=='undefined')istime=true;
if(typeof min=='undefined')min=false;
if(typeof max=='undefined')max='2099-06-16 23:59:59';
var start = {
elem:startobj,
format:date_format,
min: min, //设定最小日期为当前日期
max: max, //最大日期
istime:istime,
istoday: false,
choose: function(datas){
end.min = datas; //开始日选好后,重置结束日的最小日期
end.start = datas //将结束日的初始值设定为开始日
}
};
var end = {
elem:endobj,
format:date_format,
min:min, //设定最小日期为当前日期
max:max, //最大日期
istime:istime,
istoday: false,
choose: function(datas){
start.max = datas; //结束日选好后,重置开始日的最大日期
}
};
laydate(start);
laydate(end);
},
loading:function(msg){
if(typeof msg=='undefined'||msg=='')msg='';
layer.msg('加載中', {icon: 16});
},
closeloading:function(){
setTimeout(function(){
layer.closeAll('loading');
}, 2000);
},
showResponse:function (data){
tool.msg(data.msg,3000,0.2,function(){
if(data.code==0&&data.url){
window.location.href=data.url;
}
if(data.code==1){
window.location.href=data.url;
}
});
},
msg:function(msg,time,shade,callback){
if(typeof msg=='undefined')return false;
if(typeof time=='undefined'||time=='')time=3000;
if(typeof shade=='undefined')shade=0;
layer.msg(msg, {
time:time //2秒关闭(如果不配置,默认是3秒)
,shade:shade
}, function(){
//do something
if(typeof callback!='undefined')callback();
});
},
delItem:function(msg,url,title){
if(typeof title=='undefined')title='刪除提示';
tool.confirm(msg,title,0.2,function(index){
$.get(url,function(data){
layer.close(index);
tool.msg(data.info,3000,0.2,function(){
if(data.status==1){
window.location.href=data.url;
}
});
});
});
},
confirm:function(msg,title,shade,callback){
if(typeof msg=='undefined')return false;
if(typeof shade=='undefined')shade=0.2;
if(typeof title=='undefined')title='提示';
layer.confirm(msg, {shade:shade, title:title}, function(index){
//do something
if(typeof callback!='undefined')callback();
layer.close(index);
});
},
commonForm:function(form,rules,messages,showErrors,submitHandler,success){
if(typeof form=='undefined')return false;
if(typeof showErrors=='undefined'||showErrors=='')showErrors=false;
if(typeof success!='function')success=tool.showResponse;
jQuery(form).validate({
debug:false,
onfocusout:false,
onkeyup:false,
onclick:false,
rules:rules,
messages:messages,
showErrors:showErrors,
submitHandler:function(form){
if(typeof submitHandler=='function'){
submitHandler();
}
var options={
success:success
};
jQuery(form).ajaxSubmit(options);
}
});
},
popup:function(title,url,area,callback,option){
var callbackInvoke=false;
var fn = function(result){
callbackInvoke=true;
callback(result);
layer.close(index);
}
var o = $.extend({
content:url,
type:2,
area:area,
title:title,
shadeClose: true,
shade: 0.8,
success:function(){
var iframe = $('#layui-layer-iframe'+index)[0];
iframe.contentWindow.callbackSelector = fn;
$(iframe).on('load',function(){
iframe.contentWindow.callbackSelector = fn;
});
},
end:function(){
if(!callbackInvoke) callback();
}},option||{});
console.log(o);
if(!o.area) o.area = ['800px','500px'];
var index = layer.open(o);
}
};

7
public/others/bootstrap.min.js

File diff suppressed because one or more lines are too long

4
public/others/html5shiv.min.js

@ -0,0 +1,4 @@
/**
* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document);

6
public/others/jquery-ui-1.10.3.min.js

File diff suppressed because one or more lines are too long

1426
public/others/jquery.fileupload.js

File diff suppressed because it is too large

1277
public/others/jquery.form.js

File diff suppressed because it is too large

5
public/others/jquery.min-1.12.1.js

File diff suppressed because one or more lines are too long

4
public/others/jquery.min-2.2.1.js

File diff suppressed because one or more lines are too long

10
public/others/jquery.mobile.custom.min.js

File diff suppressed because one or more lines are too long

530
public/others/jquery.ui.widget.js

@ -0,0 +1,530 @@
/*!
* jQuery UI Widget 1.10.4+amd
* https://github.com/blueimp/jQuery-File-Upload
*
* Copyright 2014 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/jQuery.widget/
*/
(function (factory) {
if (typeof define === "function" && define.amd) {
// Register as an anonymous AMD module:
define(["jquery"], factory);
} else {
// Browser globals:
factory(jQuery);
}
}(function( $, undefined ) {
var uuid = 0,
slice = Array.prototype.slice,
_cleanData = $.cleanData;
$.cleanData = function( elems ) {
for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
try {
$( elem ).triggerHandler( "remove" );
// http://bugs.jquery.com/ticket/8235
} catch( e ) {}
}
_cleanData( elems );
};
$.widget = function( name, base, prototype ) {
var fullName, existingConstructor, constructor, basePrototype,
// proxiedPrototype allows the provided prototype to remain unmodified
// so that it can be used as a mixin for multiple widgets (#8876)
proxiedPrototype = {},
namespace = name.split( "." )[ 0 ];
name = name.split( "." )[ 1 ];
fullName = namespace + "-" + name;
if ( !prototype ) {
prototype = base;
base = $.Widget;
}
// create selector for plugin
$.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
return !!$.data( elem, fullName );
};
$[ namespace ] = $[ namespace ] || {};
existingConstructor = $[ namespace ][ name ];
constructor = $[ namespace ][ name ] = function( options, element ) {
// allow instantiation without "new" keyword
if ( !this._createWidget ) {
return new constructor( options, element );
}
// allow instantiation without initializing for simple inheritance
// must use "new" keyword (the code above always passes args)
if ( arguments.length ) {
this._createWidget( options, element );
}
};
// extend with the existing constructor to carry over any static properties
$.extend( constructor, existingConstructor, {
version: prototype.version,
// copy the object used to create the prototype in case we need to
// redefine the widget later
_proto: $.extend( {}, prototype ),
// track widgets that inherit from this widget in case this widget is
// redefined after a widget inherits from it
_childConstructors: []
});
basePrototype = new base();
// we need to make the options hash a property directly on the new instance
// otherwise we'll modify the options hash on the prototype that we're
// inheriting from
basePrototype.options = $.widget.extend( {}, basePrototype.options );
$.each( prototype, function( prop, value ) {
if ( !$.isFunction( value ) ) {
proxiedPrototype[ prop ] = value;
return;
}
proxiedPrototype[ prop ] = (function() {
var _super = function() {
return base.prototype[ prop ].apply( this, arguments );
},
_superApply = function( args ) {
return base.prototype[ prop ].apply( this, args );
};
return function() {
var __super = this._super,
__superApply = this._superApply,
returnValue;
this._super = _super;
this._superApply = _superApply;
returnValue = value.apply( this, arguments );
this._super = __super;
this._superApply = __superApply;
return returnValue;
};
})();
});
constructor.prototype = $.widget.extend( basePrototype, {
// TODO: remove support for widgetEventPrefix
// always use the name + a colon as the prefix, e.g., draggable:start
// don't prefix for widgets that aren't DOM-based
widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name
}, proxiedPrototype, {
constructor: constructor,
namespace: namespace,
widgetName: name,
widgetFullName: fullName
});
// If this widget is being redefined then we need to find all widgets that
// are inheriting from it and redefine all of them so that they inherit from
// the new version of this widget. We're essentially trying to replace one
// level in the prototype chain.
if ( existingConstructor ) {
$.each( existingConstructor._childConstructors, function( i, child ) {
var childPrototype = child.prototype;
// redefine the child widget using the same prototype that was
// originally used, but inherit from the new version of the base
$.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto );
});
// remove the list of existing child constructors from the old constructor
// so the old child constructors can be garbage collected
delete existingConstructor._childConstructors;
} else {
base._childConstructors.push( constructor );
}
$.widget.bridge( name, constructor );
};
$.widget.extend = function( target ) {
var input = slice.call( arguments, 1 ),
inputIndex = 0,
inputLength = input.length,
key,
value;
for ( ; inputIndex < inputLength; inputIndex++ ) {
for ( key in input[ inputIndex ] ) {
value = input[ inputIndex ][ key ];
if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
// Clone objects
if ( $.isPlainObject( value ) ) {
target[ key ] = $.isPlainObject( target[ key ] ) ?
$.widget.extend( {}, target[ key ], value ) :
// Don't extend strings, arrays, etc. with objects
$.widget.extend( {}, value );
// Copy everything else by reference
} else {
target[ key ] = value;
}
}
}
}
return target;
};
$.widget.bridge = function( name, object ) {
var fullName = object.prototype.widgetFullName || name;
$.fn[ name ] = function( options ) {
var isMethodCall = typeof options === "string",
args = slice.call( arguments, 1 ),
returnValue = this;
// allow multiple hashes to be passed on init
options = !isMethodCall && args.length ?
$.widget.extend.apply( null, [ options ].concat(args) ) :
options;
if ( isMethodCall ) {
this.each(function() {
var methodValue,
instance = $.data( this, fullName );
if ( !instance ) {
return $.error( "cannot call methods on " + name + " prior to initialization; " +
"attempted to call method '" + options + "'" );
}
if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) {
return $.error( "no such method '" + options + "' for " + name + " widget instance" );
}
methodValue = instance[ options ].apply( instance, args );
if ( methodValue !== instance && methodValue !== undefined ) {
returnValue = methodValue && methodValue.jquery ?
returnValue.pushStack( methodValue.get() ) :
methodValue;
return false;
}
});
} else {
this.each(function() {
var instance = $.data( this, fullName );
if ( instance ) {
instance.option( options || {} )._init();
} else {
$.data( this, fullName, new object( options, this ) );
}
});
}
return returnValue;
};
};
$.Widget = function( /* options, element */ ) {};
$.Widget._childConstructors = [];
$.Widget.prototype = {
widgetName: "widget",
widgetEventPrefix: "",
defaultElement: "<div>",
options: {
disabled: false,
// callbacks
create: null
},
_createWidget: function( options, element ) {
element = $( element || this.defaultElement || this )[ 0 ];
this.element = $( element );
this.uuid = uuid++;
this.eventNamespace = "." + this.widgetName + this.uuid;
this.options = $.widget.extend( {},
this.options,
this._getCreateOptions(),
options );
this.bindings = $();
this.hoverable = $();
this.focusable = $();
if ( element !== this ) {
$.data( element, this.widgetFullName, this );
this._on( true, this.element, {
remove: function( event ) {
if ( event.target === element ) {
this.destroy();
}
}
});
this.document = $( element.style ?
// element within the document
element.ownerDocument :
// element is window or document
element.document || element );
this.window = $( this.document[0].defaultView || this.document[0].parentWindow );
}
this._create();
this._trigger( "create", null, this._getCreateEventData() );
this._init();
},
_getCreateOptions: $.noop,
_getCreateEventData: $.noop,
_create: $.noop,
_init: $.noop,
destroy: function() {
this._destroy();
// we can probably remove the unbind calls in 2.0
// all event bindings should go through this._on()
this.element
.unbind( this.eventNamespace )
// 1.9 BC for #7810
// TODO remove dual storage
.removeData( this.widgetName )
.removeData( this.widgetFullName )
// support: jquery <1.6.3
// http://bugs.jquery.com/ticket/9413
.removeData( $.camelCase( this.widgetFullName ) );
this.widget()
.unbind( this.eventNamespace )
.removeAttr( "aria-disabled" )
.removeClass(
this.widgetFullName + "-disabled " +
"ui-state-disabled" );
// clean up events and states
this.bindings.unbind( this.eventNamespace );
this.hoverable.removeClass( "ui-state-hover" );
this.focusable.removeClass( "ui-state-focus" );
},
_destroy: $.noop,
widget: function() {
return this.element;
},
option: function( key, value ) {
var options = key,
parts,
curOption,
i;
if ( arguments.length === 0 ) {
// don't return a reference to the internal hash
return $.widget.extend( {}, this.options );
}
if ( typeof key === "string" ) {
// handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
options = {};
parts = key.split( "." );
key = parts.shift();
if ( parts.length ) {
curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
for ( i = 0; i < parts.length - 1; i++ ) {
curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
curOption = curOption[ parts[ i ] ];
}
key = parts.pop();
if ( arguments.length === 1 ) {
return curOption[ key ] === undefined ? null : curOption[ key ];
}
curOption[ key ] = value;
} else {
if ( arguments.length === 1 ) {
return this.options[ key ] === undefined ? null : this.options[ key ];
}
options[ key ] = value;
}
}
this._setOptions( options );
return this;
},
_setOptions: function( options ) {
var key;
for ( key in options ) {
this._setOption( key, options[ key ] );
}
return this;
},
_setOption: function( key, value ) {
this.options[ key ] = value;
if ( key === "disabled" ) {
this.widget()
.toggleClass( this.widgetFullName + "-disabled ui-state-disabled", !!value )
.attr( "aria-disabled", value );
this.hoverable.removeClass( "ui-state-hover" );
this.focusable.removeClass( "ui-state-focus" );
}
return this;
},
enable: function() {
return this._setOption( "disabled", false );
},
disable: function() {
return this._setOption( "disabled", true );
},
_on: function( suppressDisabledCheck, element, handlers ) {
var delegateElement,
instance = this;
// no suppressDisabledCheck flag, shuffle arguments
if ( typeof suppressDisabledCheck !== "boolean" ) {
handlers = element;
element = suppressDisabledCheck;
suppressDisabledCheck = false;
}
// no element argument, shuffle and use this.element
if ( !handlers ) {
handlers = element;
element = this.element;
delegateElement = this.widget();
} else {
// accept selectors, DOM elements
element = delegateElement = $( element );
this.bindings = this.bindings.add( element );
}
$.each( handlers, function( event, handler ) {
function handlerProxy() {
// allow widgets to customize the disabled handling
// - disabled as an array instead of boolean
// - disabled class as method for disabling individual parts
if ( !suppressDisabledCheck &&
( instance.options.disabled === true ||
$( this ).hasClass( "ui-state-disabled" ) ) ) {
return;
}
return ( typeof handler === "string" ? instance[ handler ] : handler )
.apply( instance, arguments );
}
// copy the guid so direct unbinding works
if ( typeof handler !== "string" ) {
handlerProxy.guid = handler.guid =
handler.guid || handlerProxy.guid || $.guid++;
}
var match = event.match( /^(\w+)\s*(.*)$/ ),
eventName = match[1] + instance.eventNamespace,
selector = match[2];
if ( selector ) {
delegateElement.delegate( selector, eventName, handlerProxy );
} else {
element.bind( eventName, handlerProxy );
}
});
},
_off: function( element, eventName ) {
eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + this.eventNamespace;
element.unbind( eventName ).undelegate( eventName );
},
_delay: function( handler, delay ) {
function handlerProxy() {
return ( typeof handler === "string" ? instance[ handler ] : handler )
.apply( instance, arguments );
}
var instance = this;
return setTimeout( handlerProxy, delay || 0 );
},
_hoverable: function( element ) {
this.hoverable = this.hoverable.add( element );
this._on( element, {
mouseenter: function( event ) {
$( event.currentTarget ).addClass( "ui-state-hover" );
},
mouseleave: function( event ) {
$( event.currentTarget ).removeClass( "ui-state-hover" );
}
});
},
_focusable: function( element ) {
this.focusable = this.focusable.add( element );
this._on( element, {
focusin: function( event ) {
$( event.currentTarget ).addClass( "ui-state-focus" );
},
focusout: function( event ) {
$( event.currentTarget ).removeClass( "ui-state-focus" );
}
});
},
_trigger: function( type, event, data ) {
var prop, orig,
callback = this.options[ type ];
data = data || {};
event = $.Event( event );
event.type = ( type === this.widgetEventPrefix ?
type :
this.widgetEventPrefix + type ).toLowerCase();
// the original event may come from any element
// so we need to reset the target on the new event
event.target = this.element[ 0 ];
// copy original event properties over to the new event
orig = event.originalEvent;
if ( orig ) {
for ( prop in orig ) {
if ( !( prop in event ) ) {
event[ prop ] = orig[ prop ];
}
}
}
this.element.trigger( event, data );
return !( $.isFunction( callback ) &&
callback.apply( this.element[0], [ event ].concat( data ) ) === false ||
event.isDefaultPrevented() );
}
};
$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
$.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
if ( typeof options === "string" ) {
options = { effect: options };
}
var hasOptions,
effectName = !options ?
method :
options === true || typeof options === "number" ?
defaultEffect :
options.effect || defaultEffect;
options = options || {};
if ( typeof options === "number" ) {
options = { duration: options };
}
hasOptions = !$.isEmptyObject( options );
options.complete = callback;
if ( options.delay ) {
element.delay( options.delay );
}
if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
element[ method ]( options );
} else if ( effectName !== method && element[ effectName ] ) {
element[ effectName ]( options.duration, options.easing, callback );
} else {
element.queue(function( next ) {
$( this )[ method ]();
if ( callback ) {
callback.call( element[ 0 ] );
}
next();
});
}
};
});
}));

98
public/others/maxlength.js

@ -0,0 +1,98 @@
/*
@author: remy sharp / http://remysharp.com
@params:
feedback - the selector for the element that gives the user feedback. Note that this will be relative to the form the plugin is run against.
hardLimit - whether to stop the user being able to keep adding characters. Defaults to true.
useInput - whether to look for a hidden input named 'maxlength' instead of the maxlength attribute. Defaults to false.
words - limit by characters or words, set this to true to limit by words. Defaults to false.
@license: Creative Commons License - ShareAlike http://creativecommons.org/licenses/by-sa/3.0/
@version: 1.2
@changes: code tidy via Ariel Flesler and fix when pasting over limit and including \t or \n
*/
(function ($) {
$.fn.maxlength = function (settings) {
if (typeof settings == 'string') {
settings = { feedback : settings };
}
settings = $.extend({}, $.fn.maxlength.defaults, settings);
function length(el) {
var parts = el.value;
if ( settings.words )
parts = el.value.length ? parts.split(/\s+/) : { length : 0 };
return parts.length;
}
return this.each(function () {
var field = this,
$field = $(field),
$form = $(field.form),
limit = settings.useInput ? $form.find('input[name=maxlength]').val() : $field.attr('maxlength'),
$charsLeft = $form.find(settings.feedback);
function limitCheck(event) {
var len = length(this),
exceeded = len >= limit,
code = event.keyCode;
if ( !exceeded )
return;
switch (code) {
case 8: // allow delete
case 9:
case 17:
case 36: // and cursor keys
case 35:
case 37:
case 38:
case 39:
case 40:
case 46:
case 65:
return;
default:
return settings.words && code != 32 && code != 13 && len == limit;
}
}
var updateCount = function () {
var len = length(field),
diff = limit - len;
$charsLeft.html( diff || "0" );
// truncation code
if (settings.hardLimit && diff < 0) {
field.value = settings.words ?
// split by white space, capturing it in the result, then glue them back
field.value.split(/(\s+)/, (limit*2)-1).join('') :
field.value.substr(0, limit);
updateCount();
}
};
$field.keyup(updateCount).change(updateCount);
if (settings.hardLimit) {
$field.keydown(limitCheck);
}
updateCount();
});
};
$.fn.maxlength.defaults = {
useInput : false,
hardLimit : true,
feedback : '.charsLeft',
words : false
};
})(jQuery);

20
public/others/region.js

@ -0,0 +1,20 @@
function loadRegion(sel,type_id,selName,url){
jQuery("#"+selName+" option").each(function(){
jQuery(this).remove();
});
jQuery("<option value=0>请选择</option>").appendTo(jQuery("#"+selName));
if(jQuery("#"+sel).val()==0){
return;
}
jQuery.getJSON(url,{pid:jQuery("#"+sel).val(),type:type_id},
function(data){
if(data){
jQuery.each(data,function(idx,item){
jQuery("<option value="+item.id+">"+item.name+"</option>").appendTo(jQuery("#"+selName));
});
}else{
jQuery("<option value='0'>请选择</option>").appendTo(jQuery("#"+selName));
}
}
);
}

5
public/others/respond.min.js

@ -0,0 +1,5 @@
/*! Respond.js v1.4.2: min/max-width media query polyfill * Copyright 2013 Scott Jehl
* Licensed under https://github.com/scottjehl/Respond/blob/master/LICENSE-MIT
* */
!function(a){"use strict";a.matchMedia=a.matchMedia||function(a){var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement("body"),f=a.createElement("div");return f.id="mq-test-1",f.style.cssText="position:absolute;top:-100em",e.style.background="none",e.appendChild(f),function(a){return f.innerHTML='&shy;<style media="'+a+'"> #mq-test-1 { width: 42px; }</style>',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){u(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))};if(c.ajax=f,c.queue=d,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,maxw:/\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var g,h,i,j=a.document,k=j.documentElement,l=[],m=[],n=[],o={},p=30,q=j.getElementsByTagName("head")[0]||k,r=j.getElementsByTagName("base")[0],s=q.getElementsByTagName("link"),t=function(){var a,b=j.createElement("div"),c=j.body,d=k.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=j.createElement("body"),c.style.background="none"),k.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&k.insertBefore(c,k.firstChild),a=b.offsetWidth,f?k.removeChild(c):c.removeChild(b),k.style.fontSize=d,e&&(c.style.fontSize=e),a=i=parseFloat(a)},u=function(b){var c="clientWidth",d=k[c],e="CSS1Compat"===j.compatMode&&d||j.body[c]||d,f={},o=s[s.length-1],r=(new Date).getTime();if(b&&g&&p>r-g)return a.clearTimeout(h),h=a.setTimeout(u,p),void 0;g=r;for(var v in l)if(l.hasOwnProperty(v)){var w=l[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?i||t():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?i||t():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(m[w.rules]))}for(var C in n)n.hasOwnProperty(C)&&n[C]&&n[C].parentNode===q&&q.removeChild(n[C]);n.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=j.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,q.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(j.createTextNode(F)),n.push(E)}},v=function(a,b,d){var e=a.replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var g=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},h=!f&&d;b.length&&(b+="/"),h&&(f=1);for(var i=0;f>i;i++){var j,k,n,o;h?(j=d,m.push(g(a))):(j=e[i].match(c.regex.findStyles)&&RegExp.$1,m.push(RegExp.$2&&g(RegExp.$2))),n=j.split(","),o=n.length;for(var p=0;o>p;p++)k=n[p],l.push({media:k.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:m.length-1,hasquery:k.indexOf("(")>-1,minw:k.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:k.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},w=function(){if(d.length){var b=d.shift();f(b.href,function(c){v(c,b.href,b.media),o[b.href]=!0,a.setTimeout(function(){w()},0)})}},x=function(){for(var b=0;b<s.length;b++){var c=s[b],e=c.href,f=c.media,g=c.rel&&"stylesheet"===c.rel.toLowerCase();e&&g&&!o[e]&&(c.styleSheet&&c.styleSheet.rawCssText?(v(c.styleSheet.rawCssText,e,f),o[e]=!0):(!/^([a-zA-Z:]*\/\/)/.test(e)&&!r||e.replace(RegExp.$1,"").split("/")[0]===a.location.host)&&("//"===e.substring(0,2)&&(e=a.location.protocol+e),d.push({href:e,media:f})))}w()};x(),c.update=x,c.getEmValue=t,a.addEventListener?a.addEventListener("resize",b,!1):a.attachEvent&&a.attachEvent("onresize",b)}}(this);

20
public/others/role.js

@ -0,0 +1,20 @@
function loadRole(sel,selName,url){
jQuery("#"+selName+" option").each(function(){
jQuery(this).remove();
});
jQuery("<option value=0>请选择</option>").appendTo(jQuery("#"+selName));
if(jQuery("#"+sel).val()==0){
return;
}
jQuery.getJSON(url,{pid:jQuery("#"+sel).val()},
function(data){
if(data){
jQuery.each(data,function(idx,item){
jQuery("<option value="+item.id+">"+item.name+"</option>").appendTo(jQuery("#"+selName));
});
}else{
jQuery("<option value='0'>资料上传者角色</option>").appendTo(jQuery("#"+selName));
}
}
);
}

1653
public/others/validate.js

File diff suppressed because it is too large

BIN
public/plupload-2.1.2/js/Moxie.swf

Binary file not shown.

BIN
public/plupload-2.1.2/js/Moxie.xap

Binary file not shown.

10726
public/plupload-2.1.2/js/moxie.js

File diff suppressed because it is too large

15
public/plupload-2.1.2/js/moxie.min.js

File diff suppressed because one or more lines are too long

2315
public/plupload-2.1.2/js/plupload.dev.js

File diff suppressed because it is too large

28
public/plupload-2.1.2/js/plupload.full.min.js

File diff suppressed because one or more lines are too long

13
public/plupload-2.1.2/js/plupload.min.js

File diff suppressed because one or more lines are too long

339
public/plupload-2.1.2/license.txt

@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

147
public/plupload-2.1.2/readme.md

@ -0,0 +1,147 @@
# Plupload
Plupload is a cross-browser multi-runtime file uploading API. Basically, a set of tools that will help you to
build a reliable and visually appealing file uploader in minutes.
Historically, Plupload comes from a dark and hostile age of no HTML5, hence all the alternative fallbacks,
like Flash, Silverlight and Java (still in development). It is meant to provide an API, that
will work anywhere and in any case, in one way or another. While having very solid fallbacks, Plupload
is built with the future of HTML5 in mind.
### Table of Contents
* [Backstory](https://github.com/moxiecode/plupload/blob/master/readme.md#backstory)
* [Structure](https://github.com/moxiecode/plupload/blob/master/readme.md#structure)
* [File API and XHR L2 pollyfills](https://github.com/moxiecode/moxie/blob/master/README.md)
* [Plupload API](https://github.com/moxiecode/plupload/wiki/API)
* [UI Widget](https://github.com/moxiecode/plupload/wiki/UI.Plupload)
* [Queue Widget](https://github.com/moxiecode/plupload/wiki/pluploadQueue)
* [Demos](https://github.com/jayarjo/plupload-demos/blob/master/README.md)
* [Building Instructions](https://github.com/moxiecode/plupload/blob/master/readme.md#build)
* [Getting Started](https://github.com/moxiecode/plupload/wiki/Getting-Started)
* [Options](https://github.com/moxiecode/plupload/wiki/Options)
* [Events](https://github.com/moxiecode/plupload/wiki/Uploader#wiki-events)
* [Methods](https://github.com/moxiecode/plupload/wiki/Uploader#wiki-methods)
* [Plupload in Your Language](https://github.com/moxiecode/plupload/wiki/Plupload-in-Your-Language)
* [File Filters](https://github.com/moxiecode/plupload/wiki/File-Filters)
* [Image Resizing on Client-Side](https://github.com/moxiecode/plupload/wiki/Image-Resizing-on-Client-Side)
* [Chunking](https://github.com/moxiecode/plupload/wiki/Chunking)
* [Upload to Amazon S3](https://github.com/moxiecode/plupload/wiki/Upload-to-Amazon-S3)
* [FAQ](https://github.com/moxiecode/plupload/wiki/Frequently-Asked-Questions)
* [Support](https://github.com/moxiecode/plupload/blob/master/readme.md##support)
* [Create a Fiddle](https://github.com/moxiecode/plupload/wiki/Create-a-Fiddle)
* [Contributing](https://github.com/moxiecode/plupload/blob/master/readme.md#contribute)
* [License](https://github.com/moxiecode/plupload/blob/master/readme.md#license)
* [Contact Us](http://www.moxiecode.com/contact.php)
<a name="backstory" />
### Backstory
Plupload started in a time when uploading a file in a responsive and customizable manner was a real pain.
Internally, browsers only had the `input[type="file"]` element. It was ugly and clunky at the same time.
One couldn't even change it's visuals, without hiding it and coding another one on top of it from scratch.
And then there was no progress indication for the upload process... Sounds pretty crazy today.
It was very logical for developers to look for alternatives and writing their own implementations, using
Flash and Java, in order to somehow extend limited browser capabilities. And so did we, in our search for
a reliable and flexible file uploader for
our [TinyMCE](http://www.tinymce.com/index.php)'s
[MCImageManager](http://www.tinymce.com/enterprise/mcimagemanager.php).
Quickly enough though, Plupload grew big. It easily split into a standalone project.
With major *version 2.0* it underwent another huge reconstruction, basically
[from the ground up](http://blog.moxiecode.com/2012/11/28/first-public-beta-plupload-2/),
as all the low-level runtime logic has been extracted into separate [File API](http://www.w3.org/TR/FileAPI/)
and [XHR L2](http://www.w3.org/TR/XMLHttpRequest/) pollyfills (currently known under combined name of [mOxie](https://github.com/moxiecode/moxie)),
giving Plupload a chance to evolve further.
<a name="structure" />
### Structure
Currently, Plupload may be considered as consisting of three parts: low-level pollyfills,
Plupload API and Widgets (UI and Queue). Initially, Widgets were meant only to serve as examples
of the API, but quickly formed into fully-functional API implementations that now come bundled with
the Plupload API. This has been a source for multiple misconceptions about the API as Widgets were
easily mistaken for the Plupload itself. They are only implementations, such as any of you can
build by yourself out of the API.
* [Low-level pollyfills (mOxie)](https://github.com/moxiecode/moxie) - have their own [code base](https://github.com/moxiecode/moxie) and [documentation](https://github.com/moxiecode/moxie/wiki) on GitHub.
* [Plupload API](https://github.com/moxiecode/plupload/wiki/API)
* [UI Widget](https://github.com/moxiecode/plupload/wiki/UI.Plupload)
* [Queue Widget](https://github.com/moxiecode/plupload/wiki/pluploadQueue)
<a name="build" />
### Building instructions
Plupload depends on File API and XHR2 L2 pollyfills that currently have their
[own repository](https://github.com/moxiecode/moxie) on GitHub. However, in most cases you shouldn't
care as we bundle the latest build of mOxie, including full and minified JavaScript source and
pre-compiled `SWF` and `XAP` components, with [every release](https://github.com/moxiecode/plupload/releases). You can find everything you may need under `js/` folder.
There are cases where you might need a custom build, for example free of unnecessary runtimes, half the
original size, etc. The difficult part of this task comes from mOxie and its set of additional runtimes
that require special tools on your workstation in order to compile.
Consider [build instructions for mOxie](https://github.com/moxiecode/moxie#build-instructions) -
everything applies to Plupload as well.
First of all, if you want to build custom Plupload packages you will require [Node.js](http://nodejs.org/),
as this is our build environment of choice. Node.js binaries (as well as Source)
[are available](http://nodejs.org/download/) for all major operating systems.
Plupload includes _mOxie_ as a submodule, it also depends on some other repositories for building up it's dev
environment - to avoid necessity of downloading them one by one, we recommended you to simply clone Plupload
with [git](http://git-scm.com/) recursively (you will require git installed on your system for this operation
to succeed):
```
git clone --recursive https://github.com/moxiecode/plupload.git
```
And finalize the preparation stage with: `npm install` - this will install all additional modules, including those
required by dev and test environments. In case you would rather keep it minimal, add a `--production` flag.
*Note:* Currently, for an unknown reason, locally installed Node.js modules on Windows, may not be automatically
added to the system PATH. So, if `jake` commands below are not recognized you will need to add them manually:
```
set PATH=%PATH%;%CD%\node_modules\.bin\
```
<a name="support" />
### Support
We are actively standing behind the Plupload and now that we are done with major rewrites and refactoring,
the only real goal that we have ahead is making it as reliable and bulletproof as possible. We are open to
all the suggestions and feature requests. We ask you to file bug reports if you encounter any. We may not
react to them instantly, but we constantly bear them in my mind as we extend the code base.
In addition to dedicated support for those who dare to buy our OEM licenses, we got
[discussion boards](http://www.plupload.com/punbb/index.php), which is like an enormous FAQ,
covering every possible application case. Of course, you are welcome to file a bug report or feature request,
here on [GitHub](https://github.com/moxiecode/plupload/issues).
Sometimes it is easier to notice the problem when bug report is accompained by the actual code. Consider providing
[a Plupload fiddle](https://github.com/moxiecode/plupload/wiki/Create-a-Fiddle) for the troublesome code.
<a name="contribute" />
### Contributing
We are open to suggestions and code revisions, however there are some rules and limitations that you might
want to consider first.
* Code that you contribute will automatically be licensed under the LGPL, but will not be limited to LGPL.
* Although all contributors will get the credit for their work, copyright notices will be changed to [Moxiecode Systems AB](http://www.moxiecode.com/).
* Third party code will be reviewed, tested and possibly modified before being released.
These basic rules help us earn a living and ensure that code remains Open Source and compatible with LGPL license. All contributions will be added to the changelog and appear in every release and on the site.
An easy place to start is to [translate Plupload to your language](https://github.com/moxiecode/plupload/wiki/Plupload-in-Your-Language#contribute).
You can read more about how to contribute at: [http://www.plupload.com/contributing](http://www.plupload.com/contributing)
<a name="license" />
### License
Copyright 2013, [Moxiecode Systems AB](http://www.moxiecode.com/)
Released under [GPLv2 License](https://github.com/moxiecode/plupload/blob/master/license.txt).
We also provide [commercial license](http://www.plupload.com/commercial.php).

1
public/ppy/css/default.css

@ -0,0 +1 @@
@import url(http://fonts.useso.com/css?family=Raleway:200,500,700,800);@font-face{font-family:'icomoon';src:url(../fonts/icomoon.eot?rretjt);src:url(../fonts/icomoon.eot?#iefixrretjt) format('embedded-opentype'),url(../fonts/icomoon.woff?rretjt) format('woff'),url(../fonts/icomoon.ttf?rretjt) format('truetype'),url(../fonts/icomoon.svg?rretjt#icomoon) format('svg');font-weight:400;font-style:normal}[class*=" icon-"],[class^=icon-]{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,html{font-size:100%;padding:0;margin:0}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}body{background:#f9f7f6;color:#404d5b;font-weight:500;font-size:1.05em;font-family:"Segoe UI","Lucida Grande",Helvetica,Arial,"Microsoft YaHei",FreeSans,Arimo,"Droid Sans","wenquanyi micro hei","Hiragino Sans GB","Hiragino Sans GB W3",FontAwesome,sans-serif}a{color:#2fa0ec;text-decoration:none;outline:0}a:focus,a:hover{color:#74777b}.htmleaf-container{margin:0 auto;overflow:hidden}.bgcolor-1{background:#f0efee}.bgcolor-2{background:#f9f9f9}.bgcolor-3{background:#e8e8e8}.bgcolor-4{background:#2f3238;color:#fff}.bgcolor-5{background:#df6659;color:#521e18}.bgcolor-6{background:#2fa8ec}.bgcolor-7{background:#d0d6d6}.bgcolor-8{background:#3d4444;color:#fff}.bgcolor-9{background:#ef3f52;color:#fff}.bgcolor-10{background:#64448f;color:#fff}.bgcolor-11{background:#3755ad;color:#fff}.bgcolor-12{background:#3498DB;color:#fff}.htmleaf-header{padding:1em 190px 1em;letter-spacing:-1px;text-align:center}.htmleaf-header h1{font-weight:600;font-size:2em;line-height:1;margin-bottom:0;font-family:"Segoe UI","Lucida Grande",Helvetica,Arial,"Microsoft YaHei",FreeSans,Arimo,"Droid Sans","wenquanyi micro hei","Hiragino Sans GB","Hiragino Sans GB W3",FontAwesome,sans-serif}.htmleaf-header h1 span{font-family:"Segoe UI","Lucida Grande",Helvetica,Arial,"Microsoft YaHei",FreeSans,Arimo,"Droid Sans","wenquanyi micro hei","Hiragino Sans GB","Hiragino Sans GB W3",FontAwesome,sans-serif;display:block;font-size:60%;font-weight:400;padding:.8em 0 .5em 0;color:#c3c8cd}.htmleaf-demo a{color:#1d7db1;text-decoration:none}.htmleaf-demo{width:100%;padding-bottom:1.2em}.htmleaf-demo a{display:inline-block;margin:.5em;padding:.6em 1em;border:3px solid #1d7db1;font-weight:700}.htmleaf-demo a:hover{opacity:.6}.htmleaf-demo a.current{background:#1d7db1;color:#fff}.htmleaf-links{position:relative;display:inline-block;white-space:nowrap;font-size:1.5em;text-align:center}.htmleaf-links::after{position:absolute;top:0;left:50%;margin-left:-1px;width:2px;height:100%;background:#dbdbdb;content:'';-webkit-transform:rotate3d(0,0,1,22.5deg);transform:rotate3d(0,0,1,22.5deg)}.htmleaf-icon{display:inline-block;margin:.5em;padding:0 0;width:1.5em;text-decoration:none}.htmleaf-icon span{display:none}.htmleaf-icon:before{margin:0 5px;text-transform:none;font-weight:400;font-style:normal;font-variant:normal;font-family:icomoon;line-height:1;speak:none;-webkit-font-smoothing:antialiased}.htmleaf-footer{width:100%;padding-top:10px}.htmleaf-small{font-size:.8em}.center{text-align:center}.related{color:#fff;background:#333;text-align:center;font-size:1.25em;padding:.5em 0;overflow:hidden}.related>a{vertical-align:top;width:calc(100% - 20px);max-width:340px;display:inline-block;text-align:center;margin:20px 10px;padding:25px;font-family:"Segoe UI","Lucida Grande",Helvetica,Arial,"Microsoft YaHei",FreeSans,Arimo,"Droid Sans","wenquanyi micro hei","Hiragino Sans GB","Hiragino Sans GB W3",FontAwesome,sans-serif}.related a{display:inline-block;text-align:left;margin:20px auto;padding:10px 20px;opacity:.8;-webkit-transition:opacity .3s;transition:opacity .3s;-webkit-backface-visibility:hidden}.related a:active,.related a:hover{opacity:1}.related a img{max-width:100%;opacity:.8;border-radius:4px}.related a:active img,.related a:hover img{opacity:1}.related h3{font-family:"Microsoft YaHei",sans-serif}.related a h3{font-weight:300;margin-top:.15em;color:#fff}.icon-htmleaf-home-outline:before{content:"\e5000"}.icon-htmleaf-arrow-forward-outline:before{content:"\e5001"}@media screen and (max-width:50em){.htmleaf-header{padding:3em 10% 4em}.htmleaf-header h1{font-size:2em}}@media screen and (max-width:40em){.htmleaf-header h1{font-size:1.5em}}@media screen and (max-width:30em){.htmleaf-header h1{font-size:1.2em}}

11
public/ppy/css/fileinput.css

@ -0,0 +1,11 @@
/*!
* @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015
* @package bootstrap-fileinput
* @version 4.1.9
*
* File input styling for Bootstrap 3.0
* Built for Yii Framework 2.0
* Author: Kartik Visweswaran
* Year: 2015
* For more Yii related demos visit http://demos.krajee.com
*/.file-input{overflow-x:auto}.file-loading{top:0;right:0;width:25px;height:25px;font-size:999px;text-align:right;color:#fff;background:transparent url(../img/loading.gif) top left no-repeat;border:none}.btn-file{position:relative;overflow:hidden}.btn-file input[type=file]{position:absolute;top:0;right:0;min-width:100%;min-height:100%;text-align:right;opacity:0;filter:alpha(opacity=0);opacity:0;background:none repeat scroll 0 0 transparent;cursor:inherit;display:block}.file-caption .glyphicon{display:inline-block;min-width:18px;margin-top:2px}.file-caption-name{display:inline-block;overflow:hidden;max-height:20px;padding-right:10px;word-break:break-all}.file-caption-ellipsis{position:absolute;right:10px;margin-top:-6px;font-size:1.2em;display:none;font-weight:700;cursor:default}.kv-has-ellipsis .file-caption-ellipsis{display:inline}.kv-has-ellipsis{padding-right:17px}.kv-search-container .kv-search-clear{position:absolute;padding:10px;right:0}.file-error-message{background-color:#f2dede;color:#a94442;text-align:center;border-radius:5px;padding:5px}.file-error-message pre,.file-error-message ul{margin:5px 0;text-align:left}.file-caption-disabled{background-color:#EEE;cursor:not-allowed;opacity:1}.file-input .btn .disabled,.file-input .btn[disabled]{cursor:not-allowed}.file-preview{border-radius:5px;border:1px solid #ddd;padding:5px;width:100%;margin-bottom:5px}.file-preview-frame{display:table;margin:8px;height:160px;border:1px solid #ddd;box-shadow:1px 1px 5px 0 #a2958a;padding:6px;float:left;text-align:center;vertical-align:middle}.file-preview-frame:hover{box-shadow:3px 3px 5px 0 #333}.file-preview-image{height:160px;vertical-align:text-center}.file-preview-text{width:160px;color:#428bca;font-size:11px;text-align:center}.file-preview-other{padding-top:48px;text-align:center}.file-preview-other i{font-size:2.4em}.file-other-error{width:100%;padding-top:30px;text-align:right}.file-input-ajax-new .fileinput-remove-button,.file-input-ajax-new .fileinput-upload-button,.file-input-new .close,.file-input-new .file-preview,.file-input-new .fileinput-remove-button,.file-input-new .fileinput-upload-button,.file-input-new .glyphicon-file{display:none}.loading{background:transparent url(../img/loading.gif) no-repeat scroll center center content-box!important}.wrap-indicator{font-weight:700;color:#245269;cursor:pointer}.file-actions{text-align:left}.file-footer-buttons{float:right}.file-thumbnail-footer .file-caption-name{padding-top:4px;font-size:11px;color:#777}.file-upload-indicator{padding-top:2px;cursor:default}.file-upload-indicator:hover{font-size:1.2em;font-weight:700;padding-top:0}.file-drop-zone{border:1px dashed #aaa;border-radius:4px;height:100%;text-align:center;vertical-align:middle;margin:12px 15px 12px 12px;padding:5px}.file-drop-zone-title{color:#aaa;font-size:40px;padding:85px 10px}.highlighted{border:2px dashed #999!important;background-color:#f0f0f0}.file-uploading{background-image:url(../img/loading-sm.gif);background-position:center bottom 10px;background-repeat:no-repeat;opacity:.6}.file-icon-large{font-size:1.2em}

11
public/ppy/css/fileinput.min.css

@ -0,0 +1,11 @@
/*!
* @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015
* @package bootstrap-fileinput
* @version 4.1.9
*
* File input styling for Bootstrap 3.0
* Built for Yii Framework 2.0
* Author: Kartik Visweswaran
* Year: 2015
* For more Yii related demos visit http://demos.krajee.com
*/.file-input{overflow-x:auto}.file-loading{top:0;right:0;width:25px;height:25px;font-size:999px;text-align:right;color:#fff;background:transparent url(../img/loading.gif) top left no-repeat;border:none}.btn-file{position:relative;overflow:hidden}.btn-file input[type=file]{position:absolute;top:0;right:0;min-width:100%;min-height:100%;text-align:right;filter:alpha(opacity=0);opacity:0;background:none repeat scroll 0 0 transparent;cursor:inherit;display:block}.file-caption .glyphicon{display:inline-block;min-width:18px;margin-top:2px}.file-caption-name{display:inline-block;overflow:hidden;max-height:20px;padding-right:10px;word-break:break-all}.file-caption-ellipsis{position:absolute;right:10px;margin-top:-6px;font-size:1.2em;display:none;font-weight:700;cursor:default}.kv-has-ellipsis .file-caption-ellipsis{display:inline}.kv-has-ellipsis{padding-right:17px}.kv-search-container .kv-search-clear{position:absolute;padding:10px;right:0}.file-error-message{background-color:#f2dede;color:#a94442;text-align:center;border-radius:5px;padding:5px}.file-error-message pre,.file-error-message ul{margin:5px 0;text-align:left}.file-caption-disabled{background-color:#EEE;cursor:not-allowed;opacity:1}.file-input .btn .disabled,.file-input .btn[disabled]{cursor:not-allowed}.file-preview{border-radius:5px;border:1px solid #ddd;padding:5px;width:100%;margin-bottom:5px}.file-preview-frame{display:table;margin:8px;height:160px;border:1px solid #ddd;box-shadow:1px 1px 5px 0 #a2958a;padding:6px;float:left;text-align:center;vertical-align:middle}.file-preview-frame:hover{box-shadow:3px 3px 5px 0 #333}.file-preview-image{height:160px;vertical-align:text-center}.file-preview-text{width:160px;color:#428bca;font-size:11px;text-align:center}.file-preview-other{padding-top:48px;text-align:center}.file-preview-other i{font-size:2.4em}.file-other-error{width:100%;padding-top:30px;text-align:right}.file-input-ajax-new .fileinput-remove-button,.file-input-ajax-new .fileinput-upload-button,.file-input-new .close,.file-input-new .file-preview,.file-input-new .fileinput-remove-button,.file-input-new .fileinput-upload-button,.file-input-new .glyphicon-file{display:none}.loading{background:transparent url(../img/loading.gif) no-repeat scroll center center content-box!important}.wrap-indicator{font-weight:700;color:#245269;cursor:pointer}.file-actions{text-align:left}.file-footer-buttons{float:right}.file-thumbnail-footer .file-caption-name{padding-top:4px;font-size:11px;color:#777}.file-upload-indicator{padding-top:2px;cursor:default}.file-upload-indicator:hover{font-size:1.2em;font-weight:700;padding-top:0}.file-drop-zone{border:1px dashed #aaa;border-radius:4px;height:100%;text-align:center;vertical-align:middle;margin:12px 15px 12px 12px;padding:5px}.file-drop-zone-title{color:#aaa;font-size:40px;padding:85px 10px}.highlighted{border:2px dashed #999!important;background-color:#f0f0f0}.file-uploading{background-image:url(../img/loading-sm.gif);background-position:center bottom 10px;background-repeat:no-repeat;opacity:.6}.file-icon-large{font-size:1.2em}

1
public/ppy/css/normalize.css

@ -0,0 +1 @@
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block;}audio,canvas,video{display:inline-block;}audio:not([controls]){display:none;height:0;}[hidden]{display:none;}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;}body{margin:0;}a:focus{outline:thin dotted;}a:active,a:hover{outline:0;}h1{font-size:2em;margin:0.67em 0;}abbr[title]{border-bottom:1px dotted;}b,strong{font-weight:bold;}dfn{font-style:italic;}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0;}mark{background:#ff0;color:#000;}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em;}pre{white-space:pre-wrap;}q{quotes:"\201C" "\201D" "\2018" "\2019";}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sup{top:-0.5em;}sub{bottom:-0.25em;}img{border:0;}svg:not(:root){overflow:hidden;}figure{margin:0;}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em;}legend{border:0;padding:0;}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0;}button,input{line-height:normal;}button,select{text-transform:none;}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;}button[disabled],html input[disabled]{cursor:default;}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}textarea{overflow:auto;vertical-align:top;}table{border-collapse:collapse;border-spacing:0;}

BIN
public/ppy/fonts/icomoon.eot

Binary file not shown.

12
public/ppy/fonts/icomoon.svg

@ -0,0 +1,12 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by IcoMoon</metadata>
<defs>
<font id="icomoon" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="960" descent="-64" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" d="" horiz-adv-x="512" />
<glyph unicode="&#xe5000;" d="M949.845 492.032c-144.64 121.771-407.296 348.629-409.899 350.933l-27.947 24.021-27.819-24.021c-2.645-2.261-265.429-229.035-412.16-351.915-18.688-16.811-29.355-40.32-29.355-64.384 0-47.104 38.229-85.333 85.333-85.333h42.667v-256c0-47.104 38.229-85.333 85.333-85.333h512c47.104 0 85.333 38.229 85.333 85.333v256h42.667c47.104 0 85.333 38.229 85.333 85.333 0 25.515-11.733 49.536-31.488 65.365zM597.333 85.334h-170.667v213.333h170.667v-213.333zM768 426.667l0.085-341.333c-0.085 0-128.085 0-128.085 0v256h-256v-256h-128v341.333h-128.043c117.973 98.645 312.107 265.685 384.043 327.68 71.936-61.995 265.984-228.992 384-327.723 0 0-128 0-128 0.043z" />
<glyph unicode="&#xe5001;" d="M170.667 85.376c-4.096 0-8.149 0.64-12.203 1.792-18.091 5.376-30.464 22.016-30.464 40.875v42.667c0 204.8 144.256 378.197 341.333 417.963v72.704c0 22.784 8.875 44.203 24.96 60.331 32.256 32.299 88.533 32.256 120.704 0.043l268.288-264.661c8.149-8.021 12.715-18.901 12.715-30.379s-4.565-22.357-12.715-30.379l-268.501-264.832c-31.829-31.829-88.192-32.043-120.448 0.213-16.128 16.128-25.003 37.547-25.003 60.331v61.312c-106.453-8.576-192.981-42.027-262.997-148.651-8.107-12.288-21.547-19.328-35.669-19.328zM512 340.907c11.179 0 42.667 0.427 42.667 0.427v-149.291l237.909 234.667-237.909 234.496v-149.205c0 0-16.384 0.171-38.016-2.219-145.749-16.128-261.333-122.197-294.059-259.413 90.496 73.728 194.176 88.149 289.408 90.539z" />
</font></defs></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
public/ppy/fonts/icomoon.ttf

Binary file not shown.

BIN
public/ppy/fonts/icomoon.woff

Binary file not shown.

BIN
public/ppy/img/loading-sm.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
public/ppy/img/loading.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 847 B

1
public/ppy/js/fileinput.js

File diff suppressed because one or more lines are too long

19
public/ppy/js/fileinput.min.js

File diff suppressed because one or more lines are too long

1
public/ppy/js/fileinput_locale_LANG.js

@ -0,0 +1 @@
(function($){"use strict";$.fn.fileinput.locales._LANG_={fileSingle:'file',filePlural:'files',browseLabel:'Browse &hellip;',removeLabel:'Remove',removeTitle:'Clear selected files',cancelLabel:'Cancel',cancelTitle:'Abort ongoing upload',uploadLabel:'Upload',uploadTitle:'Upload selected files',msgSizeTooLarge:'File "{name}" (<b>{size} KB</b>) exceeds maximum allowed upload size of <b>{maxSize} KB</b>. Please retry your upload!',msgFilesTooLess:'You must select at least <b>{n}</b> {files} to upload. Please retry your upload!',msgFilesTooMany:'Number of files selected for upload <b>({n})</b> exceeds maximum allowed limit of <b>{m}</b>. Please retry your upload!',msgFileNotFound:'File "{name}" not found!',msgFileSecured:'Security restrictions prevent reading the file "{name}".',msgFileNotReadable:'File "{name}" is not readable.',msgFilePreviewAborted:'File preview aborted for "{name}".',msgFilePreviewError:'An error occurred while reading the file "{name}".',msgInvalidFileType:'Invalid type for file "{name}". Only "{types}" files are supported.',msgInvalidFileExtension:'Invalid extension for file "{name}". Only "{extensions}" files are supported.',msgValidationError:'File Upload Error',msgLoading:'Loading file {index} of {files} &hellip;',msgProgress:'Loading file {index} of {files} - {name} - {percent}% completed.',msgSelected:'{n} {files} selected',msgFoldersNotAllowed:'Drag & drop files only! Skipped {n} dropped folder(s).',dropZoneTitle:'Drag & drop files here &hellip;'};$.extend($.fn.fileinput.defaults,$.fn.fileinput.locales._LANG_)})(window.jQuery);

43
public/ppy/js/fileinput_locale_cz.js

@ -0,0 +1,43 @@
/*!
* FileInput Czech Translations
*
* This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or
* any HTML markup tags in the messages must not be converted or translated.
*
* @see http://github.com/kartik-v/bootstrap-fileinput
*
* NOTE: this file must be saved in UTF-8 encoding.
*/
(function ($) {
"use strict";
$.fn.fileinput.locales.cz = {
fileSingle: 'soubor',
filePlural: 'soubory',
browseLabel: 'Vybrat &hellip;',
removeLabel: 'Odstranit',
removeTitle: 'Vyčistit vybrané soubory',
cancelLabel: 'Storno',
cancelTitle: 'Přerušit nahrávání',
uploadLabel: 'Nahrát',
uploadTitle: 'Nahrát vybrané soubory',
msgSizeTooLarge: 'Soubor "{name}" (<b>{size} KB</b>): překročení - maximální povolená velikost <b>{maxSize} KB</b>. Zkuste nahrát znova, prosím!',
msgFilesTooLess: 'Musíte vybrat nejméně <b>{n}</b> {files} pro nahrání. Zkuste nahrát znova, prosím!',
msgFilesTooMany: 'Počet vybraných souborů pro nahrání <b>({n})</b>: překročení - maximální povolený limit <b>{m}</b>. Zkuste nahrát znova, prosím!',
msgFileNotFound: 'Soubor "{name}" nebyl nalezen!',
msgFileSecured: 'Zabezpečení souboru znemožnilo číst soubor "{name}".',
msgFileNotReadable: 'Soubor "{name}" není čitelný.',
msgFilePreviewAborted: 'Náhled souboru byl přerušen pro "{name}".',
msgFilePreviewError: 'Nastala chyba při načtení souboru "{name}".',
msgInvalidFileType: 'Neplatný typ souboru "{name}". Pouze "{types}" souborů jsou podporovány.',
msgInvalidFileExtension: 'Neplatná extenze souboru "{name}". Pouze "{extensions}" souborů jsou podporovány.',
msgValidationError: 'Chyba nahrání souboru.',
msgLoading: 'Nahrávání souboru {index} z {files} &hellip;',
msgProgress: 'Nahrávání souboru {index} z {files} - {name} - {percent}% dokončeno.',
msgSelected: '{n} {files} vybrano',
msgFoldersNotAllowed: 'Táhni a pusť pouze soubory! Vynechané {n} pustěné složk(y).',
dropZoneTitle: 'Táhni a pusť soubory sem &hellip;'
};
$.extend($.fn.fileinput.defaults, $.fn.fileinput.locales.cz);
})(window.jQuery);

41
public/ppy/js/fileinput_locale_de.js

@ -0,0 +1,41 @@
/*!
* FileInput German Translations
*
* This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or
* any HTML markup tags in the messages must not be converted or translated.
*
* @see http://github.com/kartik-v/bootstrap-fileinput
*/
(function ($) {
"use strict";
$.fn.fileinput.locales.de = {
fileSingle: 'Datei',
filePlural: 'Dateien',
browseLabel: 'Auswählen &hellip;',
removeLabel: 'Löschen',
removeTitle: 'Ausgewählte löschen',
cancelLabel: 'Laden',
cancelTitle: 'Hochladen abbrechen',
uploadLabel: 'Hochladen',
uploadTitle: 'Hochladen der ausgewählten Dateien',
msgSizeTooLarge: 'Datei "{name}" (<b>{size} KB</b>) überschreitet maximal zulässige Upload-Größe von <b>{maxSize} KB</b>.',
msgFilesTooLess: 'Sie müssen mindestens <b>{n}</b> {files} zum Hochladen auswählen. Bitte versuchen es erneut!',
msgFilesTooMany: 'Anzahl der Dateien für den Upload ausgewählt <b>({n})</b> überschreitet maximal zulässige Grenze von <b>{m}</b> Stück.',
msgFileNotFound: 'Datei "{name}" wurde nicht gefunden!',
msgFileSecured: 'Sicherheitseinstellungen verhindern das Lesen der Datei "{name}".',
msgFileNotReadable: 'Die Datei "{name}" ist nicht lesbar.',
msgFilePreviewAborted: 'Dateivorschau abgebrochen für "{name}".',
msgFilePreviewError: 'Beim Lesen der Datei "{name}" ein Fehler aufgetreten.',
msgInvalidFileType: 'Ungültiger Typ für Datei "{name}". Nur Dateien der Typen "{types}" werden unterstützt.',
msgInvalidFileExtension: 'Ungültige Erweiterung für Datei "{name}". Nur Dateien mit der Endung "{extensions}" werden unterstützt.',
msgValidationError: 'Fehler beim Hochladen',
msgLoading: 'Lade Datei {index} von {files} hoch&hellip;',
msgProgress: 'Datei {index} von {files} - {name} - zu {percent}% fertiggestellt.',
msgSelected: '{n} {files} ausgewählt',
msgFoldersNotAllowed: 'Drag & Drop funktioniert nur bei Dateien! {n} Ordner übersprungen.',
dropZoneTitle: 'Dateien hierher ziehen &hellip;'
};
$.extend($.fn.fileinput.defaults, $.fn.fileinput.locales.de);
})(window.jQuery);

43
public/ppy/js/fileinput_locale_es.js

@ -0,0 +1,43 @@
/*!
* FileInput Spanish (Latin American) Translations
*
* This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or
* any HTML markup tags in the messages must not be converted or translated.
*
* @see http://github.com/kartik-v/bootstrap-fileinput
*
* NOTE: this file must be saved in UTF-8 encoding.
*/
(function ($) {
"use strict";
$.fn.fileinput.locales.es = {
fileSingle: 'archivo',
filePlural: 'archivos',
browseLabel: 'Buscar &hellip;',
removeLabel: 'Remover',
removeTitle: 'Limpiar archivos seleccionados',
cancelLabel: 'Cancelar',
cancelTitle: 'Abortar el cargue en curso',
uploadLabel: 'Cargar Archivo',
uploadTitle: 'Cargar archivos seleccionados',
msgSizeTooLarge: 'Archivo "{name}" (<b>{size} KB</b>) excede el tamaño máximo permitido de <b>{maxSize} KB</b>. Por favor reintente su cargue!',
msgFilesTooLess: 'Usted debe seleccionar al menos <b>{n}</b> {files} a cargar. Por favor reintente su cargue!',
msgFilesTooMany: 'El número de archivos seleccionados a cargar <b>({n})</b> excede el límite máximo permitido de <b>{m}</b>. Por favor reintente su cargue!',
msgFileNotFound: 'Archivo "{name}" no encontrado!',
msgFileSecured: 'Restricciones de seguridad previenen la lectura del archivo "{name}".',
msgFileNotReadable: 'Archivo "{name}" no se puede leer.',
msgFilePreviewAborted: 'Previsualización del archivo abortada para "{name}".',
msgFilePreviewError: 'Ocurrió un error mientras se leía el archivo "{name}".',
msgInvalidFileType: 'Tipo de archivo inválido para el archivo "{name}". Sólo archivos "{types}" son permitidos.',
msgInvalidFileExtension: 'Extensión de archivo inválido para "{name}". Sólo archivos "{extensions}" son permitidos.',
msgValidationError: 'Error Cargando Archivo',
msgLoading: 'Cargando archivo {index} of {files} &hellip;',
msgProgress: 'Cargando archivo {index} of {files} - {name} - {percent}% completado.',
msgSelected: '{n} {files} seleccionados',
msgFoldersNotAllowed: 'Arrastre y suelte únicamente archivos! Se omite {n} carpeta(s).',
dropZoneTitle: 'Arrastre y suelte los archivos aquí &hellip;'
};
$.extend($.fn.fileinput.defaults, $.fn.fileinput.locales.es);
})(window.jQuery);

43
public/ppy/js/fileinput_locale_fr.js

@ -0,0 +1,43 @@
/*!
* FileInput French Translations
*
* This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or
* any HTML markup tags in the messages must not be converted or translated.
*
* @see http://github.com/kartik-v/bootstrap-fileinput
*
* NOTE: this file must be saved in UTF-8 encoding.
*/
(function ($) {
"use strict";
$.fn.fileinput.locales.fr = {
fileSingle: 'fichier',
filePlural: 'fichiers',
browseLabel: 'Parcourir&hellip;',
removeLabel: 'Retirer',
removeTitle: 'Retirer les fichiers sélectionnés',
cancelLabel: 'Annuler',
cancelTitle: "Annuler l'envoi en cours",
uploadLabel: 'Transférer',
uploadTitle: 'Transférer les fichiers sélectionnés',
msgSizeTooLarge: 'Le fichier "{name}" (<b>{size} KB</b>) dépasse la taille maximale autorisée qui est de <b>{maxSize} KB</b>. Merci de recommencer !',
msgFilesTooLess: 'Vous devez sélectionner au moins <b>{n}</b> {files} à transmetter. Merci de recommencer !',
msgFilesTooMany: 'Le nombre de fichier sélectionné <b>({n})</b> dépasse la quantité maximale autorisée qui est de <b>{m}</b>. Merci de recommencer !',
msgFileNotFound: 'Le fichier "{name}" est introuvable !',
msgFileSecured: "Des restrictions de sécurité vous empêchent d'accéder au fichier \"{name}\".",
msgFileNotReadable: 'Le fichier "{name}" est illisble.',
msgFilePreviewAborted: 'Prévisualisation du fichier "{name}" annulée.',
msgFilePreviewError: 'Une erreur est survenue lors de la lecture du fichier "{name}".',
msgInvalidFileType: 'Type de document invalide pour "{name}". Seulement les documents de type "{types}" sont autorisés.',
msgInvalidFileExtension: 'Extension invalide pour le fichier "{name}". Seules les extensions "{extensions}" sont autorisées.',
msgValidationError: 'Erreur lors de la transmission du fichier',
msgLoading: 'Transmission du fichier {index} sur {files}&hellip;',
msgProgress: 'Transmission du fichier {index} sur {files} - {name} - {percent}% faits.',
msgSelected: '{n} {files} sélectionné(s)',
msgFoldersNotAllowed: 'Glissez et déposez uniquement des fichiers ! {n} répertoire(s) exclu(s).',
dropZoneTitle: 'Glissez et déposez les fichiers ici&hellip;'
};
$.extend($.fn.fileinput.defaults, $.fn.fileinput.locales.fr);
})(window.jQuery);

43
public/ppy/js/fileinput_locale_hu.js

@ -0,0 +1,43 @@
/*!
* FileInput Hungarian Translations
*
* This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or
* any HTML markup tags in the messages must not be converted or translated.
*
* @see http://github.com/kartik-v/bootstrap-fileinput
*
* NOTE: this file must be saved in UTF-8 encoding.
*/
(function ($) {
"use strict";
$.fn.fileinput.locales.hu = {
fileSingle: 'fájl',
filePlural: 'fájlok',
browseLabel: 'Böngész &hellip;',
removeLabel: 'Eltávolít',
removeTitle: 'Kijelölt fájlok törlése',
cancelLabel: 'Mégse',
cancelTitle: 'Feltöltés megszakítása',
uploadLabel: 'Feltöltés',
uploadTitle: 'Kijelölt fájlok feltöltése',
msgSizeTooLarge: '"{name}" fájl (<b>{size} KB</b>) mérete nagyobb a megengedettnél <b>{maxSize} KB</b>. Kérjük próbálja újra!',
msgFilesTooLess: 'Legalább <b>{n}</b> {files} ki kell választania a feltöltéshez. Kérjük próbálja újra!',
msgFilesTooMany: 'A feltölteni kívánt fájlok száma <b>({n})</b> elérte a megengedett maximumot <b>{m}</b>. Kérjük próbálja újra!',
msgFileNotFound: '"{name}" fájl nem található!',
msgFileSecured: 'Biztonsági beállítások nem engedik olvasni a fájlt "{name}".',
msgFileNotReadable: '"{name}" fájl nem olvasható',
msgFilePreviewAborted: '"{name}" fájl feltöltése megszakítva.',
msgFilePreviewError: 'Hiba lépett fel a "{name}" fájl olvasása közben.',
msgInvalidFileType: 'Nem megengedett fájl "{name}". Csak a "{types}" fájl típusok támogatottak.',
msgInvalidFileExtension: 'Nem megengedett kiterjesztés / fájltípus "{name}". Csak a "{extensions}" kiterjesztés(ek) / fájltípus(ok) támogatottak.',
msgValidationError: 'Fájl ellenörzési hiba.',
msgLoading: '{index} / {files} töltése &hellip;',
msgProgress: 'Feltöltés: {index} / {files} - {name} - {percent}% kész.',
msgSelected: '{n} {files} kiválasztva.',
msgFoldersNotAllowed: 'Csak fájlokat húzzon ide! Kihagyva {n} könyvtár.',
dropZoneTitle: 'Fájlok húzása ide &hellip;'
};
$.extend($.fn.fileinput.defaults, $.fn.fileinput.locales.hu);
})(window.jQuery);

45
public/ppy/js/fileinput_locale_it.js

@ -0,0 +1,45 @@
/*!
* FileInput Italian Translation
*
* Author: Lorenzo Milesi <maxxer@yetopen.it>
*
* This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or
* any HTML markup tags in the messages must not be converted or translated.
*
* @see http://github.com/kartik-v/bootstrap-fileinput
*
* NOTE: this file must be saved in UTF-8 encoding.
*/
(function ($) {
"use strict";
$.fn.fileinput.locales.it = {
fileSingle: 'file',
filePlural: 'file',
browseLabel: 'Sfoglia&hellip;',
removeLabel: 'Rimuovi',
removeTitle: 'Rimuovi i file selezionati',
cancelLabel: 'Annulla',
cancelTitle: 'Annulla i caricamenti in corso',
uploadLabel: 'Carica',
uploadTitle: 'Carica i file selezionati',
msgSizeTooLarge: 'Il file "{name}" (<b>{size} KB</b>) eccede la dimensione massima di caricamento di <b>{maxSize} KB</b>. Per favore correggi il file e riprova!',
msgFilesTooLess: 'Devi selezionare almeno <b>{n}</b> {files} da caricare. Per favore correggi e riprova!',
msgFilesTooMany: 'Il numero di file selezionati per il caricamento <b>({n})</b> eccede il numero massimo di file accettati <b>{m}</b>. Per favore correggi e riprova!',
msgFileNotFound: 'File "{name}" non trovato!',
msgFileSecured: 'Restrizioni di sicurezza impediscono la lettura del file "{name}".',
msgFileNotReadable: 'Il file "{name}" non \xE8 leggibile.',
msgFilePreviewAborted: 'Generazione anteprima per "{name}" annullata.',
msgFilePreviewError: 'Errore durante la lettura del file "{name}".',
msgInvalidFileType: 'Tipo non valido per il file "{name}". Sono ammessi solo file di tipo "{types}".',
msgInvalidFileExtension: 'Estensione non valida per il file "{name}". Sono ammessi solo file con estensione "{extensions}".',
msgValidationError: 'Errore caricamento file',
msgLoading: 'Caricamento file {index} di {files}&hellip;',
msgProgress: 'Caricamento file {index} di {files} - {name} - {percent}% completato.',
msgSelected: '{n} {files} selezionati',
msgFoldersNotAllowed: 'Trascina solo file! Ignorata/e {n} cartella/e.',
dropZoneTitle: 'Trascina i file qui&hellip;'
};
$.extend($.fn.fileinput.defaults, $.fn.fileinput.locales.it);
})(window.jQuery);

43
public/ppy/js/fileinput_locale_nl.js

@ -0,0 +1,43 @@
/*!
* FileInput Dutch Translations
*
* This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or
* any HTML markup tags in the messages must not be converted or translated.
*
* @see http://github.com/kartik-v/bootstrap-fileinput
*
* NOTE: this file must be saved in UTF-8 encoding.
*/
(function ($) {
"use strict";
$.fn.fileinput.locales.nl = {
fileSingle: 'bestand',
filePlural: 'bestanden',
browseLabel: 'Zoek &hellip;',
removeLabel: 'Verwijder',
removeTitle: 'Verwijder geselecteerde bestanden',
cancelLabel: 'Annuleren',
cancelTitle: 'Annuleer gaande upload',
uploadLabel: 'Upload',
uploadTitle: 'Upload geselecteerde bestanden',
msgSizeTooLarge: 'Bestand "{name}" (<b>{size} KB</b>) is groter dan de toegestaande <b>{maxSize} KB</b>. Probeer opnieuw!',
msgFilesTooLess: 'U moet minstens <b>{n}</b> {files} selecteren om te uploaden. Probeer opnieuw!',
msgFilesTooMany: 'Aantal geselecteerde bestanden <b>({n})</b> is meer dan de toegestaande <b>{m}</b>. Probeer opnieuw!',
msgFileNotFound: 'Bestand "{name}" niet gevonden!',
msgFileSecured: 'Bestand kan niet gelezen worden in verband met beveiligings redenen "{name}".',
msgFileNotReadable: 'Bestand "{name}" is niet leesbaar.',
msgFilePreviewAborted: 'Bestand weergaven geannuleerd voor "{name}".',
msgFilePreviewError: 'Er is een fout opgetreden met lezen van "{name}".',
msgInvalidFileType: 'Geen geldig bestand "{name}". Alleen "{types}" zijn toegestaan.',
msgInvalidFileExtension: 'Geen geldige extensie "{name}". Alleen "{extensions}" zijn toegestaan.',
msgValidationError: 'Bestand upload fout',
msgLoading: 'Bestanden laden {index} van de {files} &hellip;',
msgProgress: 'Bestanden laden {index} van de {files} - {name} - {percent}% compleet.',
msgSelected: '{n} {files} geselecteerd',
msgFoldersNotAllowed: 'Drag & drop bestanden alleen! overgeslagen {n} mappen(s).',
dropZoneTitle: 'Drag & drop bestanden hier &hellip;'
};
$.extend($.fn.fileinput.defaults, $.fn.fileinput.locales.nl);
})(window.jQuery);

43
public/ppy/js/fileinput_locale_pl.js

@ -0,0 +1,43 @@
/*!
* FileInput Polish Translations
*
* This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or
* any HTML markup tags in the messages must not be converted or translated.
*
* @see http://github.com/kartik-v/bootstrap-fileinput
*
* NOTE: this file must be saved in UTF-8 encoding.
*/
(function ($) {
"use strict";
$.fn.fileinput.locales.pl = {
fileSingle: 'plik',
filePlural: 'pliki',
browseLabel: 'Przeglądaj &hellip;',
removeLabel: 'Usuń',
removeTitle: 'Usuń zaznaczone pliki',
cancelLabel: 'Przerwij',
cancelTitle: 'Anuluj wysyłanie',
uploadLabel: 'Wgraj',
uploadTitle: 'Wgraj zaznaczone pliki',
msgSizeTooLarge: 'Plik o nazwie "{name}" (<b>{size} KB</b>) przekroczył maksymalną dopuszczalną wielkość pliku wynoszącą <b>{maxSize} KB</b>. Proszę ponowić próbę wysłania pliku!',
msgFilesTooLess: 'Musisz wybrać przynajmniej <b>{n}</b> {files} do wgrania. Proszę spróbować jeszcze raz wgrać pliki!',
msgFilesTooMany: 'Liczba plików wybranych do wgrania w liczbie <b>({n})</b>, przekracza maksymalny dozwolony limit wynoszący <b>{m}</b>. Proszę spróbować ponownie!',
msgFileNotFound: 'Plik "{name}" nie istnieje!',
msgFileSecured: 'Ustawienia zabezpieczeń uniemożliwiają odczyt pliku "{name}".',
msgFileNotReadable: 'Plik "{name}" nie jest plikiem do odczytu.',
msgFilePreviewAborted: 'Podgląd pliku "{name}" został przerwany.',
msgFilePreviewError: 'Wystąpił błąd w czasie odczytu pliku "{name}".',
msgInvalidFileType: 'Nieznny typ pliku "{name}". Tylko następujące rodzaje plików "{types}", są obsługiwane.',
msgInvalidFileExtension: 'Złe rozszerzenie dla pliku "{name}". Tylko następujące rozszerzenia plików "{extensions}", są obsługiwane.',
msgValidationError: 'Błąd podczas przesyłania pliku.',
msgLoading: 'Wczytywanie pliku {index} z {files} &hellip;',
msgProgress: 'Wczytywanie pliku {index} z {files} - {name} - {percent}% zakończone.',
msgSelected: '{n} {files} zaznaczonych',
msgFoldersNotAllowed: 'Metodą przeciągnij i upuść, można przenosić tylko pliki. Pominięto {n} katalogów.',
dropZoneTitle: 'Przeciągnij i upuść pliki tu &hellip;'
};
$.extend($.fn.fileinput.defaults, $.fn.fileinput.locales.pl);
})(window.jQuery);

43
public/ppy/js/fileinput_locale_pt.js

@ -0,0 +1,43 @@
/*!
* FileInput Portuguese Translations
*
* This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or
* any HTML markup tags in the messages must not be converted or translated.
*
* @see http://github.com/kartik-v/bootstrap-fileinput
*
* NOTE: this file must be saved in UTF-8 encoding.
*/
(function ($) {
"use strict";
$.fn.fileinput.locales.pt= {
fileSingle: 'ficheiro',
filePlural: 'ficheiros',
browseLabel: 'Procurar &hellip;',
removeLabel: 'Remover',
removeTitle: 'Remover ficheiros seleccionados',
cancelLabel: 'Cancelar',
cancelTitle: 'Abortar carregamento ',
uploadLabel: 'Carregar',
uploadTitle: 'Carregar ficheiros seleccionados',
msgSizeTooLarge: 'Ficheiro "{name}" (<b>{size} KB</b>) excede o tamanho máximo permido de <b>{maxSize} KB</b>. Por favor carregue de novo!',
msgFilesTooLess: 'Deve seleccionar pelo menos <b>{n}</b> {files} para fazer upload. Por favor carregue de novo!',
msgFilesTooMany: 'Número máximo de ficheiros seleccionados <b>({n})</b> excede o limite máximo de <b>{m}</b>. Por favor carregue de novo!',
msgFileNotFound: 'Ficheiro "{name}" não encontrado!',
msgFileSecured: 'Restrições de segurança preventem a leitura do ficheiro "{name}".',
msgFileNotReadable: 'Ficheiro "{name}" não pode ser lido.',
msgFilePreviewAborted: 'Pré-visualização abortado para o ficheiro "{name}".',
msgFilePreviewError: 'Ocorreu um erro ao ler o ficheiro "{name}".',
msgInvalidFileType: 'Tipo inválido para o ficheiro "{name}". Apenas ficheiros "{types}" são suportados.',
msgInvalidFileExtension: 'Extensão inválida para o ficheiro "{name}". Apenas ficheiros "{extensions}" são suportados.',
msgValidationError: 'Erro de carregamento de ficheiro',
msgLoading: 'A carregar ficheiro {index} de {files} &hellip;',
msgProgress: 'A carregar ficheiro {index} de {files} - {name} - {percent}% completo.',
msgSelected: '{n} {files} seleccionados',
msgFoldersNotAllowed: 'Arrastar e largar ficheiros apenas! {n} pasta(s) ignoradas.',
dropZoneTitle: 'Arrastar e largar ficheiros aqui &hellip;'
};
$.extend($.fn.fileinput.defaults, $.fn.fileinput.locales.pt);
})(window.jQuery);

44
public/ppy/js/fileinput_locale_ru.js

@ -0,0 +1,44 @@
/*!
* FileInput Russian Translations
*
* This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or
* any HTML markup tags in the messages must not be converted or translated.
*
* @see http://github.com/kartik-v/bootstrap-fileinput
* @author CyanoFresh <cyanofresh@gmail.com>
*
* NOTE: this file must be saved in UTF-8 encoding.
*/
(function ($) {
"use strict";
$.fn.fileinput.locales.ru = {
fileSingle: 'файл',
filePlural: 'файлы',
browseLabel: 'Выбрать &hellip;',
removeLabel: 'Удалить',
removeTitle: 'Очистить выбранные файлы',
cancelLabel: 'Отмена',
cancelTitle: 'Отменить текущую загрузку',
uploadLabel: 'Загрузить',
uploadTitle: 'Загрузить выбранные файлы',
msgSizeTooLarge: 'Файл "{name}" (<b>{size} KB</b>) превышает максимальный размер <b>{maxSize} KB</b>',
msgFilesTooLess: 'Вы должны выбрать как минимум <b>{n}</b> {files} для загрузки',
msgFilesTooMany: 'Количество выбранных файлов <b>({n})</b> превышает максимально допустимое количество <b>{m}</b>',
msgFileNotFound: 'Файл "{name}" не найден!',
msgFileSecured: 'Ограничения безопасности запрещают читать файл "{name}".',
msgFileNotReadable: 'Файл "{name}" невозможно прочитать.',
msgFilePreviewAborted: 'Предпросмотр отменен для файла "{name}".',
msgFilePreviewError: 'Произошла ошибка при чтении файла "{name}".',
msgInvalidFileType: 'Запрещенный тип файла для "{name}". Только "{types}" разрешены.',
msgInvalidFileExtension: 'Запрещенное расширение для файла "{name}". Только "{extensions}" разрешены.',
msgValidationError: 'Ошибка при загрузке файла',
msgLoading: 'Загрузка файла {index} из {files} &hellip;',
msgProgress: 'Загрузка файла {index} из {files} - {name} - {percent}% завершено.',
msgSelected: '{n} {files} выбрано',
msgFoldersNotAllowed: 'Разрешено только перетаскивание файлов! Пропущено {n} папок.',
dropZoneTitle: 'Перетащите файлы сюда &hellip;'
};
$.extend($.fn.fileinput.defaults, $.fn.fileinput.locales.ru);
})(window.jQuery);

43
public/ppy/js/fileinput_locale_sk.js

@ -0,0 +1,43 @@
/*!
* FileInput Slovakian Translations
*
* This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or
* any HTML markup tags in the messages must not be converted or translated.
*
* @see http://github.com/kartik-v/bootstrap-fileinput
*
* NOTE: this file must be saved in UTF-8 encoding.
*/
(function ($) {
"use strict";
$.fn.fileinput.locales.sk = {
fileSingle: 'súbor',
filePlural: 'súbory',
browseLabel: 'Vybrať &hellip;',
removeLabel: 'Odstrániť',
removeTitle: 'Vyčistiť vybraté súbory',
cancelLabel: 'Storno',
cancelTitle: 'Prerušiť nahrávanie',
uploadLabel: 'Nahrať',
uploadTitle: 'Nahrať vybraté súbory',
msgSizeTooLarge: 'Súbor "{name}" (<b>{size} KB</b>): prekročenie - maximálna povolená veľkosť <b>{maxSize} KB</b>. Skúste nahrať opäť, prosím!',
msgFilesTooLess: 'Musíte vybrať najmenej <b>{n}</b> {files} pre nahranie. Skúste nahrať opäť, prosím!',
msgFilesTooMany: 'Počet vybratých súborov pre nahranie <b>({n})</b>: prekročenie - maximálny povolený limit <b>{m}</b>. Skúste nahrať opäť, prosím!',
msgFileNotFound: 'Súbor "{name}" nebol nájdený!',
msgFileSecured: 'Zabezpečenie súboru znemožnilo čítať súbor "{name}".',
msgFileNotReadable: 'Súbor "{name}" nie je čitateľný.',
msgFilePreviewAborted: 'Náhľad súboru bol prerušený pre "{name}".',
msgFilePreviewError: 'Nastala chyba pri načítaní súboru "{name}".',
msgInvalidFileType: 'Neplatný typ súboru "{name}". Iba "{types}" súborov sú podporované.',
msgInvalidFileExtension: 'Neplatná extenzia súboru "{name}". Iba "{extensions}" súborov sú podporované.',
msgValidationError: 'Chyba nahratia súboru.',
msgLoading: 'Nahrávanie súboru {index} z {files} &hellip;',
msgProgress: 'Nahrávanie súboru {index} z {files} - {name} - {percent}% dokončené.',
msgSelected: '{n} {files} vybraté',
msgFoldersNotAllowed: 'Tiahni a pusť iba súbory! Vynechané {n} pustené prečinok(y).',
dropZoneTitle: 'Tiahni a pusť súbory tu &hellip;'
};
$.extend($.fn.fileinput.defaults, $.fn.fileinput.locales.sk);
})(window.jQuery);

44
public/ppy/js/fileinput_locale_sr.js

@ -0,0 +1,44 @@
/*!
* FileInput Serbian Translations
*
* This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or
* any HTML markup tags in the messages must not be converted or translated.
*
* @see http://github.com/kartik-v/bootstrap-fileinput
* @author Milos Stojanovic <stojanovic.loshmi@gmail.com>
*
* NOTE: this file must be saved in UTF-8 encoding.
*/
(function ($) {
"use strict";
$.fn.fileinput.locales.sr = {
fileSingle: 'datoteka',
filePlural: 'datoteke',
browseLabel: 'Izaberi &hellip;',
removeLabel: 'Ukloni',
removeTitle: 'Ukloni označene datoteke',
cancelLabel: 'Odustani',
cancelTitle: 'Prekini trenutno otpremanje',
uploadLabel: 'Otpremi',
uploadTitle: 'Otpremi označene datoteke',
msgSizeTooLarge: 'Datoteka "{name}" (<b>{size} KB</b>) prekoračuje maksimalnu dozvoljenu veličinu datoteke od <b>{maxSize} KB</b>. Molimo pokušajte ponovo!',
msgFilesTooLess: 'Morate odabrati najmanje <b>{n}</b> {files} za otpremanje. Molimo pokušajte ponovo!',
msgFilesTooMany: 'Broj datoteka označenih za otpremanje <b>({n})</b> prekoračuje maksimalni dozvoljeni limit od <b>{m}</b>. Molimo pokušajte ponovo!',
msgFileNotFound: 'Datoteka "{name}" nije pronađena!',
msgFileSecured: 'Datoteku "{name}" nije moguće pročitati zbog bezbednosnih ograničenja.',
msgFileNotReadable: 'Datoteku "{name}" nije moguće pročitati.',
msgFilePreviewAborted: 'Generisanje prikaza nije moguće za "{name}".',
msgFilePreviewError: 'Došlo je do greške prilikom čitanja datoteke "{name}".',
msgInvalidFileType: 'Datoteka "{name}" je pogrešnog formata. Dozvoljeni formati su "{types}".',
msgInvalidFileExtension: 'Ekstenzija datoteke "{name}" nije dozvoljena. Dozvoljene ekstenzije su "{extensions}".',
msgValidationError: 'Greška prilikom otpremanja fajla',
msgLoading: 'Učitavanje datoteke {index} od {files} &hellip;',
msgProgress: 'Učitavanje datoteke {index} od {files} - {name} - {percent}% završeno.',
msgSelected: '{n} {files} je označeno',
msgFoldersNotAllowed: 'Moguće je prevlačiti samo datoteke! Preskočeno je {n} fascikla.',
dropZoneTitle: 'Prevucite datoteke ovde &hellip;'
};
$.extend($.fn.fileinput.defaults, $.fn.fileinput.locales.sr);
})(window.jQuery);

1
public/ppy/js/fileinput_locale_th.js

@ -0,0 +1 @@
(function($){"use strict";$.fn.fileinput.locales.th={fileSingle:'ไฟล์',filePlural:'ไฟล์',browseLabel:'เลือกดู &hellip;',removeLabel:'ลบทิ้ง',removeTitle:'ลบไฟล์ที่เลือกทิ้ง',cancelLabel:'ยกเลิก',cancelTitle:'ยกเลิกการอัพโหลด',uploadLabel:'อัพโหลด',uploadTitle:'อัพโหลดไฟล์ที่เลือก',msgSizeTooLarge:'ไฟล์ "{name}" (<b>{size} KB</b>) มีขนาดเกินที่ระบบอนุญาตที่ <b>{maxSize} KB</b>, กรุณาลองใหม่อีกครั้ง!',msgFilesTooLess:'คุณต้องเลือกไฟล์จำนวนอย่างน้อย <b>{n}</b> {files} เพื่ออัพโหลด, กรุณาลองใหม่อีกครั้ง!',msgFilesTooMany:'ไฟล์ที่คุณเลือกมีจำนวน <b>({n})</b> ซึ่งเกินกว่าที่ระบบอนุญาตที่ <b>{m}</b>, กรุณาลองใหม่อีกครั้ง!',msgFileNotFound:'ไม่พบไฟล์ "{name}" !',msgFileSecured:'ระบบความปลอดภัยไม่อนุญาตให้อ่านไฟล์ "{name}".',msgFileNotReadable:'ไม่สามารถอ่านไฟล์ "{name}" ได้',msgFilePreviewAborted:'ไฟล์ "{name}" ไม่อนุญาตให้ดูตัวอย่าง',msgFilePreviewError:'พบปัญหาในการดูตัวอย่างไฟล์ "{name}".',msgInvalidFileType:'ไฟล์ "{name}" เป็นประเภทไฟล์ที่ไม่ถูกต้อง, อนุญาตเฉพาะไฟล์ประเภท "{types}"',msgInvalidFileExtension:'ไฟล์ "{name}" เป็น extension ที่ไมถูกต้อง, อนุญาตเฉพาะไฟล์ extension "{extensions}"',msgValidationError:'อัพโหลดไฟล์มีปัญหา',msgLoading:'กำลังโหลดไฟล์ {index} จาก {files} &hellip;',msgProgress:'กำลังโหลดไฟล์ {index} จาก {files} - {name} - {percent}%',msgSelected:'{n} {files} ถูกเลือก',msgFoldersNotAllowed:'Drag & drop เฉพาะไฟล์เท่านั้น! ข้าม dropped folder จำนวน {n}',dropZoneTitle:'Drag & drop ไฟล์ตรงนี้ &hellip;'};$.extend($.fn.fileinput.defaults,$.fn.fileinput.locales.th)})(window.jQuery);

43
public/ppy/js/fileinput_locale_tr.js

@ -0,0 +1,43 @@
/*!
* FileInput Turkish Translations
*
* This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or
* any HTML markup tags in the messages must not be converted or translated.
*
* @see http://github.com/kartik-v/bootstrap-fileinput
*
* NOTE: this file must be saved in UTF-8 encoding.
*/
(function ($) {
"use strict";
$.fn.fileinput.locales.tr = {
fileSingle: 'dosya',
filePlural: 'dosyalar',
browseLabel: 'Gözat &hellip;',
removeLabel: 'Sil',
removeTitle: 'Seçilen dosyaları sil',
cancelLabel: 'İptal',
cancelTitle: 'Devam eden yüklemeyi iptal et',
uploadLabel: 'Yükle',
uploadTitle: 'Seçilen dosyaları yükle',
msgSizeTooLarge: '"{name}" dosyasının boyutu (<b>{size} KB</b>) izin verilen azami dosya boyutu olan <b>{maxSize} KB</b>\'tan büyük. Lütfen tekrar deneyin!',
msgFilesTooLess: 'Yüklemek için en az <b>{n}</b> {files} dosya seçmelisiniz. Lütfen tekrar deneyin!',
msgFilesTooMany: 'Yüklemek için seçtiğiniz dosya sayısı <b>({n})</b> azami limitin <b>{m}</b> altında olmalıdır. Lütfen tekrar deneyin!',
msgFileNotFound: '"{name}" dosyası bulunamadı!',
msgFileSecured: 'Güvenlik kısıtlamaları "{name}" dosyasının okunmasını engelliyor.',
msgFileNotReadable: '"{name}" dosyası okunabilir değil.',
msgFilePreviewAborted: '"{name}" dosyası için önizleme iptal edildi.',
msgFilePreviewError: '"{name}" dosyası okunurken bir hata oluştu.',
msgInvalidFileType: '"{name}" dosyasının türü geçerli değil. Yalnızca "{types}" türünde dosyalara izin veriliyor.',
msgInvalidFileExtension: '"{name}" dosyasının uzantısı geçersiz. Yalnızca "{extensions}" uzantılı dosyalara izin veriliyor.',
msgValidationError: 'Dosya Yükleme Hatası',
msgLoading: 'Dosyalar yükleniyor {index} / {files} &hellip;',
msgProgress: 'Dosya yükleniyor {index} / {files} - {name} - %{percent} tamamlandı.',
msgSelected: '{n} {files} seçildi',
msgFoldersNotAllowed: 'Yalnızca dosyaları sürükleyip bırakabilirsiniz! {n} dizin(ler) göz ardı edildi.',
dropZoneTitle: 'Dosyaları buraya sürükleyip bırakın &hellip;'
};
$.extend($.fn.fileinput.defaults, $.fn.fileinput.locales.tr);
})(window.jQuery);

44
public/ppy/js/fileinput_locale_uk.js

@ -0,0 +1,44 @@
/*!
* FileInput Ukrainian Translations
*
* This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or
* any HTML markup tags in the messages must not be converted or translated.
*
* @see http://github.com/kartik-v/bootstrap-fileinput
* @author CyanoFresh <cyanofresh@gmail.com>
*
* NOTE: this file must be saved in UTF-8 encoding.
*/
(function ($) {
"use strict";
$.fn.fileinput.locales.uk = {
fileSingle: 'файл',
filePlural: 'файли',
browseLabel: 'Вибрати &hellip;',
removeLabel: 'Видалити',
removeTitle: 'Видалити вибрані файли',
cancelLabel: 'Скасувати',
cancelTitle: 'Скасувати поточну загрузку',
uploadLabel: 'Загрузити',
uploadTitle: 'Загрузити вибрані файли',
msgSizeTooLarge: 'Файл "{name}" (<b>{size} KB</b>) перевищує максимальний розмыр <b>{maxSize} KB</b>',
msgFilesTooLess: 'Ви повинні вибрати як мінімум <b>{n}</b> {files} для загрузки',
msgFilesTooMany: 'Кількість вибраних файлів <b>({n})</b> перевищує максимально допустиму кількість <b>{m}</b>',
msgFileNotFound: 'Файл "{name}" не знайдено!',
msgFileSecured: 'Обмеження безпеки перешкоджають читанню файла "{name}".',
msgFileNotReadable: 'Файл "{name}" неможливо прочитати.',
msgFilePreviewAborted: 'Перегляд скасований для файла "{name}".',
msgFilePreviewError: 'Сталася помилка під час читання файла "{name}".',
msgInvalidFileType: 'Заборонений тип файла для "{name}". Тільки "{types}" дозволені.',
msgInvalidFileExtension: 'Заборонене розширення для файла "{name}". Тільки "{extensions}" дозволені.',
msgValidationError: 'Помилка під час загрузки файла',
msgLoading: 'Загрузка файла {index} із {files} &hellip;',
msgProgress: 'Загрузка файла {index} із {files} - {name} - {percent}% завершено.',
msgSelected: '{n} {files} вибрано',
msgFoldersNotAllowed: 'Дозволено перетягувати тільки файли! Пропущено {n} папок.',
dropZoneTitle: 'Перетяніть файли сюди &hellip;'
};
$.extend($.fn.fileinput.defaults, $.fn.fileinput.locales.uk);
})(window.jQuery);

1
public/ppy/js/fileinput_locale_zh.js

@ -0,0 +1 @@
(function($){"use strict";$.fn.fileinput.locales.zh={fileSingle:'文件',filePlural:'多个文件',browseLabel:'选择 &hellip;',removeLabel:'移除全部',removeTitle:'清除选中文件',cancelLabel:'取消',cancelTitle:'取消进行中的上传',uploadLabel:'上传',uploadTitle:'上传选中文件',msgSizeTooLarge:'文件 "{name}" (<b>{size} KB</b>) 超过了允许大小 <b>{maxSize} KB</b>. 请重新上传!',msgFilesTooLess:'你必须选择最少 <b>{n}</b> {files} 来上传. 请重新上传!',msgFilesTooMany:'选择的上传文件个数 <b>({n})</b> 超出最大文件的限制个数 <b>{m}</b>. 请重新上传!',msgFileNotFound:'文件 "{name}" 未找到!',msgFileSecured:'安全限制,为了防止读取文件 "{name}".',msgFileNotReadable:'文件 "{name}" 不可读.',msgFilePreviewAborted:'取消 "{name}" 的预览.',msgFilePreviewError:'读取 "{name}" 时出现了一个错误.',msgInvalidFileType:'不正确的类型 "{name}". 只支持 "{types}" 类型的文件.',msgInvalidFileExtension:'不正确的文件扩展名 "{name}". 只支持 "{extensions}" 的文件扩展名.',msgValidationError:'文件上传错误',msgLoading:'加载第 {index} 文件 共 {files} &hellip;',msgProgress:'加载第 {index} 文件 共 {files} - {name} - {percent}% 完成.',msgSelected:'{n} {files} 选中',msgFoldersNotAllowed:'只支持拖拽文件! 跳过 {n} 拖拽的文件夹.',dropZoneTitle:'',slugCallback:function(text){return text?text.split(/(\\|\/)/g).pop().replace(/[^\w\u4e00-\u9fa5\-.\\\/ ]+/g,''):''}};$.extend($.fn.fileinput.defaults,$.fn.fileinput.locales.zh)})(window.jQuery);
Loading…
Cancel
Save